【代码】https://github.com/SoftwareGift/FeatherNets_Face-Anti-spoofing-Attack-Detection-Challenge-CVPR2019
创新点
- 提出轻量级网络Feather:
- thin CNN stem——计算代价小;
- 提出流模块——比GAP(Global Average Pooling)精确度更高;
- 设计了一种新的融合分类器体系结构,将从多模态数据(depth 和 IR 数据)中学习到的多模型进行组合和级联;
成就
- 仅用depth image进行训练,0.00168 ACER, 0.35M parameters and 83M FLOPS;
- in the Face Anti-spoofing Attack Detection Challenge@CVPR2019 and
got the result of 0.0013(ACER), 0.999(TPR@FPR=10e-2),
0.998(TPR@FPR=10e-3) and 0.9814(TPR@FPR=10e-4). - 数据集 MMFD
原理
真实人脸的depth image是不均匀的,攻击人脸的depth image是平面的。
架构设计
感受野中心对输出的影响大于边缘对输出的影响,因此,RF1比RF2具有更大的有效感受域。
流模块
- DWConv(stride>1)用于缩减输出的像素采样
- 计算过程:
F V n ( y , x , m ) = ∑ i , j K i , j , m ⋅ F I N y ( i ) , I N x ( j ) , m FV_n(y,x,m)=\sum_{i,j}K_{i,j,m}·F_{IN_y(i),IN_x(j),m} FVn(y,x,m)=i,j∑Ki,j,m⋅FINy(i),INx(j),m- 其中,
N = H ′ ∗ W ′ ∗ C N=H^{'} * W ^ {'} *C N=H′∗W′∗C
n ( x , y , m ) = m × H ′ × W ′ + y × H ‘ + x n(x,y,m)=m\times H^{'}\times W^{'}+y\times H^{‘}+x n(x,y,m)=m×H′×W′+y×H‘+x
I N y ( i ) = y × S 0 + i IN_y(i)=y\times S_0+i INy(i)=y×S0+i
I N x ( j ) = x × S 1 + j IN_x(j)=x\times S_1+j INx(j)=x×S1+j
S_0是垂直步长,S_1是水平步长
- 其中,
- 流模块可用来代替传统网络中的全局平均池化层和全连接层
网络结构
- 除了流模块,还有 Block A/B/C 来构成 FeatherNet A/B
- 基于深度数据训练的模型可以达到 0.003 ACER
- 对于深度模型不确定的样本,IR数据可以提供较好的伪判断性能
- 第一阶段由多个用深度数据训练的模型加权平均得到,对于不确定的样本进行第二阶段的判断,第二阶段用IR数据训练FeatherNetB模型,若第二阶段判断为假,则作为最后结果,若判断为真,则结合第一阶段的结果共同决定。
评价标准
- Attack Presentation Classification Error Rate (APCER)
- Normal Presentation Classification Error Rate (NPCER)
- Average Classification Error Rate (ACER)
实验结果