基于有监督注意力网络的伪造人脸视频检测

2023-02-21 12:54盛文俊
计算机工程与设计 2023年2期
关键词:分支人脸注意力

盛文俊,曹 林,张 帆+

(1.北京信息科技大学 光电测试技术及仪器教育部重点实验室,北京 100101; 2.北京信息科技大学 仪器科学与光电工程学院,北京 100101; 3.北京信息科技大学 信息与通信工程学院,北京 100101)

0 引 言

在科学技术飞速发展的现代社会,通过人脸进行身份验证的应用日益广泛,因此人脸检测[1]、人脸识别[2]等技术日新月异。但是,人脸的隐私性较差,很容易被伪造,特别是近年来随着深度学习[3]的发展,基于深度学习的方法可以生成各式各样逼真的人脸。这些方法虽然存在一定的娱乐性质,但也为恶意攻击他人提供了新的手段。

深度学习[3]的发展,特别是卷积神经网络[4](convolutional neural networks,CNN)以及生成对抗网络[5](gene-rative adversarial nets,GAN)的发展,为人们带来了各种各样的伪造手段和防伪技术,二者相互博弈,共同进步。

1 人脸伪造方法及防伪方法综述

1.1 人脸伪造方法

现如今对人脸的伪造主要分为4种类型:人脸合成、换脸、人脸属性操纵以及人脸表情操纵。人脸合成主要是通过生成对抗网络(如CycleGAN[6]、StarGAN[7])生成不存在的但极其逼真的人脸。换脸即将一个人的脸替换为另一个人的脸,通常采用基于计算机图形学的FaceSwap技术以及基于深度学习的Deepfake技术完成。人脸属性操纵就是改变人的肤色、发型、年龄等,如今FaceApp的流行已经可以让人们轻松地做到这一点。人脸表情操纵即修改人脸表情,如将表情“哭”变成表情“笑”等,实现这种伪造最流行的技术之一是Face2Face,该技术可通过表情的跟踪和转移、面部的渲染以及背景的合成的步骤完成,可实时进行。如图1所示的4张人脸,只有第一张是真实的光学图片,其余的图片都是通过各种手段伪造而成的。通常,人类的肉眼无法分辨哪些是真实的,哪些是伪造的。

图1 伪造人脸图片

1.2 人脸防伪方法

深度学习技术的发展在为伪造人脸提供各种先进手段的同时,各种防伪方法也应运而生。Rossler等[8]提出基于XceptionNet[9]的检测方法,该方法基于XceptionNet[9]提取特征,之后将特征送入分类器中,对伪造人脸进行检测。Dang等[10]分别在XceptionNet[9]和VGG16[11]的基础上引入注意力机制,文中方案使用基于回归的方法估计注意力图,然后将其与输入的卷积特征图相乘,对特征图进行了优化。Guera等[12]考虑到现有的防伪方法中未考虑视频连贯性,提出使用递归神经网络(recurrent neural network,RNN)中的长短期记忆网络(long short term memory,LSTM)来比较视频中的帧间差异。该方案将经过CNN提取的特征图输入到LSTM中,使得人脸防伪具有了连贯性,跳出了基于图像检测的常用思维。Guo等[13]认为在防伪领域中,CNN不应该学习图像表示的内容,而更应该学习图像中细微的篡改痕迹。因此,文献[13]改进了约束卷积层[14],提出了一种自适应残差提取网络,该网络可以用作图像的预处理,达到抑制图像内容的目的。

相比于传统的CNN,胶囊网络可以减少由于人脸的方向、角度等姿态信息变化引起的误差。因此,Nguyen等[15]采用胶囊网络(capsule network,CN)进行真伪鉴别。但是对比于现今的基于CNN的检测方法,胶囊网络的特征提取模块层数过浅,提取得到的特征细节信息不够充分,这限制了其准确率。

1.3 人脸防伪算法优化

针对胶囊网络现存的问题,本文提出基于有监督注意力网络的伪造人脸视频检测方法。提出的模型在原始胶囊网络的基础上,通过引入有监督的注意力分支来预测注意力图,随后将其送入胶囊网络的特征提取模块,对原始胶囊网络细节特征提取不充分的问题进行了优化。此外,通过引入焦点损失[16](focal loss)使模型更专注于难检测的困难样本。本文在FaceForensics++[8]数据集上对提出的模型进行了评估,实验结果表明提出的模型优于原始的胶囊网络。

综上所述,本文的主要贡献包括:

(1)在胶囊网络工作的基础上,引入了有监督的注意力分支,优化了胶囊网络的特征提取模块。

(2)使用焦点损失而非交叉熵损失,提高模型对难检测的困难样本的检测能力。

2 基于有监督注意力的伪造人脸视频检测

2.1 模型框架

传统的CNN采用标量来表示神经元及权重,之后估算各种特征出现的概率。本文使用胶囊网络[15],以向量模的形式来预测特征出现的概率,这有效地降低了在预测过程中由于人脸的方向、角度等姿态信息变化引起的误差。因此,本文基于胶囊网络[15]检测伪造人脸视频,如图2网络结构的下半部分。输入的图像经过特征提取模块得到特征图,之后将其输入到胶囊网络中,胶囊网络分为3个主要胶囊和两个输出胶囊,主要胶囊对输入的特征进行编码,关联了低级特征和高级特征的关系,经过动态路由算法[15]输出到两个输出胶囊,该过程是主要胶囊向输出胶囊传递的过程。不同于CNN,动态路由算法使用向量积的形式代表特征的耦合程度。在参数更新迭代过程中,当向量积为负值时,耦合程度应当减小,反之则增大。随着迭代次数的增多,耦合程度越来越高,达到一定次数后,对向量进行加权求和及非线性激活,输出到输出胶囊。胶囊网络的具体结构以及动态路由算法请参见文献[15]。最后,胶囊网络的输出同图像的标签进行比较,得到该部分的损失——Lp(x)。

图2 网络结构

然而,原始基于胶囊网络的方法[15]仅使用VGG19[11]的前三层作为特征提取模块,这在一定程度上影响了最终的检测准确率。为了优化原始胶囊网络中的特征提取模块,本文引入了图2的上半部分——有监督的注意力分支。具体而言,首先将人脸输入到有监督的注意力网络中提取特征,该过程会同步输出一张注意力图,而后将特征输入至分类器中,分为两类,即是真实的还是伪造的,分类的结果同该人脸正确的标签进行比较,得到该注意力分支的损失——La(x)。 整个训练过程中,随着各种参数的不断优化,输出的注意力图也越来越符合人眼的视觉机制,对特征提取模块的优化效果也越来越好。

此外,本文采用焦点损失监督模型的训练。这是由于该损失可以使模型在训练过程中更专注于难检测的困难样本,进而提高检测准确率。

2.2 有监督的注意力网络

Nguyen等[15]提出的胶囊网络虽然在一定程度上弥补了传统CNN的不足,但是由于它的特征提取模块过浅,在提取特征的细节不够充分的情况下便输入到胶囊网络中,这在一定程度上限制了其检测的准确率。

近年来,注意力模型迅速发展,已经成为了深度学习领域中一个重要的概念。注意力机制符合人类的视觉机制,并且可以对图像或者视频进行直观的视觉解释。传统的注意力结构[17]比较简单,可以通过在原始网络中直接引入1×1的卷积层,经过激活函数后与特征相乘完成。但这种方法对图像细节的感知较差。因此,本文采用有监督的注意力分支,即引出单独的一支网络来估计注意力图。相比于传统的注意力网络,本文提出的注意力网络带有监督信息,并且目的只有一个:估计更加符合人类视觉机制的注意力图,该注意力图会随着训练不断地优化。将获得的注意力图引入到主干的特征提取模块,在保留胶囊网络主干结构的同时,达到优化特征的目的。

获得注意力图的过程如图3所示,本文采用经过Imagenet[18]预训练的XceptionNet[9]作为注意力网络,对图像进行归一化后,在中间流的第一个可分离卷积层(separable convolution,SeparableConv)后进行注意力图的估计。具体而言,在经过中间流的第一个SeparableConv得到的特征图的基础上,使用1×1的卷积层对其进行维度变化,经过批标准化(batch normalization,BN),Sigmoid激活函数后再和SeparableConv得到的特征图相乘,作为后一层的输入。在整个训练过程中,该注意力图会有监督地进行自我优化。经过维度、尺寸的匹配后,将该注意力图与主干结构的特征图相乘,最终优化用于输入胶囊网络的特征图。

图3 有监督的注意力网络结构

优化后的特征图A′(x)定义如式(1)所示

A′(x)=(1+M(x))·A(x)

(1)

式中:M(x) 为估计的注意力图,A(x) 为特征提取模块输出的特征图。

从式(1)可以看到,估计的注意力图的每个像素都加入了常量1,这样做的目的是该常量可以在注意力图的峰值处突出显示特征图,并能防止较低值区域的像素值降至0。后续的实验部分会比较加入了常量1的影响。

本文对部分人脸进行了注意力图的可视化,可视化结果如图4所示,上面3张是实验过程中裁剪出的人脸图片,其中第一张是真实的,其余两张是伪造的,下面3张是对应上方人脸图片的注意力图。从图4可以看到注意力机制可以有效地对人脸的关键部位进行关注,例如眼睛、鼻子、嘴巴等。

图4 注意力图的可视化

2.3 损失函数

人脸防伪的各种方法所用的数据集杂乱不一,传统的交叉熵损失对所有样本一视同仁,没有侧重点,这就导致了当模型遇到难检测的困难样本时,会和那些易检测的样本做相同的处理。这样训练的模型会对那些困难样本的检测产生误差,对模型的防伪能力产生消极的影响。

焦点损失在交叉熵损失的基础上,通过引入两个因子:平衡因子α和权重速率调节因子γ,一定程度上解决了困难样本的检测问题,其损失函数L定义如式(2)所示

(2)

其中,y′是输入经过激活函数的输出,α用来平衡正负样本的数量不均衡,γ用来调节易检测样本权重降低的速率,y是输入的标签,其中y=1表示正样本,y=0表示负样本。

本文在主干结构以及有监督的注意力分支都采用该损失,训练过程中总的损失L(x) 可以表示为主干以及分支的和,如式(3)所示

L(x)=La(x)+Lp(x)

(3)

其中,La(x) 为注意力分支的焦点损失,Lp(x) 为胶囊网络的焦点损失,二者的定义如式(4)和式(5)所示

(4)

(5)

其中,y′a是注意力分支的输入经过激活函数的输出,αa用来平衡注意力分支中正负样本的数量不均衡,γa用来调节注意力分支中易检测样本权重降低的速率,y′p是胶囊网络的输入经过激活函数的输出,αp用来平衡胶囊网络中正负样本的数量不均衡,γp用来调节胶囊网络中易检测样本权重降低的速率,y是输入的标签,其中y=1表示正样本,y=0表示负样本。

3 实验与分析

3.1 实验设置

(1)数据集:数据集FaceForensics[19]的发布给研究者们带来了经过Face2Face伪造的1000多个视频(50万帧图像)。随后,该作者发布了FaceForensics数据集的扩展版本FaceForensics++。FaceForensics++[8]数据集通过Deepfake和FaceSwap技术进一步扩大,共包含3000个伪造视频(150万帧图像)。如今,该数据集已经成为大多数此领域研究者的基准数据集。

本文方法选用FaceForensics++[8]数据集中的Face2Face、FaceSwap、DeepFakes这3种伪造类型进行实验。在每类伪造类型的1000个视频中,选取720个视频,每个视频截取其中的270帧作为训练集;选取140个视频作为验证集,剩余的140个视频作为测试集,验证集和测试集中每个视频截取100帧。随后,采用MTCNN[20]算法定位识别人脸并进行裁剪,整理后作为本文实验所采用的数据集。

(2)实验参数设置:在训练过程中,网络输入图像的大小为256×256,共训练20个周期,批处理大小设置为32,胶囊网络的学习率为0.001,有监督注意力网络的学习率为0.0001,采用随机梯度下降法(stochastic gradient descent,SGD)进行优化,胶囊网络与有监督注意力网络中的焦点损失参数一致,其中平衡因子αa和αp为0.25,权重速率调节因子γa和γp为2。本文使用Pytorch作为基础框架,GPU为英伟达公司的NVIDIA RTX 2080Ti(共5块)。表1是不同方法的网络参数数量及处理时间比较。由表1可以得出,本文方法较原始的胶囊网络方法参数有所增多,约增加了3倍,但处理单张图片用时仅增多了约0.5倍;而同Rossler等[8]提出的基准方法相比,增多了约7000 K的参数量,但处理单张图片用时相差不多。综上,本文方法可行。

表1 本文方法与原始胶囊网络方法的网络参数数量及处理时间比较

3.2 实验结果及分析

3.2.1 对比实验

本文在胶囊网络的基础上,提出使用有监督的注意力分支来优化胶囊网络的特征提取模块,并使用焦点损失替换原始网络中的交叉熵损失。

为了验证本文提出方案的有效性,将本文方法与原始的胶囊网络方法[15]进行对比实验。原始的胶囊网络方法与本文方法的数据集和参数保持完全相同。本文使用准确率(accuracy)作为实验指标,其计算公式如下所示

(6)

式中:TP(true positions)表示正类判定为正类的样本数量,TN(true negetives)表示负类判定为负类的样本数量,total表示总的样本数量。

表2给出了DeepFakes、Face2Face和FaceSwap这3种伪造类型的实验结果。从表2可以得出,对于DeepFakes和Face2Face这两种伪造类型,本文提出方案的准确率提升较为明显,约提升了1个百分点。对于FaceSwap伪造类型,由于FaceSwap技术在处理面部抖动等方面更加成熟,且在整张人脸的替换中人脸的姿态信息更符合实际,所以胶囊网络在对该技术类型的处理中,优势没有其它两种类型明显,而注意力分支结构的存在仍然对准确率的提高有一定的促进作用,约为0.4%。

表2 本文方法与原始胶囊网络方法在不同伪造类型上的准确率比较/%

此外,为了验证本文提出模型的泛化性,我们将所有的伪造类型整合到一起,分别用原始的胶囊网络和本文模型进行实验,结果见表3。结果表明,本文模型较于原始的胶囊网络,准确率提升了约4%,泛化能力更强。其泛化能力增强的根本原因在于本文引入的有监督注意力分支的重要作用,而引入的注意力分支可以对人脸的关键部位进行重点关注。

表3 本文方法与原始胶囊网络方法在FaceForensics++数据集上的准确率比较/%

3.2.2 模型性能对比实验

近年来,许多检测效果优秀的方法被提出,为验证本文模型的优越性,本文在Face2Face伪造类型上进行了对比实验,表4为本文方法与其它方法的检测准确率对比。

从表4可以看出,本文方法对比于近年来许多优秀的方法,检测性能都有一定的提升。其中,对比于Cozzolino等[21]以及Bayar等[22]提出的方法有显著的性能提升,分别提升了约20%和12%;对比于Afchar等[23]和Raghavendra等[24]提出的方法,提升了约5%;对比于Rossler等[8]提出的基准方法,由于本文方法结合了XceptionNet在特征提取方面和胶囊网络在鲁棒性方面的优势,因此准确率更高,提高了约0.7%;对比于Li等和Zhu等最近提到的方法,分别提高了约1.3%和0.6%。综上,由于有监督注意力分支在视觉解释上的独特优势,本文方法较最先进方法有明显的性能提高。

表4 本文方法与其它方法在Face2Face伪造数据集上的准确率比较/%

3.2.3 消融实验

为了验证有监督注意力分支以及焦点损失各自的作用,本文进行了以下消融实验:在DeepFakes、Face2Face和FaceSwap这3种伪造类型上引入有监督注意力分支,训练模型后计算其准确率;不使用有监督注意力分支,仅使用焦点损失代替交叉熵损失。准确率结果见表5。由表5可以看出,对于3种伪造类型,有监督注意力分支的引入对模型的性能提升较大,尤其是DeepFakes伪造类型,提升了约0.9%。焦点损失使得模型专注于困难样本的检测,同样起到了不可忽视的作用。

表5 在不同的伪造类型上引入注意力分支及焦点损失的准确率比较/%

另外,对于FaceSwap伪造类型,分别引入有监督注意力分支和焦点损失的提升相较于其它两种伪造类型的提升较小,这验证了本文在3.2.1节中关于该伪造类型检测性能提升较小的原因。

而后,使用所有伪造类型整合的数据集再次进行以上测试,实验结果见表6。由表6可以看出,单独引入有监督注意力分支使模型的检测性能提高了约2.7%。单独引入焦点损失提高了约1.2%,该结果同样验证了上述结论。

表6 在FaceForensics++数据集上分别引入注意力分支及焦点损失的准确率比较/%

3.2.4 有监督注意力模型实验

相比于传统的注意力网络,我们使用的注意力网络特点很明显,即带有监督信息且对原始网络的影响较小。本文通过在原始胶囊网络的特征提取模块上直接获得注意力图并与特征图相乘来验证这一点,实验结果见表7。相较于直接引入注意力,由于本文使用的注意力图是有监督地获取的,因此更加符合人类的视觉机制。由表7可以看出,本文使用的有监督注意力分支的检测性能提高了约1.8%,明显好于传统的注意力网络。

表7 在FaceForensics++数据集上直接引入注意力、使用注意力分支的准确率比较/%

进一步,为了验证2.2节中提到的常量对模型的影响,本文通过是否在有监督注意力网络中引入常量1来进行对比,表8验证了引入了常量1相较于不引入常量1提升了0.32%,可见常量1确实在突出特征图以及防止低值像素方面具有一定的促进意义。

表8 在注意力分支结构中是否为每个像素引入常量1准确率比较/%

4 结束语

本文提出一种基于有监督注意力分支的胶囊网络结构用以检验照片或者视频是否经过伪造。对于输入的图像,本文通过有监督的注意力网络估计注意力图,用来优化胶囊网络的特征提取模块,而后通过胶囊网络来检测真伪,并且使用焦点损失来提高检测精度。实验结果表明,本文方法比原始的胶囊网络方法有了明显的性能提升,在各种伪造类型混合的情况下也能较准确的辨别真伪。作为未来工作,我们将尝试使用多特征融合的方式来估计注意力图。

猜你喜欢
分支人脸注意力
让注意力“飞”回来
有特点的人脸
一起学画人脸
巧分支与枝
三国漫——人脸解锁
一类拟齐次多项式中心的极限环分支
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
长得象人脸的十种动物
生成分支q-矩阵的零流出性