rXiv:1501.00092v3 [cs.CV] 31 Jul 2015
单图像超分辨率(SR)的深度学习方法
。我们的方法直接学习低/高分辨率图像之间的端到端映射。映射表示为深度卷积神经网络(CNN),该神经网络将低分辨率图像作为输入并输出高分辨率图像【这就是端到端】。我们进一步表明,传统的基于稀疏编码的SR方法
也可以视为深度卷积网络。但是与传统方法分别处理每个组件不同,我们的方法共同优化了所有层
。我们的深层CNN具有轻巧的结构,同时展现了最先进的恢复质量,并为实际在线使用提供了快速的速度。我们探索了不同的网络结构和参数设置,以实现性能和速度之间的折衷。此外,我们扩展了网络以同时处理三个颜色通道,并展现出更好的整体重建效果。【单图超分辨、端到端、单一图像超分辨率(SR)[20]旨在从单个低分辨率图像中恢复高分辨率图像,这是计算机视觉中的经典问题。由于对于任何给定的低分辨率像素都存在多种解决方案,因此该问题天生就不适。
换句话说,这是一个不确定的逆问题,其解决方案不是唯一的。通常通过强先验信息约束解决方案空间来缓解这种问题
。要了解现有技术,最近的最新技术大多采用基于示例的[46]策略。这些方法要么利用同一图像的内部相似性[5],[13],[16],[19],[47],要么从外部低分辨率和高分辨率示例对[2],[4], [6],[15],[23],[25],[37],[41],[42],[47],[48],[50],[51]。根据提供的训练样本,可以将基于示例的外部方法制定为通用图像超分辨率,或设计为适合特定领域的任务,比如人脸超分辨[30],[50]。【】基于稀疏编码的方法[49],[50]是代表性的基于外部示例的SR方法之一
。该方法涉及其解决方案流程中的几个步骤:首先,从输入图像中密集裁剪出重叠的补丁并进行预处理(例如,减去均值和归一化)。然后,这些补丁通过低分辨率字典进行编码。将稀疏系数传递到高分辨率字典中,以重建高分辨率色块。上述管道等效于深度卷积神经网络
[27](在3.2节中有更多详细信息)。基于这一事实,我们考虑了一个卷积神经网络,该网络可以直接学习低分辨率和高分辨率图像之间的端到端映射
。我们的方法与现有的基于外部示例的方法从根本上不同,因为我们没有显式学习用于建模补丁空间的字典[41],[49],[50]或流形[2
],[4]。这些是通过隐藏层隐式实现的。此外,补丁提取和聚集也被公式化为卷积层,因此涉及优化。在我们的方法中,整个SR流水线是通过学习完全获得的,几乎不需要预处理。【将传统的管道方法改进为深度神经网络方法。并且将一些方法直接用隐藏层实现出来】图1.提出的超分辨率卷积神经网络(SRCNN)仅经过几次训练迭代就超过了三次三次基线,并且在中等训练的情况下优于基于稀疏编码的方法(SC)[50]。通过更多的训练迭代可以进一步提高性能。在第4.4.1节(Set5数据集具有放大系数3)中提供了更多详细信息。所提出的方法提供了视觉吸引力的重建图像。
提出了一种用于图像超分辨率的全卷积神经网络
。该网络可直接学习低分辨率和高分辨率图像之间的端到端映射,而无需进行优化即可进行很少的前/后处理。建立了基于深度学习的SR方法和传统的基于解析编码的SR方法之间的关系
。这种关系为网络结构的设计提供了指导。深度学习在经典的超分辨率计算机视觉问题中是有用
的,并且可以获得很好的质量和速度。通过在非线性映射层中引入更大的滤波器大小来改进SRCNN,并通过添加非线性映射层来探索更深的结构
。【非线性映射层中加入更大的滤波器】预测模型,基于边缘的方法,图像统计方法和基于补丁(或基于示例)的方法
。这些方法已在Yanget等人的工作[46]中进行了深入研究和评估。其中,基于示例的方法[16],[25],[41],[47]实现了最先进的性能。基于示例的外部方法[2],[4],[6],[15],[37],[41],[48],[49],[50],[51]学习映射在来自外部数据集的低/高分辨率补丁之间。
这些研究主要涉及如何学习紧凑的字典或流形空间以关联低/高分辨率的补丁,以及如何在这种空间中执行表示方案。在Freemanet等人[14]的开创性工作中,直接介绍了字典。作为低/高分辨率补丁对,在低分辨率空间中找到输入补丁的最近邻居(NN),并使用其对应的高分辨率补丁进行重构。[4]引入了多种嵌入技术来替代NN策略。在Yangnet等人的著作[49],[50]中,上述NN对应关系发展为更复杂的稀疏编码公式。其他映射函数,例如内核回归[25],简单提出了3函数[47],随机森林[37]和锚定近邻回归[41],[42],以进一步提高地图绘制的准确性和速度。基于稀疏编码的方法及其一些改进[41],[42],[48]是当今最先进的SR方法之一。在这些方法中,补丁是优化的重点。补丁提取和聚集步骤被视为预处理/后处理,并分别进行处理。强大的GPU
上进行有效的训练[26],ReLU
)的建议[33],它使收敛速度大大提高,同时仍具有良好的质量[26],大量数据(例如ImageNet [9])来训练较大的模型
。我们的方法也受益于这些进展由去噪驱动
的。 Cuiet等人[5]提出在基于内部示例的概念[16]下将自动编码器网络嵌入其超分辨率管道中。由于级联的每一层都需要对自相似性搜索过程和自动编码器进行独立优化,因此深度模型并未专门设计为端对端解决方案
。相反,提出的SRCNN优化了端到端映射。此外,SRCNN的速度更快。它不仅是定量上优越的方法,而且实际上是有用的一种方法。【端到端的提出】首先使用双三次插值将其放大至所需大小
,这是我们执行的唯一预处理。让我们将插值图像表示为Y。我们的目标是从Y中恢复图像F(Y),且F(Y)图像与真实高分辨率图像X尽可能相似。为了便于演示,我们仍然将Y称为“低分辨率”图像,尽管它的大小与X相同。我们希望学习一个映射F,该F在概念上由三个操作组成:
图2.给定低分辨率的图像Y,SRCNN的第一卷积层将提取一组特征图。第二层将这些特征映射非线性地映射到高分辨率补丁表示。最后一层结合空间邻域内的预测以产生最终的高分辨率图像F(Y)
图像恢复中的一种流行策略(例如[1])是密集提取补丁
,然后通过一组预训练的基础(例如PCA,DCT,Haar等)来表示它们。这等效于通过一组滤镜对图像进行卷积,每个都是基础。在我们的表述中,我们将这些基础的优化纳入网络的优化之中。形式上,我们的第一层表示为F1:“*”表示卷积操作
。这里,W1对应于支持c×f1×f1的n1滤波器,其中c是输入图像中的通道数,f1是滤波器的空间大小。直观地说,W1对图像进行n1卷积,每个卷积有一个核size c×f1×f1。输出由n1个特征图组成。B1是n1维向量
,其每个元素都与一个过滤器相关联。我们在滤波器响应上应用修正的线性单位(ReLU,max(0,x))[33]。【第一层】B2是n2维向量
。从概念上讲,每个n2维输出矢量都是用于重建的高分辨率补丁的表示。可以添加更多的卷积层以增加非线性。但这会增加模型的复杂度
(一层的n2×f2×f2×n2参数),因此需要更多的训练时间。在第4.3.3节中,我们将通过引入其他非线性映射层来探索更深的结构。B3是c维向量。
将所有三个运算放在一起,形成一个卷积神经网络(图2)
。在该模型中,所有滤波权重和偏差都将得到优化。尽管整体结构简洁,但我们的SRCNN模型还是通过借鉴超分辨率方面的重大进展而精心开发的[49],[50]。我们将在下一部分中详细介绍这种关系。【将上面解决问题的方法集成到一起形成一个网络,这就是这个SRCNN的由来。其实他本质上就是3个解题的步骤,不用纠结卷积神经网网络】将补丁投影到(低分辨率)字典上。
如果字典大小为n1,则等效于在输入图像上应用n1个线性滤波器(f1×f1)(平均减法也是线性运算,因此可以吸收)。如图3的左图所示。图3.从卷积神经网络角度说明基于稀疏编码的方法
n2系数代表高分辨率色块
。在这种情况下,稀疏编码求解器求解器的行为类似于非线性映射运算符的特例,其空间支持为1×1。参见图3的中间部分。但是,稀疏编码求解器不是前馈,它是一种迭代算法。相反,我们的非线性算子是完全前馈的,可以有效地进行计算。
如果我们将f2 = 1,则我们的非线性算子可以视为按像素连接的层。值得注意的是,SRCNN中的“稀疏编码求解器”指的是前两层,而不仅仅是第二层或激活函数(ReLU)。因此,通过学习过程还可以很好地优化SRCNN中的非线性运算。学习端到端映射函数F需要网络参数的估计Θ= {W1,W2,W3,B1,B2,B3}。这是通过最小化重建图像F(Y;Θ)和相应的地面真实高分辨率图像X之间的损耗来实现的。
给定一组高分辨率图像{Xi}及其对应的低分辨率图像{Yi},我们使用均方误差(MSE)作为损失函数:【训练过程其实就是通过降低损失函数得到参数Θ= {W1,W2,W3,B1,B2,B3}】PSNR是用于定量评估图像恢复质量的广泛使用的度量,并且至少部分与感知质量有关
。值得注意的是,如果只有损失函数是可导出的,则卷积神经网络并不排除使用其他种类的损失函数。如果在训练期间给出了更好的感知动机指标,则网络可以灵活地适应该指标。相反,通常对于传统的“手工”方法很难实现这种灵活性。尽管所建议的模型训练时偏向于高PSNR,但是当使用替代评估指标(例如SSIM,MSSIM)评估模型时,我们仍然观察到令人满意的性能(请参见第4.4.1节)。【不但使用PSNR评价时,我们的方法效果好,在采用其他婊扎云评价时。我们的方法效果依然很好】在某种意义上,“补丁”是重叠的并且需要一些平均值作为后处理,而“子图像”则不需要。
MSE损失函数仅通过Xi和网络输出的图像的中心像素之间的差来评估
。在训练中固定图像大小的情况下,卷积神经网络可以在测试期间应用于任意大小的图像。【即使在训练时使用固定大小的图像尺寸,但是测试时可以使用任意大小尺寸的图像】训练子图像的大小为fsub =33
。因此,可以将91个图像数据集分解为24,800个子图像
,这些子图像是从原始图像中提取的,步幅为14
。而ImageNet甚至可以提供超过500万个子图像跨度为33。我们使用基本网络设置,即f1 = 9,f2 = 1,f3 = 5,n1 = 64,n2 =32。我们使用Set5 [2]作为验证集。即使使用较大的Set14set [51],我们也会观察到类似的趋势。放大因子为3。我们使用基于稀疏编码的方法[50]作为基准,其平均PSNR值为31.42dB。imageNet与91图像数据集大致相同,因为反向传播的次数相同
。可以看出,在反向传播次数相同(即8×108)的情况下,SRCNN + ImageNet达到32.52 dB,高于在91个图像上训练得到的32.39 dB。结果肯定地表明,使用更大的训练集可以进一步提高SRCNN的性能
,但是大数据的效果不如高级视力问题中显示的那么令人印象深刻[26]。这主要是因为91张图像已经捕获了自然图像的足够的可变性。另一方面,我们的SRCNN是一个相对较小的网络(8,032个参数),不能过度拟合91个图像(24,800个样本)。不过,在以下实验中,我们采用包含更多数据的ImageNet作为默认训练集
。【经过实验比较得到结果:使用更大的数据集可以进一步提高SRCNN的性能,但是提升有限】图4.使用更大的ImageNet数据集进行训练,可提高使用91张图像的性能。PSNR越大越好。
每个学习的滤波器都有其特定的功能
。例如,滤波器g和滤波器h像拉普拉斯/高斯滤镜一样,滤波器a和e像在不同方向的边缘检测器,滤波器f像纹理提取器。图6示出了不同层的示例性特征图。显然,第一层的特征图包含不同的结构(例如,不同方向的边缘),而第二层的特征图在强度上主要不同。图5.该图显示了在ImageNet上训练的具有放大系数=3的第一层滤镜。滤镜是根据其各自的方差组织的。
图6.不同图层的示例特征图。
通常情况下,如果我们增加网络宽度6(即添加更多过滤器)会提高性能,但会花费运行时间
。具体来说,根据我们的网络默认设置n1 = 64andn2 = 32,我们进行了两个实验:(i)一个是使用n1 = 128andn2 = 64的较大网络,以及(ii)另一个是使用n1 = 32andn2 = 16的较小网络。在第4.1节中,我们还在ImageNet上训练了两个模型,并使用放大因子3在Set5上进行了测试。表1显示了在8×108反向传播中观察到的结果。显然,通过增加宽度可以实现出色的性能。但是,如果需要快速的恢复速度,则首选较小的网络宽度,它仍比基于稀疏编码的方法(31.42 dB)可获得更好的性能。【增加滤波器数量会提高性能,但是如果更加强调时间,那就选择更少的滤波器】这表明较大的滤波器尺寸可以捕获更丰富的结构信息,进而带来更好的结果。
第二层的较大过滤器尺寸。具体来说,我们固定滤波器大小f1 = 9,f3 = 5,然后将第二层的滤波器大小扩大为(i)f2 = 3(9-3-5)和(ii)f2 = 5(9-5-5)。图7的收敛曲线表明,使用更大的滤波器尺寸可以显着提高性能。特别是,Set5上9-3-5和9-5-5在8×108反向传播下获得的平均PSNR值分别为32.66 dB和32.75 dB 。结果表明,在映射阶段利用邻域信息是有益的。但是,随着过滤器尺寸的增大,部署速度也会降低。例如,9-1-5、9-3-5和9-5-5的参数数量分别为8,032、24,416和57,184。 9-5-5的复杂度几乎是9-3-5的两倍,但性能提高是微不足道的。因此,网络规模的选择应该始终是性能和速度之间的权衡。【实验证明更大的滤波器尺寸可以提高性能,但是也会带来更大的参数数量,所以选择的时候要权衡】图7.较大的过滤器尺寸可获得更好的结果。
我们可以观察到四层网络的收敛速度比三层网络慢
。然而,给定足够的训练时间,较深的网络将最终赶上并收敛到三层网络。发现超分辨率的深层结构的有效性不如图像分类所示[17]。此外,我们发现更深的网络并不一定总能带来更好的性能
。特别是,如果在9-1-5网络上添加n22 = 32过滤器的附加层,则性能会下降并且无法超过三层网络(请参见图 9(a))。【更深的网络会导致收敛速度更慢,并且不一定会带来更好的性能】如果我们通过在9-1-5上添加两个非线性映射层(n22=32和n23=16)进行更深入的研究,那么我们必须设置较小的学习速率以确保收敛
,但是经过一周的训练我们仍然没有观察到优越的性能(见图9(a))。将附加层的过滤器尺寸放大到f22 = 3,并探索两个深层结构 9-3-3-5和9-3-3-3。但是,从图9(b)所示的收敛曲线来看,这两个网络没有显示出比9-3-1-5网络更好的结果。【网络层数加深,就要设置更小的学习率来确保收敛】对于超级用户来说,这个深度模型并不是“越深越好”。
。这可能是由于训练困难造成的
。我们的CNN网络不包含池化层或全连接层,因此它**对初始化参数和学习速率敏感**
。当我们深入学习时(例如4或5层),我们发现很难设置适当的学习率以确保收敛。即使收敛,网络也可能陷入不良的局部最小值,并且即使有足够的训练时间,学习到的滤波器的多样性也会降低。在[16]中也观察到了这种现象,其中深度的不适当增加会导致图像分类的精度饱和或降级。为什么“更深的世界并没有更好”仍然是一个悬而未决的问题,这需要进行调查才能更好地理解深度架构中的梯度和训练动力学。因此,在下面的实验中我们仍然采用三层网络。【实验后得出结论:更深的网络结构不一定更好,所以我们还是采用三层网络结构】并且所有图像均使用相同的双三次内核进行降采样
。表2、3、4中结果显示、在任意数据集上,我们的方法是最好的
基于8×108向后传播的checkpoint
。特别是,对于放大因子3,SRCNN所实现的平均增益PSNR为0.15 dB,0.17 dB和0.13 dB,高于第二种最佳方法A + [42 ],在三个数据集上。当我们看一下其他评估指标时,我们发现,出乎意料的是,SC的得分甚至比IFC和NQM的双三次插值还要低。显然,SC的结果在视觉上比双三次插值的结果更令人愉悦,这表明这两个指标可能无法如实地展现图像质量。
因此,无论这两个指标如何,SRCNN都能在所有方法和比例因子中获得最佳性能。图10. SRCNN的测试收敛曲线以及Set5数据集上其他方法的结果。
图14. Set5中的“蝴蝶”图像,放大系数为3
图15. Set14中的“ ppt3”图像,放大系数为3
图16. Set14中的“斑马”图像,放大系数为3
图11. Set5数据集上SRCNN和DNC结果的测试收敛曲线。
图12.与现有的基于外部示例的方法相比,SRCNN可以实现最先进的超分辨率质量,同时保持较高的竞争速度。该图表基于表3中汇总的Set14结果。所有三个SRCNN网络的实现都可以在我们的项目页面上找到。
图12中越靠近左上角的方法效果越好、运行时间短,效果好。
因此我们的方法的处理时间与测试图像分辨率高度线性相关
。我们的方法始终是性能和速度之间的折衷。为此,我们训练了三个网络进行比较,分别是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],而性能可能会略有下降。
- 这表明,
在统一网络中进行训练时,Cb,Cr通道可能会降低Y通道的性能
。
原因在于Cb,Cr通道和Y通道之间的差异。在视觉上,Cb,Cr通道比Y通道更模糊,因此受下采样过程的影响较小。当我们在Cb,Cr通道上进行预训练时,只有少数滤波器被激活。然后,在进行微调时,训练很快就会降到最低的局部最小值。另一方面,如果我们在Y通道上进行预训练,则将激活更多的滤波器,并且Cb,Cr通道的性能将进一步提高。图13显示了带有“
Y预训练”的第一层滤镜的Cb,Cr通道,其模式与图5所示的模式有很大不同。
图13.使用“ Y预训练”策略的第一层滤波器的色度通道
与YCbCr通道不同,RGB通道之间呈现出很高的互相关性。所提出的SRCNN能够利用信道之间的这种自然对应来进行重构。因此,该模型在Y通道上获得的结果与“仅Y”可比,并且在Cb,Cr通道上的效果比双三次插值更好。
-(v)在KK [25]中,将超分辨率分别应用于每个RGB通道。当我们将其结果转换为YCbCr空间时,Y通道的PSNR值类似于“仅Y”,而Cb的Cr通道的PSNR值比双三次插值差。
结果表明,该算法偏向Y通道。总体而言,我们在RGB通道上训练的方法比KK和单通道网络(“仅Y”)具有更好的性能。还值得注意的是,与单通道网络相比,改进并不那么显着(即0.07 dB)。这表明Cb,Cr通道几乎无助于提高性能。
我们为单图像超分辨率(SR)提出了一种新颖的深度学习方法。我们证明了传统的基于稀疏编码的SR方法可以重构为深层卷积神经网络。所提出的方法SRCNN学习了低分辨率和高分辨率图像之间的端到端映射,除了优化之外几乎没有额外的预处理/后处理。我们认为可以通过探索更多的过滤器和不同的训练策略
来进一步提高性能。此外,所提出的结构具有简单性和鲁棒性
的优点,可以应用于其他低级视觉问题,例如图像去模糊或同时进行SR +去噪。人们还可以研究一个网络来应对不同的提升因素。【将传统的方法重构为深度学习方法,实现了简单性和鲁棒性,改进:更多的滤波器和训练策略】
如何评价图像质量
PSNR比较偏移程度,MSE要尽可能小,PSNR尽可能高.
结构相似度:评价不太标准.
MOS:让人来评价.
引入感知损失函数进行比较