GAN论文学习2-- CycleGan

it2022-05-05  163

2017ICCV论文阅读 Title:Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks Paper:pdf Code:code

晕,老师让我仔细看几篇GAN论文时,看完CGAN,pix2pix,然后打开这篇CycleGan,看到排版,我就下意识看了眼作者。。果然和pix2pix同一拨人。他们写完成对的输入GAN再做个不成对的。这波操作666!!! 先声明CycleGAN 有2个G和2个D

Abstract

这篇文章提出了一种在没有成对例子的情况下,学习将图像从源域X转换为目标域Y的方法。我们的目标是学习G:X→Y。G(X)图像的分布与Y图像的分布是不可区分的。由于这个映射高度受限,作者使用一个逆映射Y→X进行二次映射,并且引入一个循环一致性损失来使得F(G(x))约等于X。在不存在成对训练数据的情况下,给出了一些定性结果,包括集合样式转换、对象变形、季节转换、照片增强等。通过与已有方法的定量比较,证明了该方法的优越性。

1. Introduction

前3段介绍了一个故事。。so想说明图像从给定场景的一种表示形式x转换为另一种表示形式y,例如,灰度到颜色,图像到语义标签,边缘映射到照片。然后作者给出假设,数据集少,不能成对输入。以及想要艺术创作,期望的输出没有明确的指定。 因此,我们寻求一种算法,可以学习跨域,而不需要成对的输入-输出示例(图2,右)。我们假设域之间存在某种潜在的关系,例如,它们是相同底层场景的两种不同呈现,并试图了解这种关系。虽然我们缺乏成对例子形式的超视觉,但我们可以在集合的层次上利用超视觉:给定X域中的一组图像和Y域中的另一组图像。要训练G:X→Y,输出一个 yˆ = G(x)且x∈X,D鉴别器要不能区分yˆ 和y。从理论上讲,这个目标可以induce出一个与经验分布P(y)相匹配的输出yˆ分布(一般来说,这要求G是随机的)[16]。因此,最优的G将域X转换为与Y分布相同的定义域Yˆ。然而,这样的翻译并不能保证单个输入x和输出y的映射以一种有意义的方式(有无穷多个映射G会在yˆ上得到相同的分布)。此外,在实践中,我们发现很难单独优化对抗性目标:标准程序常常导致众所周知的模式崩溃问题,即所有输入图像映射到相同的输出图像,而优化未能取得进展。

因此,作者利用了翻译应该循环一致的这一特性,从这个意义上说,如果我们把一个句子从英语翻译成法语,然后再把它从法语翻译成英语。应该可以回到原来的句子[3]。从数学上讲,如果我们有一个G: X→Y和另一个F: Y→X,那么G和F应该互为逆变换,而且两个映射都应该是双射。我们应用这种结构假设通过训练同时映射G和F,并添加一个周期的一致性损失( cycle consistency loss)[64]鼓励F (G (x))≈x ,和G (F (y))≈y。将这种损失与域X和域Y上的对抗性损失结合起来,就得到了我们实现非成对图像到图像翻译的完整目标。

2. Related Work

2.1Gan

介绍了下GAN就不说了。。省略。。。

2.2 Image-to-Image Translation

说图像转换工作开展很多年,重要的是这篇Paper在pix2pix的工作上开展的。不同的是不用成对的图像。

2.3 Unpaired Image-to-Image Translation

Rosales等人[42]提出了一种贝叶斯框架,该框架包括基于源图像计算的基于patch的马尔可夫随机场的先验,以及从多个样式图像中获得的似然项。 CoGAN[32]和跨模态场景网络[1]使用权重共享策略来学习跨域的公共表示。另一行并发工作[46、49、2]鼓励输入和输出共享特定的内容特性,即使它们在风格上可能不同。这些方法还使用了对抗性网络,附加了一些terms来强制输出接近预定义度量空间中的输入,比如类标签空间[2]、图像像素空间[46]和图像特征空间[49]。 与Pix2pix一样作者又给出一个通用解决方法。。。

2.4 Cycle Consistency

将传递性作为结构化数据规范化的一种方法的想法由来已久。在视觉跟踪中,强制执行简单的正反向一致性已经成为几十年来的标准技巧[24 ,48]。在语言领域,通过反向翻译和协调来验证和改进翻译是人工翻译[3]]和机器[17]使用的一种技术。近年来,高阶循环一致性被应用于结构自运动[61]、三维形状匹配[21]、共着色[55]、密集语义对齐[65,64]、深度估计[14]等。其中,Zhou等[64]和Godard等人的[14]与我们的工作最为相似,他们使用循环一致性损失作为传递性监督CNN训练的一种方式。在这项工作中,我们引入了一个类似的损失来推动G和F保持一致。与我们的工作同时,在这些相同的过程中,Yi等人受机器翻译[17]中的双重学习启发,独立地使用类似的目标进行非成对的图像对图像的翻译。

2.5 Neural Style Transfer

是将一幅图像的内容与另一幅图像(通常是一幅画)的风格相结合,通过匹配预先训练好的深度特征的Gram矩阵统计量来合成一幅新的图像。另一方面,我们主要关注的是学习两个图像集合之间的映射,而不是两个特定图像之间的映射,方法是尝试捕捉高级外观结构之间的对应关系。

3.Formulation

x i x_i xi∈X, y i y_i yi∈Y,,学习一种X域到Y域的映射函数。数据分布表示为x~ p d a t a ( x ) p_{data}(x) pdata(x)和 y~ p d a t a ( y ) p_{data}(y) pdata(y)。为了证明图三(a),2个映射关系,G:X→Y和F:Y→X。作者主要介绍2种 adversarial discriminators 分别是 D X D_X DX D Y D_Y DY D X D_X DX为了鉴别图像{x}和转域后图像{F(y)}; D Y D_Y DY为了鉴{y}和{G(x)}。我们的目标包含两类terms:用于将生成图像的分布与目标域中的数据分布匹配的对抗性损失[16];和循环一致性损失, 以防止学习到的映射G和F相互矛盾。

3.1 Adversarial Loss

将对抗损失应用于2种映射关系中。G:X→Y 以及 D Y D_Y DY损失如下: 其中G试图生成与域Y图像相似的图像G(x),而 D Y D_Y DY的目标是鉴别样本G(x)和真实样本Y。G来最小化损失,D来最大化损失 类似的F:Y→X就变成

3.2 Cycle consistency Loss

从理论上讲,对抗性训练可以学习映射G和F,它们分别生成输出相同分布的目标域Y和X(严格地说,这要求G和F是随机函数)。在足够大的样本下,网络可以将同一组输入图像映射到目标域中任意随机排列的图像,其中任何学习到的映射都可以induce出与目标分布匹配的输出分布。所以仅仅依靠AD loss并不能将Xi映射到理想的Yi。为了减少映射空间,应该加一个Cycle-consistent Loss,见图3的(b)。对于X域中的每个图像x,图像转换周期应该能够将x带回到原始图像,即, x →G(x) →F(G(x)) ≈ x,我们称之为正向循环一致性。同样,如图3 ©所示,对于Y域中的每一个图像y, G和F也应该满足反向循环一致性:y→ F(y) →G(F(y)) ≈ y,我们使用循环一致性损失来激励这种行为: 作者说刚开始尝试用F(G(x))和x之间、G(F(y))和y之间的对抗性损失代替L1范数,效果不好。 下面我们看下效果,有点厉害!!

3.3 Full Objective

合起来目标函数: Lamda 控制两个目标的重要性。 目标变成解决: 作者又说其实他们的模型是在训练两个自动编码器(F ○G:X→ X; G○F:Y→Y)。然而,这些自动编码器都有特殊的内部结构:它们通过中间表示将图像映射到自身,中间表示是将图像转换到另一个域中。这样的设置也可以看作是对自编码器[34]的一种特殊情况,它使用对抗性损失来训练自编码器的瓶颈层来匹配任意的目标分布。在我们的例子中,X →X自动编码器的目标分布是域Y的目标分布。后面实验中,我们也评估了我们的方法,只有一个周期损失在一个方向,一个单一的周期是不够正则化的训练这一欠约束问题。

4. Implementation

Network Architecture

**neural style transfer and superresolution.**效果很好。2个步长为2的卷积,几个残差块。。。。等等 。。这里参数写的不清楚,还是后续看代码吧。。。因为直觉感觉和Pix2pix类似网络结构。。这里作者也是采用70X70的patch,因为参数少,可以处理任意大小图像。

Training details

作者说这边有些小区别,首先对于公式1的 L G A N L_{GAN} LGAN,用最小二乘损失[35]来代替负对数类线性目标。 原因:这种损失在训练中更稳定,产生更高质量的结果。具体就变成下面这了: 其次,为了稳定模型,根据文献【46】,使用生成图像的历史来更新D,而不是使用最新G生成的图像。我们保存一个图像缓冲区,它存储前面创建的50个图像。可能他的意思就是50个G更新一次D??? 方程3中 的Lamda=10, batchsize=1 ,Adam,初始学习率0.0002,逐渐衰减学习率。。具体看附录第7节。。 与前面一篇Pix2pix一样,都是用的AMT和FCN得分来评价算法。。这两个指标的结果和一些其他GAN做了对比。结果在这2个方面和上一篇的Pix2pix差不多。

Analysis of the loss function

下面来说说作者做的一些 ablations(消融??翻得可能不对,就是增减模块对比)实验。如果只有前向Cycle 一致性或者后项cycle都会导致模型坍塌。单独的cycle或者GAN损失效果也不好。看图吧:

其他一些对比结果就不展示了,总之效果接近成对的Pix2pix。但也有不完美的。

Concusion

虽然我们的方法在很多情况下都能取得令人信服的结果,但结果远不是一致的正面。图17显示了几种典型的故障情况。在涉及颜色和纹理变化的翻译任务中,就像上面报道的许多任务一样,这种方法通常会成功。我们还探索了需要几何变化的任务,取得了巨大的成功。例如,在dog cat变形的任务中,所学的翻译退化为对输入进行极小的更改(图17)。这种故障可能是由我们的生成器体系结构造成的,我们的生成器体系结构专门针对外观更改的良好性能进行了调整。处理更多样和极端的转换,特别是地理度量的变化,是未来工作的一个重要问题。


最新回复(0)