Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记

Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第1张图片

rXiv:1501.00092v3 [cs.CV] 31 Jul 2015

题目:Image Super-Resolution Using DeepConvolutional Networks

1、可以从http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html.获得该实现。当地面真实图像可用时。

2、标题通过使用不同的度量标准(例如,峰值信噪比(PSNR),结构相似性指数(SSIM)[43],多尺度SSIM [44],信息保真度标准[38])进行数值评估。

3.双三次插值也是一种卷积运算,因此可以表述为卷积层。但是,此层的输出大小大于输入大小,因此存在小步跨度。为了利用诸如cuda-convnet [26]之类的广受欢迎且经过优化的实施方案,我们将这一“层”排除在“layer"之外。

4. ReLU可以等效地视为第二个操作(非线性映射)的一部分,而第一个操作(补丁提取和表示)将变成纯线性

摘要:

  • 我们提出了一种用于单图像超分辨率(SR)的深度学习方法。我们的方法直接学习低/高分辨率图像之间的端到端映射。映射表示为深度卷积神经网络(CNN),该神经网络将低分辨率图像作为输入并输出高分辨率图像这就是端到端】。我们进一步表明,传统的基于稀疏编码的SR方法也可以视为深度卷积网络。但是与传统方法分别处理每个组件不同,我们的方法共同优化了所有层。我们的深层CNN具有轻巧的结构,同时展现了最先进的恢复质量,并为实际在线使用提供了快速的速度。我们探索了不同的网络结构和参数设置,以实现性能和速度之间的折衷。此外,我们扩展了网络以同时处理三个颜色通道,并展现出更好的整体重建效果。【单图超分辨、端到端、

1、引言

  • 单一图像超分辨率(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方法之一。该方法涉及其解决方案流程中的几个步骤:首先,从输入图像中密集裁剪出重叠的补丁并进行预处理(例如,减去均值和归一化)。然后,这些补丁通过低分辨率字典进行编码。将稀疏系数传递到高分辨率字典中,以重建高分辨率色块。
  • 将重叠的重建面片聚合(例如,通过加权平均)以产生最终输出。此管道由大多数基于实例的外部方法共享,这些方法特别注意学习和优化字典[2]、[49]、[50]或构建有效的映射函数[25]、[41]、[42]、[47]。然而,管道中的其余步骤很少得到优化,或者在统一的优化框架中得到考虑。
  • 在本文中,我们证明了上述管道等效于深度卷积神经网络[27](在3.2节中有更多详细信息)。基于这一事实,我们考虑了一个卷积神经网络,该网络可以直接学习低分辨率和高分辨率图像之间的端到端映射。我们的方法与现有的基于外部示例的方法从根本上不同,因为我们没有显式学习用于建模补丁空间的字典[41],[49],[50]或流形[2],[4]。这些是通过隐藏层隐式实现的。此外,补丁提取和聚集也被公式化为卷积层,因此涉及优化。在我们的方法中,整个SR流水线是通过学习完全获得的,几乎不需要预处理。【将传统的管道方法改进为深度神经网络方法。并且将一些方法直接用隐藏层实现出来】
  • 我们将提出的模型命名为超分辨率卷积神经网络(SRCNN)
    • 1。提出的SRCNN具有几个吸引人的特性。首先,它的结构在设计时考虑了简单性,但与基于示例的最新方法相比,却提供了更高的准确性。图1显示了一个示例的比较。【结构简单、效果好】
    • 2,通过适当的滤波器和层数,我们的方法实现了快速的实际在线使用,甚至在一个CPU上。我们的该方法比许多基于实例的方法更快,因为它是完全前馈的,不需要求解任何优化问题第三种用法, 实验表明,当(i)有更大、更多样化的数据集,和/或(ii)使用更大、更深的模型时,网络的恢复质量可以进一步提高。相反,基于数据集的方法会带来更大的挑战。此外,该网络能同时处理三通道彩色图像,提高了超分辨率性能。【在线应用,使用方便】
      Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第2张图片

图1.提出的超分辨率卷积神经网络(SRCNN)仅经过几次训练迭代就超过了三次三次基线,并且在中等训练的情况下优于基于稀疏编码的方法(SC)[50]。通过更多的训练迭代可以进一步提高性能。在第4.4.1节(Set5数据集具有放大系数3)中提供了更多详细信息。所提出的方法提供了视觉吸引力的重建图像。

  • 总的来说,这项研究的贡献主要在三个方面:
    • 1)我们提出了一种用于图像超分辨率的全卷积神经网络。该网络可直接学习低分辨率和高分辨率图像之间的端到端映射,而无需进行优化即可进行很少的前/后处理。
    • 2)我们建立了基于深度学习的SR方法和传统的基于解析编码的SR方法之间的关系。这种关系为网络结构的设计提供了指导。
    • 3)我们证明了深度学习在经典的超分辨率计算机视觉问题中是有用的,并且可以获得很好的质量和速度。
  • 较早提出了这项工作的初步版本[11]。目前的工作以重要的方式增加了初始版本。
    • 首先,我们通过在非线性映射层中引入更大的滤波器大小来改进SRCNN,并通过添加非线性映射层来探索更深的结构【非线性映射层中加入更大的滤波器】
    • 其次,我们将SRCNN扩展为同时处理三个颜色通道(在YCbCr或RGBcolor空间中)。通过实验,我们证明与单通道网络相比,性能可以提高。【扩展为同时处理3个颜色通道】
    • 第三,将大量的新分析和直观的解释添加到初始结果中。我们还将原始实验从Set5 [2]和Set14 [51]测试图像扩展到BSD200 [32](200个测试图像)。
    • 此外,我们与大量最新发布的方法进行了比较,并确认我们的模型使用不同的评估指标仍胜过现有方法。

2、相关工作

2.1 Image Super-Resolution

  • 根据图像先验,单图像超分辨算法可分为四种类型:预测模型,基于边缘的方法,图像统计方法和基于补丁(或基于示例)的方法。这些方法已在Yanget等人的工作[46]中进行了深入研究和评估。其中,基于示例的方法[16],[25],[41],[47]实现了最先进的性能。
  • 基于内部示例的方法利用自相似性属性并从输入图像生成示例补丁。它是在Glasner的工作中首次提出的[16],并提出了几种改进的变体[13],[45]以加速实施。基于示例的外部方法[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方法之一。在这些方法中,补丁是优化的重点。补丁提取和聚集步骤被视为预处理/后处理,并分别进行处理。
  • 大多数SR算法[2],[4],[15],[41],[48],[49],[50],[51]关注于灰度或单通道图像超分辨率。对于彩色图像,上述方法首先将问题转换为不同的色彩空间(YCbCr或YUV),并且仅将SR应用于亮度通道。还有试图同时超分辨所有通道的工作。例如,Kim和Kwon [25]和Daiet等[7]。将其模型应用于每个RGB通道,并将它们组合以产生最终结果。但是,它们都没有分析不同通道的SR性能以及恢复所有三个通道的必要性。【以往的工作关注单通道图像的超分辨】

2.2 Convolutional Neural Networks

  • 卷积神经网络(CNN)的历史可以追溯到几十年[27],而深层CNN最近在爆炸性流行方面也表现出一定程度的成功,这部分归功于其在图像分类中的成功[18],[26]。它们也已成功地应用于其他计算机视觉领域,例如对象检测[34],[40],[52],面部识别[39]和行人检测[35]。在此过程中,有几个至关重要的因素:
    • (i)在现代功能强大的GPU上进行有效的训练[26],
    • (ii)整流线性单元(ReLU)的建议[33],它使收敛速度大大提高,同时仍具有良好的质量[26],
    • (iii)大量数据(例如ImageNet [9])来训练较大的模型。我们的方法也受益于这些进展

2.3 Deep Learning for Image Restoration

  • 已经有一些使用深度学习技术进行图像恢复的研究。多层感知器(MLP),其所有层都是完全连接的(与卷积相反),用于自然图像去噪[3]和去模糊后去噪[36]。与我们的工作更紧密相关的是,卷积神经网络被用于自然图像去噪[22]和消除噪声模式(污垢/雨水)[12]。这些恢复问题或多或少是由去噪驱动的。 Cuiet等人[5]提出在基于内部示例的概念[16]下将自动编码器网络嵌入其超分辨率管道中。由于级联的每一层都需要对自相似性搜索过程和自动编码器进行独立优化,因此深度模型并未专门设计为端对端解决方案。相反,提出的SRCNN优化了端到端映射。此外,SRCNN的速度更快。它不仅是定量上优越的方法,而且实际上是有用的一种方法。【端到端的提出】

3 CONVOLUTIONALNEURALNETWORKS FORSUPER-RESOLUTION

3.1 Formulation

  • 考虑单个低分辨率图像,我们首先使用双三次插值将其放大至所需大小,这是我们执行的唯一预处理。让我们将插值图像表示为Y。我们的目标是从Y中恢复图像F(Y),且F(Y)图像与真实高分辨率图像X尽可能相似。为了便于演示,我们仍然将Y称为“低分辨率”图像,尽管它的大小与X相同。我们希望学习一个映射F,该F在概念上由三个操作组成:
    • 1)补丁提取和表示:此操作从低分辨率图像Y中提取(重叠)补丁,并将每个补丁表示为高维向量。这些向量包括一组特征图,其数量等于向量的维数。【将低分辨图像中提取的补丁表示为高维向量】
    • 2)非线性映射:此操作将每个高维向量非线性映射到另一个高维向量。从概念上讲,每个映射向量都是高分辨率补丁的表示。这些向量包含另一组特征图。【将第一步提取的高维向量映射到另一个高维向量】
    • 3)重构:该操作将上述高分辨率的逐块表示形式进行聚合,以生成最终的高分辨率图像。预期该图像与Ground truth X相似。我们将证明所有这些操作都形成卷积神经网络。图2显示了网络概述。接下来, 我们详细介绍每个操作的定义。【将上面提取出来的补丁进行聚合形成高分辨图像】
      Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第3张图片

图2.给定低分辨率的图像Y,SRCNN的第一卷积层将提取一组特征图。第二层将这些特征映射非线性地映射到高分辨率补丁表示。最后一层结合空间邻域内的预测以产生最终的高分辨率图像F(Y)

3.1.1 Patch extraction and representation

  • 图像恢复中的一种流行策略(例如[1])是密集提取补丁,然后通过一组预训练的基础(例如PCA,DCT,Haar等)来表示它们。这等效于通过一组滤镜对图像进行卷积,每个都是基础。在我们的表述中,我们将这些基础的优化纳入网络的优化之中。形式上,我们的第一层表示为F1:
    在这里插入图片描述
  • 其中,W1和B1分别表示滤波器和偏置,“*”表示卷积操作。这里,W1对应于支持c×f1×f1的n1滤波器,其中c是输入图像中的通道数,f1是滤波器的空间大小。直观地说,W1对图像进行n1卷积,每个卷积有一个核size c×f1×f1。输出由n1个特征图组成。B1是n1维向量,其每个元素都与一个过滤器相关联。我们在滤波器响应上应用修正的线性单位(ReLU,max(0,x))[33]。【第一层】

3.1.2 Non-linear mapping

  • 第一层提取每个补丁的n1维特征。在第二个操作中,我们将每个n1维向量映射为n2维。这等效于应用具有微小空间支持1×1的n2个过滤器。此解释仅对1×1过滤器有效。但是很容易推广到3×3或5×5等较大的过滤器。在这种情况下,非线性映射不在输入图像的色块上;而是在特征图的3×3或5×5“补丁”上。第二层的操作是:【将每个n1维向量映射为n2维】
    在这里插入图片描述
  • 这里W2包含大小为n1×f2×f2的n2个过滤器,而B2是n2维向量。从概念上讲,每个n2维输出矢量都是用于重建的高分辨率补丁的表示。
  • 可以添加更多的卷积层以增加非线性。但这会增加模型的复杂度(一层的n2×f2×f2×n2参数),因此需要更多的训练时间。在第4.3.3节中,我们将通过引入其他非线性映射层来探索更深的结构。

3.1.3 Reconstruction

  • 在传统方法中,通常对预测的重叠高分辨率色块进行平均,以产生最终的完整图像。可以将平均视为一组特征图上的预定义滤波器(其中每个位置是高分辨率补丁的“扁平化”矢量形式)。为此,我们定义了一个卷积层以产生最终的高分辨率图像
    在这里插入图片描述
  • 这里W3对应于大小为n2×f3×f3的过滤器,而B3是c维向量。
  • 如果高分辨率色块的表示位于图像域中(即,我们可以简单地对每个表示进行整形以形成色块),则我们期望过滤器像平均滤波器;
  • 如果高分辨率色块的表示是在其他某些域中(例如,以某些基数表示的系数),则我们希望W3的行为像是先将系数投影到图像域上然后进行平均。无论哪种方式,W3都是线性滤波器组。
  • 有趣的是,尽管以上三个操作是由不同的直觉驱动的,但它们都导致了相同的形式作为卷积层。我们将所有三个运算放在一起,形成一个卷积神经网络(图2)。在该模型中,所有滤波权重和偏差都将得到优化。尽管整体结构简洁,但我们的SRCNN模型还是通过借鉴超分辨率方面的重大进展而精心开发的[49],[50]。我们将在下一部分中详细介绍这种关系。【将上面解决问题的方法集成到一起形成一个网络,这就是这个SRCNN的由来。其实他本质上就是3个解题的步骤,不用纠结卷积神经网网络】

3.2 Relationship to Sparse-Coding-Based Methods(与)

  • 我们证明了基于稀疏编码的SR方法[49],[50]可以看作是卷积神经网络。图3显示了一个插图。在基于稀疏编码的方法中,让我们考虑从输入图像中提取出一个f1×f1的低分辨率色块。然后,像Feature-Sign [29]这样的稀疏编码求解器将首先将补丁投影到(低分辨率)字典上。如果字典大小为n1,则等效于在输入图像上应用n1个线性滤波器(f1×f1)(平均减法也是线性运算,因此可以吸收)。如图3的左图所示。
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第4张图片

图3.从卷积神经网络角度说明基于稀疏编码的方法

  • 然后,稀疏编码求解器将迭代处理这n1个系数。此求解器的输出为n2系数,对于稀疏编码,通常为n2 = n1。 n2系数代表高分辨率色块。在这种情况下,稀疏编码求解器求解器的行为类似于非线性映射运算符的特例,其空间支持为1×1。参见图3的中间部分。但是,稀疏编码求解器不是前馈,它是一种迭代算法。相反,我们的非线性算子是完全前馈的,可以有效地进行计算。如果我们将f2 = 1,则我们的非线性算子可以视为按像素连接的层。值得注意的是,SRCNN中的“稀疏编码求解器”指的是前两层,而不仅仅是第二层或激活函数(ReLU)。因此,通过学习过程还可以很好地优化SRCNN中的非线性运算。
  • 然后将上述2个系数(在稀疏编码之后)投影到另一个(高分辨率)字典上,以生成高分辨率补丁。然后将重叠的高分辨率色块平均。如上所述,这等效于n2特征映射上的线性卷积。如果用于重建的高分辨率色块的大小为f3×f3,则线性滤波器的等效空间支持大小为f3×f3。参见图3的右部分。
  • 以上讨论表明,基于稀疏编码的SR方法可以看作是一种卷积神经网络(具有不同的非线性映射)。但是,在基于稀疏编码的SR方法的优化中并未考虑所有操作。相反,在我们的卷积神经网络中,低分辨率字典,高分辨率字典,非线性映射以及均值减法和平均都包含在要优化的过滤器中。因此,我们的方法可以优化由所有操作组成的端到端映射。【我们的方法是基于稀疏编码SR方法的改进版本】
  • 上述类比也可以帮助我们设计超参数。例如,我们可以将最后一层的过滤器大小设置为小于第一层的过滤器大小,因此我们更依赖于高分辨率面片的中心部分(极端情况下,如果f3=1,我们使用的是没有平均值的中心像素)。我们也可以选择n2【这一部分讲的是基于稀疏编码求解器和我们方法的联系】

3.3 Training

  • 学习端到端映射函数F需要网络参数的估计Θ= {W1,W2,W3,B1,B2,B3}。这是通过最小化重建图像F(Y;Θ)和相应的地面真实高分辨率图像X之间的损耗来实现的。给定一组高分辨率图像{Xi}及其对应的低分辨率图像{Yi},我们使用均方误差(MSE)作为损失函数:【训练过程其实就是通过降低损失函数得到参数Θ= {W1,W2,W3,B1,B2,B3}】
    在这里插入图片描述
  • 其中n表示训练样本的数量。使用MSE作为损失函数有利于高PSNR。 PSNR是用于定量评估图像恢复质量的广泛使用的度量,并且至少部分与感知质量有关。值得注意的是,如果只有损失函数是可导出的,则卷积神经网络并不排除使用其他种类的损失函数。如果在训练期间给出了更好的感知动机指标,则网络可以灵活地适应该指标。相反,通常对于传统的“手工”方法很难实现这种灵活性。尽管所建议的模型训练时偏向于高PSNR,但是当使用替代评估指标(例如SSIM,MSSIM)评估模型时,我们仍然观察到令人满意的性能(请参见第4.4.1节)。【不但使用PSNR评价时,我们的方法效果好,在采用其他婊扎云评价时。我们的方法效果依然很好】
  • 使用随机反向梯度消散和标准反向传播可以将损耗降到最低[28]。特别是,权重矩阵更新为
    在这里插入图片描述
  • 其中l∈{1,2,3}和i表示层数和迭代的索引,η是学习率,∂L/∂W`是导数。每层的滤波器权重通过从高斯分布中随机抽取来初始化零均值和标准差0.001(偏差为0)。前两层的学习率是10-4,最后一层的学习率是10-5。从经验上我们发现,最后一层的较小学习速率对于网络收敛很重要(类似于去噪情况[22])。
  • 在训练阶段,将地面真实图像{Xi}准备为fsub×fsub×c-pixel ,sub -pixel是从训练图像中随机裁剪的图像。通过“子图像(sub-pixel)” ,这些样本被视为小的“图像”而不是“补丁”,在某种意义上,“补丁”是重叠的并且需要一些平均值作为后处理,而“子图像”则不需要。
  • 为了合成低分辨率样本{Yi},我们通过高斯核对子图像进行模糊处理,通过放大因子对子图像进行子采样,并通过双三次插值以相同因子对子图像进行放大。【如何合成低分辨率图像】
  • 为了避免训练期间的边界效应,所有卷积层都没有填充(padding),网络生成的输出较小((fsub-f1-f2-f3 + 3)2×c)。MSE损失函数仅通过Xi和网络输出的图像的中心像素之间的差来评估。在训练中固定图像大小的情况下,卷积神经网络可以在测试期间应用于任意大小的图像。【即使在训练时使用固定大小的图像尺寸,但是测试时可以使用任意大小尺寸的图像】
  • 我们使用cuda-convnet package [26]来实现我们的模型。我们还尝试了Caffe package [24],并观察到了类似的性能。

4、实验

  • 我们首先研究使用不同数据集对模型性能的影响。接下来,我们检查过滤器(通过我们的方法学习到的)。然后,我们探索网络的不同体系结构设计,并研究超分辨率性能与诸如深度,滤波器数量和滤波器大小等因素之间的关系。随后,我们将我们的方法与最新技术进行了定量和定性的比较。继[42]之后,仅在4.1-4.4节中将超分辨率应用于亮度通道(YCbCr颜色空间中的Y通道),第一层/最后一层中的c = 1,并在其上评估性能(例如,PSNR和SSIM)Y频道。最后,我们扩展了网络以处理彩色图像,并评估了不同通道上的性能。

4.1 Training Data

  • 如文献所示,深度学习通常受益于大数据训练。为了进行比较,我们使用了一个相对较小的训练集[41],[50]和一个交大的训练集,小的其中包含91张图像,而另一个训练集包含395909张来自ILSVRC 2013 ImageNet检测训练分区的图像。【使用两个数据量差距很大的训练集】训练子图像的大小为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。
  • 使用不同训练集的测试收敛曲线如图4所示。 imageNet与91图像数据集大致相同,因为反向传播的次数相同。可以看出,在反向传播次数相同(即8×108)的情况下,SRCNN + ImageNet达到32.52 dB,高于在91个图像上训练得到的32.39 dB。结果肯定地表明,使用更大的训练集可以进一步提高SRCNN的性能,但是大数据的效果不如高级视力问题中显示的那么令人印象深刻[26]。这主要是因为91张图像已经捕获了自然图像的足够的可变性。另一方面,我们的SRCNN是一个相对较小的网络(8,032个参数),不能过度拟合91个图像(24,800个样本)。不过,在以下实验中,我们采用包含更多数据的ImageNet作为默认训练集【经过实验比较得到结果:使用更大的数据集可以进一步提高SRCNN的性能,但是提升有限】
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第5张图片

图4.使用更大的ImageNet数据集进行训练,可提高使用91张图像的性能。PSNR越大越好。

4.2 Learned Filters for Super-Resolution(学习到的滤波器)

  • 图5显示了在ImageNet上按放大因子3训练的学习的第一层滤波器的示例。请参考我们发布的实现放大因子2和4的实现。有趣的是,每个学习的滤波器都有其特定的功能。例如,滤波器g和滤波器h像拉普拉斯/高斯滤镜一样,滤波器a和e像在不同方向的边缘检测器,滤波器f像纹理提取器。图6示出了不同层的示例性特征图。显然,第一层的特征图包含不同的结构(例如,不同方向的边缘),而第二层的特征图在强度上主要不同。
  • Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第6张图片

图5.该图显示了在ImageNet上训练的具有放大系数=3的第一层滤镜。滤镜是根据其各自的方差组织的。
Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第7张图片
图6.不同图层的示例特征图。

4.3 Model and Performance Trade-offs(模型与性能的权衡)

  • 根据基本网络设置(即,f1 = 9,f2 = 1,f3 = 5,n1 = 64,n2 = 32),我们将逐步修改其中一些参数,以研究性能与速度之间的最佳折衷,并进行研究性能与参数之间的关系。

4.3.1 Filter number (滤波器数量)

  • 通常情况下,如果我们增加网络宽度6(即添加更多过滤器)会提高性能,但会花费运行时间。具体来说,根据我们的网络默认设置n1 = 64andn2 = 32,我们进行了两个实验:(i)一个是使用n1 = 128andn2 = 64的较大网络,以及(ii)另一个是使用n1 = 32andn2 = 16的较小网络。在第4.1节中,我们还在ImageNet上训练了两个模型,并使用放大因子3在Set5上进行了测试。表1显示了在8×108反向传播中观察到的结果。显然,通过增加宽度可以实现出色的性能。但是,如果需要快速的恢复速度,则首选较小的网络宽度,它仍比基于稀疏编码的方法(31.42 dB)可获得更好的性能。【增加滤波器数量会提高性能,但是如果更加强调时间,那就选择更少的滤波器】

表1: 在SRCNN中使用不同过滤器编号的结果。在ImageNet上进行训练,而对Set5数据集进行评估
Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第8张图片

4.3.2 Filter size(滤波器大小)

注释5.补丁在每个方向上都重叠有4个像素

  • 在本节中,我们检查了网络对不同滤波器大小的敏感性。在先前的实验中,我们将过滤器大小设置为f1 = 9,f2 = 1和f3 = 5,并且网络可以表示为9-1-5。首先,为了与基于稀疏编码的方法保持一致,我们将第二层的过滤器大小固定为f2 = 1,并将其他层的过滤器大小扩大到f1 = 11和f3 = 7(11-1-7)。所有其他的设置与第4.1节相同。 Set5的放大系数为3的结果为32.57 dB,略高于4.1节中报告的32.52 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的两倍,但性能提高是微不足道的。因此,网络规模的选择应该始终是性能和速度之间的权衡。【实验证明更大的滤波器尺寸可以提高性能,但是也会带来更大的参数数量,所以选择的时候要权衡】
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第9张图片

图7.较大的过滤器尺寸可获得更好的结果。

注释6.我们使用“宽度”来表示一层中的过滤器数量,其后是[17]。 “宽度”一词在文献中可能还有其他含义。

4.3.3 Number of layers(网络层数)

  • He和Sun [17]的最新研究表明,适度增加网络深度可以使CNN受益。在这里,我们通过添加另一个非线性映射层来尝试更深层次的结构,该层具有n22 = 16个滤波器,大小为f22 =1。我们进行了三个受控实验,即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(c),我们可以观察到四层网络的收敛速度比三层网络慢。然而,给定足够的训练时间,较深的网络将最终赶上并收敛到三层网络。发现超分辨率的深层结构的有效性不如图像分类所示[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]中也观察到了这种现象,其中深度的不适当增加会导致图像分类的精度饱和或降级。为什么“更深的世界并没有更好”仍然是一个悬而未决的问题,这需要进行调查才能更好地理解深度架构中的梯度和训练动力学。因此,在下面的实验中我们仍然采用三层网络。【实验后得出结论:更深的网络结构不一定更好,所以我们还是采用三层网络结构】
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第10张图片

图8.三层和四层网络之间的比较
Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第11张图片
图9.更深的结构并不总能带来更好的结果

4.4 Comparisons to State-of-the-Arts(和其他流行方法的比较)

  • 在本节中,我们将展示我们的方法与最新方法相比的定量和定性结果。我们采用具有良好性能-速度折衷的模型:在ImageNet上训练的三层网络,其中f1 = 9,f2 = 5,f3 = 5,n1 = 64,n2 = 32,对于每个放大因子∈{2,3 ,4},我们为此因素训练了一个特定的网络。
    比较。我们将我们的SRCNN与最新的SR方法进行了比较:
    •Yanget等人基于SC稀疏编码的方法[50]
    •NE + LLE邻居嵌入+局部线性嵌入方法[4]
    •ANR-AnchoredNeighbourhoodRegression方法[41]
    •A ±调整后的邻域回归方法[42]和
    •KK- [25]中所述的方法,在基于外部实例的方法中获得了最佳性能,根据Yanget等人的工作进行的全面评估[46]
    所有实现均来自作者提供的可公开获得的代码,并且所有图像均使用相同的双三次内核进行降采样
    测试集.TheSet5 [2]( 5张图片),Set14 [51](14张图片)和BSD200 [32](200张图片)用于评估评估提升因子2、3和4的性能。
    评估指标。除广泛使用的PSNR和SSIM [43]指标外,我们还采用了另外四个评估矩阵,即信息保真度标准(IFC)[38],噪声质量度量(NQM)[8],加权峰值信噪比(WPSNR)和多尺度结构相似性指数(MSSSIM)[44],与[46]中报道的人类感知评分具有高度相关性。

4.4.1 Quantitative and qualitative evaluation(4.4.1定量和定性评估)

  • 如表2、表3和表4所示,在所有实验中,所提出的srcnn在大多数评价矩阵中得到最高的分数.【我们的方法最好】
    -Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第12张图片

表2、3、4中结果显示、在任意数据集上,我们的方法是最好的

  • 请注意,我们的SRCNN结果基于8×108向后传播的checkpoint。特别是,对于放大因子3,SRCNN所实现的平均增益PSNR为0.15 dB,0.17 dB和0.13 dB,高于第二种最佳方法A + [42 ],在三个数据集上。当我们看一下其他评估指标时,我们发现,出乎意料的是,SC的得分甚至比IFC和NQM的双三次插值还要低。显然,SC的结果在视觉上比双三次插值的结果更令人愉悦,这表明这两个指标可能无法如实地展现图像质量。因此,无论这两个指标如何,SRCNN都能在所有方法和比例因子中获得最佳性能。
  • 值得指出的是,SRCNN在学习阶段的开始就超过了双曲线基线(参见图1),并且在中等训练下,SR-CNN的表现优于现有的最先进的方法(请参见图4)。但是,性能还远未收敛。我们推测,在更长的训练时间下可以获得更好的结果(请参见图10)。
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第13张图片

图10. SRCNN的测试收敛曲线以及Set5数据集上其他方法的结果。

  • 图14、15和16显示了放大系数为3的不同方法的超分辨率结果。与其他方法相比,SRCNN产生的边缘要清晰得多,并且在整个图像上没有任何明显的伪影。此外,我们还向Cuietal提出了另一种深度学习方法,用于图像超分辨率(DNC)。[5]由于他们使用了不同的模糊内核(标准偏差为0.55的高斯滤波器),因此我们使用与DNC相同的模糊内核来训练特定网络(9-5-5),以进行公平的定量比较。放大系数为3,训练集为91个图像数据集。从图11所示的收敛曲线可以看出,我们的SRCNN仅以2.7×107的反向支撑就超过了DNC,并且在更长的训练时间下可以获得更大的余量。这也表明端到端学习优于DNC,即使该模型已经“深入”了

图14. Set5中的“蝴蝶”图像,放大系数为3
图15. Set14中的“ ppt3”图像,放大系数为3
图16. Set14中的“斑马”图像,放大系数为3
Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第14张图片
图11. Set5数据集上SRCNN和DNC结果的测试收敛曲线。

4.4.2 Running time(运行时间)

  • 如表2、3和4所示,在所有实验中,srcnn在大多数评估矩阵中产生最高分数。图12显示了几种最新方法的运行时间比较,以及它们在set14上的恢复性能。所有基线方法都是从相应的作者的Matlab + MeX简化得到的,而我们的是纯C++。
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第15张图片

图12.与现有的基于外部示例的方法相比,SRCNN可以实现最先进的超分辨率质量,同时保持较高的竞争速度。该图表基于表3中汇总的Set14结果。所有三个SRCNN网络的实现都可以在我们的项目页面上找到。
图12中越靠近左上角的方法效果越好、运行时间短,效果好。

  • 我们使用同一台计算机(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],而性能可能会略有下降。

Implementation details(实施细节)

  • 对91个图像的数据集进行训练,对Set5 [2]进行测试。网络设置为:c = 3,f1 = 9,f2 = 1,f3 = 5,n1 = 64,n2 = 32。由于我们已经证明了SRCNN在不同尺度上的有效性,这里我们只评估了上尺度因子3的性能。
    comparisons
  • 我们将我们的方法与最新的颜色SR方法KK [25]进行了比较。我们还尝试了不同的学习策略进行比较:
  • •仅Y:这是我们的基准方法,即仅在亮度通道上训练的单通道(c = 1)网络。 Cb,Cr通道使用双三次插值进行
  • •YCbCr:在YCbCr空间的三个通道上进行训练。
  • •Y预训练:首先,为了保证Y通道上的性能,我们仅使用Y通道的MSE作为损失以预先训练网络。然后,我们使用所有通道的MSE来微调参数。
  • •CbCr预训练:我们使用Cb,Cr通道的MSE作为损耗来预训练网络,然后在所有通道上微调参数。
  • •RGB :训练是在RGB空间的三个通道上执行的。
  • 结果如表5所示,我们有以下观察结果。
  • (i) 如果直接在YCBCR通道上训练,结果甚至比双三次插值差。由于Y和Cb、Cr信道固有的不同特性,训练陷入了一个糟糕的局部极小值。
  • (ii)如果我们在Y、Cb、Cr通道上进行预训练,性能最终会提高,但仍不优于彩色图像上的“仅Y”(见表5的最后一列,其中PSNR是在RGB颜色空间中计算的)。
  • 这表明,在统一网络中进行训练时,Cb,Cr通道可能会降低Y通道的性能
  • (iii)我们观察到,“ Y pre-train”的Cb,Cr通道的PSNR值比“ Y pre-train”的PSNR值高。

原因在于Cb,Cr通道和Y通道之间的差异。在视觉上,Cb,Cr通道比Y通道更模糊,因此受下采样过程的影响较小。当我们在Cb,Cr通道上进行预训练时,只有少数滤波器被激活。然后,在进行微调时,训练很快就会降到最低的局部最小值。另一方面,如果我们在Y通道上进行预训练,则将激活更多的滤波器,并且Cb,Cr通道的性能将进一步提高。图13显示了带有“
Y预训练”的第一层滤镜的Cb,Cr通道,其模式与图5所示的模式有很大不同。
Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第16张图片
图13.使用“ Y预训练”策略的第一层滤波器的色度通道

  • (iv)在RGB通道上进行训练可以在彩色图像上获得最佳效果。

与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 +去噪。人们还可以研究一个网络来应对不同的提升因素。【将传统的方法重构为深度学习方法,实现了简单性和鲁棒性,改进:更多的滤波器和训练策略】

  • 疑问:为什么经过下采样bicubic处理之后,照片(第一行第二个图)还是原图大小。难道尺寸不应该变大吗?
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第17张图片
    Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第18张图片

番外——SRCNN的b站视频

Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第19张图片
Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第20张图片

如何评价图像质量
Image Super-Resolution Using DeepConvolutional Networks论文阅读笔记_第21张图片
PSNR比较偏移程度,MSE要尽可能小,PSNR尽可能高.
结构相似度:评价不太标准.
MOS:让人来评价.

引入感知损失函数进行比较

你可能感兴趣的:(超分辨)