CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形

机器之心报道

作者:思源

计算机视觉顶会 CVPR 2020 接收结果已公布,6656 篇有效投稿中录取了 1470 篇论文,录取率约为 22%。本文介绍了微软亚洲研究院的研究者被 CVPR 2020 接收的一篇论文,其提出给换脸图像做「X-Ray」,检测图像是否是合成图片,并指出合成的边界,兼备了识别和解释两种特性。

换脸,是滥用深度学习的结果之一。之前我们对视频还是比较信服的,而自从 Deepfakes、FaceSwap 等应用开源以后,我们能自己生成各种换脸视频,网络上也开始流传层出不穷的「假视频」。

自 2019 年以来,我们采取了很多方式来封杀换脸应用,弗吉尼亚州 7 月将 Deepfake 滥用列入非法范畴、推特 11 月发布首个反 Deepfake 策略、谷歌 10 月发布 FaceForensics 基准数据集以反对假视频。

然而,尽管有了应对措施,换脸算法也在不断改进,我们很难有一个通用的算法能检测不同模型生成的合成图。

CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形_第1张图片

人脸变换中的两种模式,我们常见的是第二种,将目标人脸的各种姿态表情都迁移到原来的人脸中。

我们有不同的算法生成换脸图像,甚至以后会有越来越多的新算法生成更生动的换脸视频。但目前主流的检测方法是,在真实图像与伪造图像上训练一个二分类模型,希望它能判别出来。如果训练数据都是 Deepfakes 生成的,那么显然它不太能判断 FaceSwap 生成的伪造图像。

因此,我们需要从另一个角度,看看生成换脸图像都经过什么步骤,有没有可能找到一种通用方法。

换个角度,考虑轮廓

微软亚洲研究院常务副院长郭百宁表示:「现在我们提出了一个方法,它既不需要了解换脸后的图像数据,也不需要知道换脸算法,就能对图像做『X-Ray』,鉴别出是否换脸,以及指出换脸的边界。

论文地址:https://arxiv.org/pdf/1912.13458.pdf

所以新模型 Face X-Ray 具有两大属性:能泛化到未知换脸算法、能提供可解释的换脸边界。要获得这样的优良属性,诀窍就藏在换脸算法的一般过程中。如下所示,大多数换脸算法可以分为检测、修改以及融合三部分。与之前的研究不同,Face X-Ray 希望检测第三阶段产生的误差。

CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形_第2张图片

换脸模型的典型过程,之前的研究都在检测换脸带来的误差,而 Face X-Ray 希望检测到融合的边界。

读者可能会疑惑,DL 真的能识别融合过程中的缺陷吗?郭百宁博士表示,在图像采集过程中,每一张图像都有其独特的特征,它们可能来源于拍摄硬件,或者处理软件。只要不是一体生成的图像,它们在融合的过程中都会留下线索,这些线索人眼看不到,但深度学习能捕获。

下图展示了图像噪声分析与误差水平分析,我们可以发现,真实图像展现出一致地噪声模式,而换脸明显会有所不同。

CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形_第3张图片

其中 a 为真脸,b 为合成图像,中间列为噪声分析,右侧一列是误差水平分析。

郭百宁博士说:「一般我们在探索、做研究的时候都要提出一些大胆的想法,另一方面我们也在思考这个想法到底靠不靠谱,有没有证据来支持它。而噪声分析与误差水平分析,正好就是 Face X-Ray 具有优良效果的证据。

这些观察都表明,模型确实有潜力发现融合过程中产生的缺陷。现在,我们可以想象一下,对于每一张输入图像,Face X-Ray 会计算一张灰度图,如果模型检测出换脸的痕迹,它就会在灰度图上画出边界,如果模型检测不出痕迹,那么灰度图就是空的。

CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形_第4张图片

Face X-Ray 会识别换脸图像融合的边界,如果是真实图像,则不反馈边界。

怎样学习换脸边界?

基本思想已经很明确了,那么具体怎样做才能使 Face X-Ray 学习各种换脸边界,而不用管换脸模型与数据集到底是什么?在论文中,研究者表示,如果我们在生成换脸时同时生成它的边界,那么使用换脸后的图像与合成脸的边界,模型就能自行学习到判别知识。

沿着这种思路,Face X-Ray 只需要采用真实人脸,就能完成训练。具体来说,研究者通过三个步骤生成 Face X-Ray 图像:

  • 给定一张真实图像,找到另一张真实图像以替换掉前一张真实图像需要改变的地方;

  • 生成一个 Mask 以界定修改的区域;

  • 融合背景与目标图像。

整个训练样本的生成过程可以表示为:

CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形_第5张图片

给定真实人脸 I_B,找另一张真实人脸 I_F 以表示 I_B 的变换结果,与此同时生成换脸区域。

对于第一步,研究者会使用人脸特征点作为匹配标准,从其余图像/视频中根据欧氏距离找一组样本,然后从这组样本中随机找一张作为换脸后的「脸部」。

在第二步,初始的 Mask 定义为人脸特征点的凸包。因为面部变换并不一定总是集中在面部的主要部分,例如只改变嘴部位置。因此,研究者采用随机形变以构建更合理与真实的 Mask 区域,且 Mask 区域最后会采用高斯模糊以平滑边缘。

第三步给定面部图像 I_F 与背景 Mask I_B,模型就能通过如下方程 1 获得融合结果。而最终的 Mask 也能通过另一个方程提炼出融合的边界。值得注意的是,研究者针对 I_F 应用了色彩校正技术,以匹配背景图像的色彩风格。

如下方程 1 所示,M 为灰度值从 0 到 1 的 Mask,其越接近 1,融合图像就更多采用的是 I_F 部分的面部图像,即目标人脸图像。

CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形_第6张图片

泛化优异的 Face X-Ray

在论文的实验部分,我们可以看到 Face X-Ray 具有非常优秀的泛化性能,不论是什么样的算法生成的换脸图,它都有非常不错的效果。

下面的实验图表很明显地证实了这一点,研究者采用 FaceForensics++中的基准数据集作为训练与测试集,Xception 是之前最优的二分类换脸检测模型。

因为 FaceForensics 基准数据集有四种换脸算法合成,即 DeepFakes (DF)、Face2Face (F2F) 、 FaceSwap (FS) 和 NeuralTextures (NT),研究者将它们拆分为四种训练与测试集,并最后在 FaceForensics++基准上做测试。

此外,因为 Face X-Ray 这种只需真实图像的模型非常容易获取数据,因此研究者基于真实图像构建了一组混合图像,并表示为 BI。

如下所示为主要的实验结果,例如第一行表示 Xception 在 DeepFakes 生成的数据集上做训练,然后在 DeepFakes 及其它模型生成的换脸图上做测试。

CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形_第7张图片

可以看出来,Xception 这类二分类模型的泛化效果并不好,如果它在 DeepFakes 数据集上做训练,那么在 FaceSwap 数据集上的效果就不好,甚至等价于随机猜测。这表明它们对换脸算法及数据集不具有鲁棒性,只要稍微修改一下,检测算法的效果就会降低很多。

相比而言,Face X-Ray 就稳健很多,即使不在对应的数据集上训练,不知道换脸算法是什么,它的准确率也都在 95% 以上。

当然,并没有完美的换脸检测模型。微软亚洲研究院高级研究员陈栋博士说:「如果图像是整体合成,那么 Face X-Ray 是难以检测出来的;如果针对 Face X-Ray 训练一个新换脸模型,我们的算法也有可能被攻击到。换脸与换脸检测是矛与盾的关系,两者相互促进与发展。

文为机器之心报道,转载请联系本公众号获得授权

你可能感兴趣的:(CVPR 2020 | 给Deepfake 假脸做 X-Ray,新模型把换脸图打回原形)