Enhanced Deep Residual Networks for Single Image Super-Resolution
Enhanced Deep Residual Networks for Single Image Super-Resolution
用于单一图像超分辨率的增强型深度残差网络
论文摘要
论文介绍
首先,神经网络模型的重构性能对小型架构的变化敏感。同样的模型通过不同的初始化和训练技术会有不同的性能水平。因此,需要精心设计的模型架构和复杂的优化方法来训练神经网络。
其次,大多数现有的SR算法将不同尺度因子的超分辨率作为独立问题,不考虑和利用SR中不同尺度之间的相互关系。因此,这些算法需要许多规模特定的网络,需要独立地训练来处理各种尺度。特别地,VDSR可以在单个网络中联合处理多个尺度的超分辨率。使用多个规模训练VDSR模型可大幅提升性能,优于特定尺度的训练。 尽管如此,VDSR风格架构需要双三次插值图像作为输入,与具有比例特定上采样方法的架构相比,导致更大的计算时间和内存。
虽然SRResNet成功地解决了具有良好性能的时间和内存问题,但它只是采用了He等人的ResNet架构。 没有太多的修改。 然而,原来的ResNet被提出来解决更高级别的计算机视觉问题,如图像分类和检测。 因此,将ResNet架构直接应用于超级分辨率等低级视觉问题可能不是最佳的。
为了解决这些问题,基于SRResNet架构,我们首先通过分析和删除不必要的模块进行优化,以简化网络架构。当模型复杂时,训练网络变得不重要。因此,我们利用适当的损失函数和仔细的模型修改来训练网络。 我们实验表明,修改后的方案产生更好的结果。
第二,我们调查了从其他尺度训练的模型进行知识的转移的模型训练方法。为了在训练过程中利用与尺度无关的信息,我们从预训练的低尺度模型中训练大尺度模型。此外,我们提出了一种新的多尺度架构,其共享了不同尺度的大多数参数。所提出的多尺度模型与多个单尺度模型相比明显使用较少的参数,但是表现更好的性能。
相关工作
最近,深层神经网络的强大能力使得SR的性能显著改善。自Dong等首先提出了一种基于深度学习的SR方法,针对SR问题研究了各种CNN架构。 Kim等人首先介绍了残差网络,用于训练更深层次的网络架构,并取得了卓越的性能。特别地,他们表明,跳过连接和递归卷积减轻了在超分辨率网络中携带一致信息的负担。Mao等人解决了编码器 - 解码器网络和对称跳过连接的一般图像恢复问题。他们认为这些嵌套的跳过连接使得收敛更加快速和性能改进。
在许多基于深度学习的超分辨率算法中,输入图像在输入网络之前通过双三次插值进行上采样。可以在网络最末端训练上采样模块来代替使用内插图像作为输入的方式。 通过这样做,可以减少大量的计算,而不会因为特征的大小而减少模型容量。 然而,这些方法有一个缺点:它们不能像VDSR那样在单一框架中处理多尺度问题。在这项工作中,我们解决了多尺度训练和计算效率的困境。我们不仅利用每个尺度的学习特征的相互关系,还提出了一种新的多尺度模型,可以高效重建各种尺度的高分辨率图像。此外,我们开发了适用于单一和多尺度模型的多尺度的训练方法。
几项研究也侧重于损失函数,以更好地训练网络模型。均方误差(MSE)或L2损耗是广泛使用的一般图像重建的损失函数,也是这些问题的主要性能指标(PSNR)。然而,赵等人报道说,与PSNR和SSIM方面的其他损失函数相比,L2损失的训练不能保证更好的性能。
提出的方法
我们对比了每个网络模型(原始 ResNet、SRResNet、和我们提出的网络)的基础模块。我们在我们的网络中去除了批归一化(batch normalization)层 。由于批归一化层使特征标准化,同时它们也去除了网络中的范围柔性(range flexibility),所以最好去除这些批归一化层。这一简单的修改可以大幅增加性能表现。再者,GPU 的内存使用率也会显著减少(因为批归一化层会消耗与之前卷积层等量的内存)。与 SRResNet 相比,我们没有批归一化层的基准模型,在训练过程当中大概减少了 40% 的内存使用率。因此,我们就可以创建一个更大型的模型,它在计算资源有限的情况下比传统 ResNet 有着更好的性能表现。
多尺度模型
我们用我们提出的图 2 中的残差模块构造了基准(单尺度 —— single-scale)模型。其结构类似于 SRResNet ,但是我们的模型在残差模块之外并没有设置 ReLU **层。而且,我们的基准模型也没有残差缩放层(residual scaling layers),因为我们仅仅为每一个卷积层使用了64维的特征映射。在我们最终的单尺度模型(single-scale model —— EDSR)中,我们通过设置 B = 32 ,F= 256,比例因数(scaling factor )为 0.1 对基准模型进行了扩展。模型结构如图 3 所示。当在升采样因子(upsampling factor)为 ×3 和 ×4 的时候,我们用预训练的 ×2 网络初始化了模型参数。这一预训练方法加速了训练进程,也提升了最终的性能表现。
多尺度情况下的超分辨率是具有相互关联性的任务。我们利用 VDSR 的尺度间相关性创建了多尺度结构,从而进一步探索了这个想法。我们设计了带有一个单一主分支的基准(多尺度 —— multi-scale)模块 ,含有 B = 16 的残差模块,所以大部分参数都可以在不同尺度间进行共享,如图 5 所示。在我们的多尺度结构中,我们引入了尺度特定(scale-specific)的处理模块,以在多尺度下控制超分辨率。首先,预处理模块被置于网络的前端,以减少不同尺度的输入图像的变化幅度,每一个预处理模块包括两个 5×5 内核(kernels)的残值区块(residual blocks )。通过在预处理模块中采用较大的内核,我们可以使尺度特定的部分保持浅层(shallow)状态,在网络的早期阶段可以覆盖较大的接受域(receptive field)。在模型的末端,尺度特定的升采样模块被并行放置,以进行多尺度重构。其升采样(upsampling)模块与单尺度模型中的情况相类似。