一、论文信息:
- 题目:Face X-ray for More General Face Forgery Detection
- 作者团队:
- 会议:CVPR 2020
二、背景与创新
背景:
- 传统的 AI 换脸一般分三步走:第一步检测目标图像的面部区域;第二步,利用 AI 换脸算法生成新的面部及一部分周围区域;第三步,将生成的新面部融合到原图像中,替换原图像中的面部。
- 此前的换脸鉴别方法主要从第二步(生成)入手,通过检测换脸过程中产生的瑕疵,确定图像的真伪,但是,这一瑕疵并不唯一确定,不同的换脸算法合成时造成的瑕疵大相径庭,所以鉴别方法泛化性较低。
创新:
- 作者想要增加检测技术的泛化能力,对于训练中未使用新技术(训练中没见过的或者未来有人开发的新技术)伪造的人脸也能有很好的检测能力。"Face X-Ray技术像医院的X光一样。它能鉴别图片真假,不但能告诉你图片有没有进行过换脸操作,而且还能告诉你换脸操作的边界在什么地方。"(微软亚洲研究院常务副院长郭百宁)能泛化到未知换脸算法、能提供可解释的换脸边界。
Face X-Ray 会识别换脸图像融合的边界,如果是真实图像,则不反馈边界。
上图展示了图像噪声分析与误差水平分析,我们可以发现,真实图像展现出一致地噪声模式,而换脸明显会有所不同。
三、Face X-ray如何学换脸边界
与现有方法不同的是,Face X-Ray不需要事先知道操作方法或人工监督,而是生成灰度图像,显示给定的输入图像是否可以分解为来自不同来源的两个图像的混合。作者表示,如果我们在生成换脸时同时生成它的边界,那么模型就能自行学习到换脸后的图像与合成脸的边界判别知识。沿着这种思路,Face X-Ray 只需要采用真实人脸,就能完成训练。具体来说,可以通过三个步骤生成 Face X-Ray 图像:
给定一张真实图像,找到另一张真实图像以替换掉前一张真实图像需要改变的地方;
生成一个 Mask 以界定修改的区域;
融合背景与目标图像。
给定真实人脸 I_B,找另一张真实人脸 I_F 以表示 I_B 的变换结果,与此同时生成换脸区域。
对于第一步,作者会使用人脸特征点作为匹配标准,从其余图像/视频中根据欧氏距离找一组样本(100个),然后从这组样本中随机找一张作为换脸后的脸部。
在第二步,初始的 Mask 定义为人脸特征点的凸包。因为面部变换并不一定总是集中在面部的主要部分,例如只改变嘴部位置。因此,作者采用随机形变以构建更合理与真实的 Mask 区域,且 Mask 区域最后会采用高斯模糊以平滑边缘。
第三步给定面部图像 I_F 与背景 Mask I_B,模型就能通过如下方程 1 获得融合结果I_M。
值得注意的是,作者针对 I_F 应用了色彩校正技术,以匹配背景图像的色彩风格。最终的 Mask 通过方程2提炼出融合的边界。
方程1如下所示,其中IM是融合后的图像,IF是前景图像,IB是背景图像,M是掩码(mask),M每个元素的取值是0~1,其越接近 1,融合图像就更多采用的是 I_F 部分的面部图像,即目标人脸图像;否则更多地采用I_B部分。
方程2如下所示,Mij取0.5时,Mij*(1-Mij)最大为0.25,为了让B归一化到0~1范围内,需要乘系数4。B就是face X-ray,它是一张显示前景与背景边界的图像,如果输入为伪造的图像,则B揭示混合边界,如果输入为真实图像,则B的所有像素都为零:(i,j表示像素位置的索引)
只有假脸的face X-ray才有轮廓,真脸的face X-ray 全黑
四、网络结构
作者采用基于卷积神经网络的框架,设生成训练数据集为I,B,C, 输入为图像I,B代表相应的Face X-ray,C是指定图像I是真实的还是混合的二进制标量。所提出的框架输出为Face X-ray,然后基于预测的面部X-ray,输出输入图像是真实的或混合的概率。
预测过程损失,Bˆ = NNb(I)是预测的face X-ray,NNb全卷积神经网络,cˆ = NNc(Bˆ) 全局平均池化层、全连接层和softmax激活层,损失函数为交叉熵损失函数 。
其中N是特征图Bˆ的像素总数。
分类的损失为:
总的损失为 L = λLb +Lc,其中 λ 是Lb 和 Lc的平衡损失权重. 实验中λ = 100。
五、实验
作者采用 FaceForensics++中的基准数据集作为训练与测试集,Xception 是之前最优的二分类换脸检测模型。其中FaceForensics 基准数据集有四种换脸算法合成,即 DeepFakes (DF)、Face2Face (F2F) 、 FaceSwap (FS) 和 NeuralTextures (NT),作者将它们拆分为四种训练与测试集,并最后在 FaceForensics++基准上做测试。
此外,因为 Face X-Ray 这种只需真实图像的模型非常容易获取数据,因此作者基于真实图像构建了一组混合图像,并表示为 BI。
如下图所示为主要的实验结果,例如第一行表示 Xception 在 DeepFakes 生成的数据集上做训练,然后在 DeepFakes 及其它模型生成的换脸图上做测试。
可以看出来,Xception 这类二分类模型的泛化效果并不好,如果它在 DeepFakes 数据集上做训练,那么在 FaceSwap 数据集上的效果就不好,甚至等价于随机猜测。这表明它们对换脸算法及数据集不具有鲁棒性,只要稍微修改一下,检测算法的效果就会降低很多。但我们可以看到 Face X-Ray 具有非常优秀的泛化性能,不论是什么样的算法生成的换脸图,它都有非常不错的效果,Face X-Ray稳健许多,即使不在对应的数据集上训练,不知道换脸算法是什么,它的准确率也都在 95% 以上。
六、总结
不足:
如果图像是整体合成,那么 Face X-Ray 是难以检测出来的;如果针对 Face X-Ray 训练一个新换脸模型,我们的算法也有可能被攻击到。Face X-Ray可能并不适用于对抗性图片和完全合成图像。