Accurate Image Super-Resolution Using Very Deep Convolutional Networks
在VDSR论文中作者提到,输入的低分辨率图像和输出的高分辨率图像在很大程度上是相似的,也就是指低分辨率图像携带的低频信息与高分辨率图像的低频信息相近,训练时带上这部分会多花费大量的时间,实际上我们只需要学习高分辨率图像和低分辨率图像之间的高频部分残差即可。残差网络结构的思想特别适合用来解决超分辨率问题,可以说影响了之后的深度学习超分辨率方法。VDSR是最直接明显的学习残差的结构,其网络结构如下图所示。
论文链接: (Accurate Image Super-Resolution Using Very Deep Convolutional Networks, CVPR2016)
摘要
提出一个高准确度的SISR方法。该方法使用一个深网络(启发于用于ImageNet 分类的VGG-net)。使用深网络可以有效提高结果,但是训练收敛速度会变缓慢,因此提出一个简单但有效的训练策略:仅学习残差;使用比SRCNN高 1 0 4 10^{4} 104倍的高学习率。使用极高学习率会导致梯度爆炸,解决方法:残差学习和梯度裁剪(gradient clipping)
本文方法解决以上问题:
- 上下文信息(Context):通过stack small filters来进行获得一个比较大的感受野,最大达到41x41,深网络可以使用较大的感受野,这可以充分考虑上下文信息;
- 收敛(Convergence):加速训练:通过残差学习和极高学习率;
- 尺度(Scale Factor):一个单一的神经网络可以针对多尺度超分辨率;
VDSR主要有4点贡献。
- 加深了网络结构(20层),使得越深的网络层拥有更大的感受野。文章选取3×3的卷积核,深度为D的网络拥有(2D+1)×(2D+1)的感受野。
- 采用残差学习,残差图像比较稀疏,大部分值都为0或者比较小,因此收敛速度快。VDSR还应用了自适应梯度裁剪(Adjustable Gradient Clipping),将梯度限制在某一范围,也能够加快收敛过程。
- VDSR在每次卷积前都对图像进行补0操作,这样保证了所有的特征图和最终的输出图像在尺寸上都保持一致,解决了图像通过逐步卷积会越来越小的问题。文中说实验证明补0操作对边界像素的预测结果也能够得到提升。
- VDSR将不同倍数的图像混合在一起训练,这样训练出来的一个模型就可以解决不同倍数的超分辨率问题。
方法
- 输入为插值后的低分辨率图像。
- 除第一层和最后一层之外,中间d层有相似结构:64个滤波器,尺寸为3 × 3 × 64,每一个滤波器跨64个通道,在3 × 3空间区域内操作。
- 第一层,对输入图像操作。
- 最后一层用于图像重建,包含一个滤波器,尺寸为3 × 3 × 64。
- 在每个卷积层之前补0保证特征图和输入图像尺寸一样。
训练
设x为插值后的低分辨率图像,y为高分辨率图像。给定训练数据集 { x ( i ) , y ( i ) } i = 1 N \left\{\mathbf{x}^{(i)}, \mathbf{y}^{(i)}\right\}_{i=1}^{N}