APP下载

结合对比学习与空间上下文的人脸活体检测

2021-02-14郝瑾琳陈雪云

关键词:活体人脸样本

郝瑾琳,陈雪云

(广西大学 电气工程学院, 广西 南宁 530004)

0 引言

人脸识别技术已获得了广泛的应用,包括许多需要高识别精确率的保密行业和领域[1],如金融支付、访问授权等。然而,现有的大多数人脸识别系统很容易被欺骗。提升系统的防欺骗能力,即人脸活体检测(face anti-spoofing,FAS)可以有效增加人脸识别的准确率。人们使用呈现攻击(presentation attacks,PAs)[1-2]对识别系统进行欺骗测试,模式主要包括打印攻击(在纸上打印人脸)、重放攻击(在数字设备上重放人脸)、3D掩码攻击(携带3D掩码)。

为了能够准确判别活体图像与欺骗图像,研究者们充分挖掘图像中所包含的信息。SURF、LBP等手工特征在活体检测的任务中被广泛应用[3-4]。随着深度学习的发展,越来越多的研究者提出了基于深度神经网络的算法[5-8]。基于深度学习的算法正在成为活体检测算法的主流,并且正朝着基于特征的方法和基于模型的方法发展,两者研究的重点不同。

基于特征的方法[4-6,8-9]通常利用丰富的图像特征,以及深度、时序等额外的特征提升活体检测准确度,主要关注如何融合多项特征。许多这类研究对真假人脸的区别性特征关注不够,未注意到给定图像中仍有很多能够起关键作用的高级语义特征未被提取,压缩了算法人脸防欺骗提升的空间。基于模型的方法则从模型结构出发,设计精细的结构来优化模型的判别能力,如基于元学习(meta-learning)[10]、零样本学习[11]、小样本学习[5]、域适应[8]等。现有的第二类方法通常对图像中的各类信息建模实现人脸活体检测,这会增加学习成本,甚至出现过度关注图像细节信息导致模型泛化能力下降的问题。

为了解决这些问题,本文希望从高级语义信息的特征表示优化模型的特征提取能力。对比学习是一种受数据本身监督的学习策略,它利用高级语义特征来增强特征表示的识别性。通常,对比学习接受正面和负面的样本。使用对比学习可以扩大正样本之间的相似度,同时最小化正样本与负样本。由于不过度关注图像细节,对比学习能够使模型有效地关注抽象高级语义信息。此外,本文还设计了2种正负样本定义方式,以充分利用已有的数据,学习优化图像特征表达。

空间上下文在活体检测中也起着重要作用。采用注意力机制来学习空间上下文,注意如何分配输入要素的权重,该权重基于键值字典的查询来确定输入中的重要成分。

本文提出了结合空间上下文特征与对比学习的人脸活体检测算法(spatial context aware contrastive learning for face anti-spoofing, SAC)。SAC分为两个阶段:① 基于对比学习的特征表示阶段:使用对比学习增强特征可分辨性,在此阶段,设计两种策略来定义正样本和负样本,提升了特征的可分辨性和泛化能力;② 基于空间上下文的判别模型阶段:采用自我注意机制考虑空间上下文信息,将输入作为键,值和查询接受,从输入中学习关键特征。自我注意机制可能会损害两个阶段之间的特征表示一致性。对此,使用跳跃连接保持两个阶段的特征表示一致性,加快训练进程。

本文贡献总结如下:①利用语义特征来增强特征可辨性和泛化性,采用基于对比学习的方式提取图像特征;②设计了2种策略来定义正样本和负样本以及相应的损失函数,充分考虑数据的高级语义特征。③使用注意力机制探索空间上下文信息,以获得更好模型泛化能力。

为了验证SAC网络的有效性,在3个公共数据集Spoof in the Wild (SiW)[7]、CASIA Face Anti-Spoofing Dataset (CASIA FASD)[12]和Replay Attack[13]上进行实验。实验结果表明,SAC在SiW的3种官方测试方案下均具有出色的性能,均达到了与先进研究算法可比较的成绩。使用CASIA FASD和Replay Attack进行的交叉数据集测试中,SAC分别将结果提高了4%,11%,证明了SAC可以改善特征表示的可分辨性,有效区分活体人脸和攻击人脸。

1 相关工作

1.1 人脸活体检测研究进展

许多研究者提出了优秀的算法实现人脸活体检测,它们可以被分为基于手工提取特征的方法[3-9]和基于深度学习的方法[8,11-12,14-20]两类。第一类基于手工提取特征的方法主要使用不同的特征来提升算法辨别真假人脸的能力,例如LBP[21]以支持向量机为分类器、DoG-SL[3]使用自适应直方图作为特征的描述结构。第二类基于深度的人脸活体检测方法,在以卷积神经网络为代表的深度学习的发展下不断取得了突破。YANG等[4]将CNN作为分类器,不同空间尺度的实时和欺骗人脸图像共同训练。SIDDIQUI等[6]提出了一种半监督的对抗性学习框架,放宽了监督条件。

越来越多的研究者发现只使用单个特征难以实现优质的人脸活体检测。以深度特征为例,多个实验证明,使用多点投射建立的人脸3D模型在面对3D掩码攻击时可靠性急剧下降。为此,许多研究者提出结合使用深度信息、时序信息等额外特征来提升活体检测算法的性能。LIU等[7]提出了基于CNN-RNN模型的人脸像素监督估计方法,利用空间(深度信息)和时间(rPPG特征)两种辅助监督区分不同类别的面部线索。YU等[22]将人脸反欺骗问题表述为一个材料识别问题,整合传统的双边过滤算子到最新的人脸活体检测深度学习框架中,使用双侧卷积网络、多层次特征求精模块和多头监督学习,共同提高网络提取纹理特征的能力。ZHANG等[12]将图像中的活体特征和内容特征分离出来,并进一步利用活体特征进行分类。

此外,通过改变模型的结构、学习方式提升特征泛化表示也是研究者所感兴趣的。QIN等[5]提出了基于零样本和小样本学习的人脸活体检测的学习元模型(adaptive inner-update meta face anti-spoofing, AIM-FAS),利用自适应内部更新策略训练元学习者进行零镜头和少镜头人脸活体检测任务,提升检测开放集(open set)活体检测的准确度。

1.2 对比学习

近年来,对比学习取得了极大发展。对比学习是一种自监督的学习方式,以优化编码器鲁棒的生成可判别的特征为目标,利用数据中的正负样本,通过优化使正样本之间的特征相似度不断增大,正负样本之间的特征相似度尽可能地减小。

许多出色的研究推动了对比学习的发展。SimCLR[23]挖掘数据扩充在预测任务中的作用,同时引入了可学习的非线性变换。HENAFF等[24]提出了针对音频、文本的对比学习范式,在时序上设置一个窗口,窗口内的样本看作正样本,窗口外的样本则看作负样本,并设置了自递归模型来将时序关系融入到特征表示中。HE等[25]针对样本数量的限制对特征表示的影响,设计了基于队列的字典以存储特征,使得样本数量与批次大小解耦,特征的表示学习更加鲁棒。对比学习对特征表示能力的有效提升,许多基于对比学习的方法在不同的应用领域取得了优秀的成绩。

2 结合对比学习与空间上下文的人脸活体检测(SAC)

2.1 SAC网络结构

本文提出了结合对比学习与空间上下文的人脸活体检测(SAC),在不借助深度、时间等额外特征的情况下,通过对比学习不断优化相似图像之间的特征一致性,使提取的特征有更强的可判别性。SAC分为两个阶段:第一阶段为基于对比学习的特征表示,第二阶段为基于空间上下文的判别网络。SAC系统结构如图1所示。

图1 SAC系统结构Fig.1 Overall architecture of our proposed SAC

从图1中可以看出,SAC包含目标编码器Et、参考编码器Er和判别网络部分,其中Et和Er采用相同的结构,判别网络采用注意力(attention)结构,实心圆为输入图像的特征表示。

在训练过程中,首先训练基于对比学习的特征表示阶段,仅设置并初始化Et和Er。本阶段以图像x为输入,首先按照不同的采样策略生成正负样本,分别采用Et和Er提取源输入x和变换后样本x+和x-的特征,并以不同样本间的特征相似度计算损失函数来优化模型参数。此阶段通过学习度量特征之间的相似度,增强人脸特征表示的可判别性和泛化能力。

之后,训练基于空间上下文的判别阶段。设置Et并读取上一阶段预训练的模型参数,在本阶段固定Et参数且不参与梯度更新过程,设置并初始化判别网络。在本阶段,首先通过Et提取输入图像x的特征,然后通过判别网络得到判别概率,此过程以交叉熵为损失函数优化参数。第二阶段学习得到输入特征中最有价值的特征,进一步增强特征的可判别性以更有效地分辨真实和攻击人脸。

2.2 基于对比学习的特征表示阶段

高级语义特征对于活体检测至关重要。对比学习关注于辨别正样本和负样本,可以在不考虑面部细节的情况下,关注更多高级语义特征。

本文设计了2种正负样本的定义方式进行对比学习。对给定人脸x,首先介绍2种定义样本的策略:第1种策略,将x不同变换形式定义为正样本x+,它们语义与x相同。负样本x-定义为随机选择的攻击人脸,其语义与x不同。第1种策略下的正负样本如图2所示。第2种策略,提供x的真实标签y,并将该标签对(x,y)定义为正样本对。为人脸x提供了一个不匹配的标签y-,组成负样本对该标签对(x,y-)。这些策略可以忽略图像细节,对充分考虑高级语义信息至关重要,学习得到的特征更具泛化能力。

图2 第1种策略下的正负样本Fig.2 Positive and negative samples on the first strategy

式中,τ为温度超参数;K为样本数量;Ls的第一项约束正样本特征和负样本特征尽可能分离,模型将优化参数使其最大化;Ls的第二项使正样本之间的特征表示尽可能接近,在训练过程中本文的模型使其最小化。

与第1种策略相比,第2种策略在对比学习中添加了语义监督。对于任意样本对,Et和Er将分别给出估计的条件概率pt(y|x,β)和pr(y|x,θ),其中β和θ分别表示模型Et和Er的参数。希望对正样本(x,y)而言,pt(y|x,β)和pr(y|x,θ)尽可能大,约束正样本之间的距离变小。而对于任何负样本(x,y-)而言则相反。此外,希望pr(y|x,θ)尽可能接近pt(y|x,β)。定义差异函数为

式中,λ为平衡系数。此时,优化目标函数可表示为

Lc=D(x,y)-D(x,y-)。

(3)

基于对比学习的特征表示阶段的目标函数则可最终表示为

Lrl=Ls+Lc。

(4)

为了增加编码器的特征学习能力,受到文献[25]的启发,构建了基于队列的字典存储基本特征单元,更好地对基础、连续的高维视觉空间采样。利用基于队列的动态字典来存储样本,每编码一个批次样本后将编码存储入队列,同时将最早存入队列的编码推出队列。由于第2种采样策略中,样本自身存在监督信息,所以本文仅对第1种采样策略下的正负样本编码以队列形式存储。正负样本分别存储于不同的队列,并根据参考编码器Er的输入样本的类别,与对应的队列计算特征相似度。例如,输入Er的图像为正样本,则提取样本特征后,将源图与正样本特征队列对比,计算特征相似度。这一设计实现字典大小与批大小的解耦,极大增加对比样本数量K,保证字典存储更多编码特征。

由于使用队列表示大型字典,增加了模型Er中的参数在反向传播过程中的更新难度,因此采用动量更新方法借助Et的参数来优化Er,忽略训练过程中Er的梯度,如公式(5)所示:

θ←mθ+(1-m)β,

(5)

式中,m∈[0,1),θ和β分别表示两个编码器中的参数。为了进一步提升动量更新对模型的优化效率,训练过程中逐步动态增加m,进而逐步增加编码器Er的更新速度。

2.3 基于空间上下文的判别阶段

在基于空间上下文的判别阶段,网络学习关注输入中对判别真假图像有效度高的特征,本文采用注意力机制来实现空间上下文的学习。注意力机制通常包括查询Q与键值对(K-V)3个输入,通过度量查询与键之间的相似度学习查询与值之间的关系,输出新的特征。如公式(6)所示:

attention(Q,K,V)=softmax(QKT)V。

(6)

将上一阶段学习得到的特征作为输入,分别输入到3个不同的全连接层以得到查询、键和值,如图1所示。此外,增加跳跃连接,将注意力模块的输出特征与输入特征相加,增加特征间连续性,如公式(7)所示:

Fout=Fin+attention(Q,K,V),

(7)

式中,Fin和Fout分别为注意力模块的输入、输出特征,Q、K、V由公式(8)至公式(10)得

Q=WqFin+bq,

(8)

K=WkFin+bk,

(9)

V=WvFin+bv,

(10)

式中,Wq、Wk、Wv分别为全连接层中可学习的矩阵;bq、bk、bv分别为对应偏差。最后用一层全连接层作为判别函数,区分输入人脸是活体人脸还是欺骗人脸,如公式(11)所示。

p=WFout+b,

(11)

式中,W为全连接层可学习的矩阵;b为对应的偏差;p为最终输出的判别概率。基于空间上下文的判别阶段以交叉熵损失函数作为模型优化目标函数,如公式(12)所示:

2.4 算法流程

SAC算法流程如下所示,为了表述方便,算法中仅以第1种策略中正样本的采样为例进行了说明,其他采样方式下的训练流程相似。其中,step 2为基于对比学习训练语义特征的提取阶段,step 3为活体检测判别网络训练阶段。

Step 1:设置超参数λ=0.1,m=0.001,最小批次m=128,初始学习率η=0.000 01,最大训练次数tmax=20 000。给定活体检测人脸图片数据集S,输入图像x,目标类别y,目标编码器Et及参数β,参考编码器Er及参数θ,分类模块CLS及参数φ。

Step 2:基于对比学习的特征表示阶段。

① 从数据集中随机选出m个样本x,对样本进行旋转、裁剪等随机变换以得到正样本x+。

③ 更新Et的参数β来最小化Lrl:

minimize{Lrl=(Ls+Lc)},

β←β-ηLcl(β)。

④ 更新Er的参数θ:

θ←mθ+(1-m)β。

⑤t=t+1,当t≤tmax时,转到①。

Step 3:基于空间上下文的判别阶段。

① 固定step 2预训练的目标编码器Et的参数β。

② 从数据集中随机选出m个样本x及对应的类别标签y。

③ 采用Et提取图像特征,fin=Et(x,β)。

④ 将fin输入到基于空间上下文的判别网络CLS中,得到判别概率p=CLS(fin)。

⑤ 更新CLS的参数φ来最小化Lce:

φ←φ-ηLce(φ)。

⑥t=t+1,当t≤tmax时,转到①。

3 实验结果与分析

3.1 数据库

为了证明SAC的有效性,在被国内外广泛应用的公共数据集Spoof in the Wild (SiW) 、CASIA Face Anti-Spoofing Dataset (CASIA FASD)和Replay Attack上进行实验。

SiW由密歇根州立大学计算机视觉实验室于2018年公开。它包含165个人的活体和欺骗视频。每个人有8个活体视频,最多20个欺骗视频。视频总数为4 478个,所有视频均为30 fps,长度约为15 s,均具有1080P HD分辨率。活体视频是在各种距离,姿势,照明和表情下收集的,欺骗视频则是以印刷纸和视频重放形式收集的。

SiW上有3种协议可以评估反欺骗方法的泛化能力。协议1只能使用训练视频的前60帧来训练模型,并在所有测试视频上进行测试。协议2采用留控制变量法策略,在3种重放媒体上训练模型并在第4种重放媒体上进行测试。报告第3个协议的4个评分的平均值和标准偏差。协议3旨在评估未知表示攻击(PAs)的性能,并执行从打印攻击到重放攻击的交叉表示攻击测试,反之亦然。

CASIA FASD包含50个不同主题的600个视频片段。这些视频被分为150个活体访问视频和450个欺骗攻击视频。欺骗人脸由真实人脸的高质量记录制成,扭曲照片攻击、剪切照片攻击和视频攻击是数据集中的3种欺骗攻击。

Replay Attack数据集是IDIAP在2012年提供的,包含50个人共1 300个视频片段。视频片段分为300个活体访问视频和1 000个欺骗攻击视频。该数据集考虑欺骗攻击中使用的不同照明条件。

3.2 评价指标

使用指标攻击呈现分类错误率(attack presentation classification error rate, APCER)、真实呈现分类错误率(bona fide presentation classification error rate, BPCER)和平均分类错误率(average classification error rate, ACER)将SAC与先前的模型进行比较。APCER,BPCER和ACER的大小分别由字母A、B、C表示,计算公式分别为公式(13)至公式(15):

式中,N是欺骗人脸的数量。如果将第i个提示归类为欺骗人脸,则Resi为1;如果将其分类为活体人脸,则Resi为0。NBF是活体人脸的总数。A偏向于衡量模型将活体人脸判别为欺骗人脸的比率,B偏向于衡量模型将欺骗人脸判别为活体人脸的比率,C则综合考虑两种情况并给出综合性的性能评价。

等错误率(equal error rate, EER)和半错误率(half total error rate, HTER)被用作CASIA FASD和Replay-Attack数据集评价指标。EER是错误接受率(false acceptance rate, FAR)和错误拒绝率(false rejection rate, FRR)相等时的值。HTER是错误拒绝率和错误接受率之和的一半。APCER、BPCER、ACER、EER和HTER均为值越低,模型性能越好。

3.3 实验结果与分析

3.3.1 实现细节

SAC仅考虑帧内信息,在数据处理过程中,SAC以1为帧间隔将所有视频提取为帧序列,应用MTCNN算法[26]检测人脸在帧图像中的位置,并裁减得到仅包含人脸区域的图像。训练及测试过程中,以图像为单位输入到模型中得到最终判别结果。

本文以Pytorch作为深度学习框架实现,以DenseNet121[27]作为基准模型。设置批大小为128,ADAM方法[28]为优化器,学习率为0.000,01。在基于对比学习的特征表示阶段中,设置特征的维度为512,训练过程中m从0.001逐步增大到0.01。对SiW、CASIA FASD和Replay Attack均采用官方给出的训练/测试集进行训练和测试。

3.3.2 SiW数据库上的实验结果及分析

SAC在SiW数据库上的实验结果见表1。表1可以看出,在仅考虑帧内信息的情况下SAC在3种协议测试中表现较为均衡,APCER和BPCER均取得较低的值,说明SAC有较高的鲁棒性。

表1 SAC在SiW数据集上的实验结果Tab.1 Experimental results on SiW %

在表1中,协议1的测试实验中,模型仅训练了每个视频的前60帧图像就取得了较为领先的结果,而这60帧中大多数人脸为没有姿态、光线、距离变化等影响的正面图像。说明在活体检测的任务中,排除人脸姿态、光线、距离等因素的干扰对提高活体检测的准确度具有重要意义。

协议2的测试实验中,3种不同的指标均取得了较低的均值与标准偏差,说明SAC对不同媒体设备的重放欺骗攻击的鲁棒性较高。协议3测试衡量了模型在打印攻击与重放攻击之间迁移的能力。SAC在BPCER取得了与ACPER相比较高的值,看上去更容易将欺骗人脸判别为活体人脸。因为打印攻击与重放攻击图像的表现质量存在较大的差异,模型在两种图像特征之间迁移存在较大的难度。

表2展示了SAC与Auxiliary[7]、SD-Net[29]、STASN[30]、SAPLC[31]、3DPC-Net[32]、FAS-SGTD[33]在SiW数据集上的比较结果对比,可以看出SAC在3种测试协议中均取得了接近先进方法的结果。在测试协议3中,由于充分考虑了语义信息,SAC泛化能力更强。将不同的媒体设备、类型数据作为测试集的情况下,SAC仍能保持领先分数。

表2 SAC在SiW数据集上的实验结果对比Tab.2 Comparison results on SiW dataset %

3.3.3 SAC在CASIA FASD和Replay Attack数据库上的实验结果及分析

SAC在CASIA FASD和Replay Attack数据集上的结果对比分别见表3和表4。将SAC与最新方法CNN[4]、LiveNet[34]、DPCNN[35]、LBP-TOP[9]、LBP[21]和基于区块和深度的CNN[36]进行比较。从2个表中可以看出,SAC在EER和HTER指标下均超过了已有的先进算法。受益于对比学习,SAC极大改善了模型性能。

表3 SAC在CASIA FASD数据集的结果对比Tab.3 Comparison results on CASIA FASD %

表4 SAC在Replay Attack数据集的结果对比Tab.4 Comparison results on Replay Attack %

3.3.4 跨数据集测试结果及分析

为了验证SAC的泛化能力,对CASIA FASD和Replay Attack数据集进行了跨数据集测试。 将模型与最新方法进行了比较,例如CNN[4]、Motion[37]、LBP-TOP[9]、Auxiliary[7]、LBP[21]、SAPLC[31]和3DPC-Net[32],对比结果见表5。跨数据集测试时,首先在CASIA FASD上进行训练并在Replay Attack数据集上进行测试;之后在Replay Attack进行训练并在CASIA FASD数据集上进行测试,最终报告2种测试策略下的HTER分数。实验结果表明,SAC超过已有的算法达到了先进的性能,证明其具有良好的泛化能力。

表5 SAC在Replay Attack和CASIA FASD跨数据集上的实验结果对比Tab.5 Cross-dataset testing results on CAISA FASD and Replay Attack %

3.3.5 消融实验结果及分析

为了证明SAC的有效性,对其进行了消融实验,实验结果见表6。其中,Base为本文算法的基准模型,以DenseNet121[27]特征提取网络并以全连接层作为分类器;+CL为以Base作为视觉特征提取模型的对比学习模型,+CL+ATT为在+CL模型的基础上增加注意力机制的模型,即本文提出的最终模型。从表6中可以看出,SAC可以有效提高特征表示能力,提高模型的判别准确率。注意力机制可以有效地增强模型对图像特征的感知能力,使SAC能够学习得到更具判别性的图像特征,提高活体检测的准确率。

此外,为了进一步证明SAC的有效性,本文研究了不同的基准模型和特征纬度对算法性能的影响。在基于对比学习的特征表示中,特征的纬度对特征表示的准确性、鲁棒性影响显著。极小的特征纬度易于优化学习,但是这导致特征所能表示的信息容量大幅降低。而较大的特征纬度则可以表示更多的信息,但是这带来庞大的计算量使得模型难以优化学习。因此,本文分析了特征纬度对模型性能的影响。

表6 SAC在SiW数据集消融实验结果Tab.6 Ablation study results on SiW %

本文在{128,256,512,1024}中选取不同的特征维度值,并在Replay Attack数据集上进行了实验,实验结果记录见表7。从表7可以看出,将特征维度设置为512时,SAC模型获得了最低的EER和HTER得分。表7中的结果证明了较小的特征维度存储语义信息的能力较低,而较大的值(如:1 024)则可能会限制模型的学习能力,导致模型性能指标下降。

表7 SAC在Replay Attack数据集不同特征纬度下的结果Tab.7 Results on different feature dimensions on Replay Attack %

为了消除主干模型对SAC的影响,使用不同的主干模型来评估SAC,例如VGG16[38]、ResNet50[39]、ResNet101[39]和DenseNet121[27]。实验结果在表8中报告,可以看出,以DenseNet121为主干的模型得分最低。这些模型之间的区别在于模型的深度、特征层级以及是否包含跳跃连接。

表8 SAC在Replay Attack数据集不同主干网络下的结果Tab.8 Results on different backbone networks on Replay Attack %

DenseNet121可以提取更深层网络的高级特征,并利用跳跃连接优化,这也证明了高级语义特征和跳跃连接的有效性。SAC在不同主干网络作为特征提取网络的情况下,均能取得优异的成绩,证明了SAC模型是有效的。

4 总结

本文提出了基于对比学习和空间上下文信息的人脸活体检测算法(SAC)。为了充分利用图像中的语义特征,提出基于对比学习优化图像的特征表示,增强了人脸特征的可判别性;结合注意力机制提取更多的空间上下文,使得更具区分度的特征被关注和提取,增强模型的感知能力,有效提升了网络人脸活体检测能力。在SiW、CASIA-FASD和Replay Attack数据集上验证模型的有效性,实验证明,本文提出的模型对于优化图像特征、提升活体检测判别性能具有重要意义。模型在不同的数据集的测试结果都取得了优秀的成绩,证明了SAC算法的有效性。

猜你喜欢

活体人脸样本
有特点的人脸
活体盲盒
玻璃窗上的人脸
让活体肝移植研究走上世界前沿
规划·样本
始祖鸟是鸟类的祖先吗
人大专题询问之“方城样本”
随机微分方程的样本Lyapunov二次型估计
“领家系”可爱脸VS“高冷系”美人脸
长得象人脸的十种动物