开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 31 天,点击查看活动详情
1. 概述
很多的图像处理问题可以转换成图像到图像(Image-to-Image)的转换,即将一个输入图像翻译成另外一个对应的图像。通常直接学习这种转换,需要事先定义好损失函数,然而对于不同的转换任务,需要设计的损失函数也不尽相同。得益于生成对抗网络GAN的提出,尤其是条件生成对抗网络cGAN[1](conditional GAN),可以直接学习这种映射关系,同时不需要人工定义该映射的损失函数,可以通过自动的学习得到。基于cGAN的基本原理,Pix2Pix[2]提出了一种图像转图像的通用框架。Pix2Pix网络不仅能够学习到从输入图像到输出图像的映射,还能学习到用于训练该映射的损失函数。
2. 算法原理
2.1. Pix2Pix的原理
与GAN,cGAN的结构一致,在Pix2Pix中包括两个部分,即生成器和判别器,对于cGAN的结构,可以由下图表示:
其中,为随机噪音,为条件变量,对于基本的cGAN,将随机噪音和随机变量两者concat后输入到生成器中,得到生成结果;将生成的结果或者真实数据与随机变量两者concat后输入到判别器中,判断该输入是来自真实的,还是生成的。而Pix2Pix的结构如下图所示:
其中生成器将输入的轮廓图映射成图片,判别器在轮廓图 的条件下,对于生成的图片和真实图片判断是否是真实图片。与cGAN相比,有四点不一致:
差异 | cGAN | Pix2Pix |
---|---|---|
生成器的输入 | concat(,) | |
生成器 | MLP | U-Net |
判别器的输入 | concat(,) | concat(,) |
判别器 | MLP | PatchGAN |
对于cGAN,其目标函数为:
最优的生成器为:
Pix2Pix在cGAN目标函数的基础上,增加了正则:
最终,最优的生成器为:
在Pix2Pix中,设计了专门的生成器和判别器。
2.2. 生成器U-Net
在Pix2Pix中的生成器采用了U-Net结构,U-Net[3]是2015年提出用于处理生物医学图像分割的卷积网络,U-Net的网络结构如下图所示:
如上图,U-Net网络是一个对称的结构,因为形似英文字母“U”所以也被称为U-Net。在上图中,蓝色和白色的框表示的是 feature map,蓝色箭头表示的是的卷积,用于特征提取,灰色箭头表示的是skip-connection,用于特征融合,红色箭头表示的是pooling,用于降低维度,绿色箭头表示的是上采样upsample,用于恢复维度,青色箭头表示的是的卷积,用于输出结果。
U-Net网络是一个典型的Encoder-Decoder结构,与一般的Encoder-Decoder结构不同的是在Encoder和Decoder之间增加了skip connection。其中Encoder是由卷积操作和下采样操作组成,用于特征提取;Decoder是由卷积操作和upsampling操作组成。其与encoder-decoder架构的关系如下图所示:
2.3. 判别器PatchGAN
判别器PatchGAN的思路也比较直接,对比原先一个CNN模型对整个图片进行卷积和pooling的操作,在PatchGAN中,模型对每一个的patch进行操作,最终将所有的patch块的结果做平均,作为最终的判别器的输出。
3. 总结
Pix2Pix借鉴cGAN的基本原理,并对其中的损失函数,生成器,判别器分别做了优化,从而实现了图像到图像的转换。
参考文献
[1] Mirza M, Osindero S. Conditional generative adversarial nets[J]. arXiv preprint arXiv:1411.1784, 2014.
[2] Isola, Phillip, Jun-Yan Zhu, Tinghui Zhou, and Alexei A. Efros. “Image-to-image translation with conditional adversarial networks.” In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 1125-1134. 2017.
[3] Ronneberger O , Fischer P , Brox T . U-Net: Convolutional Networks for Biomedical Image Segmentation[J]. Springer International Publishing, 2015.
[4] Pix2Pix图图转换网络原理分析与pytorch实现
[5] U-Net原理分析与代码解读
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 31 天,点击查看活动详情