一个模型打败12种AI造假,各种GAN、Deepfake都被秒杀。本文已获得AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。AI造出来的假图片可能很难骗过AI。就连英伟达本月刚刚推出的StyleGAN2也受到了损害。即使人眼无法辨别假人脸图片,AI依然可以正确识别。最新研究发现,只要利用AI学习识别某种GAN生成的假图片,它就具备了识别各种假图片的能力。不管是GAN、Deepfake、超分辨率生成的,还是怎么得到的,只要是AI合成的图像,通用模型都可以检测出来。虽然各种CNN的原理架构完全不同,但不影响检测器发现假货的普遍问题。只要适当的前处理和后处理,以及适当的数据放大,都可以用来识别图片的真假,不管训练集中有没有AI作品。这是Adob??e和加州大学伯克利分校的科学家发布的新结果。有网友表示,如果利用这项研究参加Kaggle的假人脸识别比赛,可能会赢得高达50万美元的奖金。然而他们并没有,而是先在ArXiv上发表了预印本,同时也被CVPR2020收录。最近他们甚至在GitHub上开源了论文的代码,并提供训练好的权重供读者下载。制造70000多张假图,考验AI的真假能力。该论文的第一作者、来自伯克利的学生WangSheng-Yu使用了11个模型来生成不同的图片,涵盖了各种CNN架构和数据集。和损失。所有这些模型都有一个上采样卷积结构,通过一系列的卷积操作和放大操作来生成图像,这是CNN生成图像最常见的设计。有ProGAN、StyleGAN、BigGAN、BigGAN、GauGAN等,这些GAN各有特点。ProGAN和StyleGAN为每个类别训练不同的网络;StyleGAN在模型中注入更大的像素噪声,并引入高频细节;BigGAN具有整体类条件结构;用于图像转换的GauGAN、CycleGAN和StarGAN。除了GAN之外,还有其他用于图像处理的神经网络:条件图像变换模型隐式最大似然估计(IMLE);改善弱光曝光不足的SITD模型;超分辨率模型,即二阶注意力网络(SAN);用于换脸的开源DeepFake工具faceswap。主流的图像处理CNN模型都有。他们总共制造了7万多张“假图片”。虽然生成这些图片的算法千差万别,风格各异,但总有一些先天的缺陷,既有CNN本身的问题,也有GAN的局限性。这是因为CNN生成的常见内容降低了图像的表征能力,而这些努力大多集中在网络执行上采样和下采样的方式上。下采样是压缩图像,上采样是将图像插值到更大的分辨率。此前,Azulay和Weiss等人的研究。表明卷积网络忽略了经典采样定理,而跨步卷积操作减少了平移不变性,导致小偏移量也导致极端输出。大波动。此外,朱俊彦团队发表在ICCV2019上的论文表明GAN的生成能力有限,分析了预训练GAN无法生成的图像结构。今年7月,哥伦比亚大学的张旭等人进一步发现了GAN的“通病”,普通GAN中包含的上采样成分会导致伪影。他们从理论上证明,这些伪影在频域中表现为频谱复制,这在频谱图上很明显。例如,它也是一匹马的图片。真实照片的信号主要集中在中心区域,而GAN生成的图像在频谱图上有四个小点。因此他们提出了一种基于光谱而不是像素的分类器模型,在区分假图像方面取得了最先进的性能。并且Wang发现,不仅是GAN,其他CNN在生成图像时也会观察到频谱图中的周期性模式。训练AI识别真伪刚刚生成的数据集包含模型生成的11张假图像。然而,真假分类器并没有用这个大集合进行训练。在真正的训练集中,只有NVIDIAProGAN模型起作用,这是关键。△ProGAN过往作品展示团队表示,只选择一种模型进行训练,因为它更适合现实世界的任务:在现实世界中,数据的多样性总是未知的,你不知道AI的需求你受过训练。泛化到什么样的数据。因此,简单地使用模型生成的图像进行训练,专注于帮助AI提高泛化能力。其他模型生成的作品用于测试泛化能力。(如果使用模型的很多fakeimages进行训练,泛化任务就变得简单了,很难观察到泛化能力有多强。)具体来说,真假分类器是一个基于ResNet-50的网络,首先在ImageNet上进行Pre-trained,然后使用ProGAN的works进行二分类训练。△ProGAN原理然而,训练集并不是ProGAN的作品。该团队使用了20个ProGAN,每个负责在LSUN数据集中生成一个类别。一个ProGAN获得了36,000张训练图像和200张验证图像,其中一半是生成的假图像,一半是真实图像。将20个ProGAN的结果加在一起,有720,000个训练集和4,000个验证集。为了将单个数据集的训练结果扩展到其他数据集,团队采用了自己的方法:最重要的是数据放大。先将所有图像左右翻转,然后对图像进行高斯模糊、JPEG压缩、模糊+JPEG等处理。放大的手段并不特殊,关键是让数据在放大后以加工的形式出现。该团队表示,这种方法产生了惊人的泛化效果(详见下文)。让我们看看训练后的结果。区分真假研究人员主要使用平均精度(AveragePrecision)来衡量分类器的性能。在多个不同CNN模型生成的图片集中,ProGAN训练的分类器都取得了很好的泛化能力:几乎所有测试集的AP分数都在90以上,只有StyleGAN的分数略低,为88.2。不管是GAN,还是不需要对抗训练只优化感知损失的模型,还是超分辨率模型,还是Deepfake的作品,都是可以泛化的。团队还测试了不同因素对泛化能力的影响:首先,数据放大提升了泛化能力。比如StyleGAN从96.3提升到99.6,BigGAN从72.2提升到88.2,GauGAN从67.0提升到98.1等等。更直观的表格如下。左边没有放大:另外,数据放大也让分类器更加鲁棒。其次,数据的多样性也提高了泛化能力。我还记得ProGAN在LSUN数据集中生成了20个类别的图片。一般情况下,训练的图像类别越多,效果越好:那么,再想象一下,如果此时突然研发出一种新的模型,AI是否也能适应?在这里,团队使用了刚刚发布的NVIDIAStyleGAN2,发现分类器仍然可以很好地泛化:最后,还有一个问题。AI识别假图片的机制和人类肉眼识别的机制一样吗?该团队使用“Fakeness(假日)”评分来表示一张图片在AI眼中的虚假程度。AI认为越假,得分越高。实验的结果是,在大部分数据集中,AI眼中的谎言与人类眼中的谎言之间没有明显的相关性。只有在BigGAN和StarGAN数据集上,错误分数越高,缺陷就越明显。在更多的数据集上没有这样的表现,说明分类器很可能更倾向于学习low-level的缺陷,而肉眼看到的缺陷可能更偏向high-level。完成论文的安装和使用后,我们就可以去GitHub上体验一下这个模型的强大了。论文源码基于PyTorch框架,由于项目依赖CUDA,需要安装NVIDIAGPU才能运行。首先将项目克隆到本地并安装依赖项。pipinstall-rrequirements.txt考虑到巨大的训练成本,作者还提供了权重和测试集下载。由于这些文件都存放在Dropbox上,国内用户下载不方便。在我们的公众号回复CNN,获取国内网盘地址。下载完成后,将这两个文件移动到weights目录下。然后我们就可以用它来判断图片的真假了:#Modelweightsneedtobedownloaded.pythondemo.pyexamples/real.pngweights/blur_jpg_prob0.1.pthpythondemo.pyexamples/fake.pngweights/blur_jpg_prob0.1.pth如果你有能力自己创建GAN,你也可以用它来检测你模型的造假能力。#Runevaluationscript.Modelweightsneedtobedownloaded.pythoneval.py的作者用它来识别13个CNN模型制作的图片,证明了它的泛化能力。这篇文章的第一作者是来自加州大学伯克利分校的王胜宇。他现在是伯克利人工智能研究实验室(BAIR)的研究生,擅长识别假图像。今年他与Adobe合作的另一篇论文《DetectingPhotoshopedFacesbyScriptingPhotoshop》可以检测照片是否经过PS瘦脸美化,还可以还原“照片作弊”前的面貌。这篇文章的另一位作者RichardZhang在上述文章中也与Wang合作。2018年之前,他正在攻读博士学位。在伯克利,毕业后在Adob??e工作。这篇文章的通讯作者AlexeiEfros曾是朱俊彦的导师,而本文提到的CycleGAN就是朱俊彦博士创建的。Alexei现在是加州大学伯克利分校的计算机科学教授,此前曾在CMU机器人研究所任教九年。传送门论文地址:https://arxiv.org/abs/1912.11035源码:https://github.com/peterwang512/CNDetection
