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

news2024/11/25 14:56:01

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分类器学习图像的高频和低频信息进行分类,但在现实中,图像会被压缩或模糊处理,导致部分低频信息损失,使模型失效(这说明伪影可能不仅是高频的,而且是跨频段存在的),可以在模型训练阶段使用高通滤波过滤掉低频信息,从而增强模型鲁棒性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1090562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

thinkphp5.1 获取缓存cache(‘cache_name‘)特别慢,php 7.0 unserialize 特别慢

thinkphp5.1 获取缓存cache(‘cache_name’)特别慢,php 7.0 unserialize 特别慢 场景: 项目中大量使用了缓存,本地运行非常快,二三百毫秒,部署到服务器后 一个表格请求就七八秒,最初猜想是数据库查询慢&am…

Java进阶 之 再论面向对象(2)——类的定义及对象的使用 封装Encapsulation 关键字private,this

前言 在上一篇博客中,我们从面向过程和面向对象的编程思想谈起,阐述了类和对象在Java中的编程中的应用,此外,对于对象的内存,变量作用域,参数传递等进行了阐述。 Java进阶 之 再论面向对象(1&…

噪声主动控制装置设计

目录 摘 要...................................................................................... 2 第一章 绪论........................................................................ 6 1.1 研究课题背景...................................................…

C++——多态调用和普通调用的本质区别

目录 一.多态特性 回顾一下多态特性的含义: 回顾多态特性的两大形成条件: 而普通调用和多态调用的本质区别在于: 二.理解调用 例一: 普通调用的理解1: 普通调用的理解2: 注:错误代码的…

【mfc/VS2022】计图实验:绘图工具设计知识笔记

绘制曲线(贝塞尔曲线): 转自:CDC 类 | Microsoft Learn 绘制一条或多条贝塞尔曲线。 BOOL PolyBezier(const POINT* lpPoints,int nCount);参数 lpPoints 指向包含曲线端点和控制点的 POINT 数据结构数组。 nCount 指定 lpPo…

移远通信C-V2X模组产品 助力车载生态建设跑出“加速度”

10月11日,移远通信受邀参加“长安创新驱动数智未来”行业研讨会。 本次会议围绕车载行业智能化转型取得的阶段性技术与终端成果展开讨论,旨在持续助力汽车行业智能出行的变革。移远通信产品总监侯海燕于会议上针对当下车载行业发展热点——C-V2X技术的相…

面经-北京泛微二面-Java开发

北京泛微二面-Java开发。以下内容为面试复盘,面试官问题无改动,回答已进行修正。 自我介绍 我是XXXX,来自XXX… 面试官提问: 1.像这些比赛的话,你是自己参加还是社团的人一起参加? 答:大多…

vue打包压缩

参考 https://www.cnblogs.com/lafitewu/p/8309305.html 注意:方法1和方法2不能同时用 取消打包的map config/index.js的productionSourceMap设置为false 抽取js 将部分常用又比较大的组件直接抽取为一个单独的js 打开webpack.base.conf.js,在module.exports.entry中添加想…

docker 搭建本地Chat GPT

要在CentOS7上安装Docker,您可以按照以下步骤进行操作: 1、更新系统包列表 sudo yum update2、安装Docker存储库的必要软件包 sudo yum install -y yum-utils device-mapper-persistent-data lvm23、添加Docker存储库 sudo yum-config-manager --add…

格式工厂怎么把两个视频合并在一起

免费的工具谁不喜欢呢,今天为大家介绍的是格式工厂这款多功能视频转换软件,然而今天主要为大家介绍的是格式工厂的视频合并功能。 是的,你没有听错,格式工厂除了转换之外,还可以视频合适、视频剪辑、视频分割、去水印…

Python3无法调用Sqlalchemy解决(mysqldb)

原因 在安装Sqlalchemy后运行程序报错 无法导入mysqldb,缺失模块 ImportError: No module named ‘MySQLdb’ 既然缺少 MySQLdb 这个模块,尝试按照正常的想法执行 pip install MySQLdbpip install mysql-python 应该能解决,但是却找不到…

MyBatis基础之自动映射、映射类型、文件注解双配置

文章目录 自动映射原理jdbcType同时启用配置文件和注解两种配置方式 自动映射原理 在 MyBatis 的配置文件(settings 元素部分)中,有一个 autoMappingBehavior 配置,其默认值为 PARTIAL ,表示 MyBatis 会自动映射&…

SpringCloud学习笔记-Nacos的命名空间的配置

目录 1.创建新的NameSpace2.给XXX-service配置NameSpace3.Nacos管理页面管理NameSpace4.Eureka和Nacos区别 Nacos提供了namespace来实现环境隔离功能。 nacos中可以有多个namespacenamespace下可以有group、service等不同namespace之间相互隔离,例如不同namespace的…

Spring6 - ioc

文章目录 IoC容器IoC容器在Spring的实现基于XML管理Bean获取bean**①方式一:根据id获取**②方式二:根据类型获取③方式三:根据id和类型④扩展知识 依赖注入之setter注入依赖注入之构造器注入特殊值处理为对象类型属性赋值为数组类型属性赋值为…

【Qt】字体更大的富文本

使用size属性只能生成7个等级的字号,超过7的都视作为7。 当需要更加夸张的字号时则需要使用style属性,除此之外利用该属性可以生成更加逆天丰富的样式,(style属性是CSS样式表。 稍微跑题一下:似乎有安全性的考量,不少…

监控系列(六)prometheus监控DMHS操作步骤

一、监控的操作逻辑 给操作系统安装expect命令expect脚本执行dmhs_console脚本执行 cpt / exec 命令用脚本进行过滤字符串过滤dm_export读取脚本与当前日期作比较,然后返回差值 二、安装步骤 1. linux中Expect工具的安装及使用方法 https://blog.csdn.net/wangta…

网络工程师知识点

1、OSI模型是每层的功能,用到的协议,使用到的设备,涉及到的数据传输单元 第七层应用层:提供应用程序间通信 (服务应用:http、ftp、dns) 第六层表示层:处理数据格式、数据加密等 第五层会话层&…

Redis 集群 Redis 事务 Redis 流水线 Redis 发布订阅 Redis Lua脚本操作

Redis 集群 & Redis 事务 & Redis 流水线 & Redis 发布订阅 Redis 集群linux安装redis主从配置查看当前实例主从信息 Redis Sentinelsentinel Redis Cluster Redis 事务Redis 流水线Redis 发布订阅Redis Lua脚本操作 Redis 集群 linux安装redis 下载安装包&#…

半监督学习介绍(为什么半监督学习是机器学习的未来)

文章目录 半监督学习的好处半监督学习原理半监督范式总结 半监督学习是一种利用标记和未标记数据的机器学习方法。半监督学习的目标是结合监督学习和无监督学习的优点;利用标记数据的准确性以及未标记数据的丰富性和较低成本。半监督学习可以被认为是 监督学习&…

[ubuntu]OpenFOAM国内源码满速下载地址

下列地址可直接使用git clone,例如,打开终端,在终端直接将下面的复制进去: git clone https://e.coding.net/dyfluid/ThirdParty-6/ThirdParty-6.git即可在本地创建ThirdParty-6文件夹。如果提示你没有git,那么输入下面…