实验及其结果
生成结果
下图展示了某些CycleGAN生成的图像,输入的是来自于Sentinel-2的RGB模式的光学图像,转换后的图像我们模拟了刚下完雪之后的场景。直观来看,生成的雪还蛮逼真的,CycleGAN学习雪的纹理和颜色效果挺好,而且还能把它嵌进原来的图像里并保持原来的基本结构。我们注意到,在城市和农村,对道路、建筑物着色效果都挺好的。
CycleGAN人工降雪虽然图中展示的图像定性地来看还不错,但其实细节上挺一般的,我们给上面的红框拉个特写,我们的模型经常生成一些很不自然的网格状的图形,尤其是在水边儿,这种情况特别明显。为了更进一步研究其过程,我们简单算了一下原图和生成图的L1范数,并把RGB通道都分离开,我们仔细研究就可以发现,CycleGAN生成的图像噪声并不严重,但L1范数中的斑点比较严重,特别是水面的红色的条带。我们认为这种现象可能只在水面上比较严重,因为它与陆地上的纹理差距很大,而且训练数据里水面的数据也不多。
给个特写图像质量比较
我们已经讨论了CycleGAN定性的输出结果,但对于未配对的图像翻译架构的评估,还缺少一个公认的方法。就像前文所说的,GANs结果的评估热度很高,新方法层出不穷,但很少有针对我们这样的不配对的图像设计的。像是Pix2Pix那种用成对数据进行训练的模型,我们可以直接用生成图像与原图像做比较来判断结果好坏,但CycleGAN就麻烦多了:我们甚至找不到一个比较好的Loss来对训练进行控制,虽然“不成对”让CycleGAN适用范围变广了,但确实也导致了传统的评估技术很难发挥作用。
为了定量地做比较,我们用FID、CRD和FRD来尝试计算每个阶段生成的数据,使我们能够在动态中研究CycleGAN的训练过程,并把做成表,把结果打在公屏上。可以看得出来,只有循环一致性损失效果比较好(译者认为从图上看,主要是因为循环一致性损失总能提供梯度,而其他的都有断崖式下跌和很长的平台期无法指导训练),生成器损失和鉴别器损失都是开始不久就稳定下来了,FID不仅有这个问题,整个波动也很严重。并且,下图c和d无疑也证明,Resnet比起Inception-v3确实还是要好一点,因为在整个过程中,它的曲线比较顺滑流畅。
(!!!这里论文原文确实比较的是图c和d,但很明显图的标注里比较Resnet和Inception-v3的很明显应该是b和c,可能是文章笔误)
a是生成器损失、判别器损失和循环一致性损失,b是Frechet Inception Distance,c是Frechet Resnet Distance,d是Cosine Resnet Distance下面的图再次展示了那块区域,在1、1o和50个epoch时采样,可以看出,随着训练的进展,图像越来越清晰,我们注意到,即使在第1个epoch的时候,雪的颜色已经很好的被表达出来。我们在右侧展示了三个波段之间L1范数,以展示生成的伪像的位置——以及他们逐渐消失的趋势。
在1、10、50epoch时的生成效果和对应的L1范数的展示
交叉特征
我们已经说明,通过将Resnet-50的结果嵌入CycleGAN的生成图中,图像质量有所提高(这一点在伪像和模糊程度上都能得到反应),但我们真正想知道的是:CycleGAN通过这种嵌入,生成图像到底相较于真实图像有多大说服力。
在最终的对CycleGAN生成结果质量的测试中,我们用了一个随机森里分类器,用来对真实图像和CycleGAN各个阶段的生成图像做分类,重复100次,展示在下图里,虽然生成结果在迷惑判别器方面有很大提升,或者,分类器的对数损失确实有改善,但即使运行到200个epoch时,对数损失仍然很低,这表明随机森林对于基于Resnet-50特征的生成图像和真实图像判别能力还是挺强的。这有可能是因为图2中展示的artifacts的原因。
随机森林分类器的Loss最后的最后,为了进一步探索CycleGAN在嵌入方面的行为,我们对1个epoch、200个epoch和实际样本的嵌入特征做主成分分析,并把它们画在图里,我们能够看出,随着CycleGAN的训练,样本分布逐渐从蓝色变化到橙色,实际上的分布则应该是绿色。
主成分分析的结果,对于1、200epoch以及真实图像的反应
网友评论