SRCNN 论文阅读#
摘要#
本文提出了一种用于单幅图像超分辨率(SR)的深度学习方法。本文的方法直接学习低分辨率和高分辨率图像之间的端到端映射。该映射被表示为深度卷积神经网络(CNN),它以低分辨率图像作为输入,并输出高分辨率图像。进一步研究表明,传统的基于稀疏编码的 SR 方法也可以被视为深度卷积网络。但与传统方法分别处理每个组件不同,本文的方法联合优化所有层。本文的深度 CNN 具有轻量级结构,但展示了最先进的恢复质量,并在实际在线使用中实现了快速速度。本文探索了不同的网络结构和参数设置,以在性能和速度之间取得平衡。此外,本文将网络扩展到同时处理三个颜色通道,并展示了更好的整体重建质量。
所提出的超分辨率卷积神经网络(SRCNN)在仅经过几次训练迭代后,就超越了双三次插值基线,并且在适度训练后优于基于稀疏编码的方法(SC)。通过更多的训练迭代,性能可能会进一步提高。
1 引言#
单幅图像超分辨率(SR)旨在从单幅低分辨率图像中恢复高分辨率图像,是计算机视觉中的经典问题。由于对于任何给定的低分辨率像素都存在多种解决方案,因此这个问题本质上是不适定的(ill-posed)。换句话说,它是欠定的反问题(underdetermined inverse problem),其解不是唯一的。通常通过强先验信息约束解空间来缓解这个问题。为了学习先验信息,最近的最先进方法大多采用基于示例的策略。这些方法要么利用同一图像的内部相似性,要么从外部低分辨率和高分辨率示例对中学习映射函数。基于外部示例的方法可以针对通用图像超分辨率进行建模,也可以根据提供的训练样本设计为适合特定领域任务,例如人脸幻觉。
基于稀疏编码的方法是代表性的基于外部示例的 SR 方法之一。该方法在其解决方案流程中涉及几个步骤。首先,从输入图像中密集地裁剪重叠的图像块,并进行预处理(例如,减去均值和归一化)。然后,这些图像块通过低分辨率字典进行编码。稀疏系数随后传递到高分辨率字典中,以重建高分辨率图像块。重叠重建的图像块通过(例如,加权平均)聚合以生成最终输出。大多数基于外部示例的方法都共享这一流程,特别关注于学习与优化字典或构建高效的映射函数。然而,流程中的其余步骤很少在统一的优化框架中进行优化或考虑。
在本文展示了上述流程等价于深度卷积神经网络(更多细节见第3.2节)。受此启发,考虑直接学习低分辨率和高分辨率图像之间端到端映射的卷积神经网络。本文的方法与现有的基于外部示例的方法有根本区别,因为本文的方法不显式地学习字典或流形来建模图像块空间。这些是通过隐藏层隐式实现的。此外,图像块提取和聚合也被表述为卷积层,因此也参与了优化。在本文的方法中,整个 SR 流程通过学习完全获得,几乎没有预处理或后处理。
本文将提出的模型命名为超分辨率卷积神经网络(SRCNN)1实现代码可在 http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html 获取。。所提出的 SRCNN 具有几个吸引人的特性。首先,其结构设计简洁,但与最先进的基于示例的方法相比,提供了更高的准确性2当存在真实图像时,使用不同的评估指标(如峰值信噪比(PSNR)、结构相似性指数(SSIM)[43]、多尺度SSIM[44]、信息保真度准则[38])进行数值评估。。其次,在适度的滤波器和层数下,即使在 CPU 上也能实现快速的实际在线使用速度。本文的方法比许多基于示例的方法更快,因为它完全是前馈的,在使用时不需要解决任何优化问题。第三,实验表明,当(i)更大和更多样化的数据集可用,和/或(ii)使用更大和更深的模型时,网络的恢复质量可以进一步提高。相反,更大的数据集/模型对现有的基于示例的方法提出了挑战。此外,所提出的网络可以同时处理彩色图像的三个通道,以实现改进的超分辨率性能。
总的来说,本研究的主要贡献主要在三个方面:
提出了一种用于图像超分辨率的完全卷积神经网络。该网络直接学习低分辨率和高分辨率图像之间的端到端映射,除了优化之外几乎没有预处理或后处理。
建立了基于深度学习的 SR 方法与传统的基于稀疏编码的 SR 方法之间的关系。这种关系为网络结构的设计提供了指导。
证明了深度学习在经典的计算机视觉问题——超分辨率中的有效性,并且可以实现良好的质量和速度。
这项工作的初步版本之前已经发表 Dong et al. [DLHT14]。当前的工作在初始版本的基础上有了显著的补充。首先,通过在非线性映射层引入更大的滤波器尺寸,并探索通过添加非线性映射层来加深结构,从而改进了 SRCNN。图 1 展示了示例的比较。其次,将 SRCNN 扩展到同时处理三个颜色通道(在 YCbCr 或 RGB 颜色空间中)。实验上,证明了与单通道网络相比,性能可以得到提升。第三,对初始结果增加了大量的新分析和直观的解释。还从 Set5 和Set14测试图像扩展到 BSD200(200张测试图像)。此外,与许多最近发表的方法进行了比较,并确认模型在使用不同评估指标时仍然优于现有方法。

图 1 所提出的超分辨率卷积神经网络(SRCNN)在仅经过几次训练迭代后就超过了双三次基线,并在适度训练后优于基于稀疏编码的方法(SC)[50]。通过更多训练迭代,性能可能会进一步提高。更多细节在第4.4.1节提供(Set5数据集,放大因子为3)。所提出的方法提供了视觉上吸引人的重建图像。#
2 相关工作#
2.1 图像超分辨率#
根据图像先验,单幅图像超分辨率算法可以分为四类——预测模型、基于边缘的方法、图像统计方法和基于图像块(或基于示例)的方法。这些方法在 Yang 等人的工作中得到了彻底的研究和评估。其中,基于示例的方法达到了最先进的性能。
基于内部示例的方法利用自相似性属性,并从输入图像生成示例图像块。Glasner的工作首次提出,并提出了几种改进的变体以加速实现。基于外部示例的方法从外部数据集中学习低分辨率和高分辨率图像块之间的映射。这些研究在如何学习紧凑的字典或流形空间以关联低分辨率和高分辨率图像块,以及如何在这样空间中进行表示方案方面有所不同。在Freeman等人的开创性工作中,字典直接表示为低分辨率和高分辨率图像块对,并在低分辨率空间中找到输入图像块的最近邻(NN),使用其对应的高分辨率图像块进行重建。Chang等人引入流形嵌入技术作为NN策略的替代方案。在Yang等人的工作中,上述NN对应关系进一步发展为更复杂的稀疏编码公式。其他映射函数如核回归、简单函数、随机森林和锚定邻域回归被提出以进一步提高映射的准确性和速度。基于稀疏编码的方法及其几种改进是目前最先进的SR方法之一。在这些方法中,图像块是优化的重点;图像块提取和聚合步骤被视为预处理/后处理,并单独处理。
大多数SR算法[2]、[4]、[15]、[41]、[48]、[49]、[50]、[51]专注于灰度或单通道图像超分辨率。对于彩色图像,上述方法首先将问题转换到不同的颜色空间(YCbCr或YUV),然后仅在亮度通道上应用SR。也有一些工作尝试同时超分辨所有通道。例如,Kim和Kwon[25]以及Dai等人[7]将他们的模型应用于每个RGB通道,并将它们组合以产生最终结果。然而,他们都没有分析不同通道的SR性能,以及恢复所有三个通道的必要性。
2.2 卷积神经网络#
卷积神经网络(CNN)已有数十年的历史[27],最近由于其在图像分类[18]、[26]中的成功,深度CNN显示出爆炸性的流行。它们也成功应用于其他计算机视觉领域,如目标检测[34]、[40]、[52]、人脸识别[39]和行人检测[35]。这一进展的几个关键因素包括:(i)在现代强大GPU上的高效训练实现[26],(ii)提出整流线性单元(ReLU)[33],使得收敛更快,同时仍保持良好质量[26],以及(iii)易于获取大量数据(如ImageNet[9])用于训练更大模型。本文的方法也从这些进展中受益。
2.3 用于图像恢复的深度学习#
已有一些研究使用深度学习技术进行图像恢复。多层感知器(MLP),其所有层都是全连接的(与卷积相反),被应用于自然图像去噪[3]和去模糊后去噪[36]。与本文的工作更相关的是,卷积神经网络被应用于自然图像去噪[22]和去除噪声模式(污垢/雨)[12]。这些恢复问题或多或少都是去噪驱动的。Cui等人[5]提出在他们的超分辨率流程中嵌入自动编码器网络,基于内部示例方法[16]。深度模型并非专门设计为端到端解决方案,因为级联的每一层都需要独立优化自相似性搜索过程和自动编码器。相反,所提出的SRCNN优化了端到端映射。此外,SRCNN在速度上更快。它不仅在定量上是一种优越的方法,而且在实际应用中也是一种有用的方法。
3 用于超分辨率的卷积神经网络#
3.1 公式化#
考虑单幅低分辨率图像,首先使用双三次插值将其放大到所需尺寸,这是执行的唯一预处理3双三次插值也是一种卷积操作,因此可以将其表述为卷积层。然而,该层的输出大小大于输入大小,因此存在分数步幅。为了利用流行的优化实现(如cuda-convnet[26]),将此“层”排除在学习之外。。将插值后的图像表示为
图像块提取与表示:此操作从低分辨率图像
中提取(重叠的)图像块,并将每个图像块表示为高维向量。这些向量构成一组特征图,其数量等于向量的维度。非线性映射:此操作将每个高维向量非线性地映射到另一个高维向量。每个映射后的向量在概念上是高分辨率图像块的表示。这些向量构成另一组特征图。
重建:此操作聚合上述高分辨率图像块的表示,以生成最终的高分辨率图像。该图像应与真实图像
相似。
所有这些操作形成一个卷积神经网络。网络的概览如 图 2 所示。接下来详细定义每个操作。

图 2 给定低分辨率图像
3.1.1 图像块提取与表示#
在图像恢复中的一种流行策略(例如,[1])是密集地提取图像块,然后通过一组预训练的基(如 PCA、DCT、Haar 等)来表示它们。这等价于通过一组滤波器对图像进行卷积,每个滤波器都是一个基。在本文的公式中,将这些基的优化纳入网络的优化中。形式上,第一层表示为操作
其中,
3.1.2 非线性映射#
第一层为每个图像块提取
这里
3.1.3 重建#
在传统方法中,预测的重叠高分辨率图像块通常被平均以生成最终的全图像。平均可以被视为在一组特征图(其中每个位置是高分辨率图像块的“展平”向量形式)上的预定义滤波器。受此启发,本文定义一个卷积层来生成最终的高分辨率图像:
这里
3.2 与基于稀疏编码的方法的关系#
展示了基于稀疏编码的SR方法[49]、[50]可以被视为卷积神经网络。图 3展示了示意图。
在基于稀疏编码的方法中,考虑从输入图像中提取

图 3 基于稀疏编码的方法在卷积神经网络视角下的示意图。#
稀疏编码求解器随后将迭代处理这
上述
3.3 训练#
学习端到端映射函数F需要估计网络参数
其中
损失通过使用标准反向传播[28]的随机梯度下降来最小化。特别地,权重矩阵更新如下:
其中
在训练阶段,真实图像
为了避免训练期间的边界效应,所有卷积层都没有填充,网络产生较小的输出
4 实验#
首先研究使用不同数据集对模型性能的影响。接下来,检查学到的滤波器。然后,探索网络的不同架构设计,并研究超分辨率性能与深度、滤波器数量和滤波器大小等因素之间的关系。随后,通过定量和定性的方式与最近的最先进方法进行比较。根据[42],超分辨率仅应用于亮度通道(YCbCr颜色空间中的Y通道)在第4.1-4.4节中,因此第一层/最后一层的
4.1 训练数据#
如文献所示,深度学习通常受益于大数据训练。为了比较,使用了相对较小的训练集[41]、[50],该训练集由
使用不同训练集的测试收敛曲线如 图 4 所示。在 ImageNet 上的训练时间与在

图 4 使用更大的 ImageNet 数据集进行训练比使用
4.2 用于超分辨率的学习滤波器#
图 5 展示了通过放大因子 3 在 ImageNet 上训练的第一层滤波器的示例。请参考本文发布的实现以获取放大因子2和4的滤波器。有趣的是,每个学习到的滤波器都有其特定的功能。例如,滤波器 g 和 h 类似于拉普拉斯/高斯滤波器,滤波器 a-e 类似于不同方向的边缘检测器,滤波器 f 类似于纹理提取器。不同层的示例特征图如 图 6 所示。显然,第一层的特征图包含不同的结构(例如,不同方向的边缘),而第二层的特征图主要在强度上不同。
4.3 模型与性能的权衡#
基于基本网络设置(即

图 5 该图展示了通过放大因子 3 在 ImageNet 上训练的第一层滤波器。滤波器根据其各自的方差进行组织。#

图 6 不同层的样本特征图。#
4.3.1 滤波器数量#
一般来说,如果增加网络宽度6使用“宽度”来表示层中的滤波器数量,遵循[17]。在文献中,“宽度”可能有其他含义。,即添加更多滤波器,性能会提高,但运行时间会增加。具体来说,基于本文的网络默认设置
训练在 ImageNet 上进行,评估在 Set5 数据集上进行。 |
---|
4.3.2 滤波器大小#
在本节中,研究网络对不同滤波器大小的敏感性。在前面的实验中,设置滤波器大小 9-1-5
。首先,为了与基于稀疏编码的方法保持一致,本文将第二层的滤波器大小固定为 11-1-7
)。所有其他设置与第4.1节相同。在Set5上放大因子为3的结果为 32.57 dB,略高于第4.1节中报告的 32.52 dB。这表明,合理更大的滤波器大小可以捕捉更丰富的结构信息,从而导致更好的结果。

图 7 更大的滤波器大小导致更好的结果。#
然后,进一步研究具有更大第二层滤波器大小的网络。具体来说,固定滤波器大小 9-3-5
)和(ii)9-5-5
)。图 7 中的收敛曲线显示,使用更大的滤波器大小可以显著提高性能。具体来说,在Set5上进行 9-3-5
和 9-5-5
的平均 PSNR 值分别为 32.66 dB 和 32.75 dB。结果表明,在映射阶段利用邻域信息是有益的。
然而,部署速度也会随着滤波器大小的增加而降低。例如,9-1-5
、9-3-5
和 9-5-5
的参数数量分别为 9-5-5
的复杂度几乎是 9-3-5
的两倍,但性能提升是微小的。因此,网络规模的选择应始终在性能和速度之间进行权衡。
4.3.3 层数#
He和Sun的最新研究[17]表明,CNN可以通过适度增加网络深度而受益。在这里,通过添加另一个非线性映射层来尝试更深的结构,该层有 9-1-1-5
、9-3-1-5
、9-5-1-5
,分别在 9-1-5
、9-3-5
和 9-5-5
上添加额外的层。额外层的初始化方案和学习率与第二层相同。从图13(a)、13(b)和8©中,可以观察到四层网络比三层网络收敛得更慢。然而,给定足够的训练时间,更深的网络最终会赶上并收敛到三层网络。

图 8 三层和四层网络之间的比较#
超分辨率更深结构的有效性不如图像分类[17]中显示的那样明显。此外,发现更深的网络并不总是导致更好的性能。具体来说,如果在 9-1-5
网络上添加额外的层,有 9-1-5
上添加两个非线性映射层,有 9-3-3-5
和 9-3-3-3
。然而,从图图 9(b)中显示的收敛曲线来看,这两个网络的结果并不比 9-3-1-5
网络更好。

图 9 更深的结构并不总是导致更好的结果。#
所有这些实验表明,对于超分辨率的深度模型来说,“越深越好”并不成立。这可能是由于训练的困难造成的。本文的CNN网络不包含池化层或全连接层,因此对初始化参数和学习率敏感。当本文加深网络(例如,4或5层)时,本文发现很难设置适当的学习率以保证收敛。即使收敛了,网络也可能陷入不好的局部最小值,即使在足够的训练时间下,学习到的滤波器也缺乏多样性。这种现象在[16]中也观察到,其中不适当的深度增加会导致图像分类的准确性饱和或下降。为什么“更深并不更好”仍然是开放的问题,需要进一步研究以更好地理解深度架构中的梯度和训练动态。因此,在以下实验中仍然采用三层网络。
4.4 与最先进方法的比较#
在本节中,展示了本文的方法与最先进方法在定量和定性结果上的比较。采用了具有良好性能-速度权衡的模型:三层网络,
SRCNN 与最先进的 SR 方法进行比较:
SC - Yang等人的基于稀疏编码的方法[50]
NE+LLE - 邻域嵌入+局部线性嵌入方法[4]
ANR - 锚定邻域回归方法[41]
A+ - 调整后的锚定邻域回归方法[42]
8使用与[46]中相同的 200 张图像。KK - [25]中描述的方法,根据Yang等人的工作[46]中的综合评估,在外部示例方法中表现最佳 所有实现均来自作者提供的公开代码,所有图像均使用相同的双三次核进行下采样。 测试集。Set5 [2](5张图像)、Set14 [51](14张图像)和BSD200 [32](200张图像)8使用与[46]中相同的 200 张图像。用于评估放大因子2、3和4的性能。 评估指标。除了广泛使用的PSNR和SSIM [43]指数外,本文还采用了另外四个评估矩阵,即信息保真度准则(IFC)[38]、噪声质量测量(NQM)[8]、加权峰值信噪比(WPSNR)和多尺度结构相似性指数(MSSSIM)[44],这些指标与人类感知评分高度相关,如[46]中所报告。

图 10 SRCNN的测试收敛曲线以及 Set5 数据集上其他方法的结果。#
4.4.1 定量和定性评估#
如表 表 2、表 3 和 表 4 所示,所提出的 SRCNN 在所有实验中的大多数评估矩阵中取得了最高分数9每张图像的 PSNR 值可以在补充文件中找到。。请注意,SRCNN结果基于
值得一提的是,SRCNN 在学习阶段的开始就超过了双三次基线(见 图 1),并且在适度训练后,SRCNN优于现有的最先进方法(见图 4)。然而,性能远未收敛。本文推测,如果给予更长的训练时间,可以获得更好的结果(见 图 10)。
图 14、图 15 和 图 16 展示了通过放大因子3的不同方法的超分辨率结果。可以看出,SRCNN 生成的边缘比其他方法更锐利,图像中没有任何明显的伪影。
此外,报告了Cui等人的另一种最近用于图像超分辨率的深度学习方法(DNC)[5]。由于他们使用了不同的模糊核(标准差为0.55的高斯滤波器),使用与DNC相同的模糊核训练了特定的网络(9-5-5
),以进行公平的定量比较。放大因子为3,训练集为91图像数据集。从 图 11 中显示的收敛曲线可以看出,SRCNN在仅2.7 × 107次反向传播后就超过了DNC,并且如果给予更长的训练时间,可以获得更大的差距。这也表明,即使DNC模型已经“深度”,端到端学习也优于 DNC。
4.4.2 运行时间#
图 12 显示了几种最先进方法的运行时间比较,以及它们在Set14上的恢复性能。所有基线方法均来自相应作者的MATLAB+MEX实现,而本文的方法是纯C++实现。本文在同一台机器(Intel CPU 3.10 GHz和16 GB内存)上对所有算法进行运行时间分析。请注意,本文的方法的处理时间与测试图像分辨率高度线性相关,因为所有图像都经过相同数量的卷积。本文的方法总是在性能和速度之间进行权衡。为了展示这一点,本文训练了三个网络进行比较,分别是 9-1-5
、9-3-5
和 9-5-5
。显然,9-1-5
网络是最快的,同时它的性能仍然优于次佳的A+。其他方法与 9-1-5
网络相比,速度慢了几倍甚至几个数量级。请注意,速度差距并非主要由不同的MATLAB/C++实现引起;相反,其他方法在使用时需要解决复杂的优化问题(例如,稀疏编码或嵌入),而本文的方法完全是前馈的。9-5-5网络以运行时间为代价实现了最佳性能。本文的CNN的测试时间速度可以通过多种方式进一步加速,例如近似或简化训练网络[10]、[21]、[31],可能会导致性能略有下降。
4.5 彩色通道实验#
在前面的实验中,遵循传统方法对彩色图像进行超分辨率处理。具体来说,首先将彩色图像转换为 YCbCr 空间。SR 算法仅应用于 Y 通道,而 Cb 和 Cr 通道通过双三次插值进行上采样。有趣的是,如果在这个过程中联合考虑所有三个通道,是否可以提高超分辨率性能。
本文的方法可以灵活地接受更多通道,而无需改变学习机制和网络设计。特别是,它可以通过将输入通道设置为 c = 3
,轻松地同时处理三个通道。在以下实验中,本文探索了彩色图像超分辨率的不同训练策略,并随后在不同通道上评估它们的性能。
结果如表5所示,本文有以下观察结果。(i) 如果本文直接在YCbCr通道上进行训练,结果甚至比双三次插值更差。训练陷入了一个不好的局部最小值,这是由于Y和Cb、Cr通道固有的不同特性。(ii) 如果本文对Y或Cb、Cr通道进行预训练,性能最终会提高,但在彩色图像上仍然不如“Y only”(见表5的最后一列,其中PSNR在RGB颜色空间中计算)。这表明,当在统一的网络中进行训练时,Cb、Cr通道可能会降低Y通道的性能。(iii) 本文观察到,对于“Y pre-train”,Cb、Cr通道的PSNR值高于“CbCr pre-train”。原因在于Cb、Cr通道与Y通道之间的差异。从视觉上看,Cb、Cr通道比Y通道更模糊,因此受下采样过程的影响较小。当本文对Cb、Cr通道进行预训练时,只有少数滤波器被激活。然后在微调过程中,训练很快就会陷入一个不好的局部最小值。另一方面,如果本文对Y通道进行预训练,更多的滤波器将被激活,Cb、Cr通道的性能将被大大提高。图13显示了使用“Y pre-train”的第一层滤波器的Cb、Cr通道,其模式与图5所示的模式有很大不同。(iv) 在RGB通道上进行训练在彩色图像上取得了最佳结果。与YCbCr通道不同,RGB通道之间表现出高度的互相关性。所提出的SRCNN能够利用通道之间的这种自然对应关系进行重建。因此,该模型在Y通道上取得了与“Y only”相当的结果,在Cb、Cr通道上取得了比双三次插值更好的结果。(v) 在KK [25]中,超分辨率分别应用于每个RGB通道。当本文将其结果转换到YCbCr空间时,Y通道的PSNR值与“Y only”相似,但Cb、Cr通道的PSNR值比双三次插值差。结果表明,该算法偏向于Y通道。总的来说,本文的方法在RGB通道上训练取得了比KK和单通道网络(“Y only”)更好的性能。值得注意的是,与单通道网络相比,改进并不显著(即0.07 dB)。这表明Cb、Cr通道在提高性能方面几乎没有帮助。
5 结论#
本文提出了一种用于单幅图像超分辨率(SR)的新型深度学习方法。本文展示了传统的基于稀疏编码的SR方法可以被重新表述为深度卷积神经网络。所提出的SRCNN方法学习了低分辨率和高分辨率图像之间的端到端映射,除了优化之外几乎没有额外的预处理/后处理。SRCNN具有轻量级结构,其性能优于最先进的方法。本文推测,通过探索更多滤波器和不同的训练策略,可以进一步获得额外的性能。此外,所提出的结构具有简单性和鲁棒性的优点,可以应用于其他低级视觉问题,如图像去模糊或同时SR+去噪。也可以研究网络来处理不同的放大因子。