24

跨物种造物,AI 将长颈鹿图片转换为鸟,还骗过了人类与机器

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI1NjQ0Mzc1Mw%3D%3D&%3Bmid=2247498469&%3Bidx=2&%3Bsn=2ec73ff0bb252d83a465035263c8ad0c
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

JFbyYjb.png!web

当人们研究人工智能生成和检测图像的方式时,都需要明确一个研究主题。 近期康奈尔大学的三位研究人员 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 生造的结果。

IfeU3un.jpg!web

这次论文的创新点,用作者自己的话说就是,“我们这次没有把苹果变成橘子,而是把大象变成了香蕉”。因为之前无监督的图像到图像转换,例子大多是将站着的狮子转换为趴着,将猫转化为狗,马变成斑马等,但这些训练在比例、形状都很相似,所以难度有所差异。

他们具体是怎么做的呢?

用于训练 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 。下图显示了图像到图像转换的一些例子。

3UZNbeQ.png!web

可以看到原始图像和蒙版,以及转换之后的图像和蒙版。请注意,姿势、空间排列和背景是没有改变的的。也就是说,InstaGAN 已经相当好地学会了转换图像,这些图像中,长颈鹿几乎没有遮挡,都是侧身站立,而在相同的位置上如今也产生鸟类。

有意思的是,InstaGAN 学到了一个有趣的“欺骗”方法——生成深色的鸟,与浅色背景形成对比,如此能更好地骗过人类、机器鉴别者。

接下来让我们来看看 InstaGAN 生成的成品图。

Uf6NrqV.png!web

有些转换的效果令人印象深刻。InstaGAN 学会了如何模糊顶部的风景,使它们看起来像微距镜头即使过渡的地方并不是十分丝滑,一只长颈鹿的肩膀还在,但是 AI 巧妙地把它处理成了一块石头,希望你不会注意到。

背景模糊效果还不错,在处理前景时,InstaGAN 造了一根木头作为鸟的栖息处,并突出了树枝、岩石裂缝等细节,也模糊了附近的鸟脚,整个效果比较自然。但有几张图片还能隐隐看到长颈鹿的肚子和腿,于是 InstaGAN 把它们变成了绿色,可能是希望能错认是一片叶子之类的植物。

yeYFzqV.png!web

当然很多时候转换效果并不好。由于可能受到不寻常背景的影响,人工智能没有成功地改变图像外观。这里也很明显,人工智能移除长颈鹿的一般策略是,将鸟的身体复制粘贴到长颈鹿的头、脖子和肩膀部分,然后尽力隐藏长颈鹿的腿。

如果带着这样的想法看上图几张照片,你会立刻发现长颈鹿的大长腿还在那里,模型的多次失败都与难以掩盖的长颈鹿的腿有关。

为了评估生成的图像的真实性和质量,作者进行了定性和定量分析。定性分析是,随机挑选 FakeSet 335 张图片去评估图片,标准是转换质量、轮廓和纹理几项,选项只有两个——"Good 或者 "Bad 。

每个属性的最终分数是 335 张图片的平均分,用 0 到 1 之间的分数表示( 0 表示质量差,1 表示质量好)。如果一个属性的值等于 0.75 ,则意味着 3/4 的图片在该属性中表现良好,1/4 的图片表现不佳。具体可见下表。

Y7zAviy.png!web

为了进行定量分析,他们使用了一个预先训练好的 Mask R-CNN(Mask Region-based Convolutional Neural Network)新生成的数据集 FakeSet ,对 2546 张图片进行分析,评估结果是,289 幅图片是垃圾(甚至没有检测到鸟类存在),717 幅不令人满意(常用指标 F-score 低于 0.8 ),1540 幅令人满意。F-score 遵循一个偏斜的正态分布,倾向于最佳分数。

e63IbiQ.png!web

综上,该论文结论是,FakeSet 实现了接近真实数据集的检测和分割结果,虽然大多数图像并不完全真实,但是正确转化的比例也很高,检测和分割结果也是高可信的(高于80%)。这说明生成的图像足够逼真,不管是肉眼难以察觉,也经得起最先进的深层神经网络的检验。

nmquuqz.png!web

推 荐 阅 读

AryYBjQ.png!web

ErIBFjy.png!web

JN3u2u3.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK