【论文阅读笔记】《Pix2Pix》 (2)

在cGAN中虽然没有随机参量z,其实整个网络也是可以运行的,但这导致的结果是生成器的每一个输入都会对应一个确定的输出结果

实验结果

下面我们来看一下Pix2Pix在不同状态下的测试结果,调节公式中的λ,有以下三种情况:仅使用传统的L1 Loss、仅使用cGAN以及同时使用两者的目标函数,结果如图所示。

L1 & cGAN

【论文阅读笔记】《Pix2Pix》

更多具体数据的测试结果如下所示,分别计算了五种组合情况下的像素精确度、分类精确度以及分类IoU(Intersection over Union的缩写,一种计算预测区域与真实区域重叠部分占比的计算方法), L1 + cGAN的组合在各项指标中都是最接近理想状态的。

【论文阅读笔记】《Pix2Pix》

从图1中,我们会发现L1 Loss的输出结果是大致接近原始图像的,但是由于之前提到传统深度学习的问题即导致生成图像非常模糊,而使用cGAN所生成的图像则具备了细节清晰的效果,但是它的问题在于额外添加了很多不必要的细节,有时离原本的真实图像在细节上差距较大。最后一组L1 + cGAN的输出结果是比较令人满意的,综合了两者的特性,既完善了细节也保证了一致性。
我们可以总结出L1 Loss用于生成图像的大致结构、轮廓等,也可以说是图像的低频部分。而cGAN则主要用于生成细节,是图像的高频部分。Pix2Pix在这一点上进行了优化,研究者认为既然GAN仅用于高频部分的生成,那么在训练过程中也没有必要把整个图像都拿来做训练,仅需把图像的一部分作为判别器的接收区域即可,这也就是PatchGAN的思想。由于参数更少,PatchGAN可以使得训练过程变得更加高效,同时也可以针对更大的图像数据集进行训练。

不同Patch的影响

在Patch的大小上Pix2Pix也进行了测试,针对原始图像为286×286的情况,分别采用了1×1像素(称为PixelGAN)、16×16像素、70×70像素以及全图286×286像素(称作ImageGAN),结果如下图所示。相比于模糊的L1生成图像,PixelGAN虽然未能在图像细节上改进,但是在色彩上面已经优于原始L1的方案。16×16和70×70的PatchGAN均取得了比较不错的效果,相比之下70×70在色彩还原和图像细节上都更胜一筹,而最后ImageGAN和70×70的PatchGAN相差不大。在最终的数据结果中,70×70的PatchGAN取得了最好的成绩。

【论文阅读笔记】《Pix2Pix》

【论文阅读笔记】《Pix2Pix》

U-Net & 编解码器

下图展示了使用传统编码解码网络与U-Net之间的差别,在仅使用L1 Loss和L1 +cGAN的两种情况下,U-Net都具备了比较高的清晰度,生成了更高质量的图像数据。表8-3记录了四种组合情况下三种准确度的比较,使用U-Net的L1 + cGAN方案在各种精度计算下都表现最优。

【论文阅读笔记】《Pix2Pix》

【论文阅读笔记】《Pix2Pix》

不同场景下的pix2pix效果图

【论文阅读笔记】《Pix2Pix》

【论文阅读笔记】《Pix2Pix》

【论文阅读笔记】《Pix2Pix》

知识补充 PatchGAN的patch

GAN一般情况下的网络结构,在一些人的实验中已经表明对于要求高分辨率、高细节保持的图像领域中并不适合,有些人根据这一情况设计了PatchGAN的思路。这种GAN的差别主要是在于Discriminator上,一般的GAN是只需要输出一个true or fasle 的矢量,这是代表对整张图像的评价;但是PatchGAN输出的是一个N x N的矩阵,这个N x N的矩阵的每一个元素,比如a(i,j) 只有True or False 这两个选择(label 是 N x N的矩阵,每一个元素是True 或者 False,来表示patch ij的真假),这样的结果往往是通过卷积层来达到的,所以PatchGAN将判别器换成了全卷积网络.因为逐次叠加的卷积层最终输出的这个N x N 的矩阵,其中的每一个元素,实际上代表着原图中的一个比较大的感受野,也就是说对应着原图中的一个Patch,因此具有这样结构以及这样输出的GAN被称之为PatchGAN。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpxpx.html