[人脸活体检测] 论文:Face Anti-Spoofing Using Patch and Depth-based CNNs
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的更多相关文章
- [人脸活体检测] 论文:Learn Convolutional Neural Network for Face Anti-Spoofing
[人脸活体检测] 论文:Learn Convolutional Neural Network for Face Anti-Spoofing 论文简介 这是最早期CNN用于活体检测的文章,在此之前都是手 ...
- [人脸活体检测] 论文:Searching Central Difference Convolutional Networks for Face Anti-Spoofing
文章目录 Searching Central Difference Convolutional Networks for Face Anti-Spoofing 1 导读 2 简介 3 方法 中心差分卷 ...
- [人脸活体检测] 论文:Face De-Spoofing: Anti-Spoofing via Noise Modeling
Face De-Spoofing: Anti-Spoofing via Noise Modeling 论文简介 将非活体人脸图看成是加了噪声后失真的x,用残差的思路检测该噪声从而完成分类. 文章引用量 ...
- [人脸活体检测] 论文: Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision
Learning Deep Models for Face Anti-Spoofing: Binary or Auxiliary Supervision 论文简介 与人脸生理相关的rppG信号被研究者 ...
- [人脸活体检测] 论文:Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection
Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection 论文简介 该论文提出的方法已经部署到百万台终端,整篇文章底气十足.作者设 ...
- 从零玩转人脸识别之RGB人脸活体检测
从零玩转RGB人脸活体检测 前言 本期教程人脸识别第三方平台为虹软科技,本文章讲解的是人脸识别RGB活体追踪技术,免费的功能很多可以自行搭配,希望在你看完本章课程有所收获. ArcFace 离线SDK ...
- OpenCV实战:人脸关键点检测(FaceMark)
Summary:利用OpenCV中的LBF算法进行人脸关键点检测(Facial Landmark Detection) Author: Amusi Date: 2018-03-20 ...
- Qt编写百度离线版人脸识别+比对+活体检测
在AI技术发展迅猛的今天,很多设备都希望加上人脸识别功能,好像不加上点人脸识别功能感觉不够高大上,都往人脸识别这边靠,手机刷脸解锁,刷脸支付,刷脸开门,刷脸金融,刷脸安防,是不是以后还可以刷脸匹配男女 ...
- 虹软人脸识别 - faceId及IR活体检测的更新介绍
虹软人脸识别 - faceId及IR活体检测的介绍 前几天虹软推出了 Android ArcFace 2.2版本的SDK,相比于2.1版本,2.2版本中的变化如下: VIDEO模式新增faceId(类 ...
随机推荐
- Java新手问题 请问各路大佬这是什么问题导致的呢?
- SAP B1 增加或删除单据,或者是新增修改BOM清单,报错‘出现内部错误时’,一般是控制过程 SBO_SP_TransactionNotification 里面的代码有问题,执行不下去了,因此一行行检查SQL代码,一般就能发现错误所在。
SAP B1 增加或删除单据,或者是新增修改BOM清单,报错'出现内部错误时',一般是控制过程 SBO_SP_TransactionNotification 里面的代码有问题,执行不下去了,因此一行行 ...
- 关于QT编译程序找不到MSVCRT.DLL和其他动态链接库的解决办法
先上图(一大堆无法解析的外部符号): 解决办法分两个步骤: 1.系统环境变量设置,把这些dll文件所在目录加入到PATH中.比如C:\Windows\SysWOW64, C:\Windows\Syst ...
- 在VS中使用Wind数据终端API的经验(一)
因工作需要,使用vs2019来调用Wind金融终端API数据接口.具体步骤按照wind的帮助文档一步步做下来.这里提一下和帮助文档不同的地方. Windows Console APP下,编译项目后出现 ...
- unidbgrid按回车键切换到右侧CELL
打开UniDBGrid的ClientEvents->ExtEvents属性,编辑Ext.grid.Panel的reconfig函数,输入如下代码就可以实现当UniDBGrid表格的ReadOnl ...
- sql Alias别名
sql语句中where.group by.having.order by 是否可以使用别名 1.在mysql中,group by.order by中可以使用别名:where中不能使用别名,(如果别名来 ...
- 使用yarn启用项目,报错无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\yarn.ps1,因为在此系 统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
这是由于新版win10 安装的时候会出现: 解决 搜索powershell,右键以管理员身份运行 2.打开之后,执行命令set-ExecutionPolicy RemoteSigned更改 Power ...
- What is UDS Service 0x10 - Diagnostic Session Control ?
Why need the UDS Service 0x10? ECU在正常工作时会处于某一个会话模式下,上电后会自动进入默认会话模式,所以ECU启动后我们不需要输入0x10 01来进入该会话模式.EC ...
- 对于利用js实现表单的验证问题--其实菜鸟教程都有啦,但还是想要记录一下
关于利用js实现表单的验证的实现 在jsp页面里面加上名为的标签,然后将以下代码跟奴自己的变量放进去: 记得要放在function的方法里面!!! 之后就需要在form标签里面加上onsubmit=& ...
- ChatGPT对于滤除微多普勒运动目标的解决方案
上一篇体验了一把GPT的真香定律,赶紧又问了一些同事问的如何滤除微多普勒目标的问题.感觉还可以,后面可以试试看,具体大家可以一起看看这个回答,还是有一些可以采纳的意见(文章内容为GPT回答的内容,可能 ...