论文:Aurora Guard_ Real-Time Face Anti-Spoofing via Light Reflection
AG
腾讯优图
Main Idea
本文提出了一种简单高效的anti-spoofing方法,不需要特别的硬件设备。利用了多帧RGB图在不同光照条件下具有不同的反射。提出并定义了一种光参数序列light CAPTCHA,应用到人脸上,形成了具有不同反射效果的人脸帧。然后对其提取normal cues,该过程使用了Lambert’s Law。将normal cues输入一个多任务CNN,第一个分支使用encoder+decoder估计深度信息(2D softmax + CE),然后再进行分类。另外一个分支对光参数进行回归,使用均方误差。
Abstract
本文提出的方案是一种快速高效的anti-spoofing方法,已经被数百万用户使用。该方法首先通过光反射分析提取normal cues;然后使用一个端到端训练的可训练的多任务CNN不仅恢复对象的深度信息以辅助活体判断,同时还在回归分支中提供了light CAPTCHA(光验证码)检查机制,进一步提升系统的稳定性。此外,本文还搜集了一个12000活体和非活样本的数据集,包括丰富的图像质量和攻击模式。
1.Introduction
本文的方法主要包括两个部分:
- 以Lambertian model为基础,产生动态变化的光验证码,并从反射帧中提取normal cues.
- 使用一个端到端的多任务网络来同时判断活体与非活,并同时回归光验证码。前者使用normal cues估计深度,判断活体与非活;后者回归光参数的机制用于处理一种特殊的攻击modality spoofing。
***Q:什么是modality spoofing?***
后面的实验部分有详细讲
Contribution
- 提出了一种简单高效的anti-spoofing方法,在实际场景中不需要特别的硬件设备支持就可以应用。
- 提出了一种cost-free的深度恢复网络,通过从反射帧提取出来的normal cues即可以恢复深度进行活体分类。
- 一种新的光验证码检查机制可以提升对抗攻击的安全性,尤其是modality spoofing。
- 建立了一个具有广泛的攻击模式和各种图像质量的数据集。
2.Related Work
Tan, Chan等已经使用Lambertian反射对anti-spoofing进行研究,但是取得的效果却非常有限。本文的主要区别在于:
- 本文使用光源产生随机参数的光序列,形成不同的光反射。
- 本文建立了一个回归分支,形成光验证码检查机制。
- 使用DNN学习,而前面的工作都是基于手工设计的特征。
3.The Proposed Method
本文方法的流程如图09-1所示。使用手机的前置摄像头和光源产生随机参数的光序列$r=\{(\alpha_i,\beta_i)\}_{i=1}^n$
并且采集到$n$
帧图片$F_r$
,顺序估计normal cues$N$
,输入CNN中进行预测,并回归光验证码$\hat{r}$
,最终的判断综合考虑预测结果和$\hat{r}$
与$r$
的匹配结果。
[外链图片转存失败(img-uW0iIrwO-1568520402635)(https://github.com/douyh/PaperReading/raw/master/pic/09-1.jpg)]
图09-1
3.1 Normal Cues from Light Reflection
Lambert’s Law(朗伯定律)认为反射部分在漫射表面的所有方向上都是相等的。即任意像素点$p$
在特定光照$L_r$
下的光强$F_r(p)$
可以表示为:
F_r(p)=\rho_p(k_a+k_r\boldsymbol{l}\cdot \boldsymbol{n_p})
其中$k_a, k_r$
分别是环境权重和漫反射权重。$\rho_p$
是反射率,$\boldsymbol{l}$
是光源方向,$\boldsymbol{n_p}$
是法线。当光照变化的时候$k_a,\boldsymbol{l}$
是不变的,使用PRNet (Feng) 得到的人脸关键点估计的转换矩阵来对齐不同图片对之间的$p^\prime,p$
,那么在另外一个光照$L_r^\prime $
下的另外一幅图片,对应点$p^\prime$
的光强:
F_{r^\prime}(p)=F_{r^\prime}(p^\prime)=\rho_{p^\prime}(k_a+k_{r^\prime}\boldsymbol{l}\cdot \boldsymbol{n_{p^\prime}})
每个点的标量积结果:
N_{\triangle r}(p)=\boldsymbol{l}\cdot \boldsymbol{n_p}=\frac{F_r(p)-F_{r^\prime}(p)}{k_r-k_{r^\prime}}
通过各个点的标量积的结果组成的图就是normal cue。
Q2:$\rho$
不变且为1?
3.2Multi-Task CNN
- 活体判别
将normal cues输入到一个encoder-decoder结构的网络中,得到深度图,再被送入到一个简单的分类结构中以区分3D人脸和2D的攻击。使用交叉熵作为损失函数,在深度图恢复部分,使用了2D像素级的softmax和交叉熵。如图09-2:
[外链图片转存失败(img-ehJ3NcSi-1568520402636)(https://github.com/douyh/PaperReading/raw/master/pic/09-2.jpg)]
图09-2
网络结构如图09-3
[外链图片转存失败(img-2ZGyOLWM-1568520402636)(https://github.com/douyh/PaperReading/raw/master/pic/09-3.jpg)]
图09-3
- 光参数回归
把normal cues输入到回归分支中,损失函数
\mathcal{L}_{reg}=\frac{1}{m}\sum_{i=1}^m\{||\mathcal{R}(\mathcal{S}(N_i))-\triangle r_i||^2\}
其中$\mathcal{R}$
表示回归网络,$\triangle r_i$
是两帧$F_{r_i},F_{r_{i-1}}$
的光参数GT的差。
假设训练集中有$V$
个视频,整个网络的损失函数可以表示为:
[外链图片转存失败(img-evdzbbA0-1568520402636)(https://github.com/douyh/PaperReading/raw/master/pic/09-4.jpg)]
图09-4
在实际中,光验证码序列由4中随机次序的光组成,平衡了验证码的检查和复杂度。光照变化与帧率相同,这样帧会有不同的光反射。$F,r$
的长度等于$m+1$
,使用SNR来检查光参数序列与GT是否匹配。
3.3Dataset Collection
本文采集了一个数据集,其样本是通过投射动态光序列到目标上,并录制30fps的视频得到的。主要采集的是2D攻击的照片。包含12000个live和spoof的video,平均时长3秒,包括200个对象,50种采集设备,print, replay, modality和光投影spoof。
4.实验
ablation study
$\lambda_{depth}$
深度信息的监督可以帮助提高分类的准确率。
分类分支可以比较好的解决大部分正常的2D攻击,但是仍然对modality spoofing表现很差。这种攻击方式直接伪造需要的反射模式。当满足以下两种情况的时候,modality spoofing会使分类网络失效。
- 之前捕获的原始视频是由面部反射帧组成,其中包含真实的反射模式,被高分辨率屏幕泄露和重放。
- 在攻击试验捕获过程中,投射光不干扰视频帧中人脸的原始反射。
图09-5描述了光验证码对抗这种攻击的原理。
[外链图片转存失败(img-YYQQWojs-1568520402637)(https://github.com/douyh/PaperReading/raw/master/pic/09-5.jpg)]
图09-5
图09-6是使用SNR来比较回归参数和GT的图。
[外链图片转存失败(img-arFZt0ck-1568520402637)(https://github.com/douyh/PaperReading/raw/master/pic/09-6.jpg)]
图09-6
光验证码是由4种随机次序投射的光组成。modality spoofing通过录制这4种面部反射,并重复播放3000遍。固定的视频循环必须匹配到随机产生的光验证码,才能通过系统,而使用了光验证码的检查机制之后,极大提高了对modality spoofing的抵抗能力。
图09-7展示了本文的深度估计方法和当前的anti-spoofing的深度估计方法的对比。本文的深度GT是通过intel的深度摄像头采集得到的。
[外链图片转存失败(img-oBjZCQn9-1568520402638)(https://github.com/douyh/PaperReading/raw/master/pic/09-7.jpg)]
图09-7
图片09-8和09-9展示了本文的方法在自采数据集和公开数据集上的表现。由于公开数据集的活体数据没有光验证码,因此只能测试FAR指标。
[外链图片转存失败(img-BciLYnkS-1568520402638)(https://github.com/douyh/PaperReading/raw/master/pic/09-8.jpg)]
图09-8
[外链图片转存失败(img-12PDI7fs-1568520402639)(https://github.com/douyh/PaperReading/raw/master/pic/09-9.jpg)]
图09-9
实验结果表明本文提出的方法在HATER,错误率,泛化性能,运行时间上与SOTA方法进行了对比,具有相当的优势。和基于硬件的SL3D方法有相当的效果。
一些问题:
1.深度回归是直接通过RGB来做的,是用的深度摄像头的GT来训练的吗?
深度信息
2.光验证码这部分的细节和modality spoofing。
参考
https://zhuanlan.zhihu.com/p/61100492
论文:Aurora Guard_ Real-Time Face Anti-Spoofing via Light Reflection相关推荐
- [人脸活体检测] 论文:Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection
Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection 论文简介 该论文提出的方法已经部署到百万台终端,整篇文章底气十足.作者设 ...
- 低光图像增强论文:Self-supervised Image Enhancement Network: Training with Low Light Images Only阅读笔记
论文地址:https://arxiv.org/abs/2002.11300 项目地址:https://github.com/hitzhangyu/Self-supervised-Image-Enhan ...
- 论文阅读:A Taxonomy and Evaluation of Dense Light Field Depth Estimation Algorithms
目录 摘要 二.光场深度估计 1. 子孔径图像和视差 2. 极平面图像 3. Surface cameras (SCams) 表面相机 4. focal stack 焦点堆栈 三.算法 1. EPI ...
- 计算机EI检索论文,EI检索论文
2017年EI检索论文 1. lirong,A self-adaptive particle swarm optimisation & bacterial foraging hybrid al ...
- 【今日CV 计算机视觉论文速览 第96期】 8 Apr 2019
今日CS.CV 计算机视觉论文速览 Mon, 8 Apr 2019 Totally 49 papers ?上期速览 ✈更多精彩请移步主页 Interesting: ?单图像修饰去除, 通过估计图像中含 ...
- 【今日CV 计算机视觉论文速览】Thu, 28 Feb 2019
今日CS.CV计算机视觉论文速览 Thu, 28 Feb 2019 Totally 31 papers Daily Computer Vision Papers [1] Title: Efficien ...
- CVPR 2021 论文大盘点-去阴影、去反光、去高光、去伪影篇
本篇文章继续总结CVPR 2021 底层图像处理相关论文,方向包含去阴影.去反光.去高光.去伪影等.共计 11 篇. 大家可以在: https://openaccess.thecvf.com/CVPR ...
- 夫琅禾费单缝衍射matlab分析,夫琅禾费单缝衍射光强分布MATLAB分析毕业设计论文...
夫琅禾费单缝衍射光强分布MATLAB分析毕业设计论文 毕业设计(论文)摘 要衍射为人们所熟悉的现象,对于光的这种特殊现象在很多方面有着应用.在光的衍射的基础上,介绍了什么是夫琅禾费衍射,几种实现夫琅禾 ...
- 人脸静默活体检测最新综述
©PaperWeekly 原创 · 作者|燕皖 单位|渊亭科技 研究方向|计算机视觉.CNN 活体检测在人脸识别中的重要环节.以前的大多数方法都将面部防欺骗人脸活体检测作为监督学习问题来检测各种预定义 ...
最新文章
- (计算机组成原理)第二章数据的表示和运算-第四节2:本节习题
- Android中View绘制优化二一---- 使用include /标签复用布局文件
- python 面试必问,不会真的要打脸~
- C++ make_shared() shared_ptr()用法
- Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备
- php+jq+添加css,jq如何添加css样式?
- 静音抑制_正在研究利润以抑制创新
- L' Hospital(洛必达)法则
- JAVA中成员变量和局部变量区别
- oracle创建一个永久性表空间,Oracle表空间简单管理永久表空间
- leetcode-买卖股票的最佳时机含手续费
- 新基建下的工业互联网,等不到第四次工业革命
- 计算机保密检查发现反取证信息,计算机系统信息隐藏反取证技术①.PDF
- 分分钟掌握人脸识别:face_recognition模块
- 全平台知识付费系统源码 支持微信小程序+公众号+H5+PC端 含搭建部署教程
- 自学python--第一步:基础知识1
- 《english learn》
- ciscn 2022 华东北分区赛pwn duck
- B站发布首个8K视频,CCTV-8K频道即将开播,一大堆8K利好消息正在到来,8K赛道要开启加速度了吗?
- 嵌入式软件开发和其他软件开发的区别
热门文章
- html文件导入excel 出现乱码,win7系统txt导入excel出现中文乱码的解决方法
- 快速傅立叶变换(FFT)
- 4个参数搞定ABTEST样本量的最优选择
- 论文阅读——Towards Adversarial Retinal Image Synthesis
- word一行没写完就换行
- iPhone 6和iPhone 6 plus的AV Foundation框架特性
- Java 项目热部署,节省构建时间的正确姿势
- stata F值缺失_计量经济学stata代码总结
- Owl Carousel轮播插件介绍
- ei eo 功能类型_速求,74LS148的输入信号EI和输出信号GS,EO的作用分别是什么?谢谢了...