CVPR-2018
文章目录
1、Background and Motivation
人脸识别应用越来越广泛, face anti-spoofing is vital to ensure that face recognition systems are robust to PA and safe to use.
传统的人脸活体检测基于 texture-based + machine learning
基于深度学习的活检通常 formulate as a binary classification problem,泛化性能比较弱,不足以应付 the different
levels of image degradation, namely spoof patterns
假也很多种形式,真假界限模糊,决策过程不能简单的非黑即白——without explanation or rationale for the decision
本文作者采用的是 auxiliary supervision 而不是 binary supervision,结合深度图和 rPPG 信号,来辅助决策活检最终的结果
2、Related Work
- Texture-based Methods
- Temporal-based Methods
Haralick features, motion mag, and optical flow - Remote Photoplethysmography (rPPG)
Remote photoplethysmography (rPPG) is the technique to track vital signals, such as heart rate,without any contact with human skin
3、Advantages / Contributions
- 用深度图和 rPPG 同时辅助监督来做人脸活体检测,采用 CNN + RNN 的结构,兼顾空间和时序信息
( a novel CNN-RNN architecture for end-to-end learning the depth map and rPPG signal.) - 公开 Spoof in the Wild Database (SiW) 数据集
4、Method
CNN + RNN,depth + rPPG
更细节的图示
(1)Depth Map Supervision
pixel-wise supervision
3D mask 的标签来自
Jourabloo A, Liu X. Pose-invariant face alignment via CNN-based dense 3D model fitting[J]. International Journal of Computer Vision, 2017, 124: 187-203.
Liu Y, Jourabloo A, Ren W, et al. Dense face alignment[C]//Proceedings of the IEEE International Conference on Computer Vision Workshops. 2017: 1619-1628.
真人脸有标签,假人脸标签 depth 全部置为 0
RNN 的输入之一 3D shape S S S 也是该方法计算得到,深度图监督信息根据 S S S 计算得出来的
(2)rPPG Supervision
sequence-wise supervision,rPPG 信号监督
rPPG 信号的监督信息计算方法来自,输入 video 提取即可
De Haan G, Jeanne V. Robust pulse rate from chrominance-based rPPG[J]. IEEE transactions on biomedical engineering, 2013, 60(10): 2878-2886.
上述方法提取出来的 rPPG 信号有如下缺点
- sensitive to pose and expression variation、illumination change、
- not be sufficiently distinguishable to signals of live videos
作者用 RNN 网络来学 rPPG 信号,现在标签都不太准确怎么办?
作者采用的是 pseudo-rPPG signal
作者假设同一个人各种 poses, illuminations, expressions (PIE) 情况下的 rPPG和正常情况下 一致
the same subject under different PIE conditions have the same ground truth rPPG signal.
理由:输入 video 的那短暂时间内,心跳频率相似,不太受环境和姿态的影响
since the heart beat is similar for the videos of the same subject that are captured in a short span of time (< 5 minutes).
由此一来,我们可以用正常 PIE 下人脸的 rPPG 信号作为标签,来监督各类 PIE 情况,提升网络对 PIE 的鲁棒性同时,通过
《Robust pulse rate from chrominance-based rPPG》 方法计算得到的标签也更真实可信(最理想情况下计算得到的最准)
大白话说,不论什么 PIE,我用正常 PIE 下计算得到的 rPPG 信号作为监督信号用于 RNN 网络训练
真人脸有 rPPG 信号,假人脸 rPPG 信号为 0
(3)Network Architecture
CNN 仅用深度信息监督
RNN 用 rPPG 信号监督,RNN 的输入有深度图,特征图和
first stream only updates the weights of the CNN part, the back propagation of the second stream updates the weights of both CNN and RNN parts in an end-to-end manner.
CNN 优化函数
I I I 是输入图片(256 x 256), D D D 是深度图标签, N d N_d Nd 是 the number of training images
RNN 优化函数
F F F 是 CNN 的特征图(32 x 32)——frontalized feature map
f f f 是 rPPG 监督信号
N s N_s Ns is the number of sequences,rPPG 信号的维度
(4)Non-rigid Registration Layer
看看具体的细节
输入
T
T
T,
D
^
\hat{D}
D^,
S
S
S,输出
F
F
F
做的是 face alignment,人脸对齐
V V V 的计算方式
threshold 被配置为了 0.1, D ^ \hat{D} D^ 是 CNN 预测的深度图
U U U 是 T T T 和 V V V 点乘
输出结果 frontalized image F,用于后续 rPPG 的预测
还是比较复杂的
(5)FAS score
λ = 0.015 \lambda = 0.015 λ=0.015
比较合理,计算出来的是二范数的加权得分
5、Experiments
TensorFlow 实现
(1)Datasets and Metrics
- SiW
- Oulu
- CASIA-MFSD
- Replay-Attack
APCER,BPCER,ACER,HTER,FRR,FAR
SiW 是作者提出的
(2)Advantage of proposed architecture
model 1 是仅有 CNN
model 2,CNN + Depth 监督,提点明显
model3,CNN + RNN without the non-rigid registration layer,性能下降了
model4,作者的方法,效果最好,体现了人脸对齐的重要性
(3)Advantage of longer sequences
rPPG 信号的维度,作者权衡速度和精度选择了 N f = 5 N_f = 5 Nf=5,输入尺寸 256 x 256
rPPG 曲线每个横坐标,表示输入一张图片,OMG
(4)Intra Testing
作者的方法真人错判为假体的概率比较低,BPCER
假体当成真人的概率没有做到很突出,APCER
平均下来 ACER 比较低,4 种测试方式下都最低
看看在自己的数据集上的表现
(5)Cross Testing
train in SiW, and test on all protocols of Oulu
ranked sixth,不是 SOTA
在下面两个数据集上做泛化性实验,做到了 SOTA
(6)Visualization and Analysis
翻车的例子
6、Conclusion(own) / Future work
- poses, illuminations, expressions (PIE)
- CNN + RNN,depth + rPPG 监督
- 提出了 SiW 数据集
- Binary or Auxiliary Supervision(1)
- 深度图的监督标签面对抠图攻击,不知道如何,标签全部置为 0 肯定不合适
- 基于算法的结果当标签,然后再训练设计的网络,标签质量打个问号