GAN相关 : pix2pix模型

GAN相关 : pix2pix模型

Image-to-Image Translation with Conditional Adversarial Networks

Phillip Isola et al

在图像处理和视觉相关的领域里,有一类问题可以归结为map pixels to pixels,也就是图像转换,image to image translation的问题,比如黑白图像转为彩图,地图与对应的卫星图像的转换等等,实际上就是有匹配规则的成对图像之间的转换。这里作者提出了一种用conditional Adversarial network解决这一类问题的general 的方法,并且用同样的目标函数和网络结构,在不同数据集上训练,对很多问题都能有较好的结果。

abstract

These networks not only learn the mapping from input image to output image, but also learn a loss function to train this mapping. 不但要学习两类图像之间的匹配,还要学习这种匹配之间的loss 函数。

introduction

传统的CNN做图像的匹配之类的工作,往往受到需要手工设计loss函数的困扰,作者把这个比喻成king midas,也就是神话里的那个金手指的米达斯王:我们必须很小心的考虑我们想要什么结果!像传统的欧氏距离,也就是二范数对于图像问题来说是不太好的,因为用l2norm 的结果倾向于blurry,因为 This is because Euclidean distance is minimized by averaging all plausible outputs, which causes blurring. 而不同的图像处理的任务需要的可能目的不同,那么就需要专家知识,手工设计,这样以来普适性也不强。

而GAN不需要手动设计,GAN是一个生成式的模型,它会根据判别器的判决自动地学到输入数据的分布,从而生成可以以假乱真的图像,从而使得G和D的博弈达到均衡。这里用的不是传统的GAN,而是conditional GAN,也就是说,可以学习一个有条件的生成模型。这里的条件就是匹配关系,即我们的输入图像和输出图像的对应关系。

简单的一个栗子,从线条画到实物图像:


这里写图片描述

related work

image modeling的传统方法通常是把图像转换看作是一个per-pixel的分类或者回归问题,所以忽略了像素间的结构信息,所以有很多工作在做structural loss ,而且conditional GAN(以下简称cGAN)就是学习structural loss。

用GAN做有限制的情况下的学习早已有之,但是这篇文章作者认为一个重要的不同是这里的模型是cGAN,而不是通过l2 Regression 进行手工约束的unconditional GAN,所以并不是application-specific,而且模型比别人的要简单。

提到的一些其他的不同,比如在生成器中用了U-Net的结构,判别器用了卷积的PatchGAN的结构。

method

先看目标函数


这里写图片描述

首先,用了一个与(x和y)和(x和G(x))都有关的cGAN的loss,所以可以保证匹配,而且,作者说之前有工作发现把GAN loss和传统的loss结合起来效果更好,所以加入了一个l1 loss,之所以不用l2是因为l1可以相对较少的引入blurring。

再看网络结构

对于generator,用了skip来保持细节信息不丢失,采用了U-Net based方法,如下:


这里写图片描述

Markovian discriminator (PatchGAN),这个是为了将高频限制在我们的期望范围内。由于L1已经可以保证低频的正确性,所以我们利用PatchGAN来约束高频。PatchGAN的基本思路就是它的惩罚项是加在n×n的patch上的,然后把所有的patch平均得到最终的输出D。这是一个具有马尔科夫场含义的model,因为它预设了超过patch的直径大小的pixel都是相互独立的。所以作者说Our PatchGAN can therefore be understood as a form of texture/style loss. 是一个texture loss。纹理相关的一个损失函数。


这里写图片描述

这里给出了U-Net和l1和cGAN分别的作用


这里写图片描述
这里写图片描述

作者给出了很多应用的示例,除了图像转换,还有根据线条生成绘画(之前在网页上玩过的一个画简笔画生成猫的就是pix2pix的一个应用)。下面贴几个栗子:


这里写图片描述
这里写图片描述