基于深度对齐网络的生成对抗网络伪造人脸检测
2021-07-30汤桂花毛秀青戴乐育胡永进
汤桂花,孙 磊,毛秀青,戴乐育,胡永进
(信息工程大学,郑州 450001)
0 引言
传统图像伪造技术通常利用图像编辑软件(如Adobe Photoshop、Illustrate 和GIMP 等)通过复制粘贴,对真实图像进行拼接,有针对性地改变图像内容,伪造图像。随着人工智能、云计算、大数据技术的快速发展,以及高性能计算硬件的不断更新迭代,通过训练大量数据伪造出高质量图像的深度伪造技术成为主流。Goodfellow 等[1]于2014 年提出的生成对抗网络(Generative Adversarial Network,GAN)提供了一种基于零和博弈的高质量图像伪造方法,能够直接由随机噪声通过深度神经网络生成图像。原始GAN 经过不断改进发展,已经可以生成高分辨率的逼真图像。PGGAN(Progressive Growing of GAN)[2]是伪造高分辨率人脸图像的重大突破,通过渐进增长的训练方式,可以在CelebA-hq数据集的训练下生成1 024×1 024 的高分辨率人脸图像,是目前伪造图像质量最高的模型之一。STGAN(Style-Transfer GAN)[3-4]在PGGAN 模型的基础上作了进一步改进。然而,STGAN 解决的是人脸之间的风格转换问题,在已有人脸图像的基础上进行伪造,并非直接由随机噪声生成图像,与以往GAN 图像伪造模型有着本质的不同,因此本文选择PGGAN 伪造人脸图像作为评估数据集,能更好地代表目前GAN伪造技术的水平和揭示GAN伪造图像的本质差异。
作为一项新颖的科技创新,深度伪造技术在带来全新产业价值的同时也给个人和社会带来了相应的风险和挑战。近年来,日益开放的网络环境为伪造信息的传播创造了理想空间,英、法、美等国相继出现了利用深度伪造技术制造假新闻诱导舆论、欺骗公众甚至进行间谍活动的事件,引起人们对伦理、法律和安全方面的重大担忧。传统的伪造图像检测技术通常对图像篡改操作中所引入的特有效应进行分析,并定位出篡改区域。GAN 伪造图像与传统伪造图像相比,不存在图像拼接以后留下的痕迹,所以传统的伪造图像检测技术无法有效甄别GAN 伪造图像。目前针对GAN 伪造图像也提出了一些有效的检测方法。Li等[5]通过分析H、S、V 和Cb、Cr、Y 通道中真伪图像颜色分量的差异,提出了一种彩色图像统计特征集来检测GAN伪造图像;McCloskey等[6]对一种常用GAN模型中的生成网络结构进行分析发现,GAN 伪造图像的饱和像素频率和颜色分量统计关系与相机拍摄的图像不同,利用这两个线索作者设计了针对GAN 伪造图像的检测算法;Nataraj等[7]则通过提取像素域中三个颜色通道上的共现矩阵表示颜色分量间的相关性,并结合深度学习的方法来检测GAN 伪造图像。然而面对图像合成后的后处理,这些检测方法的鲁棒性较差,如常见的压缩、添加噪声、模糊等会使图像的像素值产生变化,像素间的相关性会遭到破坏,GAN伪造图像和真实图像间的上述差异就会被大大降低,影响检测效果。Tariq等[8]提出了基于深度卷积神经网络(Convolutional Neural Network,CNN)的分类器来检测GAN伪造的人脸图像,虽然也取得了良好的分类效果,但未从GAN 伪造图像本身的特性进行分析,训练好的模型面对其他GAN 伪造图像的分类效果不稳定,并且需要大量数据和较高的硬件条件;Yang等[9]通过对一定量的GAN伪造人脸图像观察发现,基于GAN的人脸伪造算法可以生成具有高度真实细节的人脸器官,但对人脸中这些器官的位置却没有明确的约束,导致即使是使用先进的PGGAN 生成的人脸图像也存在面部不协调的问题,如图1 所示。可以观察到图1 的前两张人脸轮廓均存在不同程度的扭曲,第三张人脸的右眼呈现不自然的闭合。该文进一步利用Dlib 函数库中集成的人脸检测器提取了68 个面部关键点位置,并将位置数据作为特征向量对真伪人脸进行分类,在正脸图像中取得了较好的效果;但是在有角度及遮挡情况,由于定位偏差人为引入了面部不协调,真实人脸就容易被误判为GAN伪造的不协调伪造人脸,导致判真率较低。
图1 PGGAN生成的不协调人脸示例Fig.1 Examples of dissonant faces synthesized by PGGAN
针对真实人脸的误判问题,本文提出了一种基于深度对齐网络(Deep Alignment Network,DAN)[10]的GAN 伪造人脸图像检测方法。基于DAN 构建的面部关键点提取网络通过输入人脸的全局信息避免进行关键点定位时被局部信息误导,提升了面部关键点定位准确度,能有效改善在有角度及遮挡情况下真实人脸误判为伪造人脸的问题。本文方法在PGGAN 伪造的高分辨率人脸数据集和CelebA(CelebFaces Attributes Dataset)[11]人脸数据集上进行了实验,结果表明该方法能够有效提高有角度及遮挡情况下真实人脸的检测正确率。
1 基于DAN的GAN伪造人脸图像检测方法
1.1 本文检测方法框架
本文在复现文献[9]的工作并对误判的真实人脸图像进行关键点定位后分析发现,误判人脸的关键点定位均出现了较大偏差。图2 为误判人脸的定位情况,在有角度和遮挡情况下,面部器官及轮廓定位出现较大偏差,人为引入了面部不对称、不协调,形成如图1 所示的PGGAN 不协调人脸,从而导致真实人脸被判定为GAN 伪造的不协调人脸,产生真实人脸误判情况。Dlib 提取68 个面部关键点是基于ERT(Ensemble of Regression Trees)算法[12],即基于梯度提高学习的回归树方法。该算法以标准人脸关键点作为初始值,每次从关键点附近进行特征采样取值,通过迭代来修正关键点的位置,并且各特征点是独立的回归,没有利用相互之间的相对位置关系。而这种仅基于局部区域进行关键点定位的方法,缺少整体信息,在面部存在遮挡和旋转角度的情况下容易被局部信息误导,导致定位出现偏差。这种由于定位偏差引入的面部不协调进一步造成在真伪人脸分类中真实人脸的误判问题。
图2 误判人脸的关键点定位情况Fig.2 Location of landmarks of misjudged faces
因此针对文献[9]中提出的GAN 伪造人脸检测方法在真实人脸部分遮挡及有角度情况下存在误判的问题,本文方法通过提高面部关键点的定位准确度,降低遮挡及有角度情况下的面部关键点定位偏差,改善真实人脸误判问题,提升判真率。
本文选择68 个面部关键点对真伪人脸进行定位,利用关键点位置分类暴露GAN 伪造人脸图像存在的面部不协调问题。68 个关键点分为内部关键点和轮廓关键点,内部关键点包含眉毛、眼睛、鼻子、嘴巴等共计51 个关键点,轮廓关键点包含17 个关键点,可以较为精确地定位面部器官及轮廓。检测方法的整体流程如图3 所示,所用人脸图像均来自于公开数据集。
图3 GAN伪造人脸图像检测方法整体流程Fig.3 Flowchart of GAN-synthesized face detection method
首先基于DAN 构建面部关键点提取网络,并利用标准人脸对齐数据集对其进行训练,保存模型。然后利用面部关键点提取模型对人脸图像进行定位并输出关键点位置信息:为了减少冗余信息的同时最大化保持数据的内在信息,选择主成分分析(Principal Component Analysis,PCA)[13]降维方法将136 维的真伪人脸图像面部关键点特征映射到三维空间,以便进行下一步分类。最后,利用支持向量机(Support Vector Machine,SVM)构建一个分类器以区分GAN 伪造的和真实的人脸,将处理后的数据作为特征向量输入分类系统进行训练测试并输出分类结果。
1.2 面部关键点提取网络
本文基于DAN 构建真伪人脸图像的面部关键点提取网络,其中前馈神经网络架构如表1 所示,Conv 表示卷积层。在网络的第三、四层,受Inception-v3[14]的启发,将原网络的3×3 卷积分解为1×3 和3×1 卷积,提高网络非线性的同时降低网络的参数和计算量;采用全局均值池化(Global average pooling,Avgpool)代替全连接层(Fully Connected layer,FC),减少网络参数,避免过拟合。除了最大池化层和输出层之外,每一层都进行批处理规范化,并使用线性整流函数(Rectified Linear Unit,ReLU)进行激活,最后一层输出当前的关键点位置估计。
表1 前馈神经网络架构Tab.1 Structure of feed-forward neural network
面部关键点位置信息获取过程介绍如下:
1)输入人脸图像I,经过第一级CNN 获得偏移估计ΔS1,加上初始关键点位置估计,得到该阶段的关键点位置估计S1;
2)计算S0相对于S1的仿射矩阵T2,T2用来将输入图像归一化到标准形状,得到矫正后的人脸图像T2(I)和关键点位置T2(S1),并根据前一阶段产生的关键点位置估计值生成关键点热度图Ht,本阶段t=2,计算公式如下:
其中:si为Tt(St-1)第i个关键点位置,(x,y)为像素点位置,利用关键点热图,卷积神经网络可以推断出前一阶段估计的关键点位置。然后将T2(I)、H2以及第一级全连接层的输出特征图F2作为第二级CNN 的输入,得到ΔS2,进一步利用ΔS2和T2(S1)经过标志点变换获得该阶段的关键点位置估计S2,计算公式为:
3)计算误差:
其中:S*为真实的关键点位置,dipd为S*的瞳孔距离。本文误差阈值设置为0.08,不满足则返回2)。
4)重复2)、3)阶段,直到训练完所有样本,保存训练好的面部关键点提取模型,批样本数为1 000,每批样本包含64 张人脸图像。
5)利用面部关键点提取模型对真伪人脸进行定位,并将68 个二维坐标转换为136 维特征向量,输出面部关键点位置集合。
在面部关键点的提取过程中,从初始关键点位置估计S0开始,生成的关键点热图Ht、特征图Ft和一个相似变换矩阵Tt在网络的各个连续阶段之间形成链接。与之前的局部区域图像定位关键点的方法相比,增加了人脸的全局信息,避免被局部的信息误导,对有角度和部分遮挡状态下的人脸可以获得更为准确的定位,从而得到更好的检测效果。
1.3 分类网络
SVM 是基于统计学学习理论提出的一种机器学习方法,主要思想是寻找一个超平面,使两组不同的高维数据尽可能地被超平面隔离,根据结构风险最小化原则,最大化分类间隔构建最优分类超平面来提高分类器的泛化能力,在统计样本量较少的情况下,也能获得良好效果。SVM 与其他学习机相比,具有良好的泛化能力,在处理分类中的非线性、小样本、高维数等问题表现良好,适用于本文的分类工作。在应用SVM对真伪图像面部关键点进行分类前,先利用PCA 对提取的真伪图像面部关键点位置数据进行降维处理,将136 维的坐标数据转换为3 维向量,以便利用SVM 进行分类训练。PCA 是一种使用广泛的数据分析方法,用于提取数据的主要特征分量。本文的SVM 分类器应用LibSVM[15]开源模式识别软件包实现。SVM分类器的核函数和参数设置对分类效果有很大影响,尤其是核函数参数γ及分类惩罚因子C。本文采用LibSVM 提供的径向基函数(Radial Basis Function,RBF)内核训练SVM分类系统:
选用网格搜索法对参数进行调优,即对每个参数设置多个值,然后进行交叉验证尝试各种可能的(C,γ)组合,找出使交叉验证精确度最高的(C,γ)组合作为实际分类中的参数值。搜索范围设置为C:[2-2,2-1,20,21,22],γ:[10-4,10-3,10-2,10-1,100],通过五折交叉验证(5-fold cross validation),选择C=22,γ=10-2。同时考虑数据集中真伪人脸图像的数量分布不均衡,本文通过调整训练数据集中样本损失与类频率成反比的方法来平衡两个类的损失。
2 实验与结果分析
2.1 实验准备
实验配置如下:中央处理器(Central Processing Unit,CPU):Inter Core i7-9750H,主频为2.60 GHz,内存为16 GB;图像处理器(Graphic Processing Unit,GPU):GeForce RTX 2070MQ,显存为8 GB。
实验中用到了三种数据集:300W、CelebA 和PGGAN。300W 是一个标准人脸对齐数据集,由Labeled Face Parts in the Wild(LFPW)[16]和Annotated Faces Landmarks in the Wild(AFW)[17]等多个数据集综合而成,标注了68个关键点和瞳孔坐标,包含室内与室外两种情况下的人脸图像,整体难度系数较高。将300W 作为训练集对基于DAN 的面部关键点获取网络进行训练,获得的面部关键点提取模型具有较好的泛化能力。
CelebA 包含了202 599 张的固定分辨率为216×178 像素的真实人脸图像,广泛用于人脸相关的计算机视觉训练任务。
PGGAN 数据集由10 000 张利用PGGAN 技术伪造的1 024×1 024像素的人脸图像组成。
有角度及遮挡人脸数据集(以下简称非正脸数据集)来源于CelebA 及PGGAN 伪造的人脸图像。首先筛选出CelebA 中有角度及遮挡人脸图像,然后对剩余图像随机选择3 000张进行手动遮挡,最后将这两个部分和PGGAN 数据集进行合并,如图4所示;正脸数据集则由PGGAN 和CelebA 两个数据集直接合并而成,为了与非正脸数据集区分,将其简称为正脸数据集。
图4 有角度及遮挡人脸数据集的获取Fig.4 Acquisition of faces with angles and occlusion
2.2 面部关键点提取网络准确度测试
为了验证本文面部关键点提取网络在有角度及遮挡情况下具有更高的定位准确度,使用Dlib 函数库中的人脸检测器(以下简称为Dlib)与本文网络分别提取有角度及遮挡人脸图像的68 个面部关键点,并计算误差进行对比分析,其中人脸图像全部来自于用标准人脸数据集300W。
将本文网络和Dlib提取的面部关键点位置与标准值求取误差并作曲线,结果如图5 所示。可以看出,同样的数据,整体上本文网络的误差曲线要低于Dlib,其中部分人脸关键点定位情况对比如图6 所示。在有角度及遮挡的情况下,本文网络表现出更好的性能,而Dlib则容易被误导致使定位不准。定位不准意味着人为引入了面部不对称、不协调,从而影响对真伪人脸特别是真实人脸的检测效果。进一步根据如下公式计算均方根误差(Root Mean Square Error,RMSE):
图5 本文网络与Dlib误差曲线Fig.5 Error curves of proposed network and Dlib
图6 Dlib与本文网络对遮挡人脸的关键点定位情况Fig.6 Landmark location of faces with occlusion by Dlib and proposed network
其中:yi表示测试值,i为真实值,共有m组数据。Dlib的均方根误差为77.78,远高于本文网络的18.21,RMSE 越小,误差越低,效果越好,说明本文构建的人脸检测网络对有角度及遮挡人脸的关键点提取准确率更高。
2.3 GAN伪造人脸检测方法实验评估
本节主要对本文提出的伪造人脸图像检测方法进行整体实验评估,为了避免阈值的选取影响分类结果,实验选择受试者工作特征(Receiver Operating Characteristic,ROC)曲线下面积(Area Under ROC,AUC)和精确率召回率(Precision Recall,PR)曲线下面积(Average Precision,AP)为性能指标。ROC 的X轴为伪阳性率(False Positive Rate,FPR),表示SVM 分类器判断为真实人脸中实际为GAN 伪造人脸占所有GAN 伪造人脸的比例;Y轴为真阳性率(True Positive Rate,TPR),表示分类模型判断为真实人脸中实际为真实人脸占所有真实人脸的比例。PR曲线的Y轴表示精确率(Precision),X轴表示召回率(Recall)。
首先利用300W 数据集对面部关键点信息提取网络进行训练,保存模型;接着使用训练好的模型提取正脸数据集和有角度及遮挡人脸数据集的面部关键点。为了对比PCA 降维处理对实验结果的影响,对关键点数据分别做以下两种处理:1)利用PCA 对136 维的坐标数据进行降维处理转换为三维特征向量,以便进行分类;2)将每组数据展开为一维数组。然后将处理后的正脸数据集输入SVM 分类器进行训练,输出训练结果,并保存分类模型;最后输入非正脸数据集得到测试结果。图7 和图8 分别显示了本方法与其他基于深度神经网络的检测方法在正脸数据集和非正脸数据集上的ROC 曲线和PR 曲线,量化结果如表2 所示,包括在相同数据集上使用不同的分类方法和人脸检测网络的综合性能对比。
表2 不同检测方法的综合性能对比Tab.2 Overall performance comparison of different detection methods
图7 不同检测方法的ROC曲线Fig.7 ROC curves of different detection methods
图8 不同检测方法的PR曲线Fig.8 PR curves of different detection methods
实验结果表明,在正脸和非正脸情况下,本文方法对真伪人脸的分类效果均优于其他检测方法,包括一些基于深度神经网络的方法(如VGG19 和XceptionNet),并且这两种基于深度神经网络的方法还需要较大的参数量和更高的硬件要求。在测试集为有角度和遮挡人脸的情况下,各检测方法的AUC值和AP 都出现了不同程度的下降,但本文方法的AUC 值还是达到了89.76%,AP 也保持在96.38%,明显优于其他检测方法。虽然由于面部关键点提取网络的参数个数较多导致本文方法参数量大于文献[9]方法的参数量,但还是远小于另外两种基于深度神经网络方法的参数量;并且面部关键点提取网络可以单独进行训练,不影响检测效果。当分类方法相同时,未经PCA 处理的AUC 值均略有下降,并且同样对302 599张真伪人脸进行分类,未经PCA 处理时运行耗时增加5 945 ms,存储数据也需要更大空间,因此在图像较多时选择PCA对数据进行处理更优。同样进行PCA 处理,DAN 进行改进后的AUC 值分别提升了1.91%和2.92%,并且有更小的参数量和计算量,性能优于原网络。
综上,本文提出的GAN 伪造人脸图像检测方法有三个优点:1)面部关键点位置与图像大小无关,在训练和使用所获得的分类方法时不需要重新对图像进行缩放,可以有效避免由于缩放操作而导致的影响;2)基于该特征向量的分类方法对硬件需求不高,参数量小,计算成本较低;3)该方法旨在提升检测正确率,在正脸和有角度和遮挡人脸图像上都表现出了更好的性能,并不只适用于某一类人脸图像。
3 结语
针对现有GAN 伪造图像检测方法对于有角度及遮挡情况下的人脸考虑较少,存在真实人脸误判问题,本文提出基于DAN 来提取68 个面部关键点,获得更为准确的面部位置信息,进而通过SVM 对面部关键点特征进行分类甄别真伪人脸图像,降低了有角度及遮挡人脸的误判率。最后实验验证了本文方法相比其他检测方法在正脸和有角度及遮挡人脸上都展现出了更好的性能,能有效提高GAN 伪造人脸图像的检测正确率。由于GAN 模型缺乏对不同人脸部件配置的约束这一问题目前还未得到彻底修正,因此,基于面部关键点的方法还可以进行进一步研究。例如,在真实人脸面部表情强烈扭曲的情况下如何避免误判,以及进一步提升对伪造人脸图像的甄别效果,下一步可以考虑通过获取面部的三维空间位置来进行分类,暴露三维空间中GAN 伪造人脸的缺陷来提高检测正确率。