4. Methods
- 训练一个检测面部操作的系统。train a system to detect facial manipulations.
- 两个模型,全局分类模型(预测脸是否被扭曲)局部扭曲预测器模型(识别哪里发生了操作修改并进行反操作恢复)
4.1 真假分类
首先解决图片是否被修改的问题?
我们训练了一个二分类器,通过扩张剩余网络变体(DRN-C-26)。[39].
A6. 实现与训练细节
流场一致性面具
通过使用PWC-Net来计算the flow
Xorig------》Xmod 表示为 Umo
Xmod------》Xorig 表示为 Uom
通过训练高低分辨率模型来研究分辨率的影响,高分辨率模型能保留低层次细节,对识别假图(诸如重采样人造品的例子)可能有用。
另一方面,低分辨率模型可能包含足够的细节来识别假图并且能被更高效地训练。我们尝试低分辨率和高分辨率模型,图像较短的一侧分别被调整为400像素和700像素。在训练过程中,图像被随机左右翻转,裁剪为分别为384像素和640像素。
当我们在测试设置中控制后处理管道时,真实的用例可能包含意外的后处理。取证算法通常对这样的操作[28]敏感。为了增强鲁棒性,我们考虑更积极的数据增强,包括调整大小的方法(双三次和双线性双三次python实现),JPEG压缩,亮度,对比度和饱和度。我们通过实验发现,这增加了测试时扰动的鲁棒性,即使它们不在增广集中。
4.2. Predicting what moved where
在检测到一张脸是否被修改过之后,观众自然会问图像是如何被编辑的:图像的哪些部分被扭曲了,图像在被修改之前是什么样子的?要做到这一点,我们预测一个光学流场Uˆ∈RH×W×2从原始图像Xorig∈RH W××3到扭曲形象X,然后使用它来尝试“反向”操作和恢复原始图像。
我们训练一个流预测模型F来预测逐像素级的翘曲场,为每个训练示例测量它与近似的“地面真”流场U的距离(计算估算原始流之间的光流)
光流场损失
M: To remove erroneous flow values, we discard pixels that fail a forward-backward consistency test, resulting in binary mask M ∈ RH×W×1.(二进制掩码)
X : is a manipulated image
U : its “ground-truth” flow
: the Hadamard product,逐像素级
Lepe:a measure of flow error。
光流场变化损失
we encourage the flow to be smooth by minimizing a multiscale loss on the flow gradients:
图像内容的损失
只应用重构损失导致低纹理区域的歧义,这将导致伪影相反,组合三种损失
Ltotal = λeLepe + λmLms + λrLrec.
架构:
我们使用扩张剩余网络变量(DRN-C-26)[39],在ImageNet[32]数据集上预先训练,作为我们用于局部预测的基础网络。DRN架构最初是为语义分割而设计的,我们发现它在翘曲预测任务中工作得很好。
我们发现,直接训练流量回归网络的性能很差。我们首先将问题重构为回归问题中常用的多叉分类(如着色[22,40]、表面法线预测[36]和生成式建模[27]),然后用回归损失进行微调。我们使用PWC-Net[33]计算地真流场。训练程序的细节见附录A6。
5. Experiments
评估一种用的是人工ps的,一种用的是脚本ps的
首先研究验证集上修改的图像是否可以由全局分类器检测到。 通过扰动图像来测试分类器的鲁棒性,并测量其对专业艺术家操作的泛化能力
几种变体。
(1)低分辨率的增强型:
一个较低分辨率的模型(小边400像素)。
与数据增强(压缩、调整大小的方法。
和光度变化)和整个训练集(包括低分辨率图像)。(2)低分辨率无增强。我们通过省略上述的增强方法来测试.注意,所有的模型仍然包括随机翻转和裁剪