基于频域信息的深度伪造检测算法

2022-12-12 10:47蒲文博
成都信息工程大学学报 2022年5期
关键词:频域人脸卷积

蒲文博 胡 靖

(成都信息工程大学计算机学院,四川 成都 610225)

0 引言

深度伪造(Deepfake)是最近广泛流行的人脸图像窜改技术。与其他使用传统图像处理手段的人脸窜改技术不同,该方法使用深度神经网络合成指定目标人脸图像并对原视频或图像进行换脸操作。具体步骤为:(1)Deepfake使用自编码器(autoencoders)或生成对抗网络(GAN)合成目标人脸图像,该图像会保留原人脸的非身份信息,例如原人脸的动作表情、人脸位置、环境光照等;(2)通过传统的图像处理手段例如仿射变换替换原视频或图像中的人脸。由Deepfake技术得到的换脸视频能模仿原视频人物的行为动作。然而,人脸信息是身份认证的关键信息,在现如今的公民网络生活中已经扮演了举足轻重的角色,Deepfake技术生成的换脸视频对于公民的个人隐私甚至社会安全构成了严重的威胁。

为应对Deepfake技术造成的安全威胁,大量针对Deepfake换脸视频的检测算法便由此提出。这些算法的检测基本思路为:由于Deepfake技术仍然使用了传统的图像处理技术,将合成人脸变换到原视频人脸位置,这种变换会在图像的空间域上产生不一致性(例如合成人脸与原人脸周围环境的不一致),从而成为检测视频或图像是否为伪造的重要依据。现存的Deepfake检测方法大多便是使用传统的卷积神经网络(CNN)来提取图像空间域的不连续信息。然而随着Deepfake技术的迭代,空间域中的不连续信息变得难以捕获,传统的Deepfake检测方法的精度受到很大影响。

鉴于Deepfake技术的特殊合成方式,会在合成人脸与周围像素间产生不连续的特征,这种边缘的不连续特征往往在频域中属于高频信息。尽管随着Deepfake技术的迭代,这种边缘不连续特征在空间域上难以分别,但却可以在频域中被神经网络更有效地提取出来。本文通过对Deepfake视频帧进行离散余弦变换(DCT),将视频映射到频域中,使用残差卷积网络提取伪造帧的频域特征,以提升模型对空间域不连续信息的捕捉能力。此外,引入了双向LSTM模块提取Deepfake视频的帧间时序信息,以提升模型对帧间不连续信息的提取能力。在此基础上,提出了一种专门针对Deepfake视频的数据增强方法Xray-blur。该方法通过对人脸周围像素进行高斯模糊,提高模型对图像不连续信息的捕捉难度,以此生成难度较高的训练样本,针对性地训练模型对于不连续区域特征的提取能力。实验表明,该数据增强方法能有效提升模型的性能。

1 相关工作

为了应对Deepfake技术的威胁,科研工作者提出众多用于检测Deepfake换脸视频和图像的方法,这些方法以深度学习方法为主。Rossler等[1]首次提出使用XceptionNet[2]进行Deepfake检测,但这种直接使用现存的CNN网络的方法由于其未对Deepfake数据进行针对性优化而效果欠佳。Afchar等[3]设计了更专注于图像的介观特性的CNN网络:Meso4和MesoInception4。Li等[4]提出了一种名为FWA的网络,首次提出通过检测图像中人脸与其周围区域的不一致性来判断该图像是否为换脸图像。在此基础上,Li随后提出了DSP-FWA网络,通过引入空间金字塔池化(SPP)[5],来解决检测过程遇到的图像输入尺寸不同的问题。而后,Nguyen等[6]提出了Capsule-Forensics网络,其使用基于 VGG19[7]的胶囊结构网络(CapsuleNet)[8]检测换脸图像。最近,Luo等[9]提出了一种能捕捉图像高频噪声的检测网络来提升模型面对不同换脸数据的泛化能力。近期也有部分工作将检测重点放到图像或视频中的生物学特征上:例如Li等[10]提出通过估计视频中人的眨眼频率来判断其是否为换脸视频;Javier等[11]设计了一种能通过rPPG技术估计人的心率的网络来判断视频是否由Deepfake技术合成。此外,近期提出的方法也更加重视视频帧间信息的提取,这些方法能通过检测视频帧间的不连续信息而判断视频是否为Deepfake视频。例如,Güera等[12]提出了一种包含CNN和长短期记忆(LSTM)[13]的两阶段检测网络,以捕获帧之间的不一致信息;韩语晨等[14]提出一种基于Inception[15]模块的3D卷积的网络,该网络则是通过3D卷积的方式来提取帧间时序信息,从而检测换脸视频。

2 提出的方法

本文提出方法的流程如图1所示。对于一个输入视频,首先使用Dlib[16]的人脸检测库(Dlib face detector)逐帧提取出视频中的人脸图像,随后通过DCT变换将人脸图像帧转换到频域;之后每帧的频域信息被送入频域学习残差CNN中,提取高维频域特征图;这些特征图接着被送入双向LSTM网络中,以提取帧间的时序信息;得出的特征图融合了频域信息特征和时序信息特征,通过网络的全连接层进行逐帧判断。

2.1 频域学习残差卷积网络

2.1.1 图像频域转换

受JPEG压缩算法的启发,本文提出了将RGB图像转换为频域图像的方法。JPEG压缩算法通过对原始图像划分为的矩阵,再将每个矩阵中的图像通过余弦变换(DCT)转换为频域信息进行保存,这种存储方式相比传统方式有效节省了存储空间。图像频域转换流程如图2所示。具体步骤为:(1)人脸提取。对于输入的RGB视频帧,首先使用Dlib人脸检测库提取人脸图像,提取的人脸图像随后会由RGB色彩空间转换到YCbCr色彩空间。(2)DCT转换。Y、Cb、Cr 3个通道的图像会以8×8的矩阵块进行DCT变换,分别形成3个二维DCT系数矩阵。该8×8的矩阵块对应图2中2×2的同色方块。8×8矩阵中保存了来自不同频域分量的DCT系数。位于高频分量的系数存放于矩阵右下角,而低频系数存放于矩阵左上角。(3)DCT矩阵变维。将各个8×8的矩阵块中相同分量的DCT系数组合到同一通道中。例如,每个同色2×2方块的左上角小块会组合到一个通道里。这个组合过程会按照原相对位置进行,以保证相对位置的统一。这样组合会形成通道数为8×8=64的三维DCT立方。DCT立方中每个通道中保存了位于同一频域分量的DCT系数。由于人脸图像由Y、Cb、Cr 3个通道构成,因此每个通道都会形成一个DCT立方矩阵。(4)DCT矩阵连接。将每个通道形成的DCT立方体做连接操作,最终形成8×8×3=192个通道的三维张量。(5)归一化。这个张量在经过归一化后作为网络的最终输入。设输入的RGB图像大小为H×W×C,H、W为图像的高和宽,C为图像的通道数且C=3,则该图像经过转换到频域后得到的张量大小为H/8×W/8×64×C。

2.1.2 频域学习的CNN

由于最终输入张量依然保持三维,该三维张量相比于传统输入的RGB图像,其本质上只是通道数的不同。因此只需要调整CNN网络的第一层卷积层的输入通道数,便可以使其处理频域信息。本文使用简单修改ResNet-50[17]作为频域学习的CNN。具体修改如下:(1)由于ResNet-50的第一层卷积层和随后的一层最大池化层的步长为2,为了不损失频域信息,故将这两层移除。(2)将第二层的卷积层通道数设置为和频域张量相同的通道数,即192,使网络能接收频域三维张量。(3)移除原ResNet-50的最后一层全连接层,其输出的特征图直接输入到下层LSTM中。这样的修改能使原CNN模型的结构变化最小,从而快速移植到各种CNN模型中。如图3所示,虚线框为原Resnet-50中被修改的部分。输入的图像经过DCT转换到频域后会跳过原ResNet-50的第一层中的7×7卷积和3×3最大池化层(Max Pool)直接输入到1×1卷积层中,该层的输入通道设为192,即与频域张量通道数相等,其他部分保持不变即可。

2.2 双向LSTM

由于多数Deepfake算法在合成换脸视频时未考虑帧间信息,从而导致合成的换脸视频在时域中会有一定的不连续现象,例如帧间的异常抖动。和空间域的不连续信息相同,捕获帧间不连续信息也能提升模型对换脸视频的检测能力。本文方法使用双向LSTM提取帧间不连续信息。如图4所示,相比传统的单向LSTM,双向LSTM使用了两层LSTM网络能处理正向和反向传播两个路径。这种设计使得双向LSTM不但能考虑视频帧的历史信息,也能考虑视频帧的预测信息,有助于模型更好地提取帧间的不连续信息,从而做到更准确的判断。

在提取到图像帧的高维频域特征图后,特征图首先被展平成一维特征向量,随后所有帧的特征向量会被堆栈成一个二维特征图,该特征图会经过采用256个神经元的双向LSTM模块对帧间的时序信息进行提取。经过双向LSTM提取后,得到每帧的特征向量,特征向量会被随即传入一个共享的全连接层中,该全连接层则用于输出模型对每帧是否伪造的最终判断。

2.3 数据增强Xray-blur

鉴于主要的Deepfake检测方法以合成人脸与周围区域的不连续性信息作为检测的关键信息。因此如果有一种数据增强方法能针对区域进行模糊,降低此处不连续特征,以困难样本训练该模型,便能提升模型对该不连续区域的提取能力。由该观点出发,本文便提出了一种针对Deepfake的视频数据增强的方法Xray-blur,该方法能对合成人脸的周围边界区域进行模糊处理。受Face X-ray[18]中将合成人脸的邻域以光圈的形式暴露的启发,本文将与光圈像素对应的原图像像素进行高斯模糊处理。Face X-ray光圈生成过程如图5所示。首先,给定一个输入的Deepfake人脸图像,使用Dlib检测人脸的68个特征点,如图5(a)所示。将这些特征点连接形成的凸包做白色填充,形成一个初始mask,如图5(b)所示。再经过5×5高斯核模糊运算形成最终mask,记为M,如图5(c)所示。最后通过下列运算即可得到图5(d)的Face X-ray光圈图像。

通过上述方法生成好Xray光圈后,将Xray光圈区域对应的原图像区域进行高斯模糊处理,该模糊处理过程使用了5×5的高斯核。原图和经过Xray-blur增强的图像都会作为模型的训练集进行训练。图6为Xray-blur细节展示:

从图6可以明显看出,增强的合成人脸周围有显著的模糊效果,这种模糊效果会减弱合成人脸与周围像素的不连续信息,使得Deepfake检测模型难以提取该图像帧的不连续信息。因此,在训练中加入这些复杂样本,将会进一步增强模型对不连续信息的提取能力。

3 实验及结果

3.1 实验设置

3.1.1 数据集和数据准备

本文将测试提出的方法在公开数据集Celeb-DF[19]和FaceForensics++[1]上的检测性能。

Celeb-DF(v2)是最近提出的具有挑战性的大规模数据集,用于评估换脸检测方法。其包含590个真实视频和5639个换脸视频。换脸视频由59位不同性别、年龄和种族的名人的公开可用的YouTube视频生成。

FaceForensics++包含从 YouTube抓取的1000个真实视频和使用4种换脸算法生成的4000个换脸视频,每个算法生成的换脸视频数量为1000。本文使用Deepfake算法合成的版本,故该数据为平衡数据集。除此以外,FaceForensics++包含了3个视频质量从高到底的3个版本,分为称为:raw、c23、c40。

数据准备工作如下:首先,使用Dlib库中的人脸检测器对数据集的每个视频中的每一帧中进行人脸检测并提取;然后将提取的人脸调整为64×64像素,并使用ImageNet的均值和标准差对人脸图像进行归一化。实验中的输入视频的帧长设置为300,如果某个视频少于300帧,则重复其最后一帧以达到300帧。此外,将生成的每个视频帧再采用Xray-blur增强作为新增数据,与原视频数据一起训练模型。

对于训练集和测试集的划分,本文遵循各数据集原有划分方式。其中Celeb-DF训练集包含了890个真实视频和5639个换脸视频;测试集包含了178个真实视频和340个换脸视频;FaceForensics++中训练集分布包含360个真实视频和换脸视频;测试集和验证集分别包含70个真实视频和换脸视频。

3.1.2 对比方法

实验比较了6种Deepfake检测方法:

(1)DSP-FWA[4]:在FWA的基础上加入了空间金子塔池化(SPP)以应对不同输入尺寸换脸图像。

(2)Meso4[3]:Meso4通过捕获深换脸图像的介观特征以判断图像是否为Deepfake合成。

(3)MesoInception4[3]:MesoInception4为在Meso4基础上结合Inception[15]模块改进网络。

(4)Xception[1]:Xception使用常用的卷积神经网络XceptionNet提取Deepfake图像的空间域信息

(5)Capsule[6]:Capsule以VGG19为基础,基于胶囊网络结构检测换脸视频帧。

(6)Inception3D[14]:Inception3D通过3D卷积网络同时提取伪造视频的空间信息和时序信息,以判断换脸视频是否伪造。

3.1.3 评价指标

实验中使用准确率ACC(Accuracy)和ROC曲线下面积(AUC)作为评价指标,ACC和AUC计算方式分别为:

其中,TP为正例预测正确的个数,FP为负例预测错误的个数,TN为负例预测正确的个数,FN为正例预测错误的个数。

其中,posNum为正样本数,negNum为负样本数,则分母表示为正负样本总的组合数。predpos表示模型对正样的预测结果,predneg为模型对负样本的预测结果,分子则表示是正样本大于负样本的组合数。AUC的含义为分别随机从数据集中抽取一个样本,正样本的预测值大于负样本的概率。

3.1.4 参数设置及实验环境

实验在使用NVIDIA Tesla P100 GPU的服务器中完成,本文方法使用PyTorch实现。训练迭代20次,批处理大小为16。训练时,使用Adam优化器,并使用交叉熵作为损失函数,学习率设置为1×10-4。此外,为了保证对比实验的公平,其他对比方法使用尽可能相同的设置。

3.2 实验结果

3.2.1 公开数据集上的对比

实验对比了不同方法在两个公开数据集Celeb-DF和FaceForensics++上的ACC和AUC性能。从表1中可以得出,本文方法优于其他方法:本文方法在ACC上达到了0.96,AUC上达到了0.95。Celeb-DF作为一个不平衡的数据集,其中换脸视频与真实视频比例为7∶1。方法Meso4,由于其只使用了传统的卷积网络提取空间域信息,而未考虑帧间信息,因此在面对不平衡数据时会存在偏向预测,导致AUC结果不理想。而Inception3D利用3D卷积网络,提取帧间不连续特征,表现效果较好。但由于其使用3D卷积而致使网络参数较大,加之其仍使用传统RBG图像作为输入,空间域不连续信息未能被有效提取,因此其性能仍弱于本文方法。本文所提方法利用频域学习CNN和双向LSTM,在不平衡数据集上仍然取得了较好的结果。这是由于其能将图像转换为频域信息而放大不连续细节。且得益于其双向LSTM,模型能捕捉Deepfake视频中的帧间不连续抖动,从而进行更准确的判断。

表1 在公开数据集上的性能对比

与在Celeb-DF上相同,本文方法在FaceForensics++上仍取得了优越的性能,其中ACC达到了0.95,AUC达到了0.94。本文方法相比于Inception3D,ACC领先了5%,AUC领先了3%。实验充分展示了频域学习和时序学习在Deepfake检测中扮演的重要角色。

3.2.2 消融实验

为了研究本文模型各个模块的作用,在Celeb-DF数据集上进行消融实验。具体步骤如下:(1)为了验证Xray-blur增强方法带给模型的性能提升,实验去除了Xray-blur增强的数据,仅使用原数据进行训练,记为“-Xb”;(2)为了考察将图像转换为频域信息从而对模型带来的提升,使用传统的ResNet-50代替频域学习的CNN,记为“-Xb,-DCT”;(3)为了验证双向LSTM模块和帧间不连续信息在深度换脸检测中的重要作用,实验在“-Xb,-DCT”基础上移除了双向LSTM,只使用Res-Net-50检测深度伪造视频帧,记为“-XB,-DCT,-Bi”。

表2是各方法的检测结果。对比本文方法和“-Xb”可以得出,Xray-blur增强方法带来了2%的ACC和1%的AUC提升。Xray-blur增强方法从数据集入手,模糊对检测的关键信息,即合成人脸及其周围的边界不一致信息。通过增强数据训练的模型在面对正常数据时能更有效地提取这些信息,从而针对性地提升模型对伪造图像的判断能力。模型“-Xb,-DCT”取得了0.91的ACC和0.92的AUC。相比“-Xb”,ACC下降了3%,AUC下降了2%。实验表明,经过频域转换后,模型性能有了显著提升。这种提升和Deepfake检测的注意目标相关,空间的不一致信息通过频域的转换而进行了放大,模型能更好地提取该信息。模型“-XB,-DCT,-Bi”取得了0.75的 ACC 和0.68的 AUC。相较于“-Xb,-DCT”,双向LSTM的加入使得模型提高了0.16的ACC和0.24的AUC,模型性能提升显著,展示了帧间信息在换脸检测任务中的至关重要的作用。双向LSTM通过前后的帧间信息传播,强化了帧间信息的提取。

表2 消融实验检测结果

3.2.3 低质量视频鲁棒性分析

Deepfake检测算法需要对不同质量的视频具有良好的检测效果,以应对现实应用场景。尤其是Deepfake视频在网络上传播会受压缩算法的影响,使其质量明显下降。这种视频会对模型的检测性能有着显著的影响。为验证所提模型在不同视频质量下的鲁棒性,本节测试了模型在FaceForensics++的c40数据集的性能。数据集c40使用了H.264编码器对原始视频进行低质量压缩,以模拟网络中视频的真实压缩情况。本文方法和其他方法在c40上的测试结果见表3。对比表1中FaceForensics++c23的结果,本文方法在视频检测任务中ACC性能下降了3%,AUC性能下降了2%,但远高于其他模型在c40上的测试性能。该实验充分证明了本文方法面对低压缩率视频时表现出良好的鲁棒性。

表3 在FaceForensics++上的面对低质量视频c40的测试结果

此外,为了展示低质量视频对模型检测能力的影响,本文方法、Capsule、MesoInception4以及 Xception分别在c23和c40上的预测结果见图7。图7中红色框为换脸视频帧,绿色框为真实视频帧。预测结果大于0.5则模型判断为换脸图像,小于0.5则模型判断为真实图像。从图7可以得出,相较于对c23的预测结果,对比模型对c40换脸视频帧的预测概率有一定下降;在对c40真实视频帧预测中出现了错误判别(红色)。相较于其他方法,本文方法做到了正确预测的同时,其输出概率更准确。

4 结束语

提出了一种基于视频帧频域信息的Deepfake检测方法,该方法能够更好地捕获Deepfake合成中产生的不连续信息。此外,该方法通过引入双向LSTM以提取Deepfake视频的帧间信息,进一步提升模型对Deepfake视频的检测能力。针对深度换脸视频的合成特点,提出了Xray-blur数据增强方法,其能模糊合成人脸与周围边界区域,使得模型在增强数据训练下能更好捕捉不连续区域。相比于基于传统的卷积网络的检测方法,本方法在公开数据集上取得了优秀的检测效果,且拥有良好的应对低质量视频的能力。本文的方法仍有些不足,例如,模型虽然能捕获频域信息,但缺乏对关键频域信息的注意能力,后续研究会考虑将通道注意力模块引入模型中,使模型能在众多频域中选择有效的信息进行Deepfake检测。

猜你喜欢
频域人脸卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
一种并行不对称空洞卷积模块①
一起学画人脸
基于频域的声信号计权改进算法
玻璃窗上的人脸
从滤波器理解卷积
频域稀疏毫米波人体安检成像处理和快速成像稀疏阵列设计
基于傅里叶域卷积表示的目标跟踪算法
网络控制系统有限频域故障检测和容错控制