CNN 生成的图像与真实图像很难分辨吗?来自 Adobe 和加州伯克利的研究者发现,仅仅在一种 CNN 生成的图像上进行训练的分类器,也可以检测许多其他模型生成的结果。或许,GAN 和 Deepfake 在「瞒天过海」上也不是万能的。
近来,诸如生成对抗网络(GAN)的深度图像生成技术快速发展,引发了公众的广泛关注和兴趣,但这也使人们担心,我们会逐渐走入一个无法分辨图像真实与否的世界。这种担忧尤其体现在一些特定的图像操纵技术上,例如用来进行面部风格替换的「Deepfake」,以及逼真的人像生成。其实这些方法仅仅是一种广泛应用技术中的两个实例:基于卷积神经网络(CNN)的图像生成。来自 Adobe 和加州伯克利的研究人员在论文预印本平台 arXiv 上传了《CNN-generated images are surprisingly easy to spot... for now》,他们提出,即使是在一种 CNN 生成的图像所训练的分类器,也能够跨数据集、网络架构和训练任务,展现出惊人的泛化能力。这篇论文目前已被 CVPR 2020 接收,代码和模型也已公布。在这项工作中,研究者希望找到一种用于检测 CNN 生成图像的通用图像伪造检测方法。检测图像是否由某种特定技术生成是相对简单的,只需在由真实图像和该技术生成的图像组成的数据集上训练一个分类器即可。但现有的很多方法的检测效果很可能会与图像生成训练中使用的数据集(如人脸数据集)紧密相关,并且由于数据集偏差的存在,一些方法在新数据(例如汽车)测试时可能泛化性较差。更糟糕的是,随着图像生成方法的发展,或是用于训练的技术被淘汰,这种基于特定生成技术的检测器可能会很快失效。所以 CNN 生成的图像是否包含共同的伪造痕迹呢?例如某种可检测的 CNN 特征,这样就可以将分类器推广到整个生成方法族,而不只是针对单个生成方法。一般来说,泛化性确实一直是图像伪造检测领域的难题。例如,最近的一些工作 [48,13,41] 观察表明,对某一种 GAN 架构所生成图像进行训练的分类器在其他架构上进行测试时性能较差,并且在许多情况下,仅仅训练数据集的改变(而非架构或任务)就会导致泛化失败 [48]。这是有道理的,因为图像生成方法千差万别,它们使用的是不同的数据集、网络架构、损失函数和图像预处理方式。但研究者发现,与当前人们的理解相反,为检测 CNN 生成的图像所训练的分类器能够跨数据集、网络架构和训练任务,展现出惊人的泛化能力。在本文中,研究者遵循惯例并通过简单的方式训练分类器,使用单个 CNN 模型(使用 ProGAN,一种高性能的非条件式 GAN 模型)生成大量伪造图像,并训练一个二分类器来检测伪造图像,将模型使用的真实训练图像作为负例。此外,本文还提出了一个用于检测 CNN 生成图像的新数据集和评价指标,并通过实验分析了影响跨模型泛化性的因素。研究者创建了一个 CNN 生成图像的新数据集「ForenSynths」,该数据集由 11 种模型生成的图像组成,从非条件式的图像生成方法(如 StyleGAN)到超分辨率方法,以及 deepfake。每个模型都在适合其特定任务的不同图像数据集上进行训练。研究者还继续在论文撰写后发布的模型上评估检测器,发现它可以在最新的非条件式 GAN——StyleGAN2 实现开箱即用。表 1:生成模型。研究者评估了伪造检测分类器在多种基于 CNN 的图像生成方法上的效果。
鉴于数据集中的非条件式 GAN 模型可以生成任意数量的图像,研究者选择了一种特定的模型 ProGAN 来训练检测器。使用单一模型进行训练,这个方法与现实世界中的检测问题极为相似,即训练时并不清楚需要泛化模型的多样性和数量。接着,研究者创建了一个仅由 ProGAN 生成的图像和真实图像组成的大规模数据集。使用 20 个模型,每个模型在不同的 LSUN 物体类别上进行训练,并生成 36K 的训练图像和 200 张验证图像,每个模型所用的真实和伪造的图像数量是相等的。一共有 720K 图像用于训练、4K 图像用于验证。这一实验的主要思想是在这个 ProGAN 数据集上训练一个判断「真实或伪造」的分类器,并评估该模型对其他 CNN 合成图像的泛化效果。在分类器的选择上,使用了经过 ImageNet 预训练的 ResNet-50,并在二分类的设定下进行训练。表 2:跨生成器的泛化结果。图中展示了 Zhang 等人提供的基线和本文模型在不同分类器上的平均准确度(AP),共 11 个生成器参与测试。符号 X 和 † 分别表示在训练时分别以 50%和 10%的概率应用数据增强。随机表现是 50%,可能的最佳表现是 100%。在测试用的生成器被用于训练时,结果显示为灰色(因为它们不是在测试泛化性)。黑色的值表示跨生成器的泛化性结果。其中,最高值以黑色加粗显示。通过减少数据扩充,研究者展示了针对 ProGAN 中较少类的消融实验结果。同时通过平均所有数据集的 AP 分数来得到 mean AP。为了方便比较,子集被绘制在图 3、4、5 中。研究者将该方法的泛化性能与其他图像伪造检测方法进行了比较。Zhang 等人的方法提出了一套经过训练可以检测由通用 CNN 架构生成的伪造图像的分类器,这套通用架构在许多图像生成任务中都有出现(如 CycleGAN 和 StarGAN)。他们引入了 AutoGAN,这是一种基于 CycleGAN 生成器的自动编码器,可以模拟类似于 CycleGAN 生成的伪造图像。研究者考虑了 Zhang 等人预训练模型的四个变体,其中每个都分别从两个图像源(CycleGAN 和 AutoGAN)之一和两种图像表示(图像和光谱)之一进行训练。在训练过程中,所有四个变体都使用了 JPEG 和放缩进行数据增强,以提高每个模型的鲁棒性。除了 CycleGAN([48] 使用的模型架构)和 StarGAN(两种方法都获得了接近 100.0 AP 的结果)外,本文提出的模型对其他架构的泛化性能明显更好。比较结果可见于表 2 和图 5。表 2 展示了使用不同数据增强方法进行训练的泛化能力。研究者发现,即使在测试时未使用此类扰动,使用激进的数据增强方法(以模拟后处理的形式)也提供了惊人的泛化能力。此外也观察到这些模型明显对于后处理更加鲁棒(图 6)。图 3:数据增强方法的效果。所有的检测器都在 ProGAN 上进行训练,在其他生成器上进行测试(AP 结果如图所示)。总体来说,使用数据增强进行训练可以帮助提高模型的效果。其中超分辨率模型和 DeepFake 是例外。图 4:数据集多样性的效果。所有的检测器都在 ProGAN 上进行训练,在其他生成器上进行测试(AP 结果如图所示)。使用更多类进行训练可以提高模型表现。所有的训练都以 50% 的概率使用了模糊和 JPEG 进行数据增强。图 5:模型比较。研究者观察到,和 Zhang 等人的方法相比,在大多数情况下,本文模型可以更好地推广到其他架构。值得注意的例外是 CycleGAN(与 [48] 中的训练架构相同)、StarGAN(两种方法均获得接近 100. AP 的结果)和 SAN(应用数据增强会导致性能下降)。结果表明,如今的 CNN 生成的图像保留了可检测到的特征,从而可以将它们与真实照片区分开。这就使得鉴别伪造照片的分类器无需大量修改即可从一种模型推广到另一种模型。但是,这并不意味着这种情况将持续下去。首先,即使是最好的伪造检测器,也要在真实检测率和假阳性率之间进行权衡。其次,伪造照片可能会在社交媒体平台(Facebook,Twitter,YouTube 等)上被大量恶意使用,因此数据将会被剧烈变换(压缩,缩放,重采样等)。最后,迄今为止,被记录在案的的大多数有效的伪造实例都使用经典的「浅层」方法,例如 Photoshop。在论文的最后,研究者也提到,检测伪造图像只是解决视觉虚假信息威胁这一难题的一小部分,有效的解决方案需要融合从技术、社会到法律等各方面的广泛战略。[48] Xu Zhang, Svebor Karaman, and Shih-Fu Chang. Detecting and simulating artifacts in gan fake images. In WIFS, 2019. [41] RunWang,LeiMa,FelixJuefei-Xu,XiaofeiXie,JianWang, and Yang Liu. Fakespotter: A simple baseline for spotting ai-synthesized fake faces. arXiv preprint arXiv:1909.06122, 2019. 2 [13] Davide Cozzolino, Justus Thies, Andreas Ro ̈ssler, Christian Riess, Matthias Nießner, and Luisa Verdoliva. Forensictrans- fer: Weakly-supervised domain adaptation for forgery detec- tion. arXiv preprint arXiv:1812.02510, 2018. 2 入门GANCNNDeepFake加州伯克利大学Adobe