基于篡改伪影的深度伪造检测方法
2021-12-20耿鹏志樊红兴张翌阳唐云祁
耿鹏志,樊红兴,张翌阳,唐云祁
(1.中国人民公安大学 侦查学院,北京 100038;2.中国科学院自动化研究所 智能感知与计算研究中心,北京 100190)
0 概述
近年来,随着深度学习技术的发展,人脸操控和合成技术取得了较大进展,但是它们在给影视等行业提供便利的同时也给社会公共安全领域带来了隐患。自2017 年起,各类换脸视频及软件层出不穷,其中,深度伪造(Deepfake)技术备受关注,该技术使用机器学习来生成逼真的图像和视频,信息内容“以假乱真”,进而达到欺骗受众的目的。Deepfake 技术可以篡改生成虚假视频,不法分子经常使用该技术来制造虚假证据,如散播谣言、编造虚假新闻等,严重影响了公安机关正常执法办案,甚至因此产生许多冤假错案。因此,对Deepfake 进行检测具有重要的现实意义。
2020 年,Facebook 等机构为鼓励研究人员开发更有效的Deepfake 检测方法,发起一项名为Deepfake Detection Challenge 的比赛。与此同时,各国也在立法层面实施相应的应对方案:美国两党议员分别在众议院、参议院同时提出《2019 年深度伪造报告法案》[1],该法案反映了目前美国立法者在防范Deepfake 技术风险中所作的努力;欧盟方面主要通过个人信息保护和虚假信息治理等法律法规来从法律层面限制人工智能造假技术的应用;中国于2019年印发了《网络音视频信息服务管理规定》[2],该规定指出如果相关人员利用Deepfake 视频造成严重危害并构成犯罪,司法机关将依法追究刑事责任。上述一系列举措在一定程度上限制了Deepfake 视频的传播。
目前,为了能够有效地检测以Deepfake 为代表的深度伪造视频,研究人员提出了许多检测方法,但是,其中多数检测方法依赖于数据驱动,在跨压缩率、跨分辨率方面并不具有鲁棒性。尽管MATERN 等[3]对伪造图像中人眼可见的一些痕迹(如眼睛颜色、人脸对齐不准)所产生的伪影进行手工建模,但其只在特定的生成方法下效果较好,因为人的面部特征具有多样性,导致该方法不能很好地进行建模,即存在不能有效提取伪造特征的问题。
本文将篡改伪影特征引入卷积神经网络中,建立一种基于篡改伪影的双流检测模型。通过对FF++(FaceForensics++)[4]中Deepfakes数据集进行分析,可以看出该数据集所使用的算法在生成伪造视频的过程中会在换脸部位遗留相应的伪影。因此,本文对人脸部区域进行有效遮挡,凸显出脸部伪影,并使用卷积神经网络提取伪影特征,从而提升模型的抗压缩能力。在此基础上,构建一种基于Xception[5]的双流检测网络,使模型在检测时不仅利用全局空域特征,还可以关注相应的伪影特征,从而提高模型对Deepfake 视频的检测效果。
1 相关工作
1.1 Deepfake 生成原理
Deepfake 是Deep learning 和Fake 的组合,主要指使用深度神经网络制造的虚假视频或图片。2017年,一位名为“Deepfakes”的Reddit用户上传了一段用该技术制作的色情视频,从此Deepfake技术不断涌现。Deepfake使用自编解码架构(Encoder-Decoder),与传统自编码器不同,Deepfake 采用1 个编码器(Encoder)和2 个解码器(Decoder A 和Decoder B),其原理如图1 所示,分别构建2 个自编码器,两者共享1 个编码器,而解码器用于重构另一个人的脸,共享1 个编码器是为了能同时提取A 与B 的脸部特征。在模型训练阶段,首先将A 与B 的人脸图片输入到网络中,然后输出相应的人脸图片,同时使用监督学习的方法最小化输入输出之间的差异。Deepfake 的图像生成过程就是恢复A 和B人脸的过程,在图1 中,将A 人脸送入自编码器中进行编码和解码,最终得到伪造视频。
图1 Deepfake 技术的基本原理Fig.1 The basic principle of Deepfake technology
1.2 换脸生成工具
换脸技术既可以促进影视行业的发展,如进行视觉特效制作、实现替身演员脸部替换等,同时也可能造成一些严重危害,如恶搞明星政要、损害公众人物形象以及其他违法犯罪活动。据sensity 安全公司最新统计结果[6]显示,截止2020 年6 月,YouTube 等主流网站上的造假视频多达49 081 个,同比增加330%左右,可见造假视频已达到泛滥程度。为促进视频检测领域的发展,本文总结当前具有代表性的一些换脸开源工具,如表1 所示。
表1 具有代表性的Deepfake 生成工具Table 1 Representative Deepfake generation tools
1.3 Deepfake 检测方法
在Deepfake检测领域,研究人员已经提出了多种取证技术[8],根据检测目标不同,这些技术可以分为基于图像检测和基于视频检测两大类。在图像检测方面,主要分为传统手工设计和深度神经网络2 个部分。在传统手工设计方面,YANG 等[9]指出在伪造过程中Deepfake 很难伪造一个人的讲话方式,因此,该文利用面部姿势和头部姿势等生物特征进行统计建模,将建模后提取的特征送入SVM 分类器以获得检测结果。YUE 等[10]通过检测眨眼信息来判断视频的真假,但由于现在伪造技术的改进,导致该方法已无法伪造视频进行有效检测。MATERN 等[3]对眼睛颜色、牙齿、人脸对齐不准所产生的伪影等重点区域设计手工特征并进行分类,但他们使用简单的分类器,存在不能有效提取伪造特征的情况。在基于深度神经网络的图像检测方面,ZHOU 等[11]提出一种双流网络用于深度换脸检测,其分别用2 个网络学习局部噪声残差和相机特征以及人脸篡改痕迹,但该网络鲁棒性不佳。AFCHAR 等[12]为了更好地提取人脸的伪造特征,提出Meso-4网络用于换脸检测。NGUYE[13]使用胶囊网络来检测伪造图像和视频。LI等[14]构建一个取证数据集FaceForensics++,其促进了假脸检测领域的发展,同时该文使用Xception 网络结构对换脸图片进行检测,其能达到较好的效果。GUERA 等[15]通过高斯模糊等后处理方法来模拟伪造视频,并使用卷积神经网络进行检测,其能取得较好的效果,但是,基于深度学习生成的伪造视频与其模拟视频之间仍然存在一定差异。
相比于图片,视频中包含的信息更多,具有更大的危害性。针对视频检测,经典的取证思路是将视频对象转化为图片对象,从视频中随机选择一些帧并对这些帧进行检测,通常使用最大或平均分数作为最终分数对视频真假进行预测。如果一个视频只有部分关键帧被篡改,那么使用这种检测方式容易出现误报或者漏检情况。文献[15-16]将卷积神经网络和长短期记忆(LSTM)网络相结合,用于视频序列检测:首先使用卷积神经网络提取视频帧中的特征;然后使用这些特征训练RNN,以提取相应的时序信息。此外,有研究人员基于生物信号进行检测,如CIFTCI 等[17]通过检测心跳在面部产生的细微差别来区分视频真假。
总体来看,关于深度造假检测的研究工作仍处于初步发展阶段,造假技术和检测技术是一个相互博弈的过程,目前的检测方法都有一定的局限性,在遇到跨压缩率、跨分辨率、跨数据集等情况时缺乏足够的泛化性。同时,在实际案件中,违法人员也会针对这些问题对视频进行各种后处理,从而提高了检测难度。
2 基于Xception 的双流Deepfake 检测模型
2.1 Xception 网络模型
本文模型基于Xception网络构建,Xception由输入层、中间层、输出层3 个主要部分组成,共包含36 个卷积层。作为Inceptionv3 的改进,Xception 引入了深度可分离卷积,在几乎不增加网络复杂度的前提下提高了模型效果。与普通卷积核相比,深度可分离卷积可以有效分离空间以及通道间的相关性。
2.2 双流Deepfake 检测模型设计
由于造假视频在换脸过程中受限于Deepfake 生成算法,因此会留下相应的伪影,这些伪影主要包括面部扭曲、不同分辨率、边界色差等特征,具体表现为以鼻子为中心的区域成像质量相对较好,该区域以外的区域则伪影明显。本文据此设计一种双流网络,分别用来学习造假图片的全局信息和伪影特征。在特征提取网络选择方面,由于文献[4]中指出Xception 对于Deepfake 视频检测能取得优秀效果,同时该网络模型在DFDC、CAAD 等虚假人脸识别中被广泛应用,因此本文选择Xception 作为模型的基准网络。在伪影特征方面,首先根据人脸关键点信息生成相应的Mask 以掩盖中心区域,以此突出相应的伪影痕迹;其次由于造假视频中的人物背景发生变化,因此利用Xception 网络来有效提取相应的伪影特征。本文网络模型结构如图2 所示。
图2 本文网络模型结构Fig.2 Network model structure in this paper
如图2 所示,本文首先使用FFmpeg 对Deepfake视频进行分帧,然后利用人脸检测器MTCNN 获取人脸图片。上分支(Frgb(x))使用Xception 来学习换脸图片的全局信息,另一个分支(Fmask)网络通过相应的预处理方式使模型学习相应的伪影信息,最后将这2 个网络进行集成并实现分类检测。在测试阶段,融合2 个网络的预测结果作为最终得分,如下:
其中:P(x)为最终的预测结果;Frgb(x)为Full_face 流的预测结果;Fmask为Mask 流的预测值;∂为平衡因子,实验时取0.5。
3 实验结果及分析
3.1 实验数据
FF++[4]是当前较为主流的视频数据库之一,该数据库于2019 年被推出,是原始FaceForensics[18]数据库的扩展。FF++包含1 000 张真实视频,视频均来自YouTube。为证明本文算法的有效性,使用FF++中的Deepfakes 数据集,Deepfakes 数据集共包括1 000 个假视频,其中,训练集有720 个,测试集和验证集均为140 个。同时,为了模拟现实情况,使用H.264编解码器压缩,生成Raw(c0)、HQ(c23)、LQ(c40)这3 种压缩视频。视频压缩会丢掉部分关键伪造特征,使检测精度降低,同时导致模型在跨压缩率中表现较差。本文选择c23 和c40 这2 种压缩方式的数据并进行抗压缩实验,以验证本文算法的有效性。实验中共制作11 400 张图片,其中,c40 作为跨压缩率测试的图片,共2 800 张。本文实验的训练集、测试集、验证集具体信息如表2 所示。
表2 数据集信息Table 2 Datasets information
在本文实验中,数据集制作主要包含4个步骤:1)按照官方划分格式进行划分;2)抽取视频帧;3)对视频帧图像进行人脸截取和关键点保存;4)制作人脸Mask 区域。官方给定的划分格式是json 文件,其中包括数据集的划分方法以及原视频和篡改视频的对应关系。本文根据json 文件将对应的视频划分为Original 和Manipulated 两组,每组又划分为训练集、测试集、验证集,然后使用FFmpeg 将每个Deepfake 视频等间隔截取10 帧,使用MTCNN[19]获取人脸框,以人脸框为中心向外扩张0.3 倍并保存,同时根据人脸关键点信息进行人脸对齐,最后使用人脸关键点信息生成相应的Mask 区域,以此遮挡鼻子所在的中心区域。
3.2 实验环境配置
本文实验硬件配置为Intel®Xeon®CPUE5-2650v4@2.20 GHz,内存164 GB,GPU 为TITAN X(Pascal),软件配置为Linux,CUDA9.2,CUDNN7.5.1。深度学习算法框架使用Pytorch1.2。本文实验平台基于Pytorch 深度学习框架搭建,为了提高模型的分类性能,使用ImageNet 上的预训练模型。损失函数BCEWithLogitsLoss、实验参数在模型训练过程中使用Adam 学习率调整,超参数设置为:LearningRate=0.000 2,WeightDecay(权重衰减)=0.001,batchsize=40,总计训练10个epoch,每个epoch验证5次,最终取在测试集上表现最好的模型用于验证。在实验测试阶段,每个支路的权重系数都为0.5,图片的判断阈值设置为0.5,即得分大于0.5的图片认为是伪造图片。
3.3 实验评价指标
可以将Deepfake 检测问题看作一个二分类真假问题。本文使用Logloss 和Acc 这2 个评价指标,两者计算公式分别如下:
其中:Rright为输出概率大于0.5 的样本数量;Aall为总样本数量;n为测试图片的数量;y′i为判别图像为假的置信度,取值范围为(0,1);yi为测试图像的实际值,如果为假图像,则为0,反之,则为1。
为了更好地验证模型效果,本文还使用ROC 曲线下面积AUC 值作为评测指标。ROC 曲线是以TPR(真阳性率)为纵坐标、FPR(假阳性率)为横坐标而绘制,ROC 曲线可以更直观地反映不同模型的优劣程度。
3.4 结果分析
3.4.1 与单流网络的对比
由于视频压缩会使伪造视频丢掉很多特征信息,使得模型检测能力下降,同时,在当今的互联网中,很多社交软件会自动地压缩视频,其中最常见的是CRF 压缩方式。在同一压缩率下进行测试,模型检测精度高达98%,但是在面对压缩情况时,准确率会大幅下降,可见后处理对于Deepfake 检测的影响。在实际案件中,公安机关无法获得高质量的原视频,很容易发生错检情况,从而影响侦查方向。因此,在同一压缩率下进行对比,意义并不是很大。本文为了检验模型是否学习到篡改图像的伪影特征,选择跨压缩率测试,即在Deepfakes 中的c23 上进行训练,在c40 版本上进行验证。为了证明本文网络和伪影特征的有效性,测试Mask 单流、Full_face 和双流网络在不同压缩率下的性能,实验结果如表3 所示,最优结果加粗表示。
表3 本文模型与单流网络的对比Table 3 Comparison between this model and single stream network
从表3 可以看出,在同一压缩率下进行测试,单流和双流网络检测精度都很高,这与数据分布有关,同时伪影特征取得了0.957 8 的精度,证明该特征在Deepfake 伪造视频检测中具有有效性。但是,在跨压缩率测试中,模型精度大幅降低,可见视频压缩对于检测结果具有较大影响。
不同模型的ROC 曲线和AUC 值如图3 所示。从图3 可以看出,本文通过对网络结构进行设计,使得模型在训练过程中学习伪影特征,在跨压缩率方面有一定性能提升,验证了本文方法的有效性。
图3 不同模型在验证集上的ROC 曲线和AUC 值Fig.3 ROC curves and AUC values of different models on the validation set
3.4.2 不同Mask 比例对实验结果的影响
本文通过对脸部区域添加相应的Mask,以使网络更好地学习伪造特征。如图4所示,为了探究不同Mask比例对于实验结果的影响,本文使用MTCNN 所保留的人脸框信息,对人脸框进行不同程度的缩放,将缩放后的区域像素值变为0,保留其余区域的像素值,目的是遮盖掉中心区域,突出四周的伪影痕迹。本文将MTCNN 所检测的人脸框比例设置为1,使用该坐标值进行比例缩放,进而生成相应的Mask 区域。由于Deepfake 伪造视频只针对部分面部区域进行伪造,因此比例值大于0.5 会掩盖掉伪造区域,而当比例值小于0.3 时,无法有效覆盖鼻子等中心区域。为保证实验结果的科学性,在实验过程中,本文固定Full_face 流,只更改Mask 流,实验结果如表4 所示。从表4 可以看出:当Mask比例为0.35时,检测效果最好;当Mask较大时,检测精度与单流网络一致,原因可能是Mask 掩盖了过多的伪影痕迹,如眼睛、嘴巴等,这些区域可能受限于生成算法,留下了较多的伪造特征。为进一步证明本文方法的有效性,避免模型集成带来的影响,重新训练Full_face 流,并将Mask 流换成Full_face 流,即将2 个全局信息进行融合。实验结果表明,2 个Full_face 流会导致检测精度降低,这可能是由于单模型之间的一致性和精度较高,在集成过程中,另一个Full_face 流并不能很好地起到辅助监督的作用。通过与Xception 结果进行对比可以看出,本文模型在跨压缩率上体现出一定的优越性。
表4 不同Mask 比例对于跨压缩率实验结果的影响Table 4 The impact of different Mask ratios on the results of cross-compression experiments
图4 不同Mask 比例下的人脸图像效果Fig.4 Face image effects under different Mask ratios
3.4.3 与其他方法的对比
随着国内外学者对Deepfake 检测研究的深入,出现了很多经典方法,其中,EfficientNet[20]、Xception、ResNet[21]被广泛应用。为了验证本文方法的有效性,选取常见的检测方法作为对比进行实验,结果如表5 所示。从表5 可以看出,多数特征提取网络都可以达到很好的检测结果,Xception作为该领域主流的取证网络,具有明显优势,在跨压缩率方面,本文方法检测精度比其他方法高出2~10个百分点,同时,模型在ROC曲线和AUC 值方面都有不错表现。图5 所示结果进一步说明了本文方法的有效性,但是,跨压缩率的模型精度只有0.823 4,仍然存在大量漏检和错检的情况,也从侧面证明了跨压缩率仍然是伪造视频检测中的难点和重点。
表5 本文方法与其他经典方法的对比Table 5 Comparison between this method and other classical methods
图5 不同方法在验证集上的ROC 曲线和AUC 值Fig.5 ROC curves and AUC values of different methods on the validation set
4 结束语
从早期的伪造色情视频到现在的政治安全问题,犯罪分子精心设计的Deepfake 视频会对警察执法办案以及司法审判带来巨大影响。本文提出一种基于Xception 的双流检测模型,通过在面部中心区域添加相应的Mask 来提升模型对于伪影特征的提取能力。在Deepfakes 数据集上的实验结果表明,本文模型的检测精度高达0.986 4,同时在跨压缩率检测方面相对ResNet50、DSP-FWA 等方法也有明显的性能提升。下一步将对不同伪造方式下的伪影特征进行研究,提高特征在跨压缩率方面的鲁棒性,从而提升模型的检测准确率。