CNN-generated images are surprisingly easy to spot... for now

2023-10-14 08:01

本文主要是介绍CNN-generated images are surprisingly easy to spot... for now,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

实验结论分析:

  1. 作者认为以前的分类器没有很好的泛化,是因为图像没有后增强。由于真实图像存在后处理操作(指压缩、模糊、裁剪等)。而大多数合成图像不存在,但不能让分类器通过学习是否有后处理进行分类。因为在现实场景使用过程中,无论生成还是真实图像都会受到压缩或模糊处理,使模型的鲁棒性降低,导致在理想情况下训练的分类器不能很好泛化。
  2. 训练数据类别的增加能够提升模型的泛化性能,但类别达到一定数量后,AP的增量变得很小,说明可能存在一个对于实际泛化来说“足够多样性”的训练数据集。
  3. 证明了摘要中提出的观点,CNN生成的图像与真实图像存在不同,并且可视化了合成图像和真实图像的频率,并进行比较。

总结:

  和大多数方法一样,都是训练一个分类器。改进在于:根据现实场景存在的伪影情况,对训练数据进行后增强,使模型学习到生成图像和真实图像更本质的区别,使得该分类器实现开箱即用的效果。
  CNN分类器学习图像的高频和低频信息进行分类,但在现实中,图像会被压缩或模糊处理,导致部分低频信息损失,使模型失效(这说明伪影可能不仅是高频的,而且是跨频段存在的),可以在模型训练阶段使用高通滤波过滤掉低频信息,从而增强模型鲁棒性。

这篇关于CNN-generated images are surprisingly easy to spot... for now的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/209195

相关文章

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的身份识别。对于考勤系统而言,CNN可以自动从摄像头捕捉的视频流中检测并识别出员工的面部。 我们在该项目中采用了 RetinaFace 模型,它基于CNN的结构实现高效、精准的

LibSVM学习(六)——easy.py和grid.py的使用

我们在“LibSVM学习(一)”中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。        这两个文件都要用python(可以在http://www.python.org上下载到,需要安装)和绘图工具gnup

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

11991 - Easy Problem from Rujia Liu?

题意: 输入一串整型数列,再输入两个数k,v,输出第k个v的序号。不存在则输出0,如第一个样例 8 41 3 2 2 4 3 2 11 3 //第1个3,序号为2,输出22 4 //第2个4,不存在,输出03 2 //第3个2,序号为7,输出74 2 思路: struct num {

CNN-LSTM模型中应用贝叶斯推断进行时间序列预测

这篇论文的标题是《在混合CNN-LSTM模型中应用贝叶斯推断进行时间序列预测》,作者是Thi-Lich Nghiem, Viet-Duc Le, Thi-Lan Le, Pierre Maréchal, Daniel Delahaye, Andrija Vidosavljevic。论文发表在2022年10月于越南富国岛举行的国际多媒体分析与模式识别会议(MAPR)上。 摘要部分提到,卷积

【tensorflow CNN】构建cnn网络,识别mnist手写数字识别

#coding:utf8"""构建cnn网络,识别mnistinput conv1 padding max_pool([2,2],strides=[2,2]) conv2 x[-1,28,28,1] 卷积 [5,5,1,32] -> [-1,24,24,32]->[-1,28,

docker images

docker 装好docker之后,先掌握一下docker启动与停止 docker启动关闭状态 systemctl 命令是系统服务管理器指令,它是 service 和 chkconfig 两个命令组合。 查看 docker 的启动状态 systemctl status docker 关闭 docker systemctl stop docker 启动 docker syste

【开发工具】开发过程中,怎么通过Easy JavaDoc快速生成注释。

文章目录 引言什么是Easy JavaDoc?Easy JavaDoc用来干什么?如何使用Easy JavaDoc?安装Easy JavaDoc配置Easy JavaDoc使用Easy JavaDoc生成注释 Easy JavaDoc与IDEA自带注释的区别IDEA自带注释Easy JavaDoc Easy JavaDoc的优缺点优点缺点 步骤 1:打开设置步骤 2:找到Easy JavaD

震惊,从仿真走向现实,3D Map最大提升超12,Cube R-CNN使用合成数据集迁移到真实数据集

震惊,从仿真走向现实,3D Map最大提升超12,Cube R-CNN使用合成数据集迁移到真实数据集 Abstract 由于摄像机视角多变和场景条件不可预测,在动态路边场景中从单目图像中准确检测三维物体仍然是一个具有挑战性的问题。本文介绍了一种两阶段的训练策略来应对这些挑战。我们的方法首先在大规模合成数据集RoadSense3D上训练模型,该数据集提供了多样化的场景以实现稳健的特征学习。随后,

easy简化封装

//confirm function Confirm(msg, control) {$.messager.confirm('确认', msg, function (r) {if (r) {eval(control.toString().slice(11));}});return false;}//loadfunction Load() {$("<div class=\"datagrid-ma