Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

基于对抗生成网络的图像翻译

Pix2Pix是一种基于GAN的图像到图像翻译架构,生成部分G用U-Net代替Encoder-Decoder。普通的GAN接收的G输入是随机向量,输出是图像;但对于图像翻译任务来说,其G输入是一张图x,输出也是一张图y。Pix2Pix的训练需要确定的图像配对。

简介

我们知道语言翻译是在各语种之间进行转换,那么图像翻译也一样,指的是在不同图像之间转换。例如灰度图,彩色图,素描等,我们需要实现在这几种图像状态之间进行转换,所以图像翻译是一个图像生成任务。在这篇论文中,作者提出,多年来,不同的图像翻译任务需要用不同的模型去生成,或者不同的损失函数去优化模型。而在本文中,作者提出基于生成对抗网络(Generative adversarial network 简称GAN)的方法,用同一中框架来解决各种图像翻译问题。作者将提出的算法命名为Pix2Pix,我们可以通过下面的算法效果图来了解下这个算法的作用:

上图展示了pix2pix用同种框架所完成的图像翻译任务并且达到了几乎完美的程度,pix2pix主要运用了GAN的算法,它的核心思想可以用下图来概括(如果不了解GAN,可以先去了解下GAN的基本知识):

我们有一个生成器(Generator 简称G)和一个判别器(Discriminator 简称D)。生成器的输入是一张我们所需要转换的图,例如上图中的素描图X,输出则是翻译目标图,例如上图带彩色的图G(x)。上图表达了给图片着色的一个图片生成应用。如果我们将生成的彩色图与原图一起放进D里,那么D会告诉你生成的图是假的,相反如果输入是真是彩色图与原图,那么判别器G会笃定的告诉你这是真实的图。所以作者提出pix2pix的损失函数为:

\mathcal{L}_{cGAN}(G,D) = \mathbb{E}_{x,y}[\log D(x,y)]+\mathbb{E}_{x,z}[\log(1-D(x,G(x,z)))]

我们可以看出D的输入是有条件的,那条件就是原图,然而作者为了突出Conditional GAN在次应用上的重要性,作者又训练了一个普通的GAN做对比:

\mathcal{L}_{GAN}(G,D) = \mathbb{E}_{y}[\log D(y)]+\mathbb{E}_{x,z}[\log(1-D(x,G(x,z)))]

作者为了保证输入和输出图像的相似度,还加了L1 loss,作者在L1与L2 loss之前选择了前者,理由是L2的损失函数通常会输出图像过于平滑,失去了很多高频信息:

\mathcal{L}_{L1}(G) = \mathbb{E}_{x,y,z}[\left \| y-G(x,z) \right \|_{1}]

那么将上述所有的损失函数结合起来:

G^{*} =  \arg \min _G\max_D \mathcal{L}_{cGAN}(G,D) + \lambda\mathcal{L}_{L1}(G)

生成网络G的结构:

作者题目输入与输出图其实有很多信息共享,例如在着色上,输入与输出图的边缘信息是共享的,而且随着网络深度的增加,信息每经过一层卷积层都有出现丢失的情况,这样会导致出错,那么作者提出用U-Net的结构来减小这种危害。并且作者在对称的两层增加了skip connection。这样做的目的是为了让信息直接从底层无损地传输到高层网络,从而实现信息共享。例如将地i层与n-i层相连。为了突出这种结构的优点,作者通过实验对比了U-net与没有skip connection的Encoder-Decoder网络。实现结果如下图所示:

我们可以看出Encoder-Decoder网络效果远远差与U—Net。然后作者就损失函数的选择做了大量对比实验,如下图所示:

当然,当L1与cGAN损失函数一起的时候,生成的图是最理想的。可以看到只用L1的话,得到的是十分模糊的图片,而单独运用cGAN,会得到好一些的效果。然而如果只用普通的GAN损失函数,由于缺少条件的 显示,多输入图很容易会产生相同的输出图,产生很不理想的结果。

以下是Pix2pix的online demo

以上图片,公式均来自于论文Pix2pix

发展历史

非监督学习一直是机器学习/深度学习方向比较热门的领域,在GAN出现之后,很多任务一下子都可以用同一种框架来解决,而不需要用不同的模型的生成。Pix2Pix就是这样一种算法。Pix2Pix的框架依托cGAN的思想,判别网络的输入是一个两张图组成给的数据结构,这里给的conditional GAN的label是高维的一张图,可以被认为是广义的label。作者巧妙运用U-net结构来实现信息的无损传输并且达到了很好的效果。

同一组作者后来提出了实用性更强的文章 cycle GAN。上篇的应用需要一个十分苛刻的要求,那就是输入输出图必须是要是成对,这在现实中比较难实现,例如不同季节的同一场景,找到一个大数据包含这类数据十分的困难。这篇文章就是为了解决这样一个问题,他们提出了unpaired data的想法。这种情况类似与style transfer。

差不多同一组作者在不就后提出了Toward Multimodal Image-to-Image Translation,作者提出pix2pix这种图像一对一的转换是存在歧义的,所以他们提出了一种一对多的输出,即将可能输出的图像是存在一定的分布特性的。

主要事件

年份事件相关论文/Reference
2017提出基于GAN的图像翻译通用框架Isola, P., Zhu, J. Y., Zhou, T., & Efros, A. A. (2017). Image-to-image translation with conditional adversarial networks. arXiv preprint.
2017运用unpaired data来做图像翻译  Zhu, J. Y., Park, T., Isola, P., & Efros, A. A. (2017). Unpaired image-to-image translation using cycle-consistent adversarial networks. arXiv preprint.  
2017提出一图对应多图的算法Zhu, J. Y., Zhang, R., Pathak, D., Darrell, T., Efros, A. A., Wang, O., & Shechtman, E. (2017). Toward multimodal image-to-image translation. In Advances in Neural Information Processing Systems (pp. 465-476).

发展分析

瓶颈

图像转换还缺少一种评价的方法,而且不可能是通过类似PSNR,SSIM等这种信号级别的评价方法,更多的是靠人眼去评价,对于各种算法的结果,不同的人可能会觉得各有好处。现在的图像翻译多大基于GAN,GAN的发展也极大限制了此类应用的发展

未来发展方向

在游戏渲染,设计方面,这类应用会提供很大的帮助,不久将来也会是很热门的方向。

Contributor: Zhixiang Chi

简介