胡永健 高逸飞 刘琲贝 廖广军
①(华南理工大学电子与信息学院 广州 510641)
②(中新国际联合研究院 广州 511356)
③(广东警官学院 广州 510230)
在众多的生物特征中,人脸是最具有代表性的特征之一,可辨识度较高。因此,随着人脸识别技术的突飞猛进,人脸篡改所带来的安全威胁越来越大,特别是在手机高度流行和社交网络日益成熟的当代。虚假新闻、丑闻、名人色情视频以及报复性的色情视频在各种网络社区上涌出,困扰着从政治家、名人到普通民众,甚至威胁到国家安全。目前,有3种常见的假脸视频篡改技术[1]:Face2Face,Faceswap和Deepfakes[2]。Face2Face通过重建3维模型只对面部表情进行控制,而Faceswap和Deepfakes则将源视频中的整张人脸替换到目标视频中,基于传统计算机图形学方法的技术统称为Faceswap,而基于深度学习的技术统称为Deepfakes。Deepfakes主要利用深度学习中的深度卷积神经网络、自编码器(auto-encoder)和对抗生成网络(Generative Adversarial Networks, GANs)等技术,使网络可以学习到目标视频中更深层次的人脸特征,从而实现精准替换,并且能够匹配目标视频中人脸的动作和变化,达到较为理想的换脸效果。Deepfakes有时直接指利用深度网络换脸所得到的视频。
假脸视频对社会的威胁日益增加,引起了学术界和工业界的广泛关注,已经出现了一些相关研究,甚至出现针对换脸视频检测的国际大赛1)DeepFake Detection Challenge: < https://www.kaggle.com/c/deepfake-detection-challenge>。根据所使用的特征,现有的假脸视频检测技术大致分为3大类:基于传统手工特征、基于生物特征和基于神经网络提取特征。第1类方法主要借鉴了图像取证思想,对单帧图像进行分析,典型做法包括使用图像质量测度和主成分分析[2]以及使用局部二值模式(Local Binary Pattern, LBP)特征[3]。第2类方法主要利用了人脸特有的生物信息,文献[4]将脸部标志点根据篡改过程时的受影响程度大小分为两组,使用不同标志点估计出头部姿态方向后比较差异作为判别依据;文献[5]发现假脸中两只眼睛的瞳孔部位呈现出的漫反射信息存在不一致的现象;文献[6]同时利用视频图像和音频的信息,通过比较真假视频中唇部动作和声音匹配的差异甄别有无篡改;文献[7]指出每一个人都有独特的运动动作模式,而换脸导致目标对象与源对象动作模式的不匹配,可从额头、脸颊、鼻子等区域的运动变化中提取特征进行分类判决。第3类方法主要通过构建卷积神经网络对人脸进行学习,提取较高维度的语义特征进行分类。一些研究者将其视为常规的分类问题,文献[3]使用了AlextNet,VGG-19,ResNet[8],Inception和Xception[9]等用于图像识别的经典分类模型进行检测;文献[10]搭建了Meso-4和MesoInception-4,文献[11]搭建了ShallowNet对单帧图像进行检测;文献[12]指出在篡改检测问题中篡改痕迹比图像内容信息更加重要,据此构建了带有受约束卷积层的MISLnet,在提取浅层特征时抑制图像内容;文献[13]考虑视频中的时域信息,将卷积神经网络与序列神经网络结合,寻找假脸视频中连续帧特征的不一致性;文献[14]使用ResNet-50[8]网络模型对不同GAN合成图像和Deepfake假脸图像进行检测。
从以上研究给出的实验结果看,基于神经网络提取特征的算法往往能在库内检测中获得较高的准确率,但其主要缺陷在于跨库检测时性能均急剧下降,存在泛化性能不足的问题[3]。
本文针对换脸视频检测网络泛化性能不足的问题提出一种解决方案。与上述基于特征检测的方法不同,本文直接从图像像素出发,认为假脸篡改是一种特殊的拼接篡改问题,根据换脸主要对部分人脸区域进行操作而未修改其他图像内容的事实,提出了利用预测篡改区域和人脸框的交并比作为是否发生换脸的依据进行检测的方法。主要贡献包括:(1)利用图像分割网络逐像素地估计篡改区域;(2)解决盲检测时没有真实篡改区域作为参考信号的不足,提出一种计算人脸交并比(Face-Intersection of Union, Face-IoU)的新方法,作为是否发生换脸篡改的判断依据;(3)根据换脸视频的先验知识,构建信任机制,进一步改进Face-IoU的计算,得到Face-IoUP(Face-IoU with Penalty)。本文分别基于FCN-8s, FCN-32s[15]和DeepLabv3[16]3个分割网络实现检测算法,实验结果表明,本文检测模型不仅在库内具有很高的准确率,在跨库检测中,平均错误率与现有流行的方法相比也有显著下降。
本文算法整体流程如表1和表2的伪代码所示,包括网络训练和样本测试。网络训练部分利用训练集训练分割模型,利用验证集计算最小等错误率时的二值化阈值和判决阈值;样本测试部分对分帧预处理后的图像分割得到掩膜,平滑滤波去除掩膜噪点,二值化处理得到预测篡改区域的位置和面积信息,以待测视频的人脸区域为参考信号计算面部交并比,并根据换脸视频相关的先验知识建立信任机制改进面部交并比的计算,作为最终的判决依据,完成检测。下面对关键环节进行描述。
表1 网络训练
表2 样本测试
传统的图像拼接篡改通常是指将非同源图像不作任何修饰地粘贴到目标图像上的篡改技术[17]。一般而言,视频换脸和传统拼接篡改的共同点在于两者都使用非同源的图像对目标图像的部分区域进行替换,篡改方式类似;其不同点在于后者使用的人脸大都来自于真实图像,而前者所使用的人脸可能是通过计算机图形学技术或深度网络生成。虽然人眼难以区分这两类图像,但这两类图像的内部结构和纹理特征存在差异,其在颜色空间特征[18]和共生矩阵[19]上有所反映。
鉴于此,本文将换脸篡改认为是一种特殊的拼接篡改问题,借助像素级的精确标签让神经网络按纹理差异区分真假脸像素点,从而将来源不同的两种图像分割成两类不同的图像区域。以语义分割FCN网络[15,20]为例,分割网络首先借助诸如VGG-16的分类网络作为骨架网络提取特征,然后利用跨层架构将来自浅且精细网络层的表象信息与来自深且粗糙网络层的语义信息相结合,即表征图像内部结构差异的低水平特征和表征边缘不连续的深层特征相结合,逐像素地对图像进行来源判断,最终输出值在0-1之间的篡改区域预测掩膜概率图 M,其尺寸与输入图像大小一致。
尽管分割网络能够预测出像素级的掩膜概率图,但由于提取特征过程中的卷积和池化处理使深层语义特征的感受野越来越大,在转化为特征表达图像时,跨层结构的上采样处理不可避免地引入噪声,造成预测掩膜概率图出现细小孤立的噪声点。为了获得准确的预测掩膜概率图,便于机器自动计算篡改面积,本文利用传统的图像去噪方法对概率图去噪,利用邻域信息抑制孤立噪声点,得到去噪后的预测掩膜概率图 MF。
去噪后的预测掩膜概率图需要进行二值化处理后才能逐像素计算面积。一种直接取二值化门限的方法是使其等于0.5,然而这种方法过于简单,无法获得最佳的分类效果。本文将二值化处理和篡改判断相结合,提出一种等错误率最小时获取最优二值化门限的方法,详见2.5节。设所得到的二值化阈值为 T1,当预测概率大于T1时置为1(即篡改),否则置为0(即未篡改)。具体公式为
本文在4个常见的深度假脸视频数据库上进行了实验,分别为TIMIT[2], FaceForensics++[1],FFW[3]和DFD[1]。对于TIMIT, FaceForensics++以及DFD数据库,类似文献[21],以按人划分的准则依7:2:1的比例将它们分为训练集、验证集和测试集。而对FFW数据库,由于只有假脸视频,正负样本不平衡而无法进行全面的评估,本文从Face-Forensics++数据库的测试集中随机选取了50段真实视频进行补充。
图1 待检测区域、实际篡改区域和预测篡改区域示例及其广义示意图
为了有效评估算法的学习能力和泛化能力,实验分库内检测和跨库检测两个内容。由于FFW数据库中补充了FaceForensics++数据库的视频,为了不影响性能评测,在跨库检测中不使用Face-Forensics++数据库训练的模型测试FFW数据库。
为了获得统一尺寸的输入图像,将各数据库中的视频分帧,逐帧使用Dlib库中卷积神经网络检测器定位人脸,以人脸框为中心取 k(k >1)倍于人脸大小的图像区域,采样至256×256的尺寸,作为输入图像。可以看到, k −1倍的图像区域(即人脸框周边区域)是背景。需要指出的是, k值太小,惩罚项的作用就小; k值太大,会包含一些远离人脸的像素,不符合换脸的事实。本文统一取经验值k =1.3,得到的输入图像即为图1(a)。
检测模型的性能与预测掩膜概率图的去噪程度以及落在人脸框外的预测像素的可信程度有直接关系。本小节在TIMIT,FaceForensics++和FFW这3个数据库中以FCN-8s和FCN-32s这两个分割网络为例,分别讨论去噪滤波器和惩罚因子的作用。
二值化预测掩膜上每一点处的{0,1}值都会影响交并比的计算,因此,必须对预测掩膜概率图进行去噪预处理,排除噪声点引起的交并比计算误差。表3列出未滤波和分别采用均值、中值以及高斯滤波这4种情形下检测模型的平均错误率。滤波器核的大小分别为3×3和5×5。
表3显示,总的来看,去噪处理有助于改善检测模型的性能。而在均值、中值和高斯这3种滤波器中,以核大小为3×3的高斯滤波器对降低检测模型的平均误差率效果最好。本文在不作特殊声明的场合均采用核大小为3×3的高斯滤波器。
本文信任机制是由式(3)分母中的惩罚项来体现,惩罚强度会直接影响分类的性能。本小节将惩罚因子 p分别设置为0(无惩罚),0.5, 1.0和1.5进行实验,结果如表4所示。
由表4可知,与不使用惩罚项相比,有惩罚时两个分割网络的库内和跨库检测错误率总的来说是有所降低,且在 p=1.0时效果最好。本文在不作特殊声明的场合均采用p =1.0。
换脸视频检测目前并无统一比较基准。为展现所提出检测模型的良好性能,本文以同类且较新的4个检测网络MesoInception-4[10],ShallowNetV1[11],MISLnet[12], ResNet-50[8,14]和Xception[9]作为对象进行比较。为了展示本文算法良好的可扩展性,除用前述FCN-8s和FCN-32s[15],还以DeepLabv3[16]分割网络作为分割手段,实现本文算法。在TIMIT,FaceForensices++和FFW数据库上的实验结果见表5和表6,可视化结果见图2,其中热力图红色部分表示篡改区域,蓝色部分表示未篡改区域。
表3 检测模型在不同滤波器下的平均错误率(%) p =1
表4 检测模型在不同惩罚因子下的平均错误率(%)
表5 以TIMIT数据库训练模型所得到的测试结果(%)
表6 以FaceForensics++数据库训练模型所得到的测试结果(%)
表5显示,基于FCN-8s和FCN-32s分割网络的检测模型在TIMIT的库内检测均有较好准确率,尤其是基于FCN-8s的模型,库内准确率位于次高,平均错误率位于并列最低;其在FaceForensics++中的平均错误率比目前文献算法降低超过12%,位于最低;其在FFW库中的平均错误率比目前文献算法降低超过12%,仅高于本文基于FCN-32s的模型,综合表现最佳,充分证明本文基于分割网络进行换脸视频检测的有效性和优良的泛化性能。基于DeepLabv3检测模型的良好表现也证明所提出方法具有很好的可扩展性,其在库内的等错误率只有1.1%。表6的结果趋势大致与表5的类似。
图2进一步给出基于FCN-8s分割网络的检测模型在FaceForensics++数据库上检测结果示例图。第1行为针对换脸视频的检测结果,从左到右依次为:假脸视频帧,输入图像的正确热力图,通过FaceForensics++库训练模型后得到的预测热力图(即库内检测热力图),通过TIMIT训练模型后得到的预测热力图(即跨库检测热力图)。可以看到,本文算法无论在库内还是库外都能够较精确地检测出输入图像的篡改区域。第2行为针对真实为篡改视频的检测结果,从左到右分别为:真脸视频帧,输入图像的正确热力图,通过FaceForensics++库训练模型后得到的库内检测热力图,通过TIMIT训练模型后得到的跨库检测热力图。
图2结果显示,本文算法无论在库内还是库外都能正确判断输入图像中的篡改区域,证明该算法的有效性。尤其在假脸图像中,能够有效区分篡改区域和真实区域,通过像素级的精确标签让网络学习到纹理像素点之间的差异而降低对内容信息的依赖,进而降低了在单一数据库上训练造成的过拟合现象,提升了跨库测试的性能。
针对由演员表演为素材,假脸合成质量普遍较高的DFD数据库,表7给出了本文基于FCN-8s和FCN-32s两个分割网络的部分测试结果。DFD数据库中包括无压缩库(C0)、压缩比为23(C23)的高质量视频库,以及压缩比为40(C40)的低质量视频库。检测模型在C23视频库上训练,得到的库内检测结果以及在TIMIT, FaceForensics++(C0和C23)和FFW这3个数据库上的跨库检测结果。可以看到本文算法有相当突出的表现,库内检测的平均错误率低于2%,且跨库检测的平均错误率比上述跨库检测的结果更低。
在实际检测中存在多人脸情况,由于本文算法逐像素判断当前像素是落在真脸区域还是假脸区域,因此检测过程并不受人脸数目的影响,只与标签图像有关。限于文章篇幅,此处仅给出FFW测试库中(4hMa-gKljhw_0.000_6.773.avi)的检测结果,该段视频中的右边人脸为假脸。图3显示,可以看到本文算法同样可以有效检测出假脸。
本小节讨论各算法计算复杂度,按浮点运算次数(FLOPs)和检测时长(Time)进行对比。检测时长包括了对100段10 s视频的逐帧检测,每一视频检测过程均包括“分帧-人脸定位-人脸检测-结果判决”4个步骤。结果如表8所示。由于分割网络是对每个像素进行判断,其网络结构与其他分类器相比增加了上采样部分,因此FLOPs和运行总时长均有所增加。以FCN-8s实现的本算法为例,测试一个10 s视频的平均时长为37.8 s,与最快的MesoInception-4相比,时长增加了约0.5倍,应在可接受的范围之内。通过牺牲少量时长来提高检测精度在很多应用场景下都是有意义的。
图2 FaceForensics++数据库视频检测结果示例图
表7 通过DFD的C23数据库训练模型所得到的平均错误率(%)
图3 同时含有真脸和假脸的检测热力图示例
表8 算法复杂度与时间对比
目前流行的假脸视频检测算法大多利用深度网络提取特征进行,这类方法跨库性能欠佳的主要原因是深度网络容易学到过多的库内特征,导致泛化性能不好。与文献中的方法不同,本文将假脸视频检测视为一个特殊的拼接篡改检测问题,利用图像分割网络逐像素对篡改区域进行预测,降低不同训练数据库的影响,提高检测算法的泛化性能。此外,利用去噪、优化的二值化门限和根据换脸先验知识改进的人脸交并比等措施提高检测的准确性。在多个流行换脸视频测试库上的实验结果表明,与其他同类算法相比,本文方法在库内检测保持高准确率的同时大幅降低了跨库检测平均错误率,算法具有很好的通用性。本文方法在不同分割网络的实现均能获得优良的假脸视频检测性能,说明本文提高泛化性能的思想具有一般性。将来的改进方向包括解决侧脸人脸框的确定、不同尺寸人脸的精确检测以及优化分割网络模型等方面。