"ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks" 笔记

1. 论文简介

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks为ECCV 2018 workshop文章,该方法在PIRM2018-SR比赛(PIRM2018-SR Challenge)中取得第一名,本论文提出的一些关于超分辨率重建的相关内容具有研究价值,因此单独拿出来记录一下。原文给出代码,需要请戳我

2. 具体方法及内容

2.1 网络结构

网络结构如下图,和原SRGAN基本一致,区别在于针对基本块(BasicBlock)的替换,针对基本块的设计,作者也提出了不同的设计方法。
网络结构
作者针对基本块做出对比并提出了新的RRDB(Residual in Residual Dense Block)结构。下图左侧为SRGAN中常用的基本结构,右侧为本文使用的RRDB结构块,其中$\beta$为模型中的残差缩放参数。

注意上图左侧,作者将原SRGAN中的BN层移除,这里作者解释是:在不同的以PSNR为导向的任务中(包含SR和去模糊任务),通过移除BN层能够有效的增加性能并且减少模型的计算复杂度,证明论文戳我。BN层通过在训练中使用一批数据的均值和方差规范化特征并且在测试时通过使用在整个训练集上预估后的均值和方差规范化测试数据。当训练集和测试集的统计结果相差甚远时,BN层常常趋向于引入一些不太爽的伪影并且限制了模型的泛化能力。在经过试验对比后作者发现BN层在较深的网路和GAN网络中更容易带来伪影问题,因此作者选择移除BN层。

作者保留了SRGAN的主体结构,在模型细节部分,作者选用了RRDB结构,RRDB的优势该结构使用了与SRGAN更深更为复杂的网络结构,基于观察,多层多连接结构有助于提高性能。同时该结构含有一个“残差再残差”结构,使得在不同层级都能使用到残差。

此外,作者对训练网络还提出两点技巧:1)残差缩放:在添加结果到主路径前通过乘一(0,1)之间的数来保证稳定;2)使用较小数值初始化,实验证明较小方差初始化使得参加结构能够更容易训练。

2.2 相对判别器(Relativistic Discriminator)

作者除了对生成器做出一些改进,同时对判别网络做出变更,本文选用了一种基于相对判别器(Relativistic Discriminator)的改进网络。
和传统SRGAN中的判别器D不同的是,原本判别器仅仅针对输入图$x$判断其是真实且自然的概率,而相对判别器尝试去预测真实图像$x_r$相对生成结果(假的)$x_f$更加真实地概率。

本文基于这一网络提出了一种平均相对判别器,具体生成器损失函数如下:

判别器损失:

2.3 改进感知损失(Perceptual Loss)

作者针对原始SRGAN中的感知损失(Perceptual Loss),提出了一种更加高效的感知损失函数,同时作者证明了末尾激活函数对感知损失结果输出具有负面影响,因此作者选用了去掉VGG末尾后的网络从取得感知损失结果。总损失函数如下:
$$L_G=L_{percep}+\lambda L_G^{Ra}+\eta L_1$$
同时为了证明末尾激活函数的影响,作者做了如下实验:

可以发现通过激活函数后,输出特征经过平滑后明显有所损失,所以为了尽可能保留特征细节,作者去掉了末尾的激活函数层。

2.4 网络插值(Network Interpolation)

为了去除基于GAN产生的噪声结果,本文提出了一种高效的策略——网络插值。具体操作如下:首先训练一个以PSNR导向的网络$G_{PSNR}$,之后再使用一个基于GAN网络的$G_{GAN}$来进行调优,通过两个网络参数结合来提升生成结果。
$$\theta_G^{INTERP}=(1-\alpha)\theta_G^{PSNR}+\alpha\theta_G^{GAN}$$
其中$\alpha\in[0,1]$。

3. 实验结果

这里展示部分结果,具体结果见原文,可以看到效果还是很好的。

4.总结

本文从多个角度提出了基于GAN的超分辨率重建的新方法,颇具成效,具体从以下几个方面:

  • 网络结构(包括RRDB的提出,BN层去除)
  • 平均相对判别器的使用
  • 感知损失的改进
  • 提出网络差值方法改进超分辨率重建结果

猜你喜欢

转载自www.cnblogs.com/phoenixyu/p/9700534.html