文 | qqsh
编 | 杨晓凡
近年来,图像合成技术日趋进步,GAN在给我们带来艺术体验的同时也埋下了很多隐患。Deepfake(AI换脸)技术让很多事情的真实性变得扑朔迷离,甚至会产生极大的政治影响。比如加蓬共和国总统的一段录像被反对派声称是假的,这成为了政变失败的因素之一。
既然我们可以用GAN来合成难辨真伪的假图,反过来我们也可以用GAN去鉴别图像的真假。GAN一般基于CNN结构,当用来作为鉴伪模型时也有很多不足。一方面是只能应用于单一的图像类型(比如人脸),当应用到未曾见过的类型时(比如汽车)就会失效。另一方面,当新的GAN不断进化并产生更逼真的图像时,原有的鉴伪模型就可能会被击败。
来自伯克利和Adobe的研究者最近提出了一种通用的鉴别方法,通过训练一个单一的ProGAN就可以鉴别其他11种 GAN 生成图像的真伪,并且具有较高的准确率和较强的鲁棒性,对于新提出的StyleGAN2也能很好的泛化。
本文为 CVPR2020 接收论文
论文地址:https://arxiv.org/abs/1912.11035v1
开源代码:https://github.com/peterwang512/CNNDetection
论文的贡献主要有以下三点:
作者选出了11种GAN,涵盖了各种网络结构,数据类型和损失函数。这11种GAN生成的假图构成了一个大规模的评测数据集ForenSynths,下图展示了这些GAN生成的图像类型。
作者对这11种GAN进行了分类,囊括了各种图像生成模型。
作者根据每个模型的开源代码来生成假图,并且遵照原方法的处理流程。每个模型用来生成假图的真实图像数量是一致的。数据集中的图像大小保持在256×256,这个尺度是现有图像生成模型常用的输出尺寸。对这11种模型,如果生成的图像分辨率小于256×256,则利用双线性插值上采样到256×256;如果生成的是高分辨图像,则保留原图大小。毕竟最终训练图像都是随机裁剪成224*224大小,并经过水平翻转。
2
模型训练
作者的目的是通过训练一个单一的GAN,让这个GAN能够鉴别出其他各种GAN生成图像的真假,以此来证明这个单一GAN的泛化能力。这和实际应用场景是一致的,因为训练时我们并不知道会应用到多少种GAN上,也不知道需要鉴别的数据类型。
作者选择ProGAN作为这个单一的GAN,主要基于以下原因:
之前已经通过其他GAN构造了评测数据集,但是它不能用来训练ProGAN,因为这样做降低了泛化难度。虽然模型只有一个,但是训练和评测数据还是相关的。因此,还需要构造用来训练ProGAN的数据。
前面介绍了ProGAN可以为每个类别训练一个不同的网络,因此作者从LSUN数据集上选出了20个类,每个类包含36K张训练图像和200张验证图像,它们都是真实图像。之后用ProGAN对20个类分别训练20个不同的网络,就能生成真实图像对应的合成图像。因此,整个训练集就包含720K张训练图像和4K张验证图像。
作者采用ResNet-50作为二分类的分类器,在ImageNet上做预训练。作者发现,用数据增强能够模仿图像的后处理操作,并且这对于泛化性能有显著的促进作用,主要采用的数据增强方式有:
3
实验和结果
作者采用AP(Average Presion)作为评测指标,因为这是一个基于排序而不是阈值的得分,对数据集中真实图像和合成图像的基本比例不敏感。
下面是在ForenSynths评测数据集上的泛化性能比较。
从表中可以得出以下结论:
作者还通过一些更细致的统计方式证明了上述结论。
上面这张图表明了数据增强的有效性,是对第一点结论的补充说明。
上面这张图表明了数据增强的鲁棒性。对于大多数模型,随着模糊程度的增加或者压缩质量的降低,不采用数据增强作为后处理很快会崩溃,不仅退化成随机判断模式,甚至还会不如随机判断。但是采用数据增强后,尤其是采用模糊和压缩,能够有效对抗这些挑战,鲁棒性更强。
上面这张图表明了数据类型的多样性对泛化性能有促进作用,是对第二点结论的补充说明。不过当图像类别达到16个之后,泛化性能的提升就很少了。这反映出数据类型的多样性也是有上限的。
上面这张图和Zhang Xu等人的方法作比较,可以看出对于大多数模型,作者的方法有更大的优势,除了CycleGAN,StarGAN和SAN。这是对第三点结论的补充说明。
作为一个鉴别图像真伪的模型,除了考虑对抗现有的GAN之外,还需要评估其对未来的影响力。当合成图像的技术不断发展时,它是否还能击败新的GAN也是我们所关注的。作者也将自己的方法在最新出的StyleGAN2上进行了评测,结果如下:
从上表可以看出,作者的方法在StyleGAN2上的AP也达到了99.1%,可以说仍然具有较强的泛化能力,说明该方法潜力是很大的。
上面的实验分析表明,一个单一的ProGAN就能够鉴别其他各种GAN生成图像的真伪了。这只是从结果上分析,那么它内在的本质是怎样的呢?训出来的模型到底学到的是什么呢?
作者首先想探究模型是学习了低层次的特征还是学到了高层次的视觉质量。为此作者将生成的图像按照是否是假图的置信度排序,从中抽取不同排名的图像作可视化。作者发现,图像质量和置信度得分相关性其实并不大,除了BigGAN和StarGAN有点关系(上图是BigGAN)。由此说明,模型并不一定是学到了高层次的视觉质量。
和Zhang Xu等人一样,作者也可视化了真实图像和合成图像的频谱图(如上图所示)。可以看出,真实图像的频谱图基本是一致的,虽然不同模型有所区别,但是都是类似笛卡尔坐标分成四个象限。但是CNN生成的图像则往往会在不同象限产生重叠的小点,这可能是在频谱域上与真实图像的不同。
4
讨论与总结
尽管这篇论文在鉴伪上更胜一筹,但是还是有许多令人担忧的地方。
造假和鉴伪技术就如同GAN的生成器和判别器一样,势必会相互制衡,共同进步。