【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第1张图片

2017 IEEE International Joint Conference on Biometrics (IJCB)


1 Background and Motivation

传统的人脸识别系统做活体检测的方法大致可以分为如下三类

  • texture-based methods(pixel intensity 和各种不同形式的 attacks 没有明确关系,因此想要提取出比较鲁棒的纹理特征还是比较难的)
  • motion based methods(eg 眨眨眼,这类方法可以很好的应对静态攻击,但面对诸如 replay 和 mask 攻击时,就相形见绌了)
  • image quality and reflectance-based methods,这类方法主要时设计特征来捕获 superimposed illumination and noise information

大部分是基于手动设计的特征,很容易受到如下几种 presentation attack(PA)的攻击:

  • print attack
  • replay attack
  • 3D masks

因此需要设计更加鲁棒的 face anti-spoofing 特征或者 PA detection system!

随着人脸欺骗数据库数量的增加,CNN被认为能够利用更大数量的训练数据,并学习可归纳的信息来区分真实和欺骗样本——特征不是手工设计,鲁棒性更强,可应付的 PA 更多!
【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第2张图片
本文,作者基于 CNN 的方法,提出 local features(利用 random 的图像 patch) 和 holistic depth maps(利用整张人脸,把活脸描述为 3D 的 object)two stream 的结构

local feature 分支的每个 patch 会计算的出来一个分数,之后取平均值

holistic depth maps 也会通过评估 depth 图像给出 living score

这两个分支的得分最后会结合起来,来给出最后的分类结果,live or spoof(作者深度指的是 the height map of the face region,而不是严格上的 object-surface-to-camera distance)

2 Innovation / Contribution

  • 同时利用 learned 到的 local 和 holistic 特征来分类 live or spoof
  • 提出了通过评估 dense depth map(RGB-D)来做人脸活体检测
  • 在许多数据上实现了 SOTA

3 Related Work

  • Traditional face anti-spoofing methods
  • CNN-based methods
  • Image depth estimation

4 Methods

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第3张图片

两个 stream 的最终得分通过加权的形式融合在一起,patch stream 权重为1,depth steam 权重为 0.4

4.1 Patch-based CNN

用 patch 而不是用整张图的好处 (在人脸中取 patch)

  • 增加训练样本(避免有限数据集中,整张人脸会存在 high similarities across the frames)
  • 用整个人脸的话,会把人脸 resize 到固定大小,可能会丢失部分 discriminative information
  • 假设整个人脸区域在空间上都存在 spoof-specific discriminative 信息,patch 的方式更有利于 enforce CNN 去发现这样的信息(个人感觉 patch 也会丢失一定的空间信息,不过 discrimination 信息确实往往是局部很小的位置)

相关先验知识的引入更有利于 CNN 学习到 spoof-specific discriminative information,例如利用不同的颜色空间作为输入( R G B RGB RGB H S V HSV HSV Y C b C r YC_bC_r YCbCr

RGB 在活检应用场景中,发挥的作用有限,因为RGB不能很好的分开亮度和色度信息( H S V HSV HSV Y C b C r YC_bC_r YCbCr 可以,因此也能提供额外的可能利于活检的信息), 且 R,B,G三个通道相关性较高,

4.1.1 Input features

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第4张图片

其中 I H = I − f l p ( I ) I_H = I - f_{lp}(I) IH=Iflp(I) f l p f_{lp} flp 表示 low-pass filter

4.1.2 CNN architecture

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第5张图片
【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第6张图片

3 个 fc,来一张图片,先 detection 人脸,然后再进行后续的 two-branch 操作,patch-based CNN 分支中,如果图片是 live 的,所有 patch 的标签都是 1,如果是 spoof 的,所有 patch 的标签则为 0

4.2 Depth-based CNN

printed paper or dispaly 类型的 PAs,它们的 depth 明显与 live faces 不同

Depth-based CNN 结构,输入是 face images,输出是 corresponding depth maps,从 table 1 可以看出,输入输出的分辨率大约隔了 2 倍(有反卷积操作)

1)Generating the depth labels

Fig 2 热力图标签是根据 SOTA 的 3D face model fitting 获得
【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第7张图片
注意到一些 print attack,例如 paper attack,纸张有可能是 bent 的,作者把这些 spoof face 的 label 也都设置为了 flat plain

2)FCN structure
FCN(fully convolutional network) structure, f ( I ; Θ ) f(I;\Theta ) f(I;Θ) I I I 是输入的图片, Θ \Theta Θ 表示 network parateter

图 table1 所示,有 downsampling part and upsampling part(transpose convolutional layer) 两个部分构成,损失函数如公式2所示
在这里插入图片描述
M M M 表示 depth map(label)

3)Depth Map for Classification

可以根据深度图来区别 live or spoof face,作者进一步通过训练 SVM,使得 depth map 具有 classify live vs. spoof 的能力,具体做法如下

作者将 CNN learning 得到的 depth map M M M 划分为 N × N N \times N N×N 大小的网格(有 overlaid),然后计算每个 cell 里的深度值的平均值作为当前 cell 的特征,这样一个二维的深度图 M M M 就转化为了 N 2 N^2 N2 的特征 vector,用该特征作为 SVM 的输入!

作者用不同的 N 训练出了很多 SVM

5 Experiments

5.1 Database

  • CASIA-MFSD
  • MSU-USSA
  • Reply Attack

5.2 Ablation Study

5.2.1 Patch-based CNN analysis

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第8张图片

先检测出人脸,然后处理成不同的输入,最后再分成许多 patch,

LBP 的算法参考 LBP原理介绍以及算法实现

5.2.2 Depth-based CNN analysis

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第9张图片

注意这个 cut print attack,是把打印的图片裁剪部分,露出相应的真人,例如:眼睛

可以看到,虽然 Depth-based CNN learning 出来的和 fig.4 中的 label 还有差距,但是 live 和各种 anti-spoofing 已经有效的被 CNN 区分开来,有利于后续的 SVM 进行分类
【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第10张图片

5.2.3 Fusion analysis

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第11张图片

可以看出核心的还是 depth 方法,fusion 的话仅在 normal quality 图像上有较为明显的提升

5.4 Experimental Comparison

CASIA-FASD 数据集上的比较

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第12张图片

评价指标的介绍参考:

  • 活体检测评判标准HTER(half total error rate)解读
  • 机器学习性能度量(2):错误接受率 (FAR), 错误拒绝率(FRR),EER计算方法,python实现

Moire Pattern 这方法这么牛?都 0 了

MSU-USSA 数据集上的比较

【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第13张图片
Reply Attack 数据集上的比较
【FAS】《Face Anti-Spoofing Using Patch and Depth-Based CNNs》_第14张图片

6 Conclusion(own)

  • high-frequency information of face images is crucial for anti-spoofing(Table 的实验结果看出,低频也还是有用的)
  • For live videos,the depth changes little over time,while the depth of spoof ones can change substantially due to noisy estimation and involunatry hand movement while holding spoof mediums.
  • patch 分支和 depth 分支加权在一起,能独当一面的,更多的是 depth 分支

你可能感兴趣的:(CNN)