GAN 超分辨率的资料摘录

本篇博客主要记录了这几天我在查找资料时的收获概述,大概也指明了博客中提及到的文章的一部分主要内容,方便大家做一个筛选。

SRGAN With WGAN,让超分辨率算法训练更稳定

SRGAN 是基于 GAN 方法进行训练的,有一个生成器和一个判别器,判别器的主体使用 VGG19,生成器是一连串的 Residual block 连接,同时在模型后部也加入了 subpixel 模块,借鉴了 Shi et al 的 Subpixel Network 的思想,让图片在最后面的网络层才增加分辨率,提升分辨率的同时减少计算资源消耗。详细的介绍建议大家还是直接看论文,网上也有一些解读的文章,这里就直接介绍实现的一些创新细节。

令人拍案叫绝的Wasserstein GAN

WGAN 相对于 GAN 的改进的地方:

  • 判别器最后一层去掉 sigmoid
  • 生成器和判别器的 loss 不取 log
  • 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数 c
  • 不要用基于动量的优化算法(包括 momentum 和 Adam),推荐 RMSProp,SGD 也行

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks

摘要:超分辨率生成对抗网络(SRGAN)是一项开创性的工作,能够在从单张低分辨率图像重建出高分辨率图像(single image super-resolution,SISR)过程中生成逼真的纹理。然而,预测细节通常伴随着令人不快的伪影。为了进一步提高视觉质量,我们彻底研究了 SRGAN 的三个关键组成部分:网络架构、对抗性损失和感知损失,并对每个组件进行了改进,得到了增强型 SRGAN(ESRGAN)。特别是,我们在没有批归一化的情况下引入 Residual-in-Residual Dense Block(RRDB)作为基本网络构建单元。此外,我们借用 relativistic GAN 的思想来让判别器预测相对真实性而不是绝对值。最后,我们通过使用激活前的特征来改善感知损失,这可以为亮度一致性和纹理恢复提供更强的监督。得益于这些改进,本研究提出的 ESRGAN 实现了始终如一的更好的视觉质量,具有比 SRGAN 更逼真和自然的纹理,并在 PIRM2018-SR 挑战赛中获得第一名。

深度学习中的Normalization模型

对于有些像素级图片生成任务来说,BN 效果不佳;
对于图片分类等任务,只要能够找出关键特征,就能正确分类,这算是一种粗粒度的任务,在这种情形下通常 BN 是有积极效果的。但是对于有些输入输出都是图片的像素级别图片生成任务,比如图片风格转换等应用场景,使用 BN 会带来负面效果,这很可能是因为在 Mini-Batch 内多张无关的图片之间计算统计量,弱化了单张图片本身特有的一些细节信息。

EDSR 论文笔记

以图像超分辨率来说,网络输出的图像在色彩、对比度、亮度上要求和输入一致,改变的仅仅是分辨率和一些细节。而 Batch Norm,对图像来说类似于一种对比度的拉伸,任何图像经过 Batch Norm 后,其色彩的分布都会被归一化。也就是说,它破坏了图像原本的对比度信息,所以 Batch Norm 的加入反而影响了网络输出的质量。ResNet 可以用 BN,但也仅仅是在残差块当中使用。

渣画质的救赎——基于GAN的超分辨率方案

ESRGAN的整体框架和SRGAN保持一致,相比SRGAN,ESRGAN有4处改进。

  • 用Dense Block替换Residual Block,并去掉BN层
  • 改进对抗损失函数——使用Relativistic GAN
    判别器该部分的损失为:
    L D R a = − E x r [ log ⁡ ( D R a ( x r , x f ) ) ] − E x f [ log ⁡ ( 1 − D R a ( x f , x r ) ) ] L_{D}^{R a}=-\mathbb{E}_{x_{r}}\left[\log \left(D_{R a}\left(x_{r}, x_{f}\right)\right)\right]-\mathbb{E}_{x_{f}}\left[\log \left(1-D_{R a}\left(x_{f}, x_{r}\right)\right)\right]\quad LDRa​=−Exr​​[log(DRa​(xr​,xf​))]−Exf​​[log(1−DRa​(xf​,xr​))]
    生成器该部分的损失为:
    L G R a = − E x r [ log ⁡ ( 1 − D R a ( a r , x f ) ) ] − E x f [ log ⁡ ( D R a ( x f , x r ) ) ] L_{G}^{R a}=-\mathbb{E}_{x_{r}}\left[\log \left(1-D_{R a}\left(a_{r}, x_{f}\right)\right)\right]-\mathbb{E}_{x_{f}}\left[\log \left(D_{R a}\left(x_{f}, x_{r}\right)\right)\right] LGRa​=−Exr​​[log(1−DRa​(ar​,xf​))]−Exf​​[log(DRa​(xf​,xr​))]
  • 改进生成器——使用relu激活前的特征图计算损失
    1. 激活后的特征图变的非常稀疏,丢失了很多信息。
    2. 使用激活后的特征图会造成重建图片在亮度上的不连续。
  • 使用网络插值(network interpolation)方法平衡解决客观评价指标与主观评价指标的矛盾
    θ G I N T E R P = ( 1 − α ) θ G P S N R + α θ G G A N \theta_{G}^{\mathrm{INTERP}}=(1-\alpha) \theta_{G}^{\mathrm{PSNR}}+\alpha \theta_{G}^{\mathrm{GAN}} θGINTERP​=(1−α)θGPSNR​+αθGGAN​
上一篇:图像修复 2021年


下一篇:GAN理论推导(未完待续)