【论文笔记-VDSR】Accurate Image Super-Resolution Using Very Deep Convolutional Networks

  • Title:Accurate Image Super-Resolution Using Very Deep Convolutional Networks
  • Authors :
    • Jiwon Kim, Jung Kwon Lee and Kyoung Mu Lee
    • Department of ECE, ASRI, Seoul National University, Korea
  • CVPR 2016
  • Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 1646-1654
  • 论文地址:https://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Kim_Accurate_Image_Super-Resolution_CVPR_2016_paper.pdf
  • Code:https://github.com/twtygqyy/pytorch-vdsr
  • 整理:SunshineSki

Abstract

  • 提出了一种高精度的单幅图像超分辨率(SR)方法。
  • 使用了一个非常深的卷积网络,其灵感来自于用于ImageNet分类的VGG-Net。
  • 增加网络深度可显著提高准确率,最终模型使用了20个权重层。通过在深层网络结构中多次级联小滤波器,可以有效地利用大图像区域上的上下文信息。
  • 对于非常深的网络中训练过程的收敛速度问题,提出了一种简单而有效的训练过程:只学习残差,并使用极高的学习率(比SRCNN高 1 0 4 10^4 104倍),通过可调梯度裁剪实现.

Introduction

SRCNN成功地将深度学习技术引入到超分辨率问题中,但在三个方面存在局限性:

  • 第一,它依赖于小图像区域的上下文;
  • 第二,训练收敛太慢;
  • 第三,网络只适用于单一尺度。

上下文 context:利用分布在非常大的图像区域上的上下文信息,使用大感受野的非常深的网络考虑了大的图像上下文。

收敛 Convergence:提出了一种加速训练的方法:残差学习CNN和极高的学习率。由于LR图像和HR图像在很大程度上共享相同的信息,对HR图像和LR图像之间的差异(残差)图像进行显式建模是有利的。提出了一种在输入和输出高度相关的情况下进行有效学习的网络结构。此外,VDSR的初始学习率比SRCNN高 1 0 4 10^4 104倍,是通过残差学习(residual-learning)和梯度裁剪(gradient clipping)实现的。

比例因子Scale Factor:提出了一种单模型SR方法。比例通常是用户指定的,可以是任意的,包括分数。例如,可能需要在图像查看器中平滑放大或调整到特定尺寸。训练和存储许多依赖比例的模型,为所有可能的场景做准备是不切实际的。我们发现一个单一的卷积网络就足以实现多尺度因子的超分辨。

SRCNN V.S. VDSR

Depth

  • SRCNN:认为更深的网络不会带来更好的性能(图9)。由块提取/表示层(patch extraction/representation)、非线性映射层(non-linear mapping)和重构层(reconstruction)三个层组成,分别使用空间尺寸为9×9、1×1和5×5的滤波器。

  • **VDSR:认为增加深度会显著提高性能。**成功地使用了20个权重层(每层3×3)。网络非常深(20 vs.3),用于重建的信息(感受野)要大得多(41×41 vs. 13×13)。

Training

  • **SRCNN直接对高分辨率图像进行建模。**高分辨率图像可以分解为低频信息(对应于低分辨率图像)和高频信息(残差图像或图像细节)。输入和输出图像共享相同的低频信息。 这表明SRCNN有两个目的:将输入传送到末端层和重构残差。将输入携带到末尾在概念上类似于自动编码器所做的事情。可以将训练时间花费在学习该自动编码器上,从而显著降低学习另一部分(图像细节)的收敛速度。
  • VDSR直接对残差图像建模,可以有更快的收敛速度和更高的精度。

Scale

  • **SRCNN是针对单个比例因子进行训练的,并且应该只在指定的比例下工作。**因此,如果需要一个新的scale,就必须训练一个新的模型。为了应对多尺度SR(可能包含分数因子),我们需要为每个感兴趣的尺度构建单独的单尺度SR系统。然而,让许多单独的机器为所有可能的情况做好准备以应对多个规模是低效和不切实际的。
  • VDSR设计并训练了一个单一的网络来有效地处理多尺度SR问题。事实证明,这非常有效。对于给定子任务,我们的单机可与单尺度专家相媲美。对于三个尺度因子(×2,3,4),我们可以将参数的数量减少三倍。

Size

  • SRCNN:输出小于输入图像;
  • VDSR:输出图像与输入图像的大小相同,在训练过程中每一层都填充零。

Learning rate

  • SRCNN:对不同层使用不同的学习率以实现稳定收敛。
  • VDSR:简单地对所有层使用相同的学习率。

Proposed Method

Proposed Network

VDSR网络结构如图2所示。使用d层,除第一层和最后一层外,其他层为:大小为3×3×64的64个滤波器,其中滤波器在64个通道(特征图)的3×3空间区域上操作。第一层对输入图像进行操作。最后一层用于图像重建,由大小为3×3×64的单个滤波器组成。

image_1ekh2i7r41aac1dkghn0b781jpf9.png-311.1kB

该网络将内插的低分辨率图像(到所需大小)作为输入,并预测图像细节。我们重复级联一对层(卷积的和非线性的)。插值的低分辨率(ILR)图像通过层转换为高分辨率(HR)图像。网络预测残差图像,ILR和残差的相加给出期望的输出。应用校正后的线性单位(REU)后的大多数要素为零。

使用非常深的网络预测密集输出的一个问题是,每次应用卷积运算时,特征映射的大小都会减小。例如,当将大小为(n+1)×(n+1)的输入施加到具有大小为n×n的感受野的网络时,输出图像为1×1。与其他超分辨率方法一致,许多方法需要周围像素来正确推断中心像素。这种中心-周围关系很有用,因为周围的区域对这个不适定问题(SR)提供了更多的约束。对于图像边界附近的像素,这种关系不能被充分利用,许多SR方法都会对结果图像进行裁剪。然而,如果所需的环绕区域非常大,则此方法无效。裁剪后,最终图像太小,视觉效果不佳。因此,为了解决这个问题,VDSR在卷积之前填充零,以保持所有特征地图(包括输出图像)的大小相同。事实证明,零填充效果相当好。

Training

设x表示内插的低分辨率图像,y表示高分辨率图像。给定训练数据集 { x ( i ) , y ( i ) } i = 1 N \left\{\mathbf{x}^{(i)}, \mathbf{y}^{(i)}\right\}_{i=1}^{N} {x(i),y(i)}i=1N,我们的目标是学习预测 y ^ = f ( x ) \hat{\mathbf{y}}=f(\mathbf{x}) y^=f(x)的模型 f f f,其中 y ^ \hat{y} y^是目标HR图像的估计。我们最小化训练集上平均的均方误差 1 2 ∥ y − f ( x ) ∥ 2 \frac{1}{2}\|\mathbf{y}-f(\mathbf{x})\|^{2} 21yf(x)2

Residual-Learning
在SRCNN中,网络必须保留所有输入细节,因此,消失/爆炸梯度问题[2]可能出现。可以通过残差学习简单地解决这个问题。

由于输入和输出图像非常相似,因此定义了残差图像 r = y − x r=y-x r=yx,其中大多数值可能为零或较小。我们想要预测该残差图像。损失函数现在变为 1 2 ∥ r − f ( x ) ∥ 2 \frac{1}{2}\|\mathbf{r}-f(\mathbf{x})\|^{2} 21rf(x)2。,其中 f ( x ) f(x) f(x)是网络预测。

在网络中,这在损失层中反映如下。我们的损失层采用三项输入:残差估计,网络输入(ILR图像)和真实值(Ground Truth)HR图像。损失计算为重建图像(网络输入和输出之和)与真实值情况之间的欧几里得距离。

High Learning Rates for Very Deep Networks
训练深度模型可能无法在现实的时间限制内收敛。SRCNN[6]在三层以上的权重层中未显示出优异的性能。尽管可能有多种原因,但一种可能性是他们在网络收敛之前就停止了训练过程。 他们的学习率 1 0 − 5 10^{-5} 105太小,以至于网络无法在一星期之内在通用GPU上收敛。从[6]的图9来看,很难说它们的更深层网络已经收敛并且其性能已达到饱和。虽然更多的训练最终可以解决问题,但是使用SRCNN将深度增加到20似乎并不实际。

提高学习率以促进训练是基本的经验法则。但是,简单地将学习率设置得很高也可能导致梯度消失/爆炸[2]。因此,VDSR提出使用可调整的梯度裁剪,以最大程度地提高速度,同时抑制梯度爆炸。

Adjustable Gradient Clipping
尽管存在许多限制梯度的方法,但常见的策略之一是将各个梯度限制在预定范围 [ − θ , θ ] [-\theta, \theta] [θ,θ]

使用剪裁时,梯度在一定范围内。利用随机梯度下降法进行训练,通过乘以学习率来调整步长。如果使用高学习率,则很可能会将 θ \theta θ调整为较小,以避免在高学习率体系中出现爆炸性梯度。但是,随着学习速率的降低,有效梯度(梯度乘以学习率)趋于零,如果学习速率呈几何级数下降,则训练可能需要指数级的多次迭代才能收敛。

为了获得最大的收敛速度,我们将梯度修剪为 [ − θ γ , θ γ ] \left[-\frac{\theta}{\gamma}, \frac{\theta}{\gamma}\right] [γθ,γθ],其中 γ \gamma γ表示当前的学习率。发现可调梯度裁剪使得收敛过程非常快。VDSR的20层网络训练是在4小时内完成的,而3层的SRCNN需要几天的时间来训练。

Multi-Scale
虽然非常深入的模型可以提高性能,但现在需要更多参数来定义网络。通常,为每个比例因子创建一个网络。

为此,训练了一个多尺度模型。使用此方法,可以在所有预定义的比例因子之间共享参数。几个指定尺度的训练数据集被组合成一个大数据集。

数据准备类似于SRCNN [5],但有一些不同。输入patch大小现在等于感受野的大小,并且图像被分割成没有重叠的子图像。一个小批次由64个子图组成,不同比例的子图可以在同一批次。作者使用MatConvNet包实现其模型[23]。

image_1ekibhtoa1ree1lb3vmcj9o1lm.png-111.6kB

表1:残差和非残差网络的性能表(PSNR)(‘Set5’数据集,×2)。残差网络在10个epochs内迅速接近收敛。

Understanding Properties

  • The Deeper, the Better
    **非常大的深度对于SR的任务是必要的。**非常深的网络利用图像中更多的上下文信息,并用许多非线性层来模拟复杂的功能。通过实验验证了深层网络比浅层网络具有更好的性能。
  • Residual Learning
    VDSR的残差学习网络比标准的CNN收敛得快得多。此外,我们的网络显著提升了性能。
  • Single Model for Multiple Scales
    在单个网络上的性能与在每个尺度上使用多个网络训练的方法一样好。 我们可以有效地减少多网络方法的模型容量(参数数量)。

image_1elh96j5a1to413011u6gdii1tg9.png-383.5kB

Experimental Results

Training dataset
SRCNN [6]使用非常大的ImageNet数据集。VDSR使用S. Schulter[18]中的291幅图像作为本节中其他方法的基准。此外,还使用了数据增强(旋转或翻转)。对于前面部分的结果,我们使用了91个图像来快速训练网络,因此性能可能略有不同。

Test dataset
使用四个数据集。数据集“Set5”[15],“Set14”[26],“Urban100”[11]和“B100”[22]。

Training Parameters
使用深度为20的网络。训练使用的batches为64。动量(Momentum)和权重衰减(weight decay)参数分别设置为0.9和0.0001。我们训练所有实验超过80个epochs(batch size为64的9960次迭代)。最初将学习率设置为0.1,然后每20个epochs降低10倍。总体而言,学习率降低了3次,并且在80个epochs之后停止了学习。 在GPU Titan Z上的训练大约需要4个小时。

Comparisons with State-of-the-Art Methods

image_1elha5n1nso81tll1peon8sbtim.png-227.5kB

提供定量和定性比较。比较的方法是A + [22],RFL [18],SelfEx [11]和SRCNN [5]。 从表3中可以看出,VDSR方法优于这些数据集中的所有先前方法,而且相对较快。红色表示最佳性能,蓝色表示次佳性能。

image_1elhaafjoi2s1e4j158hb436qd1g.png-858kB
image_1elhab44aqu7e4c1cee440hvb1t.png-470.8kB


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值