Accurate Image Super-Resolution Using Very Deep Convolutional Networks(VDSR)

摘要

该方法使用了一个非常深的卷积网络,灵感来自于Imagenet分类。该论文发现,网络深度的增加显示了精度的显著提高。最终的模型使用了20个权重层。通过在深度网络结构中多次级联小滤波器,有效地利用了大图像区域上的上下文信息。然而,在非常深的网络中,收敛速度成为训练过程中的一个关键问题。该文提出了一个简单而有效的训练程序,只学习残差,并使用极高的学习率(比SRCNN高 1 0 4 10^4 104倍,SRCNN通过可调梯度剪辑)。

1.介绍

虽然SRCNN成功地将深度学习技术引入了超分辨率(SR)问题,但发现其局限性有三个方面:首先,它依赖于小图像区域的上下文;第二,训练收敛速度太慢;第三,该网络只适用于单一尺度。在本工作中,该文提出了一种新的实际解决这些问题的方法

  • 上下文: 该文利用上下文信息分布在非常大的图像区域上。对于一个大规模的因素,通常情况下,一个小补丁中包含的信息不足以进行细节恢复(不适定)。该文的非常深的网络使用大的接受域考虑了一个大的图像上下文。
  • 收敛性:该文提出了一种加速训练的方法:残差学习CNN和极高的学习率。由于LR图像和HR图像在很大程度上共享相同的信息,因此有利于对残差图像进行明确的建模,即HR和LR图像之间的区别。
  • 缩放比例:我们提出了一种单模型的SR方法。比例通常是由用户指定的,也可以是任意的,包括分数。例如,可能需要在图像查看器中平滑放大或调整到特定的尺寸。训练和存储许多依赖规模的模型以为所有可能的场景做准备是不切实际的。我们发现单卷积网络对于多尺度因子超分辨率是足够的。

2.模型

2.1 网络

对于SR图像的重建,该文使用了一个非常深的卷积网络。下图概述了该网络:
Accurate Image Super-Resolution Using Very Deep Convolutional Networks(VDSR)_第1张图片

我们使用 d d d层,其中除了第一个和最后一层是相同类型的: 64 64 64个过滤器的大小为 3 × 3 × 64 3×3×64 3×3×64,其中一个过滤器运行在跨 64 64 64个通道的 3 × 3 3×3 3×3空间区域(特征图)。第一层操作于输入图像。最后一层,用于图像重建,由一个大小为 3 × 3 × 64 3×3×64 3×3×64的单一滤波器组成。

2.2 训练

我们现在描述了最小化的目标,以找到我们的模型的最优参数。设 x x x表示插值的低分辨率图像, y y y表示高分辨率图像。给定一个训练数据集 { x ( i ) , y ( i ) } i = 1 N \{x^{(i)},y^{(i)}\}^N_{i=1} {x(i)y(i)}i=1N,我们的目标是学习一个预测值 y ^ = f ( x ) \hat{y}=f(x) y^=f(x)的模型,其中 y ^ \hat{y} y^是对目标HR图像的估计。我们最小其均方误差:
1 2 ∣ ∣ y − f ( x ) ∣ ∣ 2 \frac{1}{2}||\pmb y-f(\pmb x)||^2 21yyyf(xxx)2

残差学习:

S R C N N SRCNN SRCNN中,输入的低分辨率图片必须通过所有层,直到它到达输出层。对于许多权重层,这将成为一种需要非常长期内存的端到端关系。因此,消失/爆炸的梯度问题[2]可能是至关重要的。我们可以简单地用剩余学习来解决这个问题。由于输入图像和输出图像非常相似,我们定义了一个残差图像 r = y − x r=y−x r=yx,其中大多数值很可能是零或较小。我们想预测这个残差图像。损失函数现在变成了,其中f(x)是网络预测。
1 2 ∣ ∣ r − f ( x ) ∣ ∣ 2 \frac{1}{2}||\pmb r-f(\pmb x)||^2 21rrrf(xxx)2
其中 f ( x ) f(\pmb x) f(xxx)是网络的残差预测输出。

在网络中,这一点反映在损失层中,如下所示。我们的损失层需要三个输入:残差估计、网络输入(ILR图像)和地面真实HR图像。损失计算为重建图像(网络输入和输出的和)和真实图像之间的欧氏距离。

对于非常深的网络的高学习率:

训练深度模型在实际的时间限制下可能无法收敛。 S R C N N SRCNN SRCNN在超过三个权重层时未能表现出优越的性能。虽然有各种各样的原因,但一种可能是他们在网络融合之前就停止了训练过程。他们的学习率 1 0 − 5 10^{−5} 105太小了,一个网络无法在一周内集中在一个普通的 G P U GPU GPU上,,很难说它们的深层网络已经收敛,性能已经饱和。虽然更多的培训最终会解决这个问题,但将深度增加到20对于SRCNN似乎并不可行。

梯度限制:

梯度剪切是一种常用于训练递归神经网络的技术。但是,据我们所知,它在训练cnn中的使用是有限的。虽然有许多方法来限制梯度,但其中一种常见的策略是将单个梯度剪辑到预定义的范围[−θ,θ]。为了达到最大的收敛速度,我们将梯度剪辑为 [ − θ γ , θ γ ] [−\frac{θ}{\gamma},\frac{θ}{\gamma}] [γθγθ],其中γ表示当前的学习速率。我们发现可调的梯度剪切使我们的收敛过程非常快。

多尺度训练

虽然非常深的模型可以提高性能,但现在需要更多的参数来定义一个网络。通常,为每个比例因子创建一个网络。考虑到经常使用分数尺度因子,我们需要一种经济的方法来存储和检索网络。因此,该文还训练了一个多尺度的模型。使用这种方法,参数在所有预定义的尺度因子中共享。训练一个多尺度的模型是很简单的。针对多个特定尺度的训练数据集被组合成一个大数据集。

3. 效果

深度网络重要性
Accurate Image Super-Resolution Using Very Deep Convolutional Networks(VDSR)_第2张图片

残差网络的收敛快速性
Accurate Image Super-Resolution Using Very Deep Convolutional Networks(VDSR)_第3张图片

多尺度训练
Accurate Image Super-Resolution Using Very Deep Convolutional Networks(VDSR)_第4张图片

4.总结

所提出的方法的三个特性。

首先,证明了大的深度对于SR的任务是必需的。一个非常深的网络在图像中利用更多的上下文信息,并建模具有许多非线性层的复杂函数。我们通过实验验证了深层次网络比浅层次网络具有更好的性能。

其次,证明了该文的残差学习网络比标准CNN收敛得快得多。此外,我们的网络还显著提高了性能。

第三,证明了该文的方法与单一网络的性能与使用针对每个尺度训练的多个网络的方法一样好。我们可以有效地降低多网络方法的模型容量(参数)。

你可能感兴趣的:(超分网络,深度学习,cnn,超分)