Image Super-Resolution Using Deep Convolutional Networks
单图像超分辨率(SR)[20]旨在从单个低分辨率图像中恢复高分辨率图像,这是计算机视觉中的经典问题。 因为对于任何给定的低分辨率像素都存在多种解决方案,所以固有地提出了这个问题。 换句话说,这是一个不确定的反问题,其解决方案不是唯一的。 通常通过强先验信息约束解决方案空间来缓解这种问题。
基于稀疏编码的方法是代表性的基于外部示例的SR方法之一。 该方法在其解决方案流程中涉及几个步骤:首先,从输入图像中密集裁剪出重叠的方块并进行预处理(例如,减去均值和归一化)。 然后,这些补丁通过低分辨率字典进行编码。 稀疏系数被传递到高分辨率字典中,以重建高分辨率色块。重叠的重构块被聚合(例如,通过加权平均)以产生最终输出。 大多数基于示例的外部方法都共享此管道,这些方法特别注意学习和优化字典或构建有效的映射功能。 但是,管道中的其余步骤很少在统一优化框架中进行过优化或考虑。
在本文中,我们表明上述管道等效于深度卷积神经网络。 基于这一事实,我们考虑了一个卷积神经网络,该网络可以直接学习低分辨率和高分辨率图像之间的端到端映射。
我们将提出的模型命名为超分辨率卷积神经网络(SRCNN)1。拟议的SRCNN具有几个吸引人的属性。首先,有意识地设计其结构时要考虑到其简单性,但是与基于最新示例的方法相比,它提供了更高的精度2。图1显示了一个示例的比较。
其次,通过适度的过滤器和层数,即使在CPU上,我们的方法也可以实现实际在线使用的快速速度。我们的方法比许多基于示例的方法要快,因为它是完全前馈的,不需要解决使用上的任何优化问题。
第三,实验表明,当使用更大和更多样化的数据集,或使用更大更深的模型,网络的恢复质量可以进一步提高相反。此外,所提出的网络可以同时处理三个彩色图像通道,以实现改进的超分辨率性能。
根据图像先验,单图像超分辨率算法可以分为四种类型的预测模型:基于边缘的方法,基于图像统计的方法和基于补丁(或基于示例)的方法,这些方法已在Yang等人中进行了深入研究和评估。
大多数SR算法专注于灰度或单通道图像超分辨率。 对于彩色图像,上述方法首先将问题转换为不同的色彩空间(YCbCr或YUV),并且仅将SR应用于亮度通道。 也有尝试同时超分辨所有通道的作品。 例如,金和权和戴等将他们的模型应用于每个RGB通道,并将它们组合以产生最终结果。 但是,他们都没有分析不同通道的SR性能以及恢复所有三个通道的必要性。
在此过程中,有几个至关重要的因素:(i)在现代功能强大的GPU上进行有效的训练,(ii)整流线性单元(ReLU)的建议[33],它使收敛速度大大提高,同时仍然具有很好的表现质量,以及(iii)轻松访问大量数据(例如ImageNet [9])来训练较大的模型。 我们的方法也受益于这些进展。
已经有一些使用深度学习技术进行图像恢复的研究。 多层感知器(MLP),其所有层都是完全连接的(与卷积相反),适用于自然图像降噪[3]和去模糊后降噪[36]。 与我们的工作更紧密相关的是,卷积神经网络被应用于自然图像去噪[22],并消除了噪声模式。
这些恢复问题或多或少是由去噪驱动的。 崔建议在基于内部示例的概念下将自动编码器网络嵌入其超分辨率管道中。由于级联的每一层都需要对自相似性搜索过程和自动编码器进行独立优化,因此深度模型并未专门设计为端对端解决方案。 相反,提出的SRCNN优化了端到端映射。 此外,SRCNN的速度更快。 它不仅是定量上优越的方法,而且是实用的方法。
考虑单个低分辨率图像,我们首先使用三次插值将其放大至所需大小,这是我们执行的唯一预处理3。 让我们将插值图像表示为Y。
我们的目标是从Y中恢复出与ground truth高分辨率图像X尽可能相似的图像F(Y)。为了便于演示,我们仍将Y称为“低分辨率”图像,尽管它具有 大小与X相同。我们希望学习映射F,从概念上讲它包含三个操作:
1)色块提取和表示:此操作从低分辨率图像Y中提取(重叠)色块,并将每个色块表示为高维向量。 这些向量包括一组特征图,其数量等于向量的维数。
2)非线性映射:此操作将每个高维向量非线性映射到另一个高维向量。 从概念上讲,每个映射向量都是高分辨率补丁的表示。 这些向量包含另一组特征图。
3)重建:此操作汇总了上述高分辨率逐块表示,以生成最终的高分辨率图像。 预期该图像类似于ground truth X。
我们将展示所有这些操作形成一个卷积神经网络。 图2概述了网络。接下来,我们详细介绍每个操作的定义。
图像恢复中的一种流行策略(例如[1])是密集提取补丁,然后用一组预训练的基础(例如PCA,DCT,Haar等)表示它们。这等效于将图像用滤波器卷积一次 ,每个过滤器都是基础。 在我们的表述中,我们将这些基础的优化纳入网络的优化之中。 正式地,我们的第一层表示为操作F1:
其中W 和B1分别代表滤波器和偏置,“ *”代表卷积运算。 在此,W1对应于支持c×f1 × f1的n1个滤镜,其中c是输入图像中通道的数量,f1是滤镜的空间大小。直观地,W1在图像上应用n1个卷积,每个卷积的核尺寸为c×f1×f1。 输出由n1个特征图组成。 B1是n1维向量,其每个元素都与一个过滤器关联。 我们对滤波器响应应用整流线性单位(ReLU,max(0,x))
第一层为每个patch提取n维特征。 在第二个操作中,我们将这些n1维向量中的每一个映射到n2维向量中。 这等效于应用具有微不足道的空间支持1×1的n2个滤镜。 此解释仅对1×1过滤器有效。 但是,很容易将其推广到3×3或5×5等较大的滤波器。 相反,它位于特征图的3×3或5×5“补丁”上。 第二层的操作是:
这里W2包含大小为n1×f2×f2的n2个过滤器,而B2是n2维的。 输出的n2维向量中的每个向量在概念上都是高分辨率补丁的表示,将用于重构。
在传统方法中,通常对预测的重叠高分辨率色块进行平均,以生成最终的完整图像。 平均可以被视为一组特征图上的预定义滤波器(其中每个位置都是高分辨率补丁的“平展”矢量形式)。 为此,我们定义了一个卷积层以产生最终的高分辨率图像:
W3对应于大小为n2×f3×f3的c个滤波器,B3是c维向量。
如果高分辨率色块的表示位于图像域中(即,我们可以简单地对每个表示进行reshape以形成色块),则我们希望这些滤波器的作用类似于平均滤波器; 如果高分辨率色块的表示是在其他一些域中(例如,以某些基数表示的系数),则我们期望W3的行为类似于首先将系数投影到图像域然后进行平均。 无论哪种方式,W3都是一组线性滤波器。
上面的讨论表明,基于稀疏编码的SR方法可以看作是一种卷积神经网络(具有不同的非线性映射)。 但是,在基于稀疏编码的SR方法的优化中并未考虑所有操作。相反,在我们的卷积神经网络中,低分辨率字典,高分辨率字典,非线性映射以及均值减法 和平均都涉及要优化的滤波器。 因此,我们的方法优化了由所有操作组成的端到端映射。
其中n是训练样本的数量。 使用MSE作为损耗函数有利于高PSNR。 PSNR是用于定量评估图像恢复质量的广泛使用的度量,并且至少部分与感知质量有关。 值得注意的是,如果只有损失函数是可导出的,则卷积神经网络不会排除使用其他种类的损失函数。
使用随机反向梯度下降和标准反向传播可以使损耗最小化[28]。 特别地,权重矩阵更新为:
在训练阶段,将ground truth 图像{Xi}准备为从训练图像中随机裁剪的fsub × fsub × c像素子图像。 所谓“子图像”,是指这些样本被视为小的“图像”而不是“补丁”,因为“补丁”是重叠的,并且需要一些平均后处理,而“子图像”则不需要。 为了合成低分辨率样本{Y i},我们通过高斯核对子图像进行模糊处理,通过放大因子对子图像进行子采样,并通过双三次插值以相同因子对子图像进行放大。
为了避免训练期间的边界效应,所有卷积层都没有填充,并且网络产生较小的输出((fsub - f1 - f2 - f3 +3)^2×c)。 仅通过Xi中心像素与网络输出之间的差异来评估MSE损失函数。 尽管我们在训练中使用固定的图像大小,但是在测试过程中可以将卷积神经网络应用于任意大小的图像。
我们首先研究使用不同的数据集对模型性能的影响。 接下来,我们检查通过我们的方法学习的过滤器。 然后,我们探索网络的不同体系结构设计,并研究超分辨率性能与因素(例如深度,滤波器数量和滤波器大小)之间的关系。 随后,我们在定量和定性上将我们的方法与最新技术进行了比较。 接下来,在第4.1-4.4节中,仅在亮度通道(YCbCr颜色空间中的Y通道)上应用超分辨率,因此在第一/最后一层中c = 1,并在Y通道上评估性能。 最后,我们扩展网络以处理彩色图像并评估不同渠道上的性能。
如文献所示,深度学习通常受益于大数据培训。 为了进行比较,我们使用了一个相对较小的训练集由91张图像组成,以及一个较大的训练集,其中包含395909张来自ILSVRC 2013 ImageNet检测训练分区的图像。 训练子图像的大小为fsub =33。因此,可以将91个图像数据集分解为24,800个子图像,这些子图像是从原始图像中提取的,步幅为14。
尽管ImageNet即使跨度为33,也可以提供超过500万个子图像。我们使用基本网络设置,即f1 = 9,f2 = 1,f3 = 5,n1 = 64和n2 = 32。 将Set5 [2]作为验证集。 即使使用较大的Set14集,我们也观察到类似的趋势[51]。扩张因子为3。我们使用基于稀疏编码的方法[50]作为基线,该方法可实现31.42dB的平均PSNR值。
我们提出了一种用于单图像超分辨率(SR)的新颖的深度学习方法。 我们表明,传统的基于稀疏编码的SR方法可以重新构造为深度卷积神经网络。 所提出的方法SRCNN,学习了低分辨率和高分辨率图像之间的端到端映射,除了优化之外几乎没有额外的预处理。
SRCNN具有轻巧的结构,其性能优于最新方法。我们推测,通过探索更多的过滤器和不同的训练策略,可以进一步获得额外的性能。 此外,所提出的结构具有简单性和鲁棒性的优点,可以应用于其他低级视觉问题,例如图像去模糊或同时进行SR +去噪。 人们还可以研究一种网络来应对不同的放大因子。