论文链接:http://openaccess.thecvf.com/content_ICCV_2017/papers/Zhu_Unpaired_Image-To-Image_Translation_ICCV_2017_paper.pdf

在CycleGAN出现之前,pix2pix网络在处理image-image translation问题上比较state-of-the-art。但是pix2pix需要利用成对(pair)的数据进行模型训练,如下图所示:

成对的数据在自然界中是非常稀有的,因此pix2pix对数据的要求很高,一般而言不具备通用性。CycleGAN的出现可以解决这一问题,也就是说,CycleGAN可利用unpaired数据,在source domain X X X和target domain Y Y Y之间建立一个映射: G : X → Y G:X\rightarrow Y G:X→Y,从而使得源域 X X X的图像转化为与目标域 Y Y Y分布相似的图像。也就是说,图像 G ( X ) G(X) G(X)无法被分辨出是从 Y Y Y中采样的还是由 G G G生成的。

通过这个操作,我们就可以将自然图像转化为具有莫奈风格的图像,可以将斑马转变成普通的骏马,将冬天转变为夏天等等。也就是说,CycleGAN可以实现图像的风格迁移,更广义地来说,实现了图像间的翻译。

但是如果仅有 G : X → Y G:X\rightarrow Y G:X→Y,显然是不能完成这一任务的。因为这个映射只能确保 G ( X ) G(X) G(X)神似目标域 Y Y Y中的样本,并不能确保它与生成前的图像是对应的。举个不太恰当例子,现在的源域 X X X表示“中文”,目标域 Y Y Y表示“英文”。从 X X X中采样一个样本「你好吗」,经过 G : X → Y G:X\rightarrow Y G:X→Y得到的 G ( X ) G(X) G(X)理应是「How are you」。但是,由于该映射只是希望 G ( X ) G(X) G(X)拥有目标域“英文”的特征,所以它可以是任意一句英文,如「I’m fine」。这样就失去了translation的意义。同时,GAN网络为了保证最小化Loss,宁愿所有样本的都生成同一个输出,也不会冒险去生成多样的结果,这就造成了Mode Collapse.

为了解决这个问题,CycleGAN中引入了循环一致性损失。仅仅有 G : X → Y G:X\rightarrow Y G:X→Y是不够的,还需要再引入一个映射 F : Y → X F:Y\rightarrow X F:Y→X,以将 G ( X ) G(X) G(X)重新映射回源域 X X X,并衡量 F ( G ( X ) ) F(G(X)) F(G(X))与 X X X之间的差距,希望这个差距越小越好。这种思想相当于是一种Autoencoder, G ( X ) G(X) G(X)相当于AE中的编码,如果这个编码能够还原出与 X X X相似的 F ( G ( X ) ) F(G(X)) F(G(X)),那么就可以认为 G ( X ) G(X) G(X)虽然接近目标域分布 Y Y Y,但原始图像上的语义特征并没丢失。

有了这一重约束,上面例子中的「你好吗」就不会翻译成「I’m fine」,因为「I’m fine」的语义特征和「你好吗」不同,不易从「I’m fine」还原到「你好吗」。

因此,整个网络的模型架构如下图所示:

图(a)展示的是 G : X → Y G:X\rightarrow Y G:X→Y和 F : Y → X F:Y\rightarrow X F:Y→X两个生成器映射过程, D Y D_{Y} DY​鉴别的是 G ( X ) G(X) G(X)属于目标域分布 Y Y Y的确定性,和GAN中的鉴别器原理一致; D X D_{X} DX​与之同理;图(b)展示的正向循环一致性损失,即 x → G ( x ) → F ( G ( x ) ) ≈ x x\rightarrow G(x)\rightarrow F(G(x))\approx x x→G(x)→F(G(x))≈x;图(c)展示的反向循环一致性损失,即 y → F ( y ) → G ( F ( y ) ) ≈ y y\rightarrow F(y)\rightarrow G(F(y))\approx y y→F(y)→G(F(y))≈y。

因此整个训练过程的损失函数定义如下:

L ( G , F , D X , D Y ) = L G A N ( G , D Y , X , Y ) + L G A N ( F , D X , Y , X ) + λ L c y c ( G , F ) L(G,F,D_{X},D_{Y})=L_{GAN}(G,D_{Y},X,Y)+L_{GAN}(F,D_{X},Y,X)+\lambda L_{cyc}(G,F) L(G,F,DX​,DY​)=LGAN​(G,DY​,X,Y)+LGAN​(F,DX​,Y,X)+λLcyc​(G,F)

其中前两项是常规生成对抗网络中的损失函数,最后一项是循环一致性损失函数, λ \lambda λ是一个调节系数。对于前两项,这里采用了LSGAN的思想,可以进一步表达为:

L L S G A N ( G , D Y , X , Y ) = E y ∼ p d a t a ( y ) [ ( D Y ( y ) − 1 ) 2 ] + E x ∼ p d a t a ( x ) [ D Y ( G ( x ) ) 2 ] L_{LSGAN}(G,D_{Y},X,Y)=E_{y\sim p_{data}(y)}[(D_{Y}(y)-1)^{2}]+E_{x\sim p_{data}(x)}[D_{Y}(G(x))^{2}] LLSGAN​(G,DY​,X,Y)=Ey∼pdata​(y)​[(DY​(y)−1)2]+Ex∼pdata​(x)​[DY​(G(x))2]

L L S G A N ( F , D X , X , Y ) = E x ∼ p d a t a ( x ) [ ( D X ( x ) − 1 ) 2 ] + E y ∼ p d a t a ( y ) [ D X ( G ( y ) ) 2 ] L_{LSGAN}(F,D_{X},X,Y)=E_{x\sim p_{data}(x)}[(D_{X}(x)-1)^{2}]+E_{y\sim p_{data}(y)}[D_{X}(G(y))^{2}] LLSGAN​(F,DX​,X,Y)=Ex∼pdata​(x)​[(DX​(x)−1)2]+Ey∼pdata​(y)​[DX​(G(y))2]

对于循环一致性损失,其相当于自动编码器的重构误差,可以表达为:

L c y c ( G , F ) = E x ∼ p d a t a ( x ) [ ∣ ∣ F ( G ( x ) ) − x ∣ ∣ 1 ] + E y ∼ p d a t a ( y ) [ ∣ ∣ G ( F ( y ) ) − y ∣ ∣ 1 ] L_{cyc}(G,F)=E_{x\sim p_{data}(x)}[||F(G(x))-x||_{1}]+E_{y\sim p_{data}(y)}[||G(F(y))-y||_{1}] Lcyc​(G,F)=Ex∼pdata​(x)​[∣∣F(G(x))−x∣∣1​]+Ey∼pdata​(y)​[∣∣G(F(y))−y∣∣1​]

CycleGAN的理论到这里就差不多了,可以看出理论并不是很复杂,而是非常精妙。巧妙的引入了循环一致性改变了网络的结构,不再需要成对的数据,从而使得CycleGAN非常的generalized。下面是论文中CycleGAN的一些实验结果:

根据上图,CycleGAN可以实现斑马和马,冬天夏天即橙子苹果间的转换,论文中还做了很多有趣的实验,如图像增强,将随机拍摄的自然图像转换为专业的摄影图片,或融入莫奈的画风。

但是CycleGAN仍然存在一些问题,例如在将马转化为斑马的时候,很可能会将骑马的人也加上斑纹。因为原始训练集都是大自然中的马,因此模型学习不到人的相关知识。笔者也做过CycleGAN的实验,发现有些时候模型会将一些比较突出的背景也加上斑纹,如石头,醒目的植物等等,因此在稳定性方面还是有提升空间的。此外,CycleGAN不易实现形状的改变,比如将猫改成狗,外表形状上必然要发生变化,而CycleGAN不易实现,这也是可以改进之处。

总结

CycleGAN的精髓就是利用循环一致性,对网络进行改造,使得网络类似于两个相互对抗的自动编码器,从而实现了用unpaired数据进行图像到图像的翻译。理论不难,主要是这个idea太巧妙了。

CycleGAN实现图像风格迁移的神作相关推荐

  1. 论文总结:基于深度学习的图像风格迁移研究

    基于深度学习的图像风格迁移研究 前言 图像风格迁移方法 基于图像迭代的图像风格迁移方法 基于模型迭代的图像风格迁移方法 卷积神经网络 生成对抗网络 CycleGAN 前言 什么是深度学习? 深度学习是 ...

  2. GANs系列:用于图像风格迁移的CycleGAN网络原理解读

    CycleGAN论文:https://arxiv.org/pdf/1703.10593.pdf 一.前言 目前关于GAN应用,比较有意思的应用就是GAN用在图像风格迁移,图像降噪修复,图像超分辨率了, ...

  3. 图像风格迁移_图像风格迁移—谷歌大脑团队任意图像风格化迁移论文详解

    点击蓝字关注我们 AI研习图书馆,发现不一样的世界 风格迁移 图像风格化迁移是一个很有意思的研究领域,它可以将一张图的风格迁移到另外一张图像上,由此还诞生了Prisma和Ostagram这样的商业化产 ...

  4. cnn风格迁移_快速图像风格迁移思想在无线通信中的另类应用:算法拟合

    在本文中,并不是介绍最新的一些论文,而是回顾自己在很早(半年前?)读过的几篇文章.[1]Learning to optimize: Training deep neural networks for ...

  5. CVPR 2021 | 澳洲国立大学提出基于模型的图像风格迁移

    ©作者|侯云钟 学校|澳洲国立大学博士生 研究方向|计算机视觉 本文从另外一个角度解读,澳洲国立大学郑良老师实验室 CVPR 2021 新工作.一般而言,我们需要同时利用两张图片完成图像的风格迁移(s ...

  6. 图像风格迁移(Neural Style)简史

     图像风格迁移科技树 什么是图像风格迁移? 先上一组图. 以下每一张图都是一种不同的艺术风格.作为非艺术专业的人,我就不扯艺术风格是什么了,每个人都有每个人的见解,有些东西大概艺术界也没明确的定义.如 ...

  7. 图像迁移风格保存模型_一种图像风格迁移方法与流程

    本发明涉及图像处理技术领域,更为具体地,涉及一种图像风格迁移方法. 背景技术: 近年来,由深度学习所引领的人工智能技术浪潮,开始越来越广泛地应用到社会各个领域,尤其是在在计算机视觉领域,图像风格迁移作 ...

  8. 图像风格迁移基础入门及实践案例总结

    目录 1图像的不同风格 2何为图像风格迁移 2.1基础概念及方法 2.2示例 3图像风格迁移的典型研究成果 3.1deep-photo-styletransfer 3.2CycleGAN 3.3U-G ...

  9. 图像风格迁移与快速风格迁移的对比(感知损失)

    最近一段时间要写数字图像处理的文献综述,<深度学习在图像风格迁移中的原理与应用综述>.只能感慨自己一时选题不审,导致期末火葬场啊-- 这个问题我纠结了一天,看了N多篇文献(全是英文的-), ...

最新文章

  1. 如何获取元素在父级div里的位置_前端面试题--元素的BFC特性和实例
  2. 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...
  3. [VNC] 分辨率, 退出全屏,
  4. [原]《Web前端开发修炼之道》-读书笔记CSS部分
  5. 古巴雪茄高希霸世纪1.2.3.4.5.6.半世纪7款雪茄的区别?
  6. 一个项目有两个pom_实现一个Spring Boot Starter超简单,读 Starter 源码也不在话下...
  7. 网络上的两台计算机如何互相访问,怎么样使两台电脑互相访问?
  8. April Fools Contest 2017 题解
  9. 电脑桌面便签小工具_iPhone12系列售价曝光,苹果手机上有什么好用的便签记事本软件推荐吗...
  10. pythonb超分辨成像_Papers | 超分辨 + 深度学习(未完待续)
  11. 数据库系统概论重点总结
  12. 4款好用的Android设备HTML编辑器
  13. 机甲 java_战神金刚3(机甲版)
  14. 参照系(参考系)与参照物的区别
  15. 大数据面试常见问题(一)——Oracle部分
  16. 【实战经验分享】如何对SSD固态硬盘下发SCSI command?
  17. BUUCTF笔记之Web系列部分WriteUp(三)
  18. ShareIntentUtil【调用系统自带的分享的工具类】
  19. 怎么制作公司网页教程【网站制作】
  20. 极大似然估计原理解析

热门文章

  1. 全球治理指标WGI(1996-2018年)
  2. 今年全系 iPhone 都是 4G 运存——11 突然变香了!
  3. sql 常见的数据类型
  4. IOS 之扫描银行卡号DEMO
  5. Tenax TA 60/80 吸附剂,Tenax GR 色谱填料(80-100目),国产/进口Tenax多孔聚合物吸附剂
  6. eclipse中出现的导入jar包却无法import的情况
  7. 【深度学习数据集】收藏数据集网盘下载
  8. Web前端开发体会十日谈
  9. RHEL5中玩魔兽and CS等
  10. 抖音快手网红便签软件是哪款?