Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 阅读笔记
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上的对抗性损失结合起来,就得到了未成对图像到图像转换的完整目标。
相关工作
- GAN。GAN成功关键在于对抗损失迫使生成图像和真实图像难以区分。本文继续采用这个思想。
- 图像到图像的转化。很多配对的图像到图像训练方法,本文重在非配对图像。
- 非匹配图像到图像的翻译。本文不依赖于任何特定任务的,预定义的输入和输出之间的相似性函数,也不假设我们假设输入和输出必须位于相同的低维嵌入空间。这使我们的方法成为许多视觉和图形任务的通用解决方案。
- 循环一致性。在目标跟踪,语言翻译,3D形状配准等方面。在CNN中也有应用。我们引入了类似的损失来推动G和F相互一致。
- 神经风格转移。是另一种形式的图像到图像的转化。我们主要关注点是通过捕捉高阶结构之间的对应关系来学习两个域之间的映射,而不是两个特定图像之间的映射。
公式

设计两个映射函数,G:X到Y。F:Y到X。并设计两个对抗判别器。Dx用于区分x和F(y),Dy用于区分y和G(x)。同时设计两个损失函数,一个对抗损失用于使得生成图像和目标图像分布一致,另一个是循环一致性损失,以防止G和F相互矛盾。
- 对抗损失: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。
实现
- 网络结构。包括 two stride-2 convolutions, several residual blocks , 和 two 1/2 -strided convolutions。使用instance normalization。对于判别器的网络结构,使用70*70Patch-GANs,即判断70×70图像块是真实或者假。鉴别器架构具有比整张图片判断的鉴别器更少的参数,并且可以以完全卷积的方式应用于任意大小的图像。
- 训练细节。第一,应用了最近工作中的两种技术来稳定我们的模型训练过程,对于Lgan用最小平方差损失替换掉公式1的负log似然函数。公式1变为公式5。

第二,为了减少模型的震荡,更新鉴别器DX和DY,使用历史生成图像,而不是使用最新的生成图像。保存一个图像缓冲区,存储以前生成的50个图像。
结果
比较了本文方法与最近的方法在同一个数据集上的未配对图像对图像的转化。然后研究了对抗性损失和循环一致性损失的重要性,并将我们的完整方法与几个变量进行了比较。最后,我们证明了我们的算法在非配对数据的应用中的通用性。本文方法称为CycleGAN。
Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 阅读笔记的更多相关文章
- image-to-image translation with conditional adversarial networks文献笔记
Image-to-Image Translation with Conditional Adversarial Networks (基于条件gan的图像转图像) 作者:Phillip Isola, J ...
- 《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》论文笔记
Code Address:https://github.com/junyanz/CycleGAN. Abstract 引出Image Translating的概念(greyscale to color ...
- StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation - 1 - 多个域间的图像翻译论文学习
Abstract 最近在两个领域上的图像翻译研究取得了显著的成果.但是在处理多于两个领域的问题上,现存的方法在尺度和鲁棒性上还是有所欠缺,因为需要为每个图像域对单独训练不同的模型.为了解决该问题,我们 ...
- 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 ...
- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks(使用循环一致的敌对网络进行不成对的图像到图像转换)
作者:朱俊彦,朱俊彦博士是计算机图形学领域现代机器学习应用的开拓者.他的论文可以说是第一篇用深度神经网络系统地解决自然图像合成问题的论文.因此,他的研究对这个领域产生了重大影响.他的一些科研成果,尤其 ...
- 《StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation》论文笔记
---恢复内容开始--- Motivation 使用单组的生成器G和判别训练图片在多个不同的图片域中进行转换 效果确实很逆天,难怪连Good Fellow都亲手给本文点赞 Introduction 论 ...
- 《Image-to-Image Translation with Conditional Adversarial Networks》论文笔记
出处 CVPR2017 Motivation 尝试用条件GAN网络来做image translation,让网络自己学习图片到图片的映射函数,而不需要人工定制特征. Introduction 作者从不 ...
- (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 ...
- (转)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 ...
随机推荐
- git图形化界面gitk里中文乱码解决
将git全局配置成utf-8格式即可,命令行里输入 git config --global gui.encoding utf-8
- php LBS(附近地理位置)功能实现的一些思路
在开发中经常会遇到把数据库已有经纬度的地方进行距离排序然后返回给用户 例如一些外卖app打开会返回附近的商店,这个是怎么做到的呢? 思路一: 根据用户当前的位置,用计算经纬度距离的算法逐一计算比对距离 ...
- Jenkins部署的时候报错
拿了一个最简单的,好不容易maven开始跑了 最终给我报错了 [INFO] -------------------------------------------------------------- ...
- CentOS6.9切换root用户su root输入正确密码后一直提示Incorrect password,如何解决?
su是切换用户命令,su root时,输入正确的root命令,却提示Incorrect password,当前用户为普通用户,遇到此问题该如何解决呢? 如果设置了wheel组,使用su root命令是 ...
- canvas 模拟时钟
<meta charset="utf-8"> <canvas width="1000" height="1000" id= ...
- NetSec2019 20165327 Exp6 信息搜集与漏洞扫描
NetSec2019 20165327 Exp6 信息搜集与漏洞扫描 一.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 二.实践内容 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 ...
- 关于RedHat Linux无法使用yum命令安装gcc-c++问题
初入职场,在给RedHat Linux安装环境的时候遇到这么个问题. 参考:http://www.linuxidc.com/Linux/2017-08/146548.htm [root@localho ...
- python学习之读写csv文件(使用pandas)
简介 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本).纯文本意味着该文件是一个字符序 ...
- NPM 报错--fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module
fs: re-evaluating native module sources is not supported. If you are using the graceful-fs module 解决 ...
- 简易OA漫谈之工作流设计(五,直接上级)
规则引擎里比较复杂的问题就是:配置步骤的审批人. 某一个步骤由谁来审批,有很多复杂情况: 1.指定某一个具体的人.这种通常用于一些特殊的岗位,全公司只有一个,比如小公司里的财务,人事专员等. 2.指定 ...