转:https://blog.csdn.net/Cyiano/article/details/78426824?locationNum=4&fps=1
图像超分辨EDSR:Enhanced Deep Residual Networks for Single Image Super-Resolution,论文笔记
简介
- 作者提出的模型主要是提高了图像超分辨的效果,并赢得了NTIRE2017 Super-Resolution Challenge。
- 做出的修改主要是在残差网络上。残差结构的提出是为了解决high-level问题,而不能直接套用到超分辨这种low-level视觉问题上。因此作者移除了残差结构中一些不必要的模块,结果证明这样确实有效果。
- 另外,作者还设置了一种多尺度模型,不同的尺度下有绝大部分参数都是共用的。这样的模型在处理每一个单尺度超分辨下都能有很好的效果。
模型
Residual blocks
- 作者的原话是:Since batch normalization layers normalize the features, they get rid of range flexibility from networks by normalizing the features。因此有必要把batch norm层移除掉。另外,和SRResnet相似,相加后不经过relu层。最终的结构图如下:
- 值得注意的是,bn层的计算量和一个卷积层几乎持平,移除bn层后训练时可以节约大概40%的空间。
- 太多的残差块会导致训练不稳定,因此作者采取了residual scaling的方法,即残差块在相加前,经过卷积处理的一路乘以一个小数(比如作者用了0.1)。这样可以保证训练更加稳定。
Single scale model
+ 作者采用的结构和SRResnet非常相似,但移除了bn和大多数relu(只在残差块里才有)。最终的训练版本有B=32个残差块,F=256个通道。并且在训练*3,*4模型时,采用*2的预训练参数。此模型称之为EDSR。
multi-scale model
+ 多尺度模型很简单,一开始每个尺度都有两个独自的残差块,之后经过若干个残差块,最后再用独自的升采样模块来提高分辨率。此模型称之为MDSR。
+ 作者的版本B=80,F=64。
实验
准备
- 实验数据用的是比赛提供的DIV2K,它有800张训练图像,100张验证图像,100张测试图像。每张都是2k分辨率。
- 预处理是,每张图像减去DIV2K的总平均值。另外在训练时,损失函数用L1而不是L2,源码用torch7封装。
- 提一下MDSR的训练,是*2 *3 *4三中的尺度随机混合作为训练集,在更新梯度时,只有对应尺度的那部分参数更新。
Geometric Self-ensemble
- 这是一个很神奇的方法,测试时,把图像90度旋转以及翻转,总共有8种不同的图像,分别进网络然后变换回原始位置,8张图像再取平均。这个方法可以使测试结果有略微提高。Note that geometric self-ensemble is valid only for symmetric downsampling methods such as bicubic downsampling.
结果
- 测试的时候只在y通道上评估。