Towards Universal Fake Image Detectors that Generalize Across Generative Models
Towards Universal Fake Image Detectors that Generalize Across Generative Models
Generalize Across Generative Models (面向通用的伪图像检测器,可在生成模型中推广)
时间:2023年
期刊:CVPR
这篇论文探讨了如何开发一种通用的假图像检测器,能够检测来自不同生成模型的假图像。现有的基于深度学习的假图像检测方法在训练时只能检测特定生成模型(如GAN)生成的假图像,但在面对未见过的新型生成模型(如扩散模型或自回归模型)时,泛化能力较差。
作者通过分析发现,现有的分类器在训练过程中主要学习到了特定生成模型的“指纹”(即低层次的图像伪影),而忽略了真实图像的特征,导致分类器在面对未见过生成模型时,倾向于将所有图像分类为真实图像。
选择在 ImageNet 上预训练的 ResNet - 50 作为假图像分类网络,使用二元交叉熵损失来训练网络进行真实(0)与假(1)的二元分类
和其他模型比起来,我们的CLIP模型能够很好地区分真假图片。
(通过可视化可以发现,模型能正确区分Fgan和Rgan,但是将扩散模型生成的图片,以及真实的图片都看作是真实的图片。)
频率谱反映了图像在频域中的特征,能够揭示不同生成模型在生成图像时引入的特定伪影或模式。
在 GAN 生成的图像(如 StarGAN 和 CycleGAN)的频率谱中,存在明显且重复的模式。
而扩散模型(如 Guided 和 LDM)生成的虚假图像,在频率谱上并没有这种明显且重复的模式,其频率谱特征与来自真实分布(LAION 数据集)的图像更为相似。
由于识别这些模式(频谱中的差异)就足以降低训练误差,模型便忽略了学习真实图像的其他特征(如平滑边缘)。
也就是模型只是会学习到真实图片和由gan生成的图片的频率域有没有区别,即有没有这些重复模式,进而区分真假图片,而就像扩散模型的频率域和真实图片差不多,则模型就将扩散模型生成的图片归类为真实图片。
由于特征提取器被显式训练来区分特定任务,其特征空间会偏向于捕捉与任务相关的模式,而忽略其他可能对任务无关但对其他任务有用的特征。
为了解决这个问题,作者提出了一种无需训练的假图像检测方法,即利用预训练的大规模视觉-语言模型(如CLIP-ViT)的特征空间,通过最近邻分类或线性探测来进行假图像检测。实验表明,这种方法在检测来自不同生成模型的假图像时,表现出显著的泛化能力,尤其是在面对未见过的新型生成模型时,性能显著优于现有的基于深度学习的检测方法。
论文提出的方法使用了非显式训练的特征空间
CLIP-ViT-L/14的特征空间是在大规模图像-文本对上预训练的,没有被显式训练来区分真实和假图像。因此,其特征空间更加通用,能够捕捉到各种类型的图像特征。
论文提出的检测模型使用CLIP-**ViT的图像编码器提取图像特征,然后通过最近邻分类或线性探测进行假图像检测。
最邻近分类的方法:
也就是论文使用的模型是clip的图片编码器,这个图片编码器已经是在大量的图片上面训练好的了。
、
使用最临近分类法,整个模型都不用训练,也不需要使用损失函数,直接将数据集里面的所有图片输入到模型里面,输出为768维的向量,同时测试图像也输入其中得到768维的向量,那么最后使用余弦距离计算测试图片和数据集的距离
最邻近分类的方法
假设我们有以下特征向量(为了简化,假设特征向量只有3维):
真实图像特征库:
图像A: [0.1, 0.2, 0.3]
图像B: [0.4, 0.5, 0.6]
假图像特征库:
图像C: [0.7, 0.8, 0.9]
图像D: [1.0, 1.1, 1.2]
测试图像:
图像X: [0.65, 0.75, 0.85]
计算距离**(余弦距离)**
1.计算与真实图像特征库的距离:
图像X与图像A的距离:d_real_A = sqrt((0.65-0.1)^2 + (0.75-0.2)^2 + (0.85-0.3)^2) ≈ 0.92
图像X与图像B的距离:d_real_B = sqrt((0.65-0.4)^2 + (0.75-0.5)^2 + (0.85-0.6)^2) ≈ 0.43
最近的真实图像是图像B,距离为 d_real = 0.43。
2.计算与假图像特征库的距离:
图像X与图像C的距离:d_fake_C = sqrt((0.65-0.7)^2 + (0.75-0.8)^2 + (0.85-0.9)^2) ≈ 0.09
图像X与图像D的距离:d_fake_D = sqrt((0.65-1.0)^2 + (0.75-1.1)^2 + (0.85-1.2)^2) ≈ 0.61
最近的假图像是图像C,距离为 d_fake = 0.09。
分类决策
因为 d_fake = 0.09 小于 d_real = 0.43,所以测试图像X被分类为假图像。
实验结果
可见本文的方法的泛化能力是非常不错的,不仅仅在GAN家族中表现良好,在扩散模型和自回归模型中都具有不错的检测泛化能力,在使用最近邻算法的时候,相对于仅仅使用线性层的效果要好上一些,且最近邻算法的参数K对结果的影响不大。
消融实验
作者换了四种不同的骨干网络做测试:
1.CLIP:ViT-L/14,
\2. CLIP:ResNet-50,
3.ImageNe t:ResNet-50
4.ImageNet:ViT-B/16,并绘制了t-sne图