在AntiSpoofing Wiki中对PA进行了详细的划分,总的分为:恶意(下面重点记录)与非恶意。
恶意的PA中分为两类:基于合成的PA和基于人类的PA。
基于合成的PA通常是使用假的肢体部件、合成图像、深度伪造的视频、带特殊纹理的眼镜片(虹膜PA)、遮挡的面部图像,它们可以是静态的、动态的或是混合的。
基于人类的PA通常是活体或者是死物直接呈现给系统(但必须是真实的人),可能是使用活体或者死体的部位,或是模仿攻击
细分的小类中下面仅记录Facial attacks。
面具:现存的面具攻击所使用的面具可能在各方面都极为精致,比如带有放热的硅胶面具,以模拟人体体温。
Deepfake(深度伪造):使用AI,可以对静态图像和动态视频实时实现AI换脸,从而绕过活体检测。
打印的照片:简单粗暴的方式,直接使用照片用于识别。
重播攻击:使用预先录制的结合了Deepfake的视频,投放到高清屏幕上,用于识别。
传统方法大多基于:生理活性信号(如:眨眼、头部面部运动等)、人为研究出的特征(在不同的颜色空间中发现伪造的痕迹)。后者也是2018年后的主要研究方向。
生理活性信号可以被高质量的视频伪造,而且不方便部署。
而后产生了基于人工特征+深度学习、端到端深度学习的方法。在此类方法中,FAS通常被视为二分类问题(活体/非活体),使用交叉熵损失函数即可描述训练目标。
但不同于传统的二分类问题(如:性别检测),FAS问题的特征没有语义性(其实就是不可解释),而且非常细节,因此顺理成章地引入CNN用于检测伪造痕迹。但CNN+二分类方法也会学习到无关紧要的伪造痕迹(如:图像边框),而且会出现过拟合状态。
由于大部分的伪造痕迹都和位置感知的辅助任务相关(比如:在面具或照片的表面会出现不和谐的反光等),同时高质量的图像接收放大了这些线索,有利于深度模型的学习。因此,基于上面的辅助任务,学者提出了像素级辅助监督方法、松弛像素级重建约束(对欺骗模式的本质进行建模)。
作者将FSA大致分为两类:数字操作、物理上的表示攻击(PA),作者主要讨论后者,其操作流程大致如下:
从图(a)中可以看出含FAS的FR(Face Recognition)大致分为两种:并行、串行
图(b)中展示了各种PA形式,根据攻击目的,作者将其分为两类:
根据几何属性,分为两类:
根据覆盖面部的区域大小,分为两类:
作者调研了所有公开FAS相关数据集:
数据集的发展有如下趋势:
每个数据集约定俗成的模型评估方法,由数据集作者提出使用方法,适用于对应数据集,用于判定模型的某些具体性能,作者将协议分为四类:
第一类是将人工特征进行深度提取,得到深度特征:
以上二者均只使用了局部特征进行区分(多个像素被压缩至一个块内),无法提取像素级细节,模型有局限性。
针对重放攻击会有异常反射的问题,【3d face mask presentation attack detection based on intrinsic image analysis】一文中提出对人脸发出光,使用人脸反射光得到的反射图像计算强度差直方图,使用一维卷积提取该图特征,以此检测反射变化。
第二类从DCNN提取到的特征中筛选出人工特征。
此类方法的共性问题是:不知道深层卷积特征和浅层卷积特征哪一个更适用于所选用的人工特征
第三类是使用DCNN和人工特征融合(fuse)得到的某个特征。
但是二者的权重如何选择是个重要问题。
这类方法能够提取特定的非纹理的伪造痕迹,传统的FAS仅能提取纹理特征。缺点也很明确:
第一类是使用二值交叉熵损失函数的直接监督任务。
FAS可以被视为二值端到端分类任务(是否为真实人脸),可被交叉熵损失函数或其他损失函数(如三元损失函数)监督。
1、【Learn convolutional neural network for face anti-spoofing】中使用八层浅层CNN进行端到端的浅层特征提取。但该方法由于数据集限制,容易过拟合;
2、【Transfer learning using convolutional neural networks for face anti-spoofing】【Attention-based two-stream convolutional networks for face spoofing detection】【On the effectiveness of vision transformers for zero-shot face anti-spoofing】中调整了已经使用ImageNet预训练过的VGG16、ResNet18和Vision Transformer,比如修改其中的几层,用于解决过拟合的问题;
3、为了实现实时性,【Deep models and shortwave infrared information to detect face presentation attacks】使用了轻量级的Mobilenet-V2。
上面这些方法只注重了高级特征的提取,但是忽略了浅层特征的提取。
4、为了更好地利用多尺度的特征,【Look locally infer globally: A generalizable face anti-spoofing approach】中使用了自监督的全连接卷积层(FCN)提取特征;
5、【Face anti-spoofing: Model matters, so does data】【Learning temporal features using lstm-cnn architecture for face anti-spoofing】【Face anti-spoofing via sample learning based recurrent neural network (rnn)】【Face anti-spoofing by the enhancement of temporal motion】中结合了级联CNN+LSTM的时空特征分辨PA和真实人像。
1、【On improving temporal consistency for online face liveness detection】中将二分类问题(真实、伪造)细化为多分类问题(真实、重放、打印等),这样可以把各种PA的独特性质考虑在内。
然而仍然不能满足高内聚低耦合,无法做到完全区分,因为高质量的PA和真实人脸在外部特征上差不多。
2、【Face liveness detection based on client identity using siamese network】【Detecting face presentation attacks in mobile devices with a patch-based cnn and a sensor-aware loss function】中分别使用对比损失函数(Contrastive Loss)和三元损失函数(Triplet Loss)。
但是实际情况下,二分类的类内分布并不一致,真实样本更加紧凑,而伪造样本更多样化,存在着小类间的稀疏分布,但是上述函数强制类内约束。
3、基于上述问题【Patchnet: A simple face anti-spoofing framework via fine-grained patch recognition】使用了非对称的A-softmax损失函数,缓解类内约束。
4、【Camera invariant feature learning for generalized face anti-spoofing】使用了Binary Focal Loss扩大真实和伪造的间距,降低高质量伪造的误识率。
上述方法易于使用且有效,能够加速收敛,但是这种监督方式产生的特征过于泛化(时间/空间),易于过拟合;而且模型是黑盒的。
第二类是像素级监督
1、【Searching central difference convolutional networks for face anti-spoofing】【Face anti-spoofing using patch and depth-based cnns】【Deep spatial gradient and temporal depth learning for face anti-spoofing】【Ts-fen: Probing feature selection strategy for face anti-spoofing】使用了伪深度这一特征用来预测活体样本的真实深度,即实际情况下人脸为3D的,是由凹凸起伏的,但照片为平面。
2、【Face anti-spoofing using patch and depth-based cnns】首次使用伪深度训练多尺度FCN,将整体深度图作为标签用于决策。
3、【Searching central difference convolutional networks for face anti-spoofing】使用中心差分卷积(CDC)代替了(2)中的普通卷积以提高细粒度特征的表示,得到下图的CDCN架构:
4、【Deep spatial gradient and temporal depth learning for face anti-spoofing】提出FAS-SGTD架构用于进行短期长期微动作评估(short- and long-term micro-motion estimation),借此进行动态的深度检测。
但是明显不适用于3D面具等。
5、【Deep pixel-wise binary supervision for face presentation attack detection】【Deep tree learning for zero-shot face anti-spoofing】【On disentangling spoof trace for generic face anti-spoofing】【Deep tree learning for zero-shot face anti-spoofing】中提出了二进制掩码标签:使用卷积层对pixel/patch(像素点或一簇像素)进行打分,判定该簇为真的分数,经过全连接层等得到最终输出。这种方法对攻击模式具有泛化性。
上述方法对各个patch是一视同仁的,显然不符合实际情况中人脸各特征的重要程度。
6、【A-deeppixbis: Attentional angular margin for face anti-spoofing】【Auto-fas: Searching lightweight networks for face antispoofing】中使用了注意力模块弥补上面的缺陷。
二值滤波标签只针对于全部人脸伪造有效,当仅有部分伪造时达不到预期。
7、【Basn: Enriching feature representation using bipartite auxiliary supervisions for face antispoofing】中根据人脸材质和伪造材质反照率的差异,提出了结合深度标签和反射标签的监督方法。
8、【Face anti-spoofing with human material perception】中引入了二进制掩码标签,以增加对攻击模式的泛化性。
9、【Face spoofing detection based on local ternary label supervision in fully convolutional networks】基于上述模型,仅保留人脸部分,去除背景中噪声的影响。
10、【Face de-spoofing: Anti-spoofing via noise modeling】【Bi-fpnfas: Bi-directional feature pyramid network for pixel-wise face anti-spoofing by leveraging fourier spectra】使用了傅里叶映射。
11、【Face anti-spoofing via disentangled representation learning】使用了LBP纹理图。
12、【3dpc-net: 3d point cloud network for face anti-spoofing】使用稀疏三维点云图。
辅助任务方法依赖于高分辨率的图像用于提取细节,同时人工特征并不可信。