Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

(使用循环一致的对抗网络的非配对图像-图像转化)

原文地址:https://arxiv.org/abs/1703.10593

作者:Jun-Yan Zhu,Taesung Park,Phillip Isola,Alexei A. Efros

作者机构:伯克利人工智能研究(BAIR)实验室

作者博客:Jun-Yan Zhu,http://people.csail.mit.edu/junyanz/。博客上有论文演示视频以及代码,从博客发现,pix2pix和cycle-gan该作者都参与提出。

作者兴趣方向:计算机视觉、计算机图形学和机器学习。

摘要

图像-图像的转化训练时,数据不一定是成对的,本文就是用于解决在没有成对图像的基础上,将源域图像转化为目标域图像的问题。我们的目标是学习一个从X到Y的映射G,利用对抗Loss,使得G(X)与Y无法被判别器区分。因为这个映射G高度受限,所以再设计一个从Y到X的映射F,引入一个循环一致性的loss去使得F(G(X))~=X(反之亦然)。本文方法在风格转换,物体变形,季节转变,图像加强上都有应用。

介绍

如果训练一个映射G:X到Y,并且通过一个对抗网使得输出y^=G(x),x∈X无法从Y中区分。理论上来说,这个目标函数能够使得输出分布与目标分布靠近,这要求G是独立的。最优化G可以得到我们的目标。然而这样的转化不能保证输入和输出是有意义的一一对应,因为G有无穷种方式使得Y^的分布靠近Y,这样的优化对抗网络往往会导致模式崩溃(mode collapse),即所有输入图像映射到相同的输出图像。

基于这个问题,所以需要更多的结构去改善我们的目标函数。利用图像转化应该必备的特性“循环一致性”。例如:一个英文句子翻译成法语,然后再由法语翻译成英文,这时的结果应该尽量与原英文语句一致。即我们如果转化G映射,X到Y和另一个转换F映射Y到X,那么G和F应该互为倒数,两个映射都应该是双射的。通过同时训练映射G和F来应用这个结构假设,并且加上循环一致损失来使得F(G(x))~=x,G(F(y))~=y。将这种损失与域X和域Y上的对抗性损失结合起来,就得到了未成对图像到图像转换的完整目标。

相关工作

  1. GAN。GAN成功关键在于对抗损失迫使生成图像和真实图像难以区分。本文继续采用这个思想。
  2. 图像到图像的转化。很多配对的图像到图像训练方法,本文重在非配对图像。
  3. 非匹配图像到图像的翻译。本文不依赖于任何特定任务的,预定义的输入和输出之间的相似性函数,也不假设我们假设输入和输出必须位于相同的低维嵌入空间。这使我们的方法成为许多视觉和图形任务的通用解决方案。
  4. 循环一致性。在目标跟踪,语言翻译,3D形状配准等方面。在CNN中也有应用。我们引入了类似的损失来推动G和F相互一致。
  5. 神经风格转移。是另一种形式的图像到图像的转化。我们主要关注点是通过捕捉高阶结构之间的对应关系来学习两个域之间的映射,而不是两个特定图像之间的映射。

公式

设计两个映射函数,G:X到Y。F:Y到X。并设计两个对抗判别器。Dx用于区分x和F(y),Dy用于区分y和G(x)。同时设计两个损失函数,一个对抗损失用于使得生成图像和目标图像分布一致,另一个是循环一致性损失,以防止G和F相互矛盾。

  1. 对抗损失:G:X到Y。判别器Dy:

其中G试图生成图像G(x)看起来类似于来自域Y的图像。而DY的目的是区分生成样本G(x)和真实样本y。

2. 循环一致性损失:对抗式训练在理论上可以学习分别作为目标域Y和X产生相同分布的映射G和F(严格地说,这要求G和F是随机函数)。具有足够大的容量,网络可以将相同的一组输入图像映射到目标域中图像的任意随机排列,其中任何学习到的映射都可以产生与目标分布匹配的输出分布。为了进一步减少可能映射函数的空间,我们认为学习到的映射函数应该是循环一致的:如图3 (b)所示。对于定义域x中的每一个图像x,图像平移周期应该能够使x返回到原始图像,

x → G(x) → F(G(x)) ≈ x.向前循环一致性。

y → F(y) → G(F(y)) ≈ y.向后循环一致性

我们可以用循环一致性损失来激励这种行为:

完整的目标函数:

λ控制两个目标函数的相关重要性。

我们的目标是求解:

模型可以看作是训练两个“自动编码器:学习一个自编码器F◦G:X→X和另一个G◦F: Y→Y。然而,这些自动编码器都有特殊的内部结构:它们通过中间表示层将图像映射到自身。这种设置也可以看作是“对抗式自动编码器”的一种特殊情况,它使用对抗式损失来训练自动编码器的瓶颈层来匹配任意的目标分布。在我们的案例中,X→X自编码器的目标分布是域Y。

实现

  1. 网络结构。包括 two stride-2 convolutions, several residual blocks , 和 two 1/2 -strided convolutions。使用instance normalization。对于判别器的网络结构,使用70*70Patch-GANs,即判断70×70图像块是真实或者假。鉴别器架构具有比整张图片判断的鉴别器更少的参数,并且可以以完全卷积的方式应用于任意大小的图像。
  2. 训练细节。第一,应用了最近工作中的两种技术来稳定我们的模型训练过程,对于Lgan用最小平方差损失替换掉公式1的负log似然函数。公式1变为公式5。

第二,为了减少模型的震荡,更新鉴别器DX和DY,使用历史生成图像,而不是使用最新的生成图像。保存一个图像缓冲区,存储以前生成的50个图像。

结果

比较了本文方法与最近的方法在同一个数据集上的未配对图像对图像的转化。然后研究了对抗性损失和循环一致性损失的重要性,并将我们的完整方法与几个变量进行了比较。最后,我们证明了我们的算法在非配对数据的应用中的通用性。本文方法称为CycleGAN

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 阅读笔记的更多相关文章

  1. image-to-image translation with conditional adversarial networks文献笔记

    Image-to-Image Translation with Conditional Adversarial Networks (基于条件gan的图像转图像) 作者:Phillip Isola, J ...

  2. 《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》论文笔记

    Code Address:https://github.com/junyanz/CycleGAN. Abstract 引出Image Translating的概念(greyscale to color ...

  3. StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation - 1 - 多个域间的图像翻译论文学习

    Abstract 最近在两个领域上的图像翻译研究取得了显著的成果.但是在处理多于两个领域的问题上,现存的方法在尺度和鲁棒性上还是有所欠缺,因为需要为每个图像域对单独训练不同的模型.为了解决该问题,我们 ...

  4. CycleGAN --- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

    文章地址:http://openaccess.thecvf.com/content_ICCV_2017/papers/Zhu_Unpaired_Image-To-Image_Translation_I ...

  5. Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(使用循环一致的敌对网络进行不成对的图像到图像转换)

    作者:朱俊彦,朱俊彦博士是计算机图形学领域现代机器学习应用的开拓者.他的论文可以说是第一篇用深度神经网络系统地解决自然图像合成问题的论文.因此,他的研究对这个领域产生了重大影响.他的一些科研成果,尤其 ...

  6. 《StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation》论文笔记

    ---恢复内容开始--- Motivation 使用单组的生成器G和判别训练图片在多个不同的图片域中进行转换 效果确实很逆天,难怪连Good Fellow都亲手给本文点赞 Introduction 论 ...

  7. 《Image-to-Image Translation with Conditional Adversarial Networks》论文笔记

    出处 CVPR2017 Motivation 尝试用条件GAN网络来做image translation,让网络自己学习图片到图片的映射函数,而不需要人工定制特征. Introduction 作者从不 ...

  8. (Pixel2PixelGANs)Image-to-Image translation with conditional adversarial networks

    Introduction 1. develop a common framework for all problems that are the task of predicting pixels f ...

  9. (转)Awesome GAN for Medical Imaging

    Awesome GAN for Medical Imaging 2018-08-10 09:32:43 This blog is copied from: https://github.com/xin ...

随机推荐

  1. JS 作用域与变量提升---JS 学习笔记(三)

    你知道下面的JavaScript代码执行时会输出什么吗? var foo = 1; function bar() { if (!foo) { var foo = 10; } console.log(f ...

  2. 编译原理中DFA最小化

    关于编译原理最小化的操作,专业术语请移步至:http://www.360doc.com/content/18/0601/21/11962419_758841916.shtml 这里只是记录一下个人的理 ...

  3. js二分查找算法

    二分查找高效的前提是数据结构是有序的.就好比猜1~100之间的数,先猜50,如果太大了就猜25,如果太小了就猜75.每一次都猜最大值和最小值的中间点. 1.随机生成100个0~100之间的随机数. v ...

  4. sublime text3使用

    设置tab键为若干空格 { "tab_size": 4, "translate_tabs_to_spaces": true }

  5. Android屏幕适配框架-(今日头条终极适配方案)

    在Android开发中,屏幕适配是一个非常头痛的问题,因而为了去进行屏幕适配,作为程序员,是呕心沥血,历经磨难,哈哈 我们之前做屏幕适配一般都会用到一下两种方式: 第一种就是宽高限定符适配,什么是宽高 ...

  6. vue2 作用域插槽slot-scope详解

    插槽分为单个插槽,具名插槽,还有作用域插槽,前两种比较简单这里就不赘述了,今天的重点是讨论作用域插槽. 简单来说,前两种插槽的内容和样式皆由父组件决定,也就是说显示什么内容和怎样显示都由父组件决定: ...

  7. discuzX3.4安装之后,没有任何样式怎么办?

    问题:最近在做论坛,想着直接用现成的论坛,但是在安装完成之后,竟然一点样式的都没有,如图: 解决方案: 登录后台->工具->更新缓存

  8. SWUST OJ(599)

    拉丁方阵 #include <iostream> #include <cstdlib> using namespace std; int main() { int n; cin ...

  9. kendo ui DatePicker 时区转换

    http://blog.darkthread.net/post-2013-06-25-json-date-timezone-issue.aspx

  10. mysql锁分析相关的几个系统视图

    1.infomation_schema.innodb_lock_waits+-------------------+-------------+------+-----+---------+----- ...