Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection

论文简介

该论文提出的方法已经部署到百万台终端,整篇文章底气十足。作者设计多任务网络,包含两个分支,一个用于预测深度图并做二分类,另一个回归光验证码,只有被识别对象同时通过两个分支的考验,才能被判断为活体,如下图;本人感觉满篇全是亮点:又快又准的深度图预测、无需额外硬件的光验证码校验机制、Light presentation回归网络以及不知道怎么采集却又超精确的深度图ground truth……

下图(Figure 2)对整个算法流程进行说明,特别提到需要使用手机或其他有前置摄像头和光源的设备,并置于测试对象前方;然后随机产生一个包含色调和光照强度的参数序列,比如,r = {(αi , βi )}ni=1 ,n为拍摄帧数。通过控制屏幕以r的顺序闪光,同时拍摄n张图像Fr ,用于估计normal cues,再输入到多任务网络,预测深度图+标签+光验证码信号,最后结合两个分支网络的输出取并集作为最终的识别结果。下面对算法各模块详细介绍:

1. 光反射的Normal Cues

给定人脸反射帧{Fri }ni=1 ,通过估计目标人脸上的反射增益,提取normal cues(实在不知道怎么翻译)。粗糙的表面会将接收到的光线漫反射出去,然后被相机接收并成像。在Lambert反射模型和弱透视相机的假设下,假设图像包含目标表面的反射,我们可以度量图像之间的幅度变化。Lambert 定律认为漫反射表面的反射光在所有方向上均相等,换言之,对于在特定光照Lr下拍摄的照片上任意一点p,强度Fr§ 公式:

Ka是环境的权重,Kr是漫反射的权重,l是光源方向,ρp 是反照率,np是该点的法线。当光迅速变化,Ka和l不会随之变换,可以看作是常量。作者用PRNet预测人脸关键点然后,做仿射变换,人脸对齐。在光照Lr′ 下另一张图中和p对应的p′ 的强度可以表示为:

然后可以获得图像上每一点的内积N∆r§ :

此处N∆r§ 构成的内积图就是normal cue。

2. 多任务CNN

得到normal cues之后,作者用两个分支分别实现活体分类和光验证码的回归。作者强调这个网络结构是任务驱动,促使双验证机制在实际场景中对于模态攻击的鲁棒性更好。

1)活体分类

受光照环境的影响,从人脸反射帧提取的normal cues往往是粗糙的、伴随噪声的。为了从normal cues高效获取高精度深度图,作者采用了一个编解码网络(encoder-decoder network)。复原出的深度图被输入到一个简单的分类网络来给出二分类的结果,如Figure 3所示。

从视频中获取m帧的normal cues,N1, N2, …, Nm loss函数:

S表示包含两个卷积层的(最左边红色的)部分,C表示活体预测网络U,U表示深度图复原网络,ci表示第i个normal cue的活体标签,λdepth 是深度图的权重。在预测深度图时,作者做了pixel-wise的分类,每个点都做标签为1-256的softmax分类。dk§ 是p点k通道特征图上的激活,特征图作为U最后的输出。

2)光·参数回归(实在不知道怎么翻,抱歉)

作者为了强化模型在模态攻击下的安全性,通过特定光照对图像加密,再用回归分支对特征解码,以此作为第二个活体验证机制。同深度图分类一样,回归分支被输入同样的normal cues,loss函数:

R是回归分支网络,∆ri 是Fri 和 Fri−1 的光参数残差的ground truth。

假设训练集中视频总数为V,整个网络的loss函数:

Θ 是参数空间,λreg 是光验证码回归损失权重。实际上,作者实验时随机只用四种光的排列组合,是鲁棒性和时间复杂度的trade off,并控制光源变化的频率和帧率一致,共取m+1帧图像,用信噪比(SNR,Signal to Noise Ratio)衡量预测值和ground truth的匹配度。

3. 数据集

作者以30fps的帧率收集不同设备、不同光照下样本视频,攻击类型主要是2D,作者生产环境中认为3D的攻击成本太高了,没什么人愿意花那个功夫,所以就没怎么收集。相比于Siw,CASIA-surf,Oulu等其他数据集,作者提出的数据集有三大优势:首先是现存活体数据集中最大的,包含1.2w个活体和攻击视频,200个subjects,平均时长3秒;包含的设备最广泛,几乎是涵盖了智能手机发展的历史,从Figure 4可以看到,一共18种!最后,该数据集包含了最全面的攻击方式,打印,回放,模态或其他光投影产生的攻击类型。作者把样本根据攻击类型分为三部分:纸质攻击、屏幕攻击和其他复杂攻击(裁剪的纸,投影等),又把每部分分为训练集、验证集和测试集,如Table 1所示。除此之外,数据集中真人和攻击样本的数量相等,真人数据也是在各种不同光照、噪声和姿态下收集的,攻击样本更是包含足够多的PIE类型。

主要贡献:

  • 提出高效简洁的人脸活体识别方法,并且在实际场景中应用时不需要额外设计硬件外设;
  • 提出cost-free的深度图网络,在分类任务中,通过从反射帧(reflection frames)中提取的normal cues估计人脸深度图;
  • 提出全新的光验证码检查机制,对于不同类型的假冒攻击,尤其是模态攻击(modality spoofing)安全性显著提升;
  • 提出新的活体数据集,包含多种图片质量和移动终端、多种假冒攻击方式的人脸样本。

实验

1. 实现细节

1)训模型

作者用的Pytorch框架,Kaiming初始化方法(ICCV 2016)初始化卷积层和全连阶层,RMSprop优化算法;训练过程在单个Tesla P100上耗时5小时,迭代300个epoch。

2)测试

作者采用常用的计算方式测试模型精度,如FRR,FAR,HTER。

2. 模型简化测试

1)深度图监督的有效性

效果很明显了,见Table 2.

2)光验证码回归研究

虽然仅靠深度图分支已经可以搞定大部分2D攻击,但仍有一种攻击方式是上述方法束手无策的:模态攻击。模态攻击可以直接假冒所需要的反光模式,在这两种情况下,模态攻击可使算法失效:把事先录好的含有特定反光模式的人脸视频在高分辨率屏幕上播放;在攻击试验的捕获过程中,投射光不会干扰视频帧中的原始面部反射。Figure 5说明光验证码抵御模态攻击的原理,Figure 6证明回归分支信噪比小雨0.35并且和ground truth很接近,证明其的确可以区分四种关照。

作者为了验证光验证码机制的作用,用四种光照的排列组合制作模态攻击,如Figure 5所示(最上面的虚线框),重复播放视频3000次。换言之,固定的视频循环必须匹配到随机产生的光验证码才能通过验证。Table 3可以说明系统的安全性非常高了。

3. 与SOTA算法对比

1)深度图预测

Figure 7能看出AG的深度图精度非常好,Aux的深度图ground truth是通过3D人脸估计模拟+z-buffer算法然后归一化做出来的,攻击样本则全写为“0”,AG的深度图如何获取通篇没有提到过,从这几个例子来看,本人觉得这是用某些手机的前置拍的(比如iPhone X),攻击样本的深度图也是实际拍的,和人工生成的完全不一样,可见做样本是花了大功夫的!

2)Face anti-Spoofing

Table 5为在本文提出的数据集上训练,在两个小测试集上的交叉测试结果,这个精度和泛化能力没谁了。作者还将数据集的三个部分(纸质、屏幕和其他)两两组合(一个为训练集,一个为测试集),把AG系统和Deep LBP全比较了一遍,结果自然是LBP被碾压的稀碎。

3)运行时间比较

作者把AG与其他SOTA算法比较跨平台的运行时间,GPU是服务器端的,CPU分别有基于x86和arm的,结果也很感人,如下图,不知道作者是不是估计用绿色字写“Red”,用红色字写“Green”,emmm

4)与基于硬件的方案比较

如下表 Table 6:

更多信息请关注公众号:

[人脸活体检测] 论文:Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection相关推荐

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

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

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

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

  3. 人脸活体检测论文:Multi-Modal Face Anti-Spoofing Based on Central Difference Networks

    作者 Zitong Yu, Yunxiao Qin, Xiaobai Li, Zezheng Wang, Chenxu Zhao, Zhen Lei, Guoying Zhao 摘要 人脸反欺骗(Fa ...

  4. 论文翻译:搜索人脸活体检测的中心差异卷积网络及实现代码

    搜索人脸活体检测的中心差异卷积网络 摘要 1. 绪论 2. 相关工作 人脸活体检测 卷积运算符 神经架构搜索 3. 方法论 3.1 中心差分卷积 基本卷积 基本卷积结合中心差分操作 中心差分卷积的实现 ...

  5. 人脸系列:人脸检测、人脸关键点定位、人脸优选、人脸对齐、人脸特征提取、人脸跟踪、人脸活体检测

    一.一点想法 缘由:最近想整理下从事人脸方向的所有查阅过的论文,做过的相关实验,因为随着时间的推移,自己总会遗忘当初的一些想法,所以想好好整理下自己的学习笔记. 过程:本系列包括从人脸检测.人脸关键点 ...

  6. 人脸活体检测:活体检测数据集

    此篇博客主要整理人脸活体检测的数据集. 目前人脸活体攻击的方式主要有:照片打印.视频回放攻击.3D人脸面具等.因此数据集也是根据这些攻击方式制作的. 一共整理了11个活体检测的数据集.此外还整理了6个 ...

  7. 人脸活体检测、红外人脸数据集下载

    此篇博客主要整理人脸活体检测的数据集. 目前人脸活体攻击的方式主要有:照片打印.视频回放攻击.3D人脸面具等.因此数据集也是根据这些攻击方式制作的. 一共整理了11个活体检测的数据集.此外还整理了6个 ...

  8. python 活体检测_基于Python+Keras+OpenCV实现实时人脸活体检测 | 文末送书

    你在互联网上找到的大多数人脸识别算法和研究论文都会遭受照片***.这些方法在检测和识别来自网络摄像头的图像.视频和视频流中的人脸方面是很是有效,可是他们没法区分现实生活中的面孔和照片上的面孔.这种没法 ...

  9. 【活体检测】人脸活体检测、红外人脸数据集整理

    此篇博客主要整理人脸活体检测的数据集. 目前人脸活体攻击的方式主要有:照片打印.视频回放攻击.3D人脸面具等.因此数据集也是根据这些攻击方式制作的. 一共整理了11个活体检测的数据集.此外还整理了6个 ...

最新文章

  1. 【C++】C++11 STL算法(八):对未初始化内存的操作(Operations on uninitialized memory)、C库(C library)
  2. UART接口算法移植加密芯片的调试技巧——通讯调试
  3. SDWC2017游记
  4. ng-init,ng-controller,ng-model
  5. 禁止linux使用密码ssh,linux centos7服务器使用密钥登录ssh同时禁止root密码登录
  6. ATcoder-[AGC048B]Bracket Score【结论,贪心】
  7. 汇编语言(九)之十六进制数值转二进制
  8. php后台如何避免用户直接进入方法
  9. better-scroll 与 Vue 结合
  10. jquery 鼠标事件汇总
  11. b g opencv读入的图片 r,OpenCV 读取摄像头并显示图像的R、G、B三个通道的直方图...
  12. Cocos Creator 的实现拖尾效果
  13. Android版LGame框架发布预告
  14. 一个屌丝程序猿的人生(一百零九)
  15. 7500 cpuz跑分 i5_锐龙R5 1400对比i5 7500哪个好 R5-1400与i5-7500区别对比详细评测
  16. 规则引擎Drools简述
  17. 爆款升级当贝NEW D3X来了,画质亮度远超坚果O1S,性能小钢炮实至名归
  18. linux解pdf隐写工具,Linux版PDF解密工具PDFDecryptionTool-Deepin-amd64.deb下载
  19. Ubuntu 网络限速
  20. AD学习笔记(一)基础认识

热门文章

  1. 18岁歌手出任网游公司CEO,年薪百万
  2. android 微博发布,手机上怎么用微博?手机如何发广播?
  3. phpstudy+PHPSTORM配置xdebug断点调试
  4. Playwright 模拟浏览器、模拟手机、忽略图片加载、等待、监听、操作事件
  5. nowcoder_B_114514_打表找规律
  6. jmeter安全证书_jmeter制造安全证书
  7. Python实现用户名字母大小写数字特殊符号
  8. C中十六进制字符串转十六进制数组
  9. 雷鸟将邮件自动接收到新建的文件夹中
  10. kindeditor获取html,jquery获取kindEditor值