论文:https://arxiv.org/abs/1611.07004
代码:https://github.com/phillipi/pix2pix
摘要
条件对抗网络:不仅学习从输入图像到输出图像的映射,而且学习一个损失函数来训练这个映射。
使用条件对抗网络,不需要针对不同图像翻译问题设计不同的损失函数,从而使得本文提出的pix2pix网络成为一个图像翻译的通用网络。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 引言
我们仍然必须告诉CNN我们希望最小化的东西,如果让CNN将预测像素与真实像素之间的欧几里得距离最小化,往往会产生模糊的结果。
GAN学会了分类输出图像是真实的或假的的损失,同时训练生成模型以最小化这种损失。模糊的图像将不被容忍,因为他们看起来显然是假的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 近期工作
用于图像建模的结构化损失:按像素分类或者回归是非结构化的,因为每个输出像素被认为是独立于其他像素点的。条件GAN的损失是学习的,理论上可以惩罚输出和目标之间不同的任何可能的结构。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 方法
cGAN: x是观测图像,z是随机噪声,y是目标图像
训练过程如下:
目标函数:
加入L1距离是因为发生器的任务不仅在于欺骗鉴别器,还要接近真实输出。且L1与L2相比鼓励更少的模糊。
(无条件GAN与有条件GAN的区别在于:鉴别器是否观察x,观察了x,可以使观测图像与目标图像更加匹配,不然可能会出现,生成器生成的图像是逼真的,但是与观察图像所对应的目标图像不一致。)
网络架构:
生成器:U-Net
鉴别器:Markovian discriminator
(尽管L2或L1损失不能鼓励高频率的清晰度,但是在很多情况下,它们却准确地捕捉到低频率。为了对高频进行建模,将注意力限制在局部图像块中的结构就足够了)
(论文中设计一个鉴别器体系结构 - 称之为PatchGAN–只在patch的尺度上惩罚结构。这个鉴别器试图分类图像中的每个N*N的块是真实的还是假的。在图像上卷积运行这个鉴别器,对所有响应进行平均,以提供D的最终输出。PatchGAN可以被理解为纹理/样式损失的一种形式)
(PatchGAN的鉴别器不仅仅输出一个值,而是把图像划分成许多patch,判断每个patch与label是否相符。pixelGAN就是输出一个值,ImageGAN输出一张图的大小。)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 试验
1、 cGAN+L1(L1是产生更接近真实的输出,但是模糊。cGAN是对结构把握的很好,但是不接近真实)
2 、 U-net(与encoder-decoder相比,验证其独有的跨层连接是否起到作用)
3 、 patchGAN中patch的大小(patch越小结构越模糊,不过颜色也越鲜艳。70和256能达到类似的结构精度,不过文中说最终效果256的会差一点)
4 、 L1导致比groundtruth更窄的分布,证实了L1鼓励平均灰色的假设。另一方面,使用cGAN将输出分布推向更接近实际情况。
介绍pix2pix条件对抗网络,该网络不仅学习图像映射,还学习损失函数。通过使用cGAN结合L1损失,避免了传统GAN可能导致的图像模糊问题,并通过PatchGAN实现了局部图像块的精确匹配。
2826

被折叠的 条评论
为什么被折叠?



