FeatherNets: Convolutional Neural Networks as Light as Feather for Face Anti-spoofing
面对反欺骗干扰的研究成果越来越受到学术界和工业界的重视。随着各种基于CNN的解决方案的出现,基于CNN的多模态(RGB、depth和IR)方法表现出比单一模态分类器更好的性能。但是,需要改进性能并降低复杂性。为此,提出了一种基于流模块的极限光网络结构(FeatherNet A/B),该结构弥补了全球平均池的不足,并且使用较少的参数。我们的单一羽毛网训练的深度图像,提供了一个更高的基线0.00168宏,0.35米的参数和83M人字拖。在此基础上,提出了一种基于集成+级联结构的融合方法,以满足性能要求。同时,收集MMFD数据集,提供更多的攻击和多样性,以获得更好的泛化。我们将融合方法应用于人脸抗欺骗攻击检测挑战@ cvpr2019,得到0.0013(ACER)、0.999(TPR@FPR=10e-2)、0.998(TPR@FPR=10e-3)和0.9814(TPR@FPR=10e-4)的结果。
目前,人脸识别是身份认证的重要途径。然而,它也面临着face spoofing攻击(如2D/3D Presentation Attack)所带来的挑战。因此,为系统配备鲁棒的抗欺骗算法是非常重要的。反欺骗干扰通常被认为是一个二元分类问题。有些作品是基于纹理的,使用带有手工特征的二进制分类器[1,2,3,4]。然而,这些方法泛化能力差是因为纹理信息随相机/捕获设备的不同而不同。基于文本的方法的另一个问题是纹理信息的识别能力不如二维表示攻击检测任务的深度信息。
由于真实人脸的深度是不均匀的,且攻击人脸的深度图像是平面的,因此深度信息更具识别性。Atoum等人利用深度监督程序。然而,深度信息是由RGB图像估计出来的,不如RealSense 3001等深度相机捕捉到的深度图像准确。
近年来,深度学习技术被广泛用于提取深度特征[6,7,8],与传统的手工特征相比,深度特征具有更丰富的语义信息。因此,将深度学习技术应用于人脸识别领域,近年来得到了广泛的应用。
然而,有一个新的趋势,人脸识别正逐渐向移动设备或嵌入式设备转移。这要求face反欺骗算法以更少的计算和存储成本运行。从这个角度来看,基于深度学习的反欺骗算法的设计在移动或嵌入式环境中变得更具挑战性。因此,有必要开发一种轻量级的深度学习算法,以实现欺骗检测。
为了解决计算和存储成本的问题,我们设计了一个轻量级的CNN架构(称为FeatherNet),它具有更高的精度和计算复杂度。首先,FeatherNet有一个很细的CNN杆,因此计算成本更低。其次,提出了一种新的流媒体模块结构,该结构在精度方面优于全局平均池化方法。
我们还设计了一种新的融合分类器结构,它将从多模态数据中学习到的多个模型进行组合和级联。,以生成比单一深度模型更好的预测精度。虽然深度图像在二维表示攻击检测中具有一定的鉴别能力,但多模态融合由于具有互补和泛化能力,可以进一步提高性能。新的融合程序已经应用于反欺骗干扰竞争@ cvpr2019,并在测试数据集中显示了0.0013 (ACER)、0.999 (TPR@FPR=10e-2)、0.998 (TPR@FPR=10e-3)和0.9814 (TPR@FPR=10e-4)的结果。
本文的主要贡献如下:a)。一个非常轻的CNN架构,带有一个性能良好的流媒体模块;b)。提出了一种基于集成+级联结构的融合算法,该算法性能优于单个模型分类器;c)。提出了一种新的多模态人脸数据集(MMFD),并将其应用于训练中。
相关工作按时间顺序分为两类:传统方法和基于CNN的方法。
传统的:传统的SVM (Support Vector Machine,支持向量机)将人脸抗欺骗处理为二分类问题,步骤如下
1)手工的特征检测:使用各种滤镜来检测呈现特征的点。广泛采用的特征包括:局部二值模式(LBP)[10,3,1],尺度不变特征变换(SIFT)[11],加速鲁棒特征(SURF)[4],方向梯度直方图(HOG)[2,12],高斯差(DoG)[12]。
2)通过支持向量机或随机森林[13]进行活性或非活性分类。
然而,Wang等人[14]指出,特征检测很大程度上受到环境的影响,例如光照条件。此外,特征检测所显示的特征是有限的,特征点所提供的特征信息并不像CNN方法所提供的那样多。
基于CNN:基于CNN的PAD主要有三种类型。
1)采用RGB单帧二值化监控[7,8]:多数方法仅采用最终的全连通层来区分真假人脸。而Li等人[7]提出了一种将深度局部特征(来自CNN)与主成分分析(PCA)联系起来进行降维的方法,最后使用SVM来区分真假人脸。Patel et al.[8]应用了动作特性(如眨眼)来增强技术状态。研究人员发现,这仍然可以通过多次监督来改善。
2)采用RGB多帧深度监控或rPPG (remote photoplethysmography, rPPG)监控[5,15]:采用两种不同类型的监控:深度监控或rPPG监控。不同的帧也被摄像机和帧的移动捕捉,以预测深度。此外,研究人员分析了演示攻击和基于视频的脉冲检测。活人脸通过rPPG可以显示一些血液信号,而假人脸则不能。最近,Liu等人[16]提出了一种用单帧回归深度图,用多帧预测rPPG的方法,这是一种很好的识别人脸的方法。该网络结构结合了CNN和RNN,可以同时估计人脸深度图和rPPG信号。
3)最近,Zhang等人[9]提供了一个大型的多模态数据集,即CASIA-SURF,它由3个模态数据(RGB、depth和IR)组成。它通过三流网络融合多模态数据,为充分利用这些特性提供了有力的基础。
多模态方法有两个主要方面需要改进:(1)CASIASURF的基线性能仍有很大的改进空间;(2)采用轻量级网络架构,可惠及更多的边缘应用。在接下来的章节中,我们将提出一个极端的lite网络架构,该架构分别使用深度和IR信息作为监督来学习互补的模型,从而在性能和计算量之间取得一个很好的平衡。在此基础上,提出了一种基于集成+级联结构的融合分类器。
在这一节,我们将介绍FeatherNets的细节。受到人脸任务中全球平均池(gap)的同等重要性的启发,在FeatherNets中采用了一个新的流式模块,可以为face Anti-spoofing提供一个强大的基线。此外,为了获得更高的性能,将提出集成+级联融合方法。
现有的抗欺骗干扰网络[8,7,15,14]存在参数大、泛化能力弱的问题。基于这个原因,提出了FeatherNets 结构,目标是一个像羽毛一样轻的网络。
全球平均池化(GAP)被许多最先进的网络用于对象识别任务,如resnets[17]、DenseNet[18]和一些轻量级网络,如MobilenetV2[19]、Shufflenet v2[20]、IGCV3[21]。结果表明,间隙对整个结构[22]具有减小尺寸和防止过拟合的能力。然而,在人脸相关的任务中,Wu[23]和Deng[24]观察到,有间隙层的CNNs比没有间隙层的CNNs精度低。同时,MobileFaceNet[25]用全局深度卷积(GDConv)层代替了GAP,并通过接受域[26]理论解释了为什么它是有效的。差距的主要点是同等重要的,不适合面对的任务。
图1 我们的深度面特征是嵌入CNN结构。在最后的77个feature map中,中间部分(RF1)的接受域和边缘(RF2)部分是不同的,因为它们的重要性是不同的。DWConv被用来代替间隙层来更好地识别这种不同的重要性。同时,去掉了全连接层,使得网络更加便携。
如图1所示,最后的7 *7个feature map被表示为FMap-end, FMap-end中的每个cell对应一个位于不同位置的接受域。中心蓝色的单元格对应于RF1,边缘红色的单元格对应于RF2。如[27]所述,冲击在感受域的分布呈高斯分布,感受域中心比边缘对输出的影响更大。因此,RF1比RF2具有更大的有效感受域。对于我们的人脸反欺骗任务,网络输入是224*224图像,其中只包含人脸区域。如上所述,FMap-end的中心单元比边缘单元更重要。GAP不适用于本案。一种选择是使用全连通层代替GAP,这会给整个模型引入大量的参数,增加过拟合的风险。
图2 流媒体模块。最后的块输出由深度卷积进行降采样[28,29],其步幅大于1,并直接将其压扁为一维向量。
针对不同重要性的fmap端单元,设计流式模块,如图2所示。在流式模块中,采用步长大于1的深度卷积(DWConv)层进行降采样,将其输出直接平展成一维特征向量。计算过程由式(1)表示。
式(1)中,FV为平展特征向量,N = H 0 W 0 C元素(H 0、W 0和C分别表示DWConv层s输出特征映射的高度、宽度和通道)。n(y, x, m),计算如式(2),表示FV的第n个元素,对应DWConv层s输出特征映射的第m个通道中的(y, x)单元。
式(1)的右边,K为深度卷积核,F为大小为H W C的fmap端(H、W和C分别表示fmap端高度、宽度和通道)。m为通道指数。i,j表示核K的空间位置,INy(i), INx(j)表示f中相应的位置,计算公式为(3),(4)。
S0是垂直步幅,S1是水平步幅。将feature map压扁后,没有添加全连通层,因为这会增加更多的参数和过度拟合的风险。同时进行相关实验,验证去全连通层的原因,如表4所示。
流式模块可以代替传统网络中的全局平均池和全连接层。
图3 FeatherNets主要街区。FeatherNetA包括BlockA &BlockC。FeatherNetB包括BlockA &BlockB。(BN: BatchNorm;DWConv:深度卷积;c:输入通道数。)
除了流媒体模块外,还有如图3所示的BlockA/B/C来组成FeatherNetA/B。主要的FeatherNet架构的详细结构如表1所示。BlockA是在MobilenetV2[19]中提出的反向剩余块。BlockA用作我们的主要构建块,如图3(a)所示。对于我们架构中的块来说,扩展因子与MobilenetV2中的[19]相同。BlockB是FeatherNetB的下采样模块。平均池(AP)已经在Inception的[30]中被证明可以提高性能,因为它能够嵌入多尺度信息并在不同的接受域聚合特性。因此,块b中引入了平均池(22个stride = 2的内核)(图3(b))。此外,在网络ShuffleNet[20]中,降采样模块以stride=2的方式加入了3个平均池化层,以获得优异的性能。Li等人[31]提出增加平均池层工作良好,对计算成本影响较小。基于上述分析,在次要分支上添加池可以学习更多不同的特性并带来性能收益。使用辅助分支(图3(b)中的BlockB)与不使用分支(图3(c)中的BlockC)的性能比较如表4所示。BlockC是我们的网络FeatherNetA的降采样模块。与BlockB相比,BlockC速度更快,复杂度更低。根据我们在表2中的实验,FeatherNetA使用了较少的参数。
表1 网络结构:FeatherNet B.所有的空间卷积使用33个内核。对于输入的大小,总是使用扩展因子t,而c表示通道的数量。同时,每个stage se模块[32]插入reduce = 8。FeatherNetA用BlockC代替表格中的BlockB
在每个下采样阶段后,在FeatherNetA和FeatherNetB中插入SE-module[32], reduce = 8。此外,在设计模型时,我们在网络的一开始就采用了[33]快速下采样策略,使得特征图的大小迅速减小,且不需要太多的参数。采用该策略可以避免由于计算预算[34]有限而导致的慢采样导致的特征嵌入弱和处理时间长的问题。初级羽网只有0.35M参数。
FeatherNets结构建立在如上述BlockA/B/C,除了第一层是一个完全连接。如表1所示,输入图像的大小为224。一层有规则的卷积,而不是深度卷积,在开始使用,以保持更多的功能。重用信道压缩来减少16,同时使用反向残差和扩展比为6的线性瓶颈来最小化由于向下采样而造成的信息损失。最后,在不添加全连通层的情况下使用流式模块,直接将4-4-64 feature map平铺成一维向量,降低了全连通层引起的过拟合风险。将特征图展平后,直接利用焦损进行预测。相关烧蚀实验见表4。当我们添加全连接层时,性能下降。
融合方法的主要思想是对不同的模态(深度图像和红外图像)进行级联推理。基于深度数据训练的模型可以提供一个高基线(在测试集中大约0.003宏基)。实验结果表明,对于深度模态不确定的样本,红外数据可以提供良好的伪判断性能。级联结构分为两个阶段,如图4所示:
图4 多模态融合策略:两个阶段级联,阶段1是由多个深度模型组成的集成分类器。阶段2利用IR模型对阶段1的不确定样本进行分类。
第一阶段:使用由多个模型组成的集成分类器来生成预测。这些模型根据深度数据和来自不同网络(包括羽网)的几个检查点进行训练。如果这些模型得分的加权平均值接近0或1,则输入样本将分别被分为假样本和真样本。否则,不确定样本将经历第二阶段。
第二阶段:利用从IR数据中学习到的FeatherNetB对第一阶段的不确定样本进行分类。将红外模型的假判断作为最终结果。对于真实的判断,最终的分数由阶段1和IR模型决定。
首先介绍前期工作,如评估指标、用于培训的数据集、提出的数据扩充方法、FeatherNets的培训设置和基线模型。其次,将展示训练过的模型(包括FeatherNets)的表现。第三,通过对比实验验证了MMFD数据集的有效性。最后通过烧蚀实验验证了网络设计的有效性。
对于性能评估,将引入以下常用指标[2]:攻击表示分类错误率(APCER)、正常表示分类错误率(NPCER)和平均分类错误率(ACER)。以ACER作为评价指标,分别用APCER和NPCER来衡量假货和真货的错误率。此外,还使用了其他度量[9],如TPR@FPR=10E2, 10E-3, 10E-4。
实验中使用了两个数据集:CASIA-SURF[9]和提出的多模态人脸数据集(MMFD)。
图5 (a)训练集包含攻击4、5、6 (b)验证和测试集包含攻击1、2、3
CASIA-SURF是最大的用于面部反欺骗的公开数据集,由冲浪技术[9]提供。它由1000名受试者和21000个视频组成,每个样本有3种模式(即, RGB, Depth, IR),如图5所示。这个数据集有6种攻击方式:攻击1:一个人拿着他/她的平脸照片,眼睛区域从打印的脸上切下来。攻击2:一个人拿着他/她的曲面照片,眼睛区域是从打印的脸上切下来的。攻击3:一个人拿着他/她的平脸照片,照片中眼睛和鼻子的部分是从打印出来的脸上切下来的。攻击4:一个人拿着他/她的曲面照片,在那里眼睛和鼻子区域被从打印的脸切割。攻击5:一个人拿着他/她的平脸照片,在那里眼睛,鼻子和嘴区域被从打印的脸切割。攻击6:一个人拿着他/她的曲面照片,在那里眼睛,鼻子和嘴区域从打印的脸被切断。
MMFD,为了使模型更鲁棒,我们收集了更多不同面攻击方式。然后我们整理了15个受试者,15415个真实样本,28438个虚假样本的数据集,即多模态人脸数据集(MMFD)。
每个样本也有3种模式(RGB, Depth, IR)。它们的处理方式与CASIA-SURF相似,只是稍作了修改。除了CASIA-SURF的6种攻击方式外,还增加了2种新的攻击方式。攻击A:一个人拿着他/她的平脸照片,照片中眼睛和嘴的区域是从打印的脸上切下来的。攻击B:一个人拿着他/她的曲面照片,在那里眼睛和嘴区域从印刷的脸被切断。主持人把头向左/向右/向上/向下转,以得到不同的样本。主持人的其他变化包括:戴不戴眼镜;开口与否;移动的脸靠近或远离摄像机;表现出不同的情绪,如高兴、生气、伤心等。
收集和掩膜的步骤,以获得最终图像。收集:英特尔RealSense SR3002摄像机用于生成RGB、Depth、IR和aligned-RGB同时帧。RGB帧分辨率为1280×720,深度、红外和定深帧分辨率为640×480。掩膜:Dlib[35]用于检测RGB帧和定深帧的人脸边界框。和将面区域传递到PRNet[36]中进行估计深度。要生成掩模图像,请输入每个掩模的深度值像素在面板框中选中。如果大于0。5,就是1否则0将被发送到掩码图像中。最后,RGB、深度和红外图像与掩膜相乘,只有face区域被保存到文件中。
图6 深度图像增强。(第一行):CAISA-SURF真人深度图像;(第2行):MMFD真实深度图像;(第3行):我们对MMFD的增强方法。
即使使用相同的设备模型,不同设备获得的图像也有一些差异。如图6所示。上面的线是CASIA-SURF数据集的深度图像,脸部的深度差异很小。眼睛很难分辨脸部是否有轮廓深度。第二行是MMFD数据集的深度图像,其脸部轮廓清晰可见。为了减少设备造成的数据差异,在MMFD中对真实人脸图像的深度进行了缩放,如图6第三行所示。数据扩充的方式为算法1:
Pytorch[37]用于实现所提议的网络。它用正态权值分布[38]初始化所有的卷积和全连通层。对于优化求解器,采用随机梯度下降法(SGD),学习速率从0.001开始,每60个世代衰减0.1,动量设置为0.9。焦损失[39]采用α= 1和γ= 3。
通过对比实验验证了该方法的有效性和泛化能力。如表3所示,使用MMFD深度数据的FeatherNetB的ACER要比使用CASIA-SURF[9]的ACER要好,但是仅仅收集了15个受试者。同时,实验表明,利用这两种数据对网络进行训练是最佳选择。使用我们的FeatherNetB的结果比使用多模态数据融合的基线要好得多,这表明我们的网络比第三流ResNet18的基线有更好的适应性。
表3 通过不同的数据集对FeatherNetB进行训练。第3列表示CASIA-SURF[9]验证数据集中的ACER值。这表明我们的数据集MMFD泛化能力比CASIA-SURF的基线更强。结果表明,该方法优于多模态融合的基线方法。
实验结果如表2所示,与其他网络的性能进行了比较。所有的实验结果都是基于CASIA-SURF深度和MMFD深度图像,然后是性能验证CASIA-SURF验证集。它从表2,我们可以看到参数尺寸要小得多,只有0.35,而验证集上的性能是最好的。
表2 验证数据集的性能。基线是一种通过三流网络融合三种模式数据(IR、RGB、深度)的方法。在其他网络中,只有深度数据用于训练。FeatherNetA和FeatherNetB用更少的参数实现了更高的性能。最后,模型的组装将宏碁降低到0.0。
通过不同的层组合,对不同的模型进行了多次消融分析,如表4所示。利用CASIA-SURF训练集和MMFD数据集对模型进行训练。
Why AP-down in BlockB:通过比较Model1和Model2,将平均池化分支添加到二级分支(称为apdown),如图3(B)中的B块所示,可以在少量参数的情况下有效地提高性能。
Why not use FC layer:与Model1和Model3相比,全连接(FC)层在向网络的最后一层添加全连接层时并没有减少错误。同时,FC层在计算上非常昂贵。
Why not use GAP layer:通过比较Model3和Model4可知,在网络末端添加全局平均池层不适合人脸抗欺骗任务。它们会降低性能。详情请参阅第3节。
基于CASIA-SURF[9],组织了Face Anti-spoofing challenge@CVPR2019,旨在汇集计算智能社区在创建快速准确的人脸欺骗检测算法方面的最新努力和研究进展3。该数据集提供了一个多模式数据集(RGB, Depth, IR),它是由Intel RealSense SR300捕获的。它包含了训练、验证和最终评估的数据。
我们的融合程序(在第3.2节中描述)将在本次比赛中使用。与此同时,建议的FeatherNets深度数据只能提供更高的基线(约0.003宏基)。在融合过程中,所选择的模型具有不同的统计特征,可以相互帮助。例如,利用低假阴性(FN)的s型特征进一步消除假样本。具体步骤如下:
训练:深度数据用于训练7个模型:FishNet150_1, FishNet150_2, MobilenetV2, FeatherNetA, FeatherNetB, FeatherNetBForIR, ResNet_GC。同时,FishNet150_1和FishNet150_2是不同epoch的FishNet模型。红外数据被用来训练FeatherNetB成为FeatherNetBForIR。
推理:推理分数将通过集合+级联过程。算法如图2所示。
比赛结果:通过以上步骤得到了测试集中0.0013 (ACER)、0.999 (TPR@FPR=10e-2)、0.998 (TPR@FPR=10e-3)和0.9814 (TPR@FPR=10e-4)的结果,并在抗欺骗挑战@ cvpr2019中表现出了优异的性能。
我们提出了一个极端的精简网络架构(FeatherNet A/B)流模块,以实现性能和计算复杂度之间平衡良好的多模型脸欺骗。在此基础上,提出了一种基于“集成+级联”结构的融合分类器。与此同时,收集MMFD数据集以提供更多样化的样本和更多的攻击来获得更好的泛化能力。所有这些是用来加入脸反欺骗攻击检测挑战@ cvpr2019。实验和比赛结果表明,该方法具有良好的性能。
论文链接:https://arxiv.org/pdf/1904.09290.pdf
代码链接:https://github.com/SoftwareGift/FeatherNets_Face-Anti-spoofing-Attack-Detection-Challenge-CVPR2019