ESRGAN任务是超分,是ECCV18年的文章,曾在PIRM2018超分竞赛获得第一名,模型是在SRGAN基础上进行的改进;而SRGAN(CVPR17)是最早用GAN来做超分的文章,其2个特色分别是:

(1)生成器使用残差块。使用残差结构主要是由于设计的网络比较深,为了保证梯度信息的有效传播,增强网络稳定性。

(2)相较同行较早使用perceptual loss,是不是它最早提出的有待考证。

 

回到ESRGAN,它在SRGAN基础上把模型的几个组成成分都改了:(1)生成器结构改进。(2)判别器改用相对判别器。(3)损失函数(微调)。

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCV2018

 

生成器

本文对生成器的结构做了两个改进,分别就是下图的左右两部分。

(1)去掉了所有BN层。原因是作者发现BN层在网络较深时及GAN网络训练时会带来伪影。另外去掉它也减少了计算复杂度。

BN层效果不好的原因方面,比较赞同这个知乎专栏提到的:相对于分类这种“粗粒度”任务,像风格迁移、增强等这种“细粒度”任务中用BN的话,mini-batch内多张无关的图片之间计算了统计量,会弱化单张图片本身特有的细节信息。引自:深度学习中的Normalization模型,https://zhuanlan.zhihu.com/p/43200897

(2)用残差密集块(RRDB)代替原始基础块,结合了多层残差网络和密集连接。使用Dense Block是因为之前用BN使得网络更容易优化,不容易陷入局部极小值,去掉BN后优化难一些,就使用了解空间更平滑、更容易训练的DenseNet结构,不过这里加大了计算量。

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCV2018

判别器

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCV2018

判别器方面,则是将最原始的标准GAN判别器改成了相对判别器(Relativistic Discriminator)。优化上是从原来真图判别为1增强图判别为0改为:真图的判别结果-增强图的平均判别结果往1方向优化(反过来同理)。

实际意义是使用对比的思想,优化使得当前真图比当前mini batch中增强图的平均更真实(反过来同理)。原来的话其实单纯往1、0优化只是将真/假距离拉大,而相对判别器进行真假对比更合理。

之前的EnlightenGAN也采用了相对判别器。

 

损失函数

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCV2018

主要关注生成器,其损失函数分三部分。其中第二项是GAN对抗损失(相对判别器版);第三项L1损失是监督学习增强输出与标签的L1。

改进在于第一项感知损失,之前的感知损失是vgg特征提取网络种**后的层进行特征提取再优化特征向量距离,作者改为用**前的层提取特征,因为**后损失了一些信息。

如下图,上面的四幅图为**前,下面四幅为**后,同时左半部分四幅图和右半部分对比又可以得出,网络越深**后损失的信息会越多。

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCV2018

 

网络插值

这部分Motivation是权衡视觉效果和量化指标(PSNR),采取了一个较直观的策略:在网络权重上进行插值。其中GPSNR模型是PSNR导向的模型,未详细介绍估计是把PSNR放进了loss中训练得到的。

不在增强图像上逐像素插值的原因是容易产生伪影和模糊。除了这两个策略,还有平衡loss中的权重超参数,作者没做这个的原因是计算代价太高。

ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks, ECCV2018

 

实验

训练数据集:

主要使用的是DIV2K(2040*1356)已经收集好了,其次使用的是Flickr2K(20G)和OST。

训练、测试过程:

先划分成patch,然后下采样得到成对训练数据。生成配对数据集时,本文是对HR图像用MATLAB bicubic核函数进行下采样得到LR图。测试时用模型超分将LR图像增强,再与HR图计算PSNR等量化指标。另外评价时作者也用了Ma’s score和NIQE这俩无参考的指标。

 

小结

ESRGAN在生成器结构、判别器更换、损失函数优化三个方面对SRGAN进行了改进。

从再改进角度上看,虽然ESRGAN的效果有所增强,但是其计算量也大了,导致速度不太快,下一步看其生成器结构是否可以改进。

 

实验结果记录

(1)测试模型增强效果

效果方面测试了BSD100和DIV2K数据集,下面的结果是RGB颜色空间下三通道的PSNR结果,这才发现文章报告的PSNR是YcbCr颜色空间中只计算Y亮度这个通道的PSNR结果,有些耐人寻味,之后再改下代码跟原文结果对比一下。

BSD100                  PSNR22.52

DIV2K 的前50张  PSNR24.54

 

(2)测试模型速度

1080Ti单卡,4倍上采样。

输入图Size  120*80     平均0.083s

输入图Size  500*400    平均0.85s

输入图Size  1000*700   平均3.31s

Size再大处理单张图像单卡空间就不够了,需要分割后进行增强,再合并增强结果。

相关文章:

  • 2021-12-12
  • 2021-08-08
  • 2021-04-03
  • 2021-06-07
  • 2021-04-11
  • 2021-04-04
  • 2021-05-02
猜你喜欢
  • 2021-08-07
  • 2021-11-23
  • 2021-04-26
  • 2021-12-30
  • 2021-06-22
  • 2021-11-22
相关资源
相似解决方案