本文转自雷锋网,如需转载请至雷锋网官网申请授权。
当人们研究人工智能生成和检测图像的方式时,都需要明确一个研究主题。近期康奈尔大学的三位研究人员 Daniel V. Ruiz,Gabriel Salomon,Eduardo Todt 决定训练人工智能将长颈鹿的图片转化成鸟的图片,用生成对抗网络(GANs) 产生新数据来研究这种图像到图像转换(image-to-image translation)。这篇论文还投中了 Computer on the Beach (COTB'20) 2020 会议。
论文地址:https://arxiv.org/abs/2001.03637
目前图像到图像转换的应用已经比较广泛,包括从卫星图像生成地图到仅从轮廓生成完整的服装图像。这篇论文研究将长颈鹿转变为鸟其实颇具挑战,因为两种动物有不同的大小、纹理和形态。他们训练了一个名为 InstaGAN 的无监督跨域转换模型,让它接受了大量长颈鹿和鸟的图片训练。
InstaGAN 由韩国科学技术院和浦项科技大学的研究人员在 2019 年提出,相关论文《InstaGAN: Instance-Aware Image-to-Image Translation》还被 ICLR2019 接收。
最后鸟类成品保留原始图片的布局和背景,只是将长颈鹿直接转换成鸟类。需要强调的是,生成的鸟并不存在,这仅仅是 InstaGAN 生造的结果。
这次论文的创新点,用作者自己的话说就是,“我们这次没有把苹果变成橘子,而是把大象变成了香蕉”。因为之前无监督的图像到图像转换,例子大多是将站着的狮子转换为趴着,将猫转化为狗,马变成斑马等,但这些训练在比例、形状都很相似,所以难度有所差异。
他们具体是怎么做的呢?
用于训练 GAN 和生成相关的图像有两个数据集:COCO(Common objects in Context) 和 Caltech-UCSD Birds 200。COCO 数据集有超过 91 种类型的 328000 张图片,作者们从中选了 2546 张和 101 张的长颈鹿图片分别用于训练和验证,又从另一个主要涵盖 200 多个种类的鸟数据集 Caltech-UCSD Birds 200-2011 中,八二分,选择 80% 也就是 9414 张的鸟类图片用于训练,20% 也就是 374 张用于验证。
每张图片都能看到长颈鹿和鸟的轮廓。AI 主要工作是两块,一是把长颈鹿变成鸟,另一部分是判断它看到的图片是真的鸟还是假的长颈鹿—鸟。
接下来开始训练。大多数参数与 InstaGAN 初始论文中一样。通过双线性插值(bilinear interpolation)将长颈鹿和小鸟数据集的图像大小调整为 256x256 ,GPU 训练花费了将近 3 周时间(如果用 2 个英伟达 RTX 2080 GPU,时间能减少到一周半)。
InstaGAN 在训练中使用的 loss functions 包括:Least-squares GAN loss,cycle loss,context loss 和 identity loss,根据它们在最终结果中的重要性进行加权。cycle loss 权重最高。LSGAN 也是如此,因为它改善了收敛性,减少了可能消失的梯度问题(vanishing gradient issues),这需要超过 100 个 epoch 来实现良好的视觉效果和损失最小化。
在三周的训练结束后,他们得到一个人造鸟图集 FakeSet 。下图显示了图像到图像转换的一些例子。
可以看到原始图像和蒙版,以及转换之后的图像和蒙版。请注意,姿势、空间排列和背景是没有改变的的。也就是说,InstaGAN 已经相当好地学会了转换图像,这些图像中,长颈鹿几乎没有遮挡,都是侧身站立,而在相同的位置上如今也产生鸟类。有意思的是,InstaGAN 学到了一个有趣的“欺骗”方法——生成深色的鸟,与浅色背景形成对比,如此能更好地骗过人类、机器鉴别者。
接下来让我们来看看 InstaGAN 生成的成品图。
有些转换的效果令人印象深刻。InstaGAN 学会了如何模糊顶部的风景,使它们看起来像微距镜头即使过渡的地方并不是十分丝滑,一只长颈鹿的肩膀还在,但是 AI 巧妙地把它处理成了一块石头,希望你不会注意到。
背景模糊效果还不错,在处理前景时,InstaGAN 造了一根木头作为鸟的栖息处,并突出了树枝、岩石裂缝等细节,也模糊了附近的鸟脚,整个效果比较自然。但有几张图片还能隐隐看到长颈鹿的肚子和腿,于是 InstaGAN 把它们变成了绿色,可能是希望能错认是一片叶子之类的植物。
当然很多时候转换效果并不好。由于可能受到不寻常背景的影响,人工智能没有成功地改变图像外观。这里也很明显,人工智能移除长颈鹿的一般策略是,将鸟的身体复制粘贴到长颈鹿的头、脖子和肩膀部分,然后尽力隐藏长颈鹿的腿。如果带着这样的想法看上图几张照片,你会立刻发现长颈鹿的大长腿还在那里,模型的多次失败都与难以掩盖的长颈鹿的腿有关。
为了评估生成的图像的真实性和质量,作者进行了定性和定量分析。定性分析是,随机挑选 FakeSet 335 张图片去评估图片,标准是转换质量、轮廓和纹理几项,选项只有两个——"Good 或者 "Bad 。每个属性的最终分数是 335 张图片的平均分,用 0 到 1 之间的分数表示( 0 表示质量差,1 表示质量好)。如果一个属性的值等于 0.75 ,则意味着 3/4 的图片在该属性中表现良好,1/4 的图片表现不佳。具体可见下表。
为了进行定量分析,他们使用了一个预先训练好的 Mask R-CNN(Mask Region-based Convolutional Neural Network)新生成的数据集 FakeSet ,对 2546 张图片进行分析,评估结果是,289 幅图片是垃圾(甚至没有检测到鸟类存在),717 幅不令人满意(常用指标 F-score 低于 0.8 ),1540 幅令人满意。F-score 遵循一个偏斜的正态分布,倾向于最佳分数。
综上,该论文结论是,FakeSet 实现了接近真实数据集的检测和分割结果,虽然大多数图像并不完全真实,但是正确转化的比例也很高,检测和分割结果也是高可信的(高于80%)。这说明生成的图像足够逼真,不管是肉眼难以察觉,也经得起最先进的深层神经网络的检验。