论文及代码地址:Learning a Deep Convolutional Network for Image Super-Resolution)

基于卷积神经网络的影像超分辨率重建

摘要:

我们提出了一种基于深度学习的单影像超分辨率重建方法。我们直接以端对端的方式学习高分辨率影像和低分辨率影像之间的mapping。Mapping可以用一个深度卷积神经网络来表示,通过输入低分辨率的影像输出高分辨率的影像。之后我们会展示传统的稀疏编码的方式也可以看做一个深度卷积网络。但是,和传统的方法能够单独处理每个成分不同,我们的方法共同对所有图层进行优化。我们的CNN有个lightstructure的结构,已经证明了有目前最好的重建质量,并且对于实际的线上应用有最快的速度。我们探索了不同的网格结构和参数设置以实现精度和速度之间的平衡。更进一步的,我们扩展了我们的网络去同时获取三通道的影像,并且得到了更好的整体重建质量。

关键词:超分辨率、深度卷积神经网络、稀疏编码

介绍

单影像的超分辨率重建是计算机视觉的一个经典问题,目的是从低分辨的影像中恢复高分辨的影像。这个问题本质上是病态的因为给定任意的低分辨率的像素都有多种解决策略。换句话说,这是一个不确定的反问题,它的解决方案不唯一。这样的问题通常可以通过强大的先验知识来约束解空间。目前学习的最先进的方法大都采用基于样本的方法。这些方法要么利用相同影像的内部相似性,要么从外在的低高分辨率的样本对中学习它们的mapping函数。外在的基于样本的方法能够完成普通影像的超分辨率重建,或者能够设计用来适应大部分任务如:根据提供的训练样本进行人脸超分。

基于稀疏编码的方法是最具代表性的外在的基于样本的超分辨率重建方法之一。这个方法的处理流程主要包括几个阶段:首先,从输入的影像中密集的裁切一些重叠的图块并进行预处理(比如数据的中心化处理和归一化处理),之后这些图块会被一个低分辨率的字典编码。为了重构高分辨率的图块,稀疏的参数会传递到高分辨率的字典中。重叠的图块会通过如加权平均的方法进行合并以产生最后的输出。这种处理流程被绝大部分外在的基于样本的方法所共用,这些方法把注意力都放在学习和优化字典上,或者就是构建高效的maping函数上。然而,处理过程中的接下来的步骤很少被优化和在一个统一的优化框架中考虑。

这篇文章中,我们展示了前述的处理过程等价于一个深度卷积神经网络(详见3.2节)。受到这个事实的激励,我们考虑了一种在低高分辨率影像间直接学习一个端对端的mapping的卷积神经网络。我们的方法在本质上和现有的外部基于样本的方法不同,在我们的方法中没有明确地学习字典和对图块空间的构建进行复写。更多的,图块的抽取和合并同样可以作为一个卷积层,包括在优化中。在我们的方法中,完整的超分辨率重建流程是完全通过学习和极少的预处理和后处理获得的。

我们将提出的方法命名为超分辨率重建卷积神经网络SRCNN。提出的SRCNN方法有许多吸引人的特性。首先,它的结构是基于简单的思想故意设计的,并且现在和当前的方法相比提供了更高的精度。图1显示了一个样本的对比。其次,由于合适的滤波器和图层数量,我们的方法在实际的线上应用具有高速率即使是在CPU上。我们的方法比起多数的基于样本的方法更快,因为它完全的前馈特性并且不需要解决任何使用上的优化问题。第三,当使用更大和更多样化的数据集的时候,或者是更大更深层次的模型的时候,实验结果显示网络的重建质量有着更大的提升。相反的,更大的数据集/模型能够给当前的基于样本的方法带来挑战。此外,我们提出的网络能够同时涵盖三通道的彩色影像以实现提升超分辨率重建的表现。

整体来说,这项研究的共享主要是这三方面:

  1. 我们提出了一种完全卷积神经网络用于影像的超分辨率重建,网络通过直接在低高分辨率影像间学习端对端的mapping,而除了优化之外仅需极少的预处理和后处理。
  2. 我们在我们提出的基于深度学习的超分辨率重建方法和传统的基于稀疏编码的超分辨率重建方法之间建立联系,这种关系对网络结构的设计提供了指导;
  3. 我们证明了深度学习对于超分辨率重建这种传统的计算机视觉问题很有用,能够实现好的精度和速度。

这项工作的初步版本已经发表了。现在的工作在原始的版本上加了有意义的方法。首先,我们改进了SRCNN通过在非线性的mapping层上采用更大的滤波器尺寸,并且通过添加非线性的mapping层探索了更深的结构。第二,我们对SRCNN进行扩展以便于能同时处理三通道(YCbCr或RGB)的影像。实验上,我们证明了与单通道的结果相比表现能够提升。第三,加上了对原始结果的大量的新的分析和生动的解释。我们同样对原始的实验进行了扩展,从Set5和Set14测试影像到BSD200影像。另外,我们和一些最新发表的方法进行了对比并且证明我们的方法在使用不同的评价矩阵的时候性能仍然优于这些方法。

2 相关工作

2.1 影像超分辨率重建

根据影像的先验知识,单张影像的超分辨重建算法可以分为四类:预测模型、基于边缘的方法,影像统计的方法和基于块(基于样本)的方法。这些方法在Yang的工作中被完全的调查和评估过,根据这些结果,基于样本的方法实现了当前最好的表现。

内部的基于样本的方法利用自身的相似特性和从输入的影像中形成样本对。它首先在Glasner的工作中被提出来,并且许多变量被提出来用于加速执行。外在的基于样本的方法从外在的数据集中学习了从低分辨率到高分辨率的mapping。这些方法在怎么学习关于低高分辨率的影像的紧凑的字典和多种空间上,以及怎样通过在这样的空间中进行方案的表达上都有所不同。在Freeman等人的早先工作中,字典被直接表示为低高分辨率的图块对,并且输入图块的最邻近图块在低分辨率空间中找到,其对应的高分辨率的图块用于重构。Chang等人介绍一种流行的嵌入技术作为对了最邻近NN方法的改变。Ynag等人的工作,上述的NN进展对应了一个更复杂的稀疏编码公式。其他mapping公式如核回归,简单函数、随机森林和锚框邻近回归,也被提出用来更进一步的提升mapping的精度和速度。基于稀疏编码的方法和它的一些提升已经超过了当下最好的SR方法。这些方法中,图块专用于优化,图块的提取和合并步骤被作为预/后处理而分开进行。

SR算法的主体是基于灰度尺度或者单通道影像的超分辨率重建,对于彩色影像,之前提到的方法首先将这个问题转换到了不同的颜色空间上,而且SR仅仅应用在了亮度通道上。这里同样有许多工作致力于同时解决多通道,比如Kim和Kwon和Die等人应用他们的模型在每个RGB通道上并且结合了这些通道产生最终的结果。然而,他们都没有分析SR的不同通道的表现以及恢复这些三个通道的必要性。

2.2 卷积神经网络

卷积神经网络可以追溯到十年前,深度CNN网络最近因为它在图像分类上的成功应用展示出了它的爆炸式的受欢迎程度,它们同样能应用在其他计算机视觉的领域,比如目标检测、面部识别、行人检测等。许多因素是CNN风靡的关键原因:1 在现在的GPU高效的训练 2.矫正线性单元RELU的提出使得在同样实现高精度的同时收敛更快;3.对于训练大模型获取的丰富数据集更加简单。我们的方法同样收益与这些成就。

2.3 影像恢复的深度学习

有很多的深度学习方法用于影像的恢复。多层感知机(MLP)所有的图层都是全连接的(与卷积相反),应用于自然影像的降噪和后模糊降噪。许多和我们工作更相近的,卷积神经网络用于自然影像的降噪和移除噪声组合(尘土、雨滴)。这些恢复问题或多或少都是由降噪驱动的。Cui等人在内部的基于样本的概念方法之下,提出在他们超分辨率重建的流程中使用嵌入的自动编码网络。深度模型并没有被确切的设计成端对端的方案,因为级联的每个层需要独立地优化自相似性搜索过程和自动编码器。相反的,SRCNN速度更快。这并不仅仅是一个质量更好的方法,而且是实际最有用的一个。

3 超分辨率重建的卷积神经网络

3.1公式

想想一张单低分辨率影像,我们首先使用双三次插值将尺度放大到我们想要的尺度,这就是我们提到的唯一使用的预处理。把插值过的影像记为Y。我们的目标是从Y中恢复一张和地表真实高分辨率影像X尽可能相似的影像F(Y)。为了便于演示,我们仍然将Y称为低分辨率影像,即使它和X有着一样的规格。我们希望学习一种mapping。从概念上看它由三部分操作组成:

  1. 图块的提取和重新表达。这个操作从低分辨率影像Y中提取了(重叠的)图块并且将每个图块表示为一个高维度的矢量,这些矢量包括一组特征映射,其数量等于矢量的维度。
  2. 非线性mapping。这个操作非线性的将每个高维矢量映射到另一个高维矢量上。每个映射的矢量概念上来说是一个高分辨率图块的表达。这些矢量包括了另外一组特征映射。
  3. 重建。这个操作包含了上述的高分辨率patch-wise的表征到形成最终的高分辨率影像。这个影像被期待和地表真实X一样。

我们将会展示所有的这些卷积神经网络中的操作。这个网络的回顾在图片2中已经描述。接下来我们会详述对每个操作的定义。

3.1.1图块的提取和重新表达

在图像恢复中一种比较流行的方法就是密集的提取图块然后将它们表示为一组预训练的基础如PCA(主成分分析法,用于数据降维压缩以保留重要特征),DCT(离散余弦变换)、Harra等。这等价于用一组卷积核对影像进行卷积,每个卷积核就是一个基。我们将这些基的优化囊括到网络的优化中。正式地,我们的第一层可以表示为操作F1:

式中:W1和B1对应的代表着滤波器和基,*代表卷积操作。这里,W1对应n1个c*f1*f1的卷积核,c是输入影像的通道数,f1是卷积核的空间尺度。更形象的我们在影像上应用了n1个卷积,每个卷积的卷积核大小是c*f1*f1。输出是由n1张特征图组成。B1是一个n维的矢量,它的每个元素都和滤波器有关系。我们将RELU作为滤波器的回应。

3.1.2 非线性mapping

每个图块在第一层中都提取了n1维的特征。我们将每个n1维的矢量匹配到一个n2维的矢量。这就等价于使用n2个大小为1*1的滤波器,这种解译只对1*1的滤波器有效。但是它很容易被概括到一些更大的滤波器比如3*3或5*5.这样的情况,非线性的mapping就不是输入影像的一个patch了。相反的它成为了输入影像上的一个3*3或5*5的patch。第二层的操作是:

式中,w2包含了n个大小为n1*f2*f2的滤波器,B2是n2维的。每个输出的n2维的矢量都可以概念性的表示为将会应用在重构的高分辨率的图块。

通过增加更多的卷积层来增加非线性的能力是可以的。但是它增加了模型的复杂度(每层有n2*f2*f2*n2个参数),因此需要更多的训练时间。我们将会探索更深的网络结构通过在4.3.3节中接介绍额外的非线性mapping图层。

3.1.3 重构

传统的方法中,预测得到的重叠的高分辨率图块经常用来合成最后的完整影像。合成可以看做是一组特征图(它的每个位置都是高分辨率图块展开的矢量形式)之上的一个预定义的过滤器。受到这样的启发,我们定义了一个卷积层去产生最后的高分辨率影像:

式中:W3对应着c个大小为n2*f3*f3的滤波器,B3是一个c维的矢量。

如果高分辨率图块的表达是在图像域中(如:我们能够简单的重塑表达去形成图块。)我们期望W3的行为首先将系数投影到图像域上然后再进行平均。无论哪种方式,W3是一组线性的滤波器。

有趣的是,虽然上述的三种操作都是收到不同的直觉的启发,它们都产生了相同的形式:卷积层。我们将所有的三种操作放在一起就形成了卷积神经网络(图2)。在这个模型中,所有的滤波器的权重和偏置都要被优化。尽管整体的结构是简洁的,我们的SRCNN模型是通过吸取超分辨率重建领域重大的进展带来的丰富的经验而谨慎的构建的。我们将在下一章中详述。

3.2 和稀疏编码方法的关系

如图3所示,我们展示了基于超分辨率方法的稀疏编码可以被看做是一个卷积神经网络。

在基于稀疏编码的方法中。我们假设从输入的影像中抽取一个低分辨率的图块,之后如Feature-Sign,稀疏编码的方法会首先将图块投影到一个(低分辨率)字典中。如果字典的大小是n1,这就等价于在输入的影像上使用n1个线性滤波器(f1*f1)进行操作(均值减法同样可以抽象为一种线性操作),如图3的左部分所示。

稀疏编码的方法之后将会迭代的处理这n1个系数。这个操作的输出是n2个系数,稀疏编码的方法中通常n1=n2.这n2个系数是高分辨率图块的重新表达。在这个意义上,稀疏编码的行为作为是非线性mapping操作的例子,支持的空间大小是1*1,如图3的中间部分所示。然而,稀疏编码的方法不是前馈的,即它是迭代的算法。相反的,我们非线性操作是完全前馈的并且能够被高效的计算。如果我们设置f2=1.然后我们的非线性操作可以被看做是一个像素尺度的完全连接层。值得一提的是,SRCNN中的稀疏编码方法指的是前两层,而不仅仅是第二层后者激活函数RELU。因此,SRCNN中的非线性操作同样能够通过学习而很好的优化。

上述的n2个系数(稀疏编码后)之后会投影到另一个字典中(高分辨率)以产生高分辨率的图块。然后会对这些重叠的高分辨率图块进行平均。正如之前讨论的,这等价于在n2特征层上的线性卷积。如果用于重建的高分辨率图块的大小为f3*f3,然后线性的滤波器大小也为f3*f3.如图3的右边部分。

上述的讨论说明基于SR的稀疏编码方法可以看做一种卷积神经网络(有非线性的mapping)。但是不是所有的操作都在基于稀疏编码的SR方法的优化中考虑过。相反的,在我们的卷积神经网络中,低分辨率的字典、高分辨率的字典、非线性的mapping以及均值减去和平均,都包括在了被优化的滤波器中。所以我们的方法优化了包含了所有操作的端到端的mapping。

上述的分析也能帮助我们设计超参数。比如,我们能够设置最后一层的滤波器尺寸小于第一层,这样我们就能更多的依赖高分辨率图块的中心部分(极端的,如果f3=1,我们就使用没有平均的中心像元)。我们同样能够设置n2<n1因为我们是期望更加稀疏的。一个典型的和基础的设置是f1=9,f2=1,f3=5,n1=64,n2=32(我们在实验部分评估了更多的设置)。总体上,一个高分辨率像素的估计使用了(9+5-1)^2=169个像素的信息。显然,用于重构的信息比现有的外部基于样本的方法使用的信息(5+5-1)2=81更多。这也是为什么SRCNN表现更好的原因。

3.3 训练

学习端对端的mapping函数F需要对网络参数θ={W1,W2,W3,B1,B2,B3}进行估计。它通过使得重构影像F(Y, θ)和对应的地表真实高分辨率影像X之间的损失最小来实现。给定一组高分辨率的影像{Xi}及它们对应的低分辨率影像{Yi},我们使用均方误差作为损失函数:

式中n是训练样本的数量。使用MSE作为损失函数有利于PSNR(峰值信噪比)。PSNR是被广泛使用的用于影像重建质量的量化评估矩阵,并且至少部分地和感知质量相关。值得注意的是卷积神经网络没有排除其他类型损失函数的使用,如果仅仅损失函数是可推导的。如果在训练过程中给出了更好的感知激活矩阵,网络可以灵活的适应这个矩阵。相反的,传统的手工设计的方法是很难实现这种灵活性的。尽管提出的方法有利于获得高PSNR,我们仍然在观察模型在使用其他可替代的评估矩阵如SSIM,MSSIM进行评估时候的满意表现。

使用随机梯度下降和标准后向传播来最小化loss。尤其是,权重矩阵通过如下的方法进行更新:

式中:是图层和迭代数的指标,是学习率,是导数。每个图层的滤波器初始化参数通过从均值0和标准差0.01之间(0是偏置)的高斯分布随机获取。对于前两层学习率是10-4,最后一层的学习率是10-5。我们经验式的发现在最后一层中更小的学习率对于网络的收敛是重要的(对于降噪的情况也一样)。

在训练阶段,地表真实影像通过从训练影像中随机裁剪的大小为fsub*fsub *c个像素的子影像构成。子影像意味着我们将其看做小影像而不是影像块。在这个意义上影像块是重叠的并且需要一些整合比如后处理,而子影像则不需要。为了合成低分辨率的样本,我们使用高斯核对子影像进行了模糊。通过upscale因子对其进行子采样,并通过双三次插值法将他放大到相同的因子。

为了避免训练过程中边界的影响,所有的卷积层都没有填充,并且网络产生了一个更小的输出。MSE损失函数的评估不仅包括中心像元的差值,还包括网络的输出。虽然我们在训练卷积神经网络的时候使用了固定大小的影像,但是测试的时候可以使用任意大小的影像。

我们使用CUDA-convert对我们的模型进行了装配,我们也尝试了caffe包并且取得了相似的表现。

4 实验

我们首先研究了使用不同的数据集的表现,接下来,我们测试了我们方法学习到的滤波器。我们之后探索了不同的网络结构设计,研究了超分辨率重建的表现和一些因素如深度、滤波器的数量以及滤波器的尺寸。之后,我们在定性和定量上比较了我们的方法和当前最好的方法。接下来,超分辨率重建仅仅是应用在亮度通道(YCbCr)中的亮度通道在4.1-4.4节中的表述。所以,在第一层和最后一层中c=1,在Y通道上评估表现(如PSGN和SSIM)。最后,我们扩展了我们的模型以适应彩色影像及评估不同通道的表现。

4.1 训练数据

正如文献中所展示的,深度学习通常受益于大数据的训练。为了比较,我们使用了相对小的训练数据集(由91张影像组成)和相对大的训练数据集(由395909)构成,来自于ILSVRC2013 影像检测训练数据的部分。训练的子影像的大小是fsub = 33.因此,这91张影像数据集可以分为24800张子影像,这些影像是在原始影像中以步长为14抽取到的。而ImageNet提供了超过5百万即使是以步长为33来抽取。我们使用基本的网络设置如f1=9,f2=1,f3=5,n1=64,n2=32.我们将Set5作为验证集。我们观察到了和使用更大的数据集Set14相似的趋势。尺度上变换的因素是3,我们使用基于稀疏编码的方法作为我们的基线,它实现了平均的PSNR值31.42dB。

使用不同数据集的测试收敛曲线如图4所示。在ImageNet上训练的时间和在91张影像上训练的时间一致,这是因为后向传播的数量是相同的。可以看到,在相同的后向传播数量时,SRCNN+imgeNet实现了32.52dB,比起在91张影像上训练后的的32..39更高。这个结果很好的说明了SRCNN的表现能够更好如果使用更大的训练集的话。,但是大数据集的影像并没有其他高等级的视觉问题那么令人影像深刻。可能是91已经获取了自然影像足够的变量了。另一方面,我们的SRCNN是一个相对小的网络(8032个参数),因此91张影像(24800个样本)的时候不会过拟合。虽然如此,在接下来的实验中我们还是使用影像更加丰富的ImageNet数据集作为默认的训练集。

4.2 对于超分辨率重建学习到的滤波器

图5展式在ImageNet上训练的,以上尺度变换因子为3 的第一层学习到的滤波器的样本。请参考我们发表的对于upscaling为2和4的装配。有趣的是,每个学习到的滤波器都有它特殊的功能。比如,滤波器a-e就像不同方向的边缘探测器,而滤波器f则像文本提取器。不同图层的特征图如图6所示。显然,第一层的特征图包含了不同的结构(如不同方向的边),而第二层主要是强度上的不同。

4.3 模型和表现的平衡

基于基础的网络设置(如f1=9,f2=1,f3=5,n1=64和n2=32),我们将会逐步修改其中的一些参数来研究表现和速率之间的平衡,并且学习两者之间的关系。

4.3.1 滤波器的数量

通常情况下,如果我们增加网络的深度的话网络的表现将会得到提升,比如以运行时间为代价添加更多的滤波器。特别的,基于我们网络的n1=64和n2=32的默认设置,我们进行了两组实验:一是n1=128和n2=64的更大的网络,二是 n1=32,n2=16的更小的网络。和4.1节类似,我们同样在ImageNet上训练了两种模型并在Set5上进行了测试,upscaling为3.在后向传播量为8x108上观察到的结果如表1所示。显然通过增加网络的深度可以实现更好的表现。然而如果需要一个快速的重建速度,小的网络是更好的,因为它比起稀疏编码的而方法能实现更好的表现(31.42db)。

4.3.2滤波器的尺寸

这节中,我们测试了网络对不同滤波器尺度的敏感性。在之前的实验中,我们设置的滤波器尺寸是f1=9,f2=1,f3=5,网络用9-1-5表示。首先,为了与基于稀疏编码的方式保持一致,我们将第二层的滤波器尺寸固定为1,方法其他两个层为f1=11,f3=7(11-1-7)。其他的所有设置仍然和4.1节中的一致。以upscaling=3,在Set5上的结果为32.57dB,比起4.1中展示的32.52dB略高。这证明了合理的增大滤波器的尺寸能够把握更丰富的结构信息,这会导致更好的结果。

然后我们更进一步的测试了使用更大滤波器的第二层网络。特别的,我们固定第一层和第三层的滤波器尺寸不变,放大第二层的滤波器尺寸为3(9-3-5)和5(9-5-5)。收敛曲线如图7显示了使用更大的滤波器尺寸显著的提升了表现,特别的,后向传播量为8-108时,9-3-5和9-5-5在Set5上平均PSNR值分别为32.66和32.75dB。结果说明使用在mapping阶段使用邻近信息是有益的。

4.3.3 图层的数量

He和Sun最近的研究建议CNN受益于过合适的增加深度。在这里,我们尝试了更深的结构通过加上另外的非线性mapping层,这个层有n22=16个f22=1的滤波器。我们进行了三个控制实验如9-1-1-5,9-3-1-5,9-5-1-5,这些是在9-1-5等结构上添加了额外的层。初始的方案和另外这层的学习率和第二层的一致。从图13a,13b,8c中可以观察到,四层的网络收敛慢于三层的网络收敛。而给定充足的训练时间的话,四层的网络最终赶上了三层并收敛。

深层次的网络结构对于超分辨率重建的影像没有在图像分类的影像上明显。更多的,我们发现深层次的昂罗并不一定会导致更好的表现。特别的,当我们加上了了一个n22=32的9-1-5网络,然后它的表现下降了而且没有超过三层网络的表现(如图9a)。如果我们通过增加两个非线性的mapping层(n22=32和n23=16),之后我们必须设置一个更小的学习率来确保收敛,但是我们在训练一周后仍然没有观察到更好的表现。我们同样尝试了放大了另外添加的图层的滤波器尺寸(f22=3),并且探索两种深度结构9-3-3-5和9-3-3-3.然而,从图9b的收敛曲线显示的看来,这两个曲线的结果并没有优于9-3-1-5的网络。

所有的这些实验证明了对于SR的网络模型来说网络并不是越深越好,他可能会造成网络难以训练。我们的CNN网络没有包含池化层和全连接层,因此它对初始的参数和学习率敏感。当我们使用更深的网络(4或5层),我们发现很难设置合适的学习率来保证收敛。即使它收敛了,网络也可能会落入一个坏的区域最小值,并且学习到的滤波器也多样性较低,即使给了充足的训练时间。这个现象同样可以在文献【16】中看到,不合适的深度会增长导致影像分类的精度的饱和和退化。为什么“越深不一定越好”仍然是一个开放的问题,它需要研究去更好的理解深度结构中的梯度和训练动态。因此,我们仍然采用一个三层网络应用于接下来的实验中。

4.4 和当前最优的方法的比较

这节中,我们展示了我们的方法和当前最优的方法的定性和定量的比较结果。我们采用了在速度和表现上具有较好平衡的模型:一个在ImageNet上训练的三层网络,f1=9,f2=5,f3=5,n1=64,n2=32。

比较结果。我们比较了我们的SRCNN方法和当前最好的方法如下:

SC:Yang等人的基于稀疏编码的方法;

NE+LLE 邻近嵌入和本地线性植入的方法

A+-Adjusted Anchored Nerighbourhood Regressiojn 方法

KK-文献【24】描述的,在外部的基于样本的方法中实现了最好的表现,更具Yang等人的工作进行的综合评价。

这些装配全来自于开源的由这些作者提供的代码,并且所有的影像都经过了双三次核进行了降采样。

测试集。Set5(5张影像)、Set14(14张影像)和BSD200(200张影像)被用来评估upscaling为2,3,4时的表现。

评估矩阵。除了被广泛使用的PSNR和SSIM指标,我们同样采用了另外的四个评估矩阵,叫做IFC,噪声质量测量NQM,权值点信号噪声比例WPSNR和多尺度结构相似性指标MSSSIM,正如【44】中所述的,它和人类的感知分数高度相关。

4.4.1定量的和定性的评估

正如表2,3,4中显示的。在所有的实验中,提出的SRCNN方法在绝大多数的评估矩阵红获得了最高的分数。强调我们的SRCNN结果是在基于8*108的后向传播检查站中实现的。特别的,对于upscaling为3,SRCNN获得的平均PSNR是0.15,0.17和0.13,在三个数据集上比起A+更好。当我们观察其他的评估矩阵的时候,令我们惊奇的是,SC比起在IFC和NQM上的双三次插值得分更低。显然SC有更好的视觉体验比起另外两种方法。这两种矩阵的指标不能够真实的反应影像的质量。因此,忽略这两种矩阵,SRCNN是这些方法中表现最好的。

值得指出的是,SRCNN在学习阶段的最开始就超过了双三次基线,经过合适的训练,SRCNN由于现有的最好的方法。然而,表现距离收敛很远。我们推测随着训练时间变长表现会更好。

图片14,15和16显示了在upscaling=3时候不同的方法的超分辨率重建结果。正如能看到的,比起其他的方法,在影像上没有任何人为因素的情况下,SRCNN产生了更尖锐的边缘。

另外,我们采用了Cui等人最近提出的影像超分辨率重建的深度学习方法DNC。和他们使用一个不同的模糊核(标准差为0.55的高斯核)一致,使用和DNC一样的模糊核训练具体的9-5-5网络来进行公平的定量比较。Upscaling是3,训练集是91张影像集。从图11显示的收敛曲线可以看出,当仅仅2.7*107个backpops后,SRCNN就超过了DNC,并且随着训练的时间变长能获得更大的领先。这同样证明了端对端的学习方法比DNC更好,即使这个模型已经很深了。

4.4.2 运行时间

图片12显示了当前最好的这些方法的运行时间对比,以及他们在Set14上恢复的表现。所有的基线方法通过和作者的MATLAB+MEX对应的装配获得,而我们的是在纯C++模式下。我们使用相同的机器配置描述所有算法的运行时间。需注意我们方法的处理时间和测试影像的分辨率是高度线性的,因为所有的影像经过了相同的卷积。我们的方法总是能够兼顾精度和速度。为了展现出来,我们训练三种网络用于对比,分别是9-1-5,9-3-5,9-5-5。很显然9-5-5是最快的,并且比起当前最好的A+方法有更好的表现。其他的方法比起9-1-5的网络要慢几倍甚至几个数量级。要注意,速度的差异不仅仅是MATLAB/C++之间的差异,除此之外,其他方法需要在使用的时候处理复杂的优化问题(如稀疏编码和嵌入),而我们的方法完全前馈。9-5-5以运行时间为代价实现了最好的精度。我们的方法的测试时间可以通过很多方法进行加速,比如逼近或者简化训练的网络,以牺牲轻微的表现为代价。

4.5 彩色通道的实验

在之前的实验中,我们遵循额传统的超分辨率重建的方法,首先将彩色影像转变到YCbCr空间。SR算法仅仅应用在Y通道,而Cb,Cr通道通过双三次插值倍增。去探究我们共同将三通道考虑进去是是否会提升重建的表现是有趣的。

我们的方法在不需要改变学习机制和网络设计的时候能够灵活的接受更多的通道。尤其是,通过设置通道数C=3已经能够同时处理三个通道。在接下来的实验中,我们研究了彩色影像的超分辨率重建的不同的训练策略,以及之后对这些不同通道的表现的评估。

配置细节。训练是在91张影像的数据集上进行,而测试是在Set5上进行的。网络的设置是c=3,f1=9,f2=1,f3=5,n1=64,n2=32.正如我们已经证明的SRCNN在不同尺度上的效果,在这里我们仅仅使用upscaling=3.

比较。我们和当前最好的彩色SR方法KK进行了比较,我们同样尝试了不同的学习策略来进行比较:

只有Y:这是我们的基线方法,单通道的网络训练仅仅是在亮度通道上,Cr,Cb通道通过双三次插值进行方法;

YCbCr:训练是在YCbCr空间的三个通道上进行;

Y pre-train:首先,保证Y通道的表现,我们仅仅使用Y通道的MSE作为损失去预训练Y通道。之后,我们采用所有通道的MSE来fine-tune参数。

CbCr 预训练:我们使用Cb,Cr的MSE损失去预训练网络,然后在所有的通道上fine-tune参数

RGB:训练在RGB的三个通道上进行。

结果如表5所示,我们有如下的观察结果:1 如果我们直接训练YCbCr通道,结果比双三次插值更差,训练陷入了坏的局部最小值,这是由于Y Cb Cr三个通道本质上的不同。2. 如果我们预训练了Y 或者Cb、Cr通道,表现提升了但还是不如只训练彩色影像的Y通道(看表5的最后一列,PSNR是在RGB颜色空间中计算的)。这说明如果训练在同一的网络上进行,Cb,Cr将会减少Y通道的表现。3.我们观察到比起预先训练Y通道,预先训练Cb,Cr通道时Cb,Cr的PSNR分数更低。这个是因为Cb、Cr通道和Y通道的不同,视觉上,Cb,Cr比Y通道更加模糊,因此受下采样阶段的影响更小。当我们预先训练Cb,Cr时候,只有很少的一部分滤波器被激活。然后在fine-tune的时候,训练会很快落入一个坏的局部最小值。另一方面,如果我们预先训练了Y通道,就有更多的滤波器被激活,有助于Cb、Cr通道的表现。图13所示,预训练Y通道的第一层的滤波器的Cb,Cr通道的组合很多程度上会和图5显示的不同。4. 彩色影像在RGB上的训练效果最好。和YCbCr不同,RGB通道的训练展现了高度的互相关。SRCNN方法能够使用信道之间自然的对应进行重建。因此,模型在Y通道上实现了于Y only相当的结果,在Cb和Cr通道上实现了比双三次插值更好的结果。结果建议算法偏向Y通道。整体上来说,我们的方法在RGB通道上的效果比起KK和Y only想过更好。同样值得一提的是,和单通道网络相比表现没有明显的提高。这也证明了Cb,Cr通道几乎不能帮助到表现的提升。

```

5 结论

我们提出了一种用于单影像超分辨率重建的深度学习方法,我们展示了传统的基于SR方法的稀疏编码可以被重构为一个深度卷积神经网络。我们提出了SRCNNN作为低高分辨率影像之间一个端对端的映射,在优化以外只需要而外免得预处理。SRCNN有着轻权重的结构比起现在最好的一些方法表现更好。我们推测通过采取更多的滤波器和不同的训练策略可以获得另外的表现效果。除此之外,提出的结构具有简介和鲁邦的特点,能够应用在其他低级视觉问题上,比如影像的去模糊和同时实现SR和降噪。读者可以研究适用于不同upscaling因子的网络。

超分辨率重建开山之作——SRCNN相关推荐

  1. 深度学习在超分辨率重建上的应用SRCNN,FSRCNN,VDSR,DRCN,SRGAN

    超分辨率技术(Super-Resolution)是指从观测到的低分辨率图像重建出相应的高分辨率图像, 目前应用较多的应用场景是图像及视频分辨率提高,比如可以提高以往影视作品或图像的分辨率,提高视觉感官 ...

  2. 【飞桨模型复现计划】SRCNN网络-超分辨率重建

    项目简介 本项目是paperweekly paddlepaddle复现活动的第23篇论文<Single Image Super-Resolution Using Deep Learning> ...

  3. 图像超分辨率重建学习记录(二)----插值法

    对于用于超分辨率重建的卷积神经网络SRCNN,唯一的预处理步骤为bicubic(双三次插值),将所给低分辨率图像构建为目标像素大小. 例如我们有一个32*32像素的图片,想将其重建为64*64像素分辨 ...

  4. 超分辨率重建SRCNN--Matlab 7.0中运行

    终于找到一个可以在自己电脑中运行的超分辨率重建程序了,Matlab 7.0真的是太老了(实际上是自己的笔记本太老了,哈哈) demo_SR.m % ========================== ...

  5. 图像超分辨率重建之SRCNN

    新版本请访问简书链接:https://www.jianshu.com/p/dfe85a3c2096 图像超分辨率重建:指通过低分辨率图像或图像序列恢复出高分辨率图像.高分辨率图像意味着图像具有更多的细 ...

  6. 超分辨率重建之SRCNN整理总结

    白驹微过隙,指上细流沙.时间飞逝啊!转眼之间,四五个月过去了,伴随着中国迈进2020的新时代的元旦的步伐声,我的考研生活暂时告了一个小段落.距今的这些天,忙完了各种小事情,也是时候整理整理之前一些由于 ...

  7. 经典论文复现 | 基于深度学习的图像超分辨率重建

    过去几年发表于各大 AI 顶会论文提出的 400 多种算法中,公开算法代码的仅占 6%,其中三分之一的论文作者分享了测试数据,约 54% 的分享包含"伪代码".这是今年 AAAI ...

  8. 学习笔记之——基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

  9. 基于深度学习的图像超分辨率重建

    最近开展图像超分辨率( Image Super Resolution)方面的研究,做了一些列的调研,并结合本人的理解总结成本博文~(本博文仅用于本人的学习笔记,不做商业用途) 本博文涉及的paper已 ...

最新文章

  1. NFVI融合架构解决方案的四大特点—Vecloud微云
  2. 协程的三种同步方式Channel、Mutex、WaitGroup
  3. Android 的 init.rc 文件简介【转】
  4. Java中this与super的区别
  5. 工作80:块级元素的间隙问题
  6. 乖乖,腾讯天美研发20万月薪刷爆朋友圈,网友:小丑竟是我自己
  7. 2、使用Spring框架能带来哪些好处
  8. 雷军:疫情影响了小米的生产 正加快小米10系列供货
  9. 最后的配置部分:LNMP+Tomcat
  10. git使用总结(持续更新,个人总结记录使用)
  11. 51nod 1412
  12. webstorm怎么汉化
  13. 易语言制作html5浏览器,易语言制作浏览器的方法教程
  14. 【STM32】 SG90舵机
  15. 手机屏幕分类、材料硬度解析
  16. Matebook xpro2019指纹驱动不可用
  17. 美妆短视频的定位分享,教程、技巧都可做,还可尝试变装内容
  18. 探秘苏宁金融升级版秒杀系统
  19. Revit 视图范围的知识总结
  20. GL benchmark测试解析

热门文章

  1. python五十行代码获取很多很多个好看图片
  2. 离散结构:算法(1)
  3. 你在猎头那里值多少钱?
  4. EasyRecovery15最新版功能强大的电脑数据恢复
  5. 美国HostEase虚拟主机 实力打造IDC行业的领航者
  6. jupyterhub-k8s
  7. python8-罗马数字转换
  8. telnet开启本地回显功能
  9. 计算机网络------------第四章网络层
  10. matlab 2014 newff,matlab newff使用