1. 背景
过去几年,人工智能生成的图像质量得到了显著提高。以图中的6张图片为例,我们已经很难一眼看出哪张图片是假的了,事实上,第5张毛巾的图片才是假的。
现在的AI生成图片的技术主要有三种技术:Diffusion Models也就是扩散模型,GAN生成对抗网络以及VAE变分自动编码器,当然现在最火的还是扩散模型。扩散模型也有很多不同种的,比如Stable Diffusion和Midjourney。
对于人类来说,区分真假图像并不容易。虚假图像加剧了人们对虚假信息传播的担忧。为了解决这个问题,已经提出了各种假图像检测方法。但是现有的检测器,一般都是在某几种生成方法生成的图片上去做训练,往往在它训练的数据集上表现良好,但是检测新生成器生成的图片效果不行。
2. 相关工作
那第二部分呢,我会介绍几个典型的方法。第一种是CVPR2020的一篇论文提出来的,网络也比较简单,把GAN生成的图片经过各种数据增强后送进ResNet50做真假的二分类,以期望模型自己去学到一些潜藏在模型里的指纹。
第二篇工作发现通过傅里叶变换后相同网络结构生成的图片有相似的痕迹(比如DM图的强峰等等),这些痕迹有些在空间域可以发现;
通过对现有的12个检测器进行训练和测试(真实数据源自COCO、ImageNet和UCID;合成图来自COCO,prompts使用ProGAN生成),结果表明现有模型的泛化性能依然有限,比如在DM上训练,在DM的图上测试,效果还可以,但跨模型测就不行了。
另外,如果图片经过二次处理(比如压缩等社交媒体的变换),这些生成图就更难判断了,因为压缩会损失一些痕迹(比如高频信息等)
第三个方法,先使用转换模型,这个转换模型可以是预训练的CNN模型,或者各种现有的模型比如VGG,ResNet50,ProgGAN的判别器等等将图片转换为梯度图,做为该图的人工特征。将梯度图送进分类器进行分类训练,判断是否是AI生成的。
第4个方法,是一种图文多模态的方法,利用CLIP模型强大的泛化性,将4种标签,“真实/虚假的相片”以及“真实/虚假的绘画”放进文本编码器,各种AI生成的图片放进图像编码器,去做一个对比学习计算它们的相似度,相符合的图文拉近,在测试的时候再采用聚类的方法区分真伪图片,这种方法得益于CLIP本身强大的泛化性,在AI生成图片检测的任务上有比较好的泛化性。
3. 未来展望
那针对于这种AI生成图片整图检测的任务,结合前人的方法和我们做的一些实验,有一个有意思的发现,在单种生成方法上的检测其实是不难的。我们也设计了一种简单的办法,把一个大图片打成很多个小的patch,再根据一个计算信息量的公式筛选出最简单的patch,用SRM提取高频噪音信息,送进二分类器就能取得很好的效果,并且方法有一定的鲁棒性。
拿一些图片举例,最简单的patch基本都接近纯色。就是这些肉眼看上去接近纯色的patch, 用SRM提取的高频噪音隐藏着判断真假的密码。上面三行是Midjourney生成的图片,下面三行是ImageNet的真实图片。
那从表中可以看出目前还存在一些问题,在相同的生成器上训练和测试效果很好,跨模型的能力还有待增强,还需要设计一些额为的模块来解决泛化性的问题。