GAN眼中的图像翻译(附神奇歌单)

这是一篇总结文,总结我看过的几篇用GAN做图像翻译的文章的“套路”。

首先,什么是图像翻译?

为了说清楚这个问题,下面我给出一个不严谨的形式化定义。我们先来看两个概念。第一个概念是图像内容(content)  ,它是图像的固有内容,是区分不同图像的依据。第二个概念是图像域(domain),域内的图像可以认为是图像内容被赋予了某些相同的属性。举个例子,我们看到一张猫的图片,图像内容就是那只特定的喵,如果我们给图像赋予彩色,就得到了现实中看到的喵;如果给那张图像赋予铅笔画属性,就得到了一只“铅笔喵”。喵~

图像翻译是指图像内容从一个域迁移到另一个域,可以看成是图像移除一个域的属性 ,然后赋予另一个域的属性 。我们用来表示域和域的图像,图像翻译任务即可以定义为,寻找一个合适的变换使得

当然,还有一种图像翻译,在翻译的时候会把图像内容也换掉,下面介绍的方法也适用于这种翻译,这种翻译除了研究图像属性的变化,还可以研究图像内容的变化,在这里就不做讨论了。

常见的GAN图像翻译方法

下面简单总结几种GAN的图像翻译方法。

  • pix2pix

简单来说,它就是跟cGAN。Generator的输入不再是noise,而是图像。

  • CycleGAN/DualGAN/DiscoGAN

要求图像翻译以后翻回来还是它自己,实现两个域图像的互转。

  • DTN

用一个encoder实现两个域的共性编码,通过特定域的decoder解码,实现图像翻译。

  • FaderNets

用encoder编码图像的内容,通过喂给它不同的属性,得到内容的不同表达。

  • IcGAN

依靠cGAN喂给它不同属性得到不同表达的能力,学一个可逆的cGAN以实现图想到图像的翻译(传统的cGAN是编码+属性到图像的翻译)。

  • GeneGAN

将图像编码成内容和属性,通过交换两张图的属性,实现属性的互转。

  • Face Age-cGAN

这篇是做同个人不同年龄的翻译。依靠cGAN喂给它不同属性(年龄)得到不同年龄的图像的能力,学cGAN的逆变换以得到图像内容的编码,再通过人脸识别系统纠正编码,实现保id。

图像翻译方法的完备性

我认为一个图像翻译方法要取得成功,需要能够保证下面两个一致性(必要性):

  • Content consistency(内容一致性)
  • Domain consistency(论域一致性)

此外,我们也似乎也可以认为,满足这两点的图像翻译方法是能work的(充分性)。

我把上述两点称为图像翻译方法的完备性,换句话说,只要一个方法具备了上述两个要求,它就应该能work。关于这个完备性的详细论述,我会在以后给出。

下面,我们来看一下上述几种方法是如何达成这两个一致性的。

内容一致性

我把它们实现内容一致性的手段列在下面的表格里了。

这里有两点需要指出。

其一,有两个方法(IcGAN和Face Age-cGAN)依靠cGAN的能力,学cGAN的逆映射来实现图像换属性,它们会有多个训练阶段,不是端到端训练的方法。而cGAN训练的好坏,以及逆映射的好坏对实验结果影响会比较大,经过几个阶段的训练,图像的内容损失会比较严重,实际中我们也可以观察到 IcGAN 的实验效果比较差。Face Age-cGAN通过引入人脸识别系统识别结果相同的约束,能够对内容的编码进行优化,可以起到一些缓解作用。

其二,DTN主要依靠TID loss来实现内容的一致性,而编码一般来说是有损的,编码相同只能在较大程度上保证内容相同。从DTN的emoji和人脸互转的实验我们也可以看出,emoji保id问题堪忧,参看下图。

论域一致性

论域一致性是指,翻译后的图像得是论域内的图像,也就是说,得有目标论域的共有属性。用GAN实现的方法,很自然的一个实现论域一致性的方法就是,通过discriminator判断图像是否属于目标论域。

上述几种图像翻译的方法,它们实现论域一致性的手段可以分为两种,参见下表。

此外,可以看到,FaderNets实现两个一致性的方法都是剥离属性和内容,而实现剥离手段则是对抗训练。编码层面的对抗训练我认为博弈双方不是势均力敌,一方太容易赢得博弈,不难预料到它的训练会比较tricky,训练有效果应该不难达成,要想得到好的结果是比较难的。目前还没有看到能够完美复现的代码。文章的效果太好,好得甚至让人怀疑。

最后的最后,放一个歌单,听说听这个歌单炼丹会更快哦。

原文发布时间为:2017-10-09

本文作者:Gapeng

本文来自合作伙伴“PaperWeekly”,了解相关信息可以关注“PaperWeekly”微信公众号

时间: 2024-12-22 15:48:04

GAN眼中的图像翻译(附神奇歌单)的相关文章

GAN做图像翻译的一点总结

如今,随着 GAN 在生成清晰图像(sharp images)上的成功,GAN 在图像翻译任务上的方法越来越多,pix2pix,CycleGAN,UNIT,DTN,FaderNets,DistanceGAN,GeneGAN,pix2pixHD,StarGAN 等等.现在的方法太多了,图像质量也从 64x64 分辨率一路做到了 1024x2048. 我关注这个方向已经超过半年了,在这里总结一点小经验: 关于生成高质量图像 这里不谈怎么调参能够得到更好的结果,这里谈两个不用经过调参就能获得不错效果的

NVIDIA新作解读:用GAN生成前所未有的高清图像(附PyTorch复现) | PaperDaily #15

今天要介绍的文章是 NVIDIA 投稿 ICLR 2018 的一篇文章,Progressive Growing of GANs for Improved Quality, Stability, and Variation[1],姑且称它为 PG-GAN. 从行文可以看出文章是临时赶出来的,毕竟这么大的实验,用 P100 都要跑 20 天,更不用说调参时间了,不过人家在 NVIDIA,不缺卡.作者放出了基于 Lasagna 的代码,今天我也会简单解读一下代码.另外,我也在用 PyTorch 做复现

酷我音乐怎么样发布歌单?

发布自己制作的歌单:您可以登录"酷我歌单",选择"制作歌单" 发布已有播放列表作为歌单:您可以在播放列表中,右键单击播放列表名称,选择"发布"(附图),然后按页面提示进行操作;

多米音乐盒怎么创建歌单

  多米音乐盒创建歌单,要根据您使用的客户端: ios系统:在"我的音乐"的歌单列表下方,有"创建歌单"的选项. android系统:在"我"界面的下方,也有"创建歌单"选项. PC:在"我的音乐云"点击"新建列表",新建的歌单会自动同步.

网易云音乐怎么导入豆瓣虾米音乐歌单方法

  1.首先下载网易云音乐客户端并安装,注意安装完毕后会有几个选项,这个是没必要开机自动启动的所以勾掉吧,其他的几个看自己需要. 2.选择一个账号登陆客户端,推荐使用网易账号的. 3.进入软件主界面后点击我的音乐进入歌曲管理界面. 4.在这个界面有个导入歌单的选项,点击导入歌单,然后选择导入虾米或是豆瓣的音乐,这里要登陆你的虾米或豆瓣的账号.具体操作见下图. 5.登陆账号后就会自动导入你的豆瓣账号中的红心歌曲了,导入完毕后可以在我的歌曲中查看.

酷我音乐怎么发布歌单?

  酷我音乐怎么发布歌单? 发布自己制作的歌单:您可以登录"酷我歌单",选择"制作歌单" 发布已有播放列表作为歌单:您可以在播放列表中,右键单击播放列表名称,选择"发布"(附图),然后按页面提示进行操作;

qq音乐怎么发布歌单

  1.进入播放器页面,在自建的某个歌单上右键,即可看到"编辑歌单信息"(若歌单内没有歌曲,则显示灰色). 2.进入编辑歌单信息页面,完善"歌单简介",上传与歌单意义相近的"歌单封面",为该歌单打上对应"标签","保存"即是发表了该歌单."歌单名称"即是拉取您创建该歌单列表时您编辑的名称,不支持修改. 3.发表后,点击播放器左上角您的头像,即可查看已发表的歌单

酷狗音乐怎么导入歌单

  1.首先依然是一张清空的空白酷狗. 2.右键酷狗空白处,有"导入列表"选项. 3.选择解压好的文件夹里面的歌单并导入. 4.将下载歌单全部导入,就是最新的歌单了,我听的时候也发现有一首歌变红了,重新搜索下载就是了. 歌神洞庭湖歌单下载地址 2月歌单http://pan.baidu.com/s/1ntmPjvj 10月歌单http://pan.baidu.com/s/1gdxkKb5

酷我音乐盒2015怎么发布歌单

  发布自己制作的歌单:您可以登录"酷我歌单",选择"制作歌单" 发布已有播放列表作为歌单:您可以在播放列表中,右键单击播放列表名称,选择"发布"(附图),然后按页面提示进行操作;