Learning Generalized Spoof Cues for Face Anti-spoofing

Learning Generalized Spoof Cues for Face Anti-spoofing
paper PDF

Intorduction

anti-spoof -> 传统方法 -> 缺陷 -> idea -> 设计->实验

Face Anti-spoof 即对人脸图像进行活体检测,常用于人脸身份认证的过程中,以防止别有用心的人利用目标人脸的照片,视频或者面具进行欺诈。

传统的anti-spoof利用如HOG,SIFT等手工特征来提取图像的纹理信息,并利用浅层的分类器如SVM来建立分类边界。再有就是利用CNN将该任务作为二分类网络来训练,以提取更加discriminate特征。但是由于人脸spoof的方式不同,并且考虑unknown欺诈方式。利用上述的训练方式,往往造成对某种欺诈方式的过拟合,而缺乏泛化能力。

考虑到FAS(Face Anti-spoof)的泛化能力差,主要在于欺诈手段的多样性。为了减轻这种多样性对决策边界的影响,本论文提出从异常检测(Anomaly Detection)的角度出发来重新定义FAS。本文假设live samples属于属于一个闭集,而其他spoof sample属于该闭集之外的一个开集中1,并利用通过学习spoof cue作为区分封闭集和非封闭集的discriminate特征(spoof cue只在 spoof samples中存在)。在本论文中,spoof cue定义为一个于输入图像大小相同的feature map,spoof samples应该是一个非全零的feature map,而live samples应该是全零的feature map。

为了学习上文所说的feature map,论文中提出的网络模型由一个spoof cue生成器和一个Auxiliary Classifier构成。在spoof cue生成器中,论文对live samples计算了显式的回归损失,以最小化其feature map中值的大小;但并没有对spoof samples设置显式约束,使其feature map可以任何实数。这样一来,live samples和spoof samples就可以很自然地分离开来。此外,论文在生成器上采用多尺度特征级度量学习,以提高live samples的类内紧凑和live-spoof类间可分。最后,将feature map和以残差学习方式进行连接的输入图像反馈给Auxiliary Classifier,进一步改进了判别特征学习。


Innovation

  1. 从异常检测(Anomaly Detection)的角度出发, 重新设计了FAS模型
  2. 利用残差学习框架,提取discriminate的spoof cue,进一步提高了泛化能力
  3. 通过Auxiliary Classifier 作为spoof cue的放大器进一步提升 spoof cue的效果

Method

Anomaly detection

Anomaly detection(AD)指的是在一组正常数据中识别异常样本的任务。典型的AD方法试图以监督的方式学习正常数据的紧凑描述。通常通过训练模型学习一种映射,使得以预定点c为中心的输出空间的超球面的体积最小化。而异常点就可以通过其在输出空间与预定点c之间的距离来判断。

在AD方法下,我们假设live samples属于一个闭集,而spoof samples是这个闭集的离群点,属于一个开集。因此,我们假设live samples的分布在学习特征表示空间的一个紧凑的球面上,而spoof samples远离这个球体的中心,如下图所示。
在这里插入图片描述

具体来讲,对于本文的FAS模型,假设输入空间为 X ∈ R d X \in \mathbb{R}^d XRd,输出空间是 Z ∈ R p Z \in \mathbb{R}^p ZRp ϕ ( ⋅ ; W ) \phi(\cdot ; W) ϕ(;W)是一个L层的深度神经网络,对应权重为 w = { w 1 , w 2 . . . w L } w=\{w^1, w^2...w^L\} w={w1,w2...wL}。在给定 N l N_l Nl个live samples ( x 1 , x 2 . . . . x n l ∈ X ) (x_1, x_2....x_{n_l}\in X) (x1,x2....xnlX) N s N_s Ns个spoof samples ( y 1 , y 2 . . . . y n s ∈ X ) (y_1, y_2....y_{n_s}\in X) (y1,y2....ynsX)的情况下,模型的目标函数为:
a r g ( W ) : m i n 1 n l ∑ i = 1 n l ∥ ϕ ( x i , W ) − c ∥ 2 m a x 1 n s ∑ i = 1 n s ∥ ϕ ( y i , W ) − c ∥ 2 (1) arg(W): \\ min\frac{1}{n_l} \sum_{i=1}^{n_l}\| \phi(x_i, W) - c\|^2 \\ max\frac{1}{n_s} \sum_{i=1}^{n_s}\| \phi(y_i, W) - c\|^2 \tag{1} arg(W):minnl1i=1nlϕ(xi,W)c2maxns1i=1nsϕ(yi,W)c2(1)

在测试阶段,样本t是spoof的得分则通过计算输出到点c的距离获得,如公式2:
s ( x ) = ∥ ϕ ( x i , W ) − c ∥ (2) s(x)=\| \phi(x_i, W) - c \| \tag{2} s(x)=ϕ(xi,W)c(2)

Residual learning

在FAS中,live samples和spoof samples之间的区别可能是由于媒介的固有特性造成的,如印刷介质或屏幕。在残差学习方法的驱动下,live samples和spoof samples的判别差异可以看作是spoof samples和live samples的残差。

在这里插入图片描述

Spoof cue Generator

在Spoof cue生成器中,如图2所示,采用了U-Net架构,构建从编码器到解码器的多尺度跳跃连接,生成spoof cue。

Regression loss

在本文的假设中,Spoof cue仅仅存在于spoof samples中。因而live samples对应的feature map应该是全零矩阵,也就是说这个全零的feature map就是上文所指出的c点。为此我们需要在live -samples的输出feature map上添加限制。

给定一个RGB图像 I I I作为输入,spoof cue生成器输出一个相同大小的feature map C C C。live samples的feature map回归损失为像素级L1损失,公式如下所示:
L r = 1 N l ∑ I i ∈ l i v e ∥ C i ∥ 1 (3) \mathfrak{L}_r = \frac{1}{N_l} \sum_{I_i \in live} \| C_i \|_1 \tag{3} Lr=Nl1IiliveCi1(3)

Metric Learning

基于学习的度量损失被设计为对spoof sample的隐式监督,在特征层上提高live-live类内紧度和live-spoof类间可分性。具体来说,我们通过在从E5层到D4层的特征映射上使用全局平均池(GAP)来获得一组特征向量 V {V} V。使用Triplet Loss进行监督,其中anchor属于live类。基于度量学习的损失可以表示为:
L t = 1 T ∑ i = 1 T m a x ( d ( a i , p i ) − d ( a i , n i ) , 0 ) d ( i , j ) = ∥ v i ∥ v i ∥ 2 − v j ∥ v j ∥ 2 ∥ 2 \mathfrak{L}_t = \frac{1}{T} \sum_{i=1}^{T} max(d(a_i, p_i)-d(a_i, n_i), 0) \\ d(i, j) = \|\frac{v_i}{\|v_i\|_2} - \frac{v_j}{\|v_j\|_2}\|_2 Lt=T1i=1Tmax(d(ai,pi)d(ai,ni),0)d(i,j)=vi2vivj2vj2
其中 a i , p i , n i {a_i, p_i, n_i} ai,pi,ni分别表示第i个三元组中的anchor(live)、positive(live)、negative(spoof) , T表示三元组的个数, d ( i , j ) d(i, j) d(i,j)表示GAP输出的两个L2归一化特征向量之间的欧氏距离,m为预定义的边界常数。

Auxiliary Classifier

Auxiliary Classifier作为spoof cue的放大器,帮助学习更discriminate的spoof cue。在Spoof cue生成器之后,生成的spoof cue C C C与输入图像 I I I叠加,形成覆盖的图像 S S S。以S作为输入的Auxiliary Classifier的损失函数定义为:
L a = 1 N ∑ i = 1 N z i l o g q i + ( 1 − z i ) l o g ( 1 − q i ) \mathfrak{L}_a = \frac{1}{N} \sum_{i=1}^{N} z_i logq_i+(1-z_i)log(1-q_i) La=N1i=1Nzilogqi+(1zi)log(1qi)
其中N为样本个数, z i z_i zi为label, q i q_i qi为网络预测。

Train and Testing

Loss Function:
L = α 1 L r + α 2 ∑ k ∈ { E 4 − D 4 } L t k + α 3 L t \mathfrak{L} = \alpha_1 \mathfrak{L}_r+ \alpha_2 \sum_{k \in \{E4 - D4\}} \mathfrak{L}_t^k + \alpha_3 \mathfrak{L}_t L=α1Lr+α2k{E4D4}Ltk+α3Lt
Test Strategy:
在测试阶段,我们使用生成的feature map代替分类器的输出进行评估。我们将获得的feature map C ^ \hat{C} C^的所有元素的平均值作为分数:
s c o r e = ∥ C ^ ∥ 1 ‾ score = \overline{ \| \hat{C}\|_1} score=C^1


Experiment

Intra Testing

训练集和测试集属于同一数据集。
在这里插入图片描述
在这里插入图片描述

Inter testing

具体来说,模型在一个数据集上进行训练,然后在另一个数据集上进行测试。跨数据集的评估是一个挑战,因为不同数据集之间的实时和模拟样本的数据分布都有很大的差异。
在这里插入图片描述

在这里插入图片描述

Ablation

在这里插入图片描述

  • Influence of Input Image Resolution.
    我们比较了使用双线性插值将裁剪后的脸的大小调整为224×224和从人脸图像中截取224×224的pitches。实验结果表明模型更加依赖的是图像的局部特征。
  • Influence of Implicit Supervisions.
    结果表明,仅仅在二分类监督的指导下,模型最容易出现过拟合。因此,模型加入了Triplet Loss。
  • Influence of Regression Loss.
    对照实验具体来说:给定一个RGB图像I作为输入,live samples的spoof cue C是一个全零映射,而spoof samples的spoof cue C是一个全一映射。如表5所示,上文提出的方案具有更好的性能。简单来说,预先定义好的spoof samples的显式回归损失可能会违背其固有多样性,使得网络容易过拟合。
  • Advantage of Auxiliary Supervision
    如下图所示,Auxiliary classifier通过增大非零值的大小进一步放大了spoof cue。
    在这里插入图片描述

Visualizations

在这里插入图片描述


  1. https://blog.csdn.net/fuwenyan/article/details/77769224 ↩︎

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值