Face Anti-Spoofing Using Patch and Depth-based CNNs

这篇文章是人脸防伪领域比较容易理解,适合入手的一篇,主要运用到了两个CNN网络,根据输入图像的细节特征以及深度图特征来进行判别。

一、 论文概述

由于直接基于RGB纹理分类的方法非常容易过拟合,而像屏幕中的人脸一般是平的,估计不出深度信息,所以patch and depth-based CNNs方法将深度信息和RGB特征进行融合。

文章引用量:50+

推荐指数:✦✦✦✧✧

[2] Atoum Y, Liu Y, Jourabloo A, et al. Face anti-spoofing using patch and depth-based CNNs[C]//2017 IEEE International Joint Conference on Biometrics (IJCB). IEEE, 2017: 319-328.

  • 文章创新点:提出了一个双通道的CNN网络用于人脸防伪;
  • 运用到的两个网络:

(1)卷积神经网络(CNN),输入是固定尺寸的局部图片,输出是一个分类score,网络部分对输入的局部特征进行深层提取,并根据输出的分类score判断这种局部特征是属于spoof or live。

(2)全卷积网络(FCN),输入是整张人脸图像,尺寸不固定,经过多层卷积网络的特征提取以及SVM得到分类结果是spoof or live。

(3)将两个网络得到的结果通过某种方式进行融合,得到最终输出。

  • 采用的数据集:CASIA-FASD / MSU-USSA / Replay Attack

二、 论文涉及的两个网络(配合图解说明)

【图1】 双流网络的可视化结果

(1)左边是Patch-Based CNN的可视化结果,黄色部分表示该局部属于活体的可能性更大,蓝色部分表示该局部属于伪人脸的可能性更大。

采用patch-based CNN 网络的优点:

  • 增加CNN网络的训练样本数;
  • 输入到训练网络的图片需要被归一化到统一尺寸,如果输入整幅图像可能会造成信息失真,但是输入局部图像不会,因为局部大小是固定的;
  • 有利于发现更细节的伪信息。

(2)右边是Depth-Based CNN的可视化结果,黄色部分表示离镜头较近,蓝色部分表示离镜头较远。

(3)在实验测试的网络中,这两个CNN网络都会给出一个分类score,通过某种方式融合得到最终的输出。

【图2】 网络模型基本框架

可以见得,这两个网络都是end-to-end training (输入原图像,得到分类score)

(1)在patch-based CNN中会取到多个局部区域作为训练数据,每一个patch对应一个score,取所有score的平均值。

(2)在Depth-Based CNN中由于采用的是全卷积神经网络,因此结果是细化到对像素点的分类,将数据归一化到(0,1)可以看作是基于深度图给出的分类结果。

【图3】 两个神经网络层

(1)左图是经典的CNN网络结构,5层卷积层+3层全连接层。

  • BN(正则化)

正则化一般是在原有的损失函数之上再加上一个约束,避免过拟合发生。将数据点本身的因素考虑进去,一般是通过L1范数或者L2范数实现。

  • ReLU

线性修正单元(ReLU)是激活函数的一种,它能够使得部分量被置0,增强数据的稀疏性。

  • Drop out

其基本思想是以概率p使得某些神经元停止工作,使其激活值变为0,这样可以提高网络的泛化性能,让一个神经元的出现不再依赖于另外一个神经元。

(2)右图是在CNN网络的基础上发展得到的全卷积网络(FCN),即将CNN中的全连接层换成了卷积层。

其特点在于输出的特征大小于原图像大小相同,相当于是对原图像的每一个像素进行了分类。


有关FCN的深刻理解参考
https://blog.csdn.net/sinat_24143931/article/details/78696442?locationNum=4&fps=1

由于池化过程会降低特征图的维度,因此也会丢失一些空间信息,反卷积扩大了特征图尺寸,先后进行卷积和反卷积可以理解为:在保留空间信息的同时提取图像的特征信息,对每个像素点进行分类的结果可以归一化到(0,1),由此可以代替深度信息图。

【图4】 测试结果图

上图显示的是基于CASIA-FASD数据集的不同类型的图像数据通过Depth-Based CNN网络后的输出结果对比。从左到右一次是:live images / print attacks / cut print attacks / video attacks。

实验结果明确的显示了本文提出的网络可以有效的对真伪人脸作分类。

三、 补充知识

本文尝试了用多种图像特征作为输入,除了传统的三通道RGB图像之外,还包括HSV / YCbCr / LBP算子

  • HSV

H表示色彩信息,S表示纯度,V表示色彩明亮程度

  • YCbCr

常用于肤色检测和影像连续处理的色彩模型。Y为颜色的亮度(luma)成分,而CB和CR则为蓝色和红色的浓度偏移量成份

  • LBP算子

LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子;它具有旋转不变性和灰度不变性等显著的优点

经不同的特征处理之后的图片数据如下:

更多信息请关注公众号:

[人脸活体检测] 论文:Face Anti-Spoofing Using Patch and Depth-based CNNs的更多相关文章

  1. [人脸活体检测] 论文:Learn Convolutional Neural Network for Face Anti-Spoofing

    [人脸活体检测] 论文:Learn Convolutional Neural Network for Face Anti-Spoofing 论文简介 这是最早期CNN用于活体检测的文章,在此之前都是手 ...

  2. [人脸活体检测] 论文:Searching Central Difference Convolutional Networks for Face Anti-Spoofing

    文章目录 Searching Central Difference Convolutional Networks for Face Anti-Spoofing 1 导读 2 简介 3 方法 中心差分卷 ...

  3. [人脸活体检测] 论文:Face De-Spoofing: Anti-Spoofing via Noise Modeling

    Face De-Spoofing: Anti-Spoofing via Noise Modeling 论文简介 将非活体人脸图看成是加了噪声后失真的x,用残差的思路检测该噪声从而完成分类. 文章引用量 ...

  4. [人脸活体检测] 论文: Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision

    Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision 论文简介 与人脸生理相关的rppG信号被研究者 ...

  5. [人脸活体检测] 论文:Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection

    Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection 论文简介 该论文提出的方法已经部署到百万台终端,整篇文章底气十足.作者设 ...

  6. 从零玩转人脸识别之RGB人脸活体检测

    从零玩转RGB人脸活体检测 前言 本期教程人脸识别第三方平台为虹软科技,本文章讲解的是人脸识别RGB活体追踪技术,免费的功能很多可以自行搭配,希望在你看完本章课程有所收获. ArcFace 离线SDK ...

  7. OpenCV实战:人脸关键点检测(FaceMark)

    Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author:    Amusi Date:       2018-03-20 ...

  8. Qt编写百度离线版人脸识别+比对+活体检测

    在AI技术发展迅猛的今天,很多设备都希望加上人脸识别功能,好像不加上点人脸识别功能感觉不够高大上,都往人脸识别这边靠,手机刷脸解锁,刷脸支付,刷脸开门,刷脸金融,刷脸安防,是不是以后还可以刷脸匹配男女 ...

  9. 虹软人脸识别 - faceId及IR活体检测的更新介绍

    虹软人脸识别 - faceId及IR活体检测的介绍 前几天虹软推出了 Android ArcFace 2.2版本的SDK,相比于2.1版本,2.2版本中的变化如下: VIDEO模式新增faceId(类 ...

随机推荐

  1. 记录一次使用locust压测的过程

    1 脚本# encoding: utf-# @Time : 2021/6/21 1:28 下午 # @Author : Sail # @File : main.py # @Software: PyCh ...

  2. ArcEngine创建注记类及生成注记要素

    在宗地出图的时候遇到此功能要求,看代码 ※创建注记类 public void createBlackAnno(IMap pMap) { //创建mdb数据库文件 IWorkspaceFactory p ...

  3. What is Weight Lifting?

    Weight lifting is the process of lifting items of great mass in order to increase the muscle size an ...

  4. Old ST-LINK firmware detected.do you want to upgrade it?升级固件

    一段时间没有使用st-link烧写程序了.打开keil5准备把程序烧写到stm32板子上时,报错Old ST-LINK firmware detected.do you want to upgrade ...

  5. centos7下安装Node.js MongoDB Nginx

     一.Node.js 方法1(笔者采用).如果对Node.js环境有比较高的要求,建议选择源码安装的方式进行安装,通过wget命令下载Node.js官网上的tar.gz文件包到centos服务器上,进 ...

  6. IntelliJ IDEA常用插件

    Mybatis Log Plugin安装好插件后,在Tools工具栏中可以看到安装好的插件,点击即可打开相应窗口,在Debug时,相应的Sql语句即可输出到此窗口,方便查看.此插件相当好用,提升开发效 ...

  7. Java - JDBC批量插入原理

    一.说明 在JDBC中,executeBatch这个方法可以将多条dml语句批量执行,效率比单条执行executeUpdate高很多,这是什么原理呢?在mysql和oracle中又是如何实现批量执行的 ...

  8. MySQL 某一列的值加入到另一列

    0.背景 文件url 文件名 /usr/local/img/goods/1/2021-12-22-e05bb433bc7a451ca5d7cc9d505d8ed8.jpg 酸枣糕.jpg /usr/l ...

  9. Centos7 设置定时任务

    Centos7 设置定时任务 在centos上最常用的定时任务应该就是crontab了,在经过各种度娘之后有三种方式实现定时任务的方法,但是所用到的场景有所不同 at 适合仅执行一次就结束的调度命令, ...

  10. Spring AOP——源码分析

    [阅读前提]:需了解 AOP 注解开发流程:链接 一.注解 @EnableAspectJAutoProxy 在配置类中添加注解@EnableAspectJAutoProxy,便开启了 AOP(面向切面 ...