生成对抗网络CycleGAN讲解
原文:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
收录:2018
代码:Pytorch
这次工作则是将无配对的图像进行图像之间转换,例如你有画家作品以及自然照片之类,想将照片转化成画家风格,但这两张图片之间没有任何交集却也能转化成功,其中具体实现在下面详细讲述。
Abstract
图像到图像的转换是一类视觉和图像的问题,其目标就是用大量相配对的图像作为训练集,学习到输入图像到输出图像的映射。但是,成对的训练数据无法得到。虽然数据缺乏,但我们还是提出了从图像X转换到图像Y的方法。细化来说则是,使用对抗损失函数来学习映射G:X → Y,让判别器难以区分图片 G(X) 与 Y。
由于这样的映射高度欠约束,于是添加了一个逆映射F: Y → X的,并引入一个循环一致性损失函数(cycle consistency loss)来确保F(G(X)) ≈ X(反之亦然)。
在不存在成对训练数据的情况下,对风格迁移、物体变形、季节转换、照片增强等任务进行定性分析。通过与已有方法的定量比较,证明了该方法的优越性。
※论文核心思想:
1. Introduction
尽管缺乏成对的监督学习样本,我们仍然可以在集合层面使用监督学习:给定数据域X中的一组图像,和Y 域中的另外一组图像。我们可以训练一种映射G:X → Y 使得得出 ,同时判别器不断将生成的样本 从真实样本 y 中辨认出来。因此存在一个最佳的映射 G* 将数据域 X 转换为数据域 ,使得 (即有相同的分布)。然而, 由输入x到导出相同的 y 这样的映射有无数种,因此不能确保这一对最有意义 。此外,在实际中我们 很难单独地优化判别器 ,当所有的输入图像映射到相同的输出图像的时候,标准的程序经常因为一些问题而导致奔溃,使得优化无法继续。
为了解决上述问题,我们引入了“循环一致”性质,通俗来讲则是从英语翻译到中文,再从中文翻译回来,结果得到一样的句子,即G:X → Y,F:Y → X 并且引入一个循环一致损失函数(cycle consistency loss) 使得 以及 。将这个循环一致损失函数与在数据域X 与数据域Y 中判别器的对抗损失函数结合起来,就可以得到非成对图像到图像的目标转换。
2. Related Work
GAN: 其核心就是通过对抗损失(adversarial loss)来促使生成器G生成图像无法与真实图像区分开。因此我们采用对抗损失来学习映射,会使得转换后的图片难以和目标域的图像区分开。
Image-to-Image Translation:这个想法追溯到Hertzmann的 图像类比 (Image Analogies),这个模型在一对输入输出的训练图像上采用了非参数的纹理模型,我们的研究建立在 Isola 的 pix2pix 框架上,该框架使用了CGAN来学习从输入到输出的映射,与先前的工作不同,我们可以从不成对的训练图片中,学习到这种映射。
Unpaired Image-to-Image Translation:Rosales 提出了一个贝叶斯框架,通过对原图像以及从多风格图像中得到的似然项 (likelihood term) 进行计算,得到一个基于区块 (patch-based)、基于先验信息的马尔可夫随机场;更近一点研究, CoGAN 和 跨模态场景网络 (corss-modal scene networks) 使用了权重共享策略去学习跨领域 (across domains) 的共同表示等。
Cycle Consistency: Zhou et al. 和 Godard et al两篇文章的与我的工作比较相似,他们也使用了循环一致性损失体现传递性,从而监督卷积网络的训练。
Neural Style Transfer:神经网络风格迁移是优化 图像到图像转换 的另外一种方法,通过比较不同风格的两种图像(一张是普通图片,另一张是另外一种风格的图片(一般来讲是绘画作品))并将一幅图像的内容和另一幅的风格组合起来,基于预训练期间对伽马矩阵进行统计从而得到深层次的特征,再对这些特征进行匹配,最终创造新的图像。