CNN-generated images are surprisingly easy to spot… for now----《目前CNN生成的图像非常容易被发现》
背景: 研究者们发现,仅仅对一种由CNN模型生成的图像进行训练的分类器,也可以检测许多其他模型生成的结果。由此提出这样的观点:即目前CNN生成的图像存在一些常见的系统缺陷,导致它们无法实现真实的图像合成。
动机: 随着生成模型的快速发展,对无法分辨真假的担忧。
最简单的方法:
引言
近年来深度图像合成技术(例如生成对抗网络(GAN))的快速发展引起了公众的极大兴趣和关注,同时人们担心我们正在进入一个无法辨别哪些图像是真实的、哪些图像是假的世界[14]。这种担忧主要针对特定的操纵技术,例如“深度伪造”式面部替换[2]和逼真的合成人类[20]。其实这些方法仅仅是一种广泛应用技术中的两个实例:基于卷积神经网络(CNN)的图像生成。我们这项工作的目标是找到一种通用的图像取证方法来检测 CNN 生成的图像。
检测图像是否是由特定合成技术生成的相对简单 - 只需在由真实图像和通过相关技术合成的图像组成的数据集上训练分类器即可。然而,这种方法可能与图像生成中使用的数据集(例如面部)相关联,并且由于数据集偏差[35],在新数据(例如汽车)上进行测试时可能无法泛化。更糟糕的是,随着生成方法的发展以及它所训练的技术变得过时,特定技术的检测器可能很快就会变得无效。
因此,很自然地会问,今天的 CNN 生成的图像是否包含常见的伪影,例如某种可检测的 CNN 指纹,这将允许分类器泛化到整个生成方法系列,而不是单个生成方法。不幸的是,先前的工作表明泛化是图像鉴别取证方法的一个重大问题。例如,最近的几项工作 [44,12,37] 观察到,在一种 GAN 架构生成的图像上训练的分类器在其他架构上进行测试时表现不佳,并且在许多情况下,当仅更改分类器训练数据集(而不是架构或任务)时,它们也无法泛化。这是有道理的,因为图像生成方法多种多样:它们使用不同的数据集、网络架构、损失函数和图像预处理。
在本文中,我们表明,与当前的理解相反,经过训练来检测 CNN 生成图像的分类器可以在数据集、架构和任务中表现出惊人的泛化能力。我们遵循惯例,以简单的方式训练我们的分类器,使用单个 CNN 模型生成大量假图像(我们使用 ProGAN,一种高性能无条件 GAN 模型 [19]),并训练二元分类器来检测假图像,使用模型的真实训练图像作为反例。
为了评估我们的模型,我们创建了一个新的 CNN 生成图像数据集,即 ForenSynths 数据集,由 11 个模型的合成图像组成,范围从无条件图像生成方法(如 StyleGAN [20])到超分辨率方法 [13] ,以及深度伪造[33]。每个模型都在适合其特定任务的不同图像数据集上进行训练。
在这种方法看似简单的背后,我们发现存在许多微妙的挑战,我们通过一组实验和经过训练的图像生成模型的新数据集来研究这些挑战。我们表明,当采取正确的步骤时,分类器对于 JPEG 压缩、模糊和调整大小等常见操作确实具有鲁棒性。我们还发现,训练图像的多样性很重要;从CNN合成方法中采样的大数据集导致分类器在一定程度上优于在较小数据集上训练的分类器。最后,检查后处理对模型泛化能力的影响至关重要,这通常发生在图像创建的下游(例如,在存储和分发期间)。我们表明,当采取正确的步骤时,分类器对于 JPEG 压缩、模糊和调整大小等常见操作确实具有鲁棒性。
总之,我们的主要贡献是:
1)我们表明,在CNN生成的图像上训练的取证模型对其他CNN合成方法表现出惊人的泛化能力;
2)我们提出了一种新的数据集和评估指标,用于检测CNN生成的图像;
3)我们通过实验分析了跨模型泛化的因素。
相关工作
检测CNN生成的技术。 最近的几项工作已经解决了检测 CNN 生成的图像的问题。Rossler 等人[33]评估了检测面部操纵技术的方法,包括基于 CNN 的面部和嘴巴替换方法。虽然他们表明简单的分类器可以检测同一模型生成的赝品,但他们没有研究模型或数据集之间的泛化。Marra 等人 [24] 同样表明,简单的分类器可以检测由图像翻译网络 [17] 创建的图像,但没有考虑跨模型迁移。
最近,Cozzolino 等人 [12] 发现取证分类器在模型之间的迁移很差,常常获得近乎偶然的性能。他们提出了一种基于自动编码器的新表示学习方法,以提高各种生成方法的零和低样本训练方案中的传输性能。虽然他们的最终目标与我们相似,但他们采取了正交方法。他们专注于改进迁移学习方法,并将其应用于各种模型(包括 CNN 和非 CNN)。相比之下,我们实证研究了简单“基线”分类器在不同训练和测试条件下基于 CNN 的图像生成的性能。Zhang 等人 [44] 发现分类器在 GAN 模型之间的泛化能力很差。他们提出了一种称为 AutoGAN 的方法,用于生成包含 GAN 架构中常见的上采样伪影的图像,并在两种类型的 GAN 上进行测试。其他工作提出使用手工制作的共现特征 [26] 或通过基于预训练的人脸检测器构建的异常检测模型来检测 GAN 图像 [37]。研究人员还提出了几种方法来识别哪些已知的 GAN 生成了给定的图像 [25, 41]。
图像取证。 研究人员提出了多种方法来检测更传统的操纵技术,例如通过图像编辑工具进行的操纵技术。早期的工作侧重于手工制作的线索 [14],例如压缩伪影 [3]、重采样 [31] 或物理场景约束 [27]。最近,研究人员将基于学习的方法应用于这些问题[45,16,11,32,38]。像我们一样,这一行的工作发现简单的监督分类器通常可以有效地检测操作 [45, 38]。
CNN生成的共有特征
研究人员最近表明,常见的 CNN 设计包含降低其表征能力的伪影。这项工作的大部分内容都集中在网络执行上采样和下采样的方式上。这种伪影的一个众所周知的例子是由反卷积层产生的棋盘伪影[28]。Azulay 和 Weiss [4] 表明,卷积网络忽略了经典采样定理,因此跨步卷积降低了平移不变性,Zhang [43] 通过减少这些层中的混叠来改进平移不变性。最近,Bau 等人 [5] 提出 GAN 的生成能力有限,并分析了预训练的 GAN 无法生成的图像结构。
研究问题:
是否有可能在一个生成模型的图像上训练一个取证分类器,该模型可以推广到许多其他模型上。
分类器的训练:
数据集构建: 选择ProGAN作为生成模型(无条件、结构简单、可生成任意数量、高质量图像),LSUN为ProGAN的训练数据集,共20个类别,为每类生成36K训练图像和200个验证图像,共720K训练图像和4K验证图像,再取相同数量的真实图像共同组成分类器数据集。
模型选择: 与训练的ResNet-50,图像输入为224×224.
评价指标: 平均精度 AP
实验结论分析:
- 作者认为以前的分类器没有很好的泛化,是因为图像没有后增强。由于真实图像存在后处理操作(指压缩、模糊、裁剪等)。而大多数合成图像不存在,但不能让分类器通过学习是否有后处理进行分类。因为在现实场景使用过程中,无论生成还是真实图像都会受到压缩或模糊处理,使模型的鲁棒性降低,导致在理想情况下训练的分类器不能很好泛化。
- 训练数据类别的增加能够提升模型的泛化性能,但类别达到一定数量后,AP的增量变得很小,说明可能存在一个对于实际泛化来说“足够多样性”的训练数据集。
- 证明了摘要中提出的观点,CNN生成的图像与真实图像存在不同,并且可视化了合成图像和真实图像的频率,并进行比较。
总结:
和大多数方法一样,都是训练一个分类器。改进在于:根据现实场景存在的伪影情况,对训练数据进行后增强,使模型学习到生成图像和真实图像更本质的区别,使得该分类器实现开箱即用的效果。
CNN分类器学习图像的高频和低频信息进行分类,但在现实中,图像会被压缩或模糊处理,导致部分低频信息损失,使模型失效(这说明伪影可能不仅是高频的,而且是跨频段存在的),可以在模型训练阶段使用高通滤波过滤掉低频信息,从而增强模型鲁棒性。