Image Super-Resolution Using Deep Convolutional Networks

1. 介绍

单帧图像的超分辨率(SR),旨在从单帧低分辨率图像中恢复高分辨率图像,是计算机视觉中的一个经典问题。解决有难度,因为对于任何给定的低分辨率像素,都存在多种解决方案。换句话说,这是一个难以确定的 inverse 问题,其解决方案不是唯一的。通常是通过强先验知识来约束解的空间。为了学习先验知识,当前大多采用基于实例(example)的策略。可以基于同一图像样本的内部结构的学习, 也可以从外部的低分辨率和高分辨率样本对中学习映射函数 。基于外部实例的方法可以被制定为通用的图像超分辨率,也可以根据所提供的训练样本,设计成适合特定领域的任务,如人脸幻觉。
基于稀疏编码(SC)基于外部实例的SR代表方法之一。主要有以下步骤:首先,从输入图像中裁剪出重叠的图像块,并进行预处理(去平均值和归一化)。然后,这些图像块被一个低分辨率的字典编码,得到稀疏系数,然后被传入高分辨率字典,用于重建高分辨率图像块。重叠的重建图像块被汇总(例如,通过加权平均)以产生最终输出。这些方法特别注意学习和优化字典或建立有效的映射函数。

本文提到的SRCNN具有以下优点:采用CNN,直接学习低分辨率和高分辨率图像之间的端到端映射。此外,图像块的提取和聚集也是在卷积层计算,所以也参与了优化。在本文中,整个SR的pipeline完全是通过学习获得的,几乎没有预/后处理。1).它的结构有意设计得简单,但与最先进的基于示例的方法相比,它的精确度更高;  2).本文方法有适度的滤波器和层数,即使在CPU上也能实现快速的实际在线使用。比许多基于实例的方法更快,因为它是完全前馈的,不需要解决任何使用上的优化问题;  3).当(i)有更大、更多样化的数据集,和/或(ii)使用更大、更深的模型时,网络的恢复质量可以进一步提高。相反,更大的数据集/模型可能会对现有的基于示例的方法提出挑战。此外,该网络可以同时处理三通道彩色图像,从而提高超分辨率性能。

2. 相关知识:

2.1图像超分辨率: 根据图像先验知识,单图像超分辨率算法可分为四种类型:预测模型、基于边缘的方法、图像统计方法和基于面片(或基于实例)的方法。大多数SR算法侧重于灰度或单通道图像超分辨率。对于彩色图像,大多数方法首先将问题转换到不同的颜色空间(YCbCr或YUV),并且SR仅应用于亮度通道。还有一些工作试图同时超级解析所有通道。例如,Kim和Kwon[24]以及Dai等人[7]将他们的模型应用于每个RGB通道,并将它们组合起来以产生最终结果。然而,三个通道中没有一个通道的性能有所不同。

2.2 卷积神经网络:CNN成功应用在计算机视觉中主要是因为(i) 基于GPU上的高效训练;(ii)整流线性单元(ReLU)使收敛速度大大加快,且保持良好的质量;(iii)大数据集(如ImageNet)的容易获取,方便训练更大的模型。

2.3 图像重建的深度学习:多层感知器(MLP),其所有层都是全连接的,被应用于自然图像去噪和去模糊后的去噪。相关的是卷积神经网络被应用于自然图像去噪和去除噪声模式(污垢/雨水)。这些图像重建问题或多或少都是去噪驱动的。

3. 基于CNN的超分辨率

3.1Formulation:首先将单帧低分辨率图像通过双三次插值放大到所需尺寸(即唯一预处理),目标:从Y中一个重建一个与真实的高分辨率图像X尽可能相似的图像F(Y):1)图像块的提取和表示。该操作从低分辨率图像Y中提取(重叠的)图像块,并将每个图像块表示为一个高维向量。这些向量包括一组特征图,其数量与向量的维度相等。2)非线性映射。该操作将每个高维向量非线性地映射到另一个高维向量上。每个映射的向量在概念上都是一个高分辨率图像块的代表。这些向量包括另一组特征图。3)重构。该操作将上述高分辨率图像块的表示集合起来,生成最终的高分辨率图像。该图像有望与真实X相似。所有这些操作形成一个卷积神经网络。下图描述了该网络的概况。

3.1.1 图像块的提取与表示:在图像重建过程中,常用的一个策略是密集地提取图像块,然后用一组预先训练好的基数来表示它们,如PCA、DCT、Haar等。这相当于用一组滤波器对图像进行卷积,将其优化纳入网络的优化。从形式上看,我们的第一层被表示为一个操作F1:其中W1和B1分别代表滤波器和偏置,'*'表示卷积操作。这里,W1对应于n1个支持度为c x f1 x f1的滤波器,其中c是输入图像的通道数,f1是一个滤波器的空间大小。直观地说,W1对图像进行了n1次卷积,每次卷积的核大小为c x f1 x f1,输出由n1个特征图组成。B1是一个n1维的向量,其每个元素都与一个滤波器相关。我们将ReLU(max(0,x))应用于滤波器的响应。

3.1.2非线性映射:第一层为每个图像块提取一个n1维的特征。在第二层操作中,我们将这些n1维向量中的每一个映射为n2维向量。这相当于应用了n2个滤波器,这些滤波器有一个很小的空间支持1 x 1。这个解释只对1 x 1的滤波器有效。在这种情况下,非线性映射不是在输入图像的一个图像块上,而是在特征图的一个3 x 3或5 x 5的 "图像块 "上。第二层的操作是:。这里W2包含n2个大小为n1 x f2 x f2的滤波器,而B2是n2维的。每个输出的n2维向量在概念上是一个高分辨率图像块的表示,将用于重建。可以添加更多的卷积层来增加非线性。但这可能会增加模型的复杂性(一个层有n2 x f2 x f2 x n2个参数),因此需要更多的训练时间。我们将在第4.3.3节中通过引入额外的非线性映射层来探索更深的结构。

3.1.3重建:在传统的方法中,预测重叠的高分辨率图像块通常被平均化,以产生最终的完整图像。平均化可以被视为一组特征图(其中每个位置是高分辨率图像块的 "扁平化 "矢量形式)上的预定义过滤器。 受此启发,本文定义了一个卷积层来产生最终的高分辨率图像。产生最终的高分辨率图像: 这里W3对应于大小为n2 x f3 x f3的c个滤波器,并且 B3是一个c维的向量。如果高分辨率图像块的表示是在图像域中(即我们可以简单地重塑每个表示来形成图像块),我们期望滤波器的行为像一个平均滤波器;如果高分辨率斑块的表示是在其他一些域中(例如,以一些基数为单位的系数),我们期望W3的行为像首先将系数投影到图像域,然后进行平均化。无论是哪种方式,W3都是一组线性滤波器。
三种操作放在一起形成一个三层卷积神经网络(上图)。该模型中所有滤波权重和偏置都要进行优化。

3.2与基于稀疏编码的方法的关系:基于稀疏编码的SR方法可以被看作是一个卷积神经网络(见下图)

在基于稀疏编码的方法中,从输入图像中提取一个f1 x f1的低分辨率图像块。然后,像Feature-Sign这样的稀疏编码求解器将首先把图像块投影到一个(低分辨率)字典上。如果字典大小为n1,这相当于在输入图像上应用n1个线性滤波器(f1 x f1)(平均减法也是一个线性操作,所以可以被吸收)。这就是图3的左边部分的说明。然后,稀疏编码求解器将迭代处理n1个系数。这个求解器的输出是n2个系数,在稀疏编码的情况下,通常n2=n1。这些n2系数是高分辨率图像块的代表。稀疏编码求解器表现为非线性映射算子的一个特例,其空间支持度为1×1,见图3的中间部分。然而,稀疏编码求解器不是前馈的,也就是说,它是一个迭代算法。相反,我们的非线性算子是完全前馈的,可以有效计算。如果我们设定f2=1,那么我们的非线性算子就可以被认为是一个像素级的全连接层。值得注意的是,SRCNN中的 "稀疏编码求解器 "是指前两层,而不仅仅是第二层或激活函数(ReLU)。因此,SRCNN中的非线性操作也是通过学习过程进行了很好的优化。

然后将上述n2个系数(经过稀疏编码)投影到另一个(高分辨率)字典上,以产生一个高分辨率的图像块。然后对重叠的高分辨率图像块进行平均化。如上所述,这相当于对n2个特征图的线性卷积。如果用于重建的高分辨率图像块的大小为f3 x f3,那么线性滤波器的空间支持大小就相当于f3 x f3。上述讨论表明,基于稀疏编码的SR方法可以被看作是一种卷积神经网络(具有不同的非线性映射)。但是,在基于稀疏编码的SR方法中,并非所有的操作都被考虑在优化中。相反,在我们的卷积神经网络中,低分辨率字典、高分辨率字典、非线性映射,以及平均减法和平均数,都参与到要优化的滤波器中。所以我们的方法优化了一个由所有操作组成的端到端映射。上述类比也可以帮助我们设计超参数。例如,我们可以将最后一层的滤波器大小设置为小于第一层的滤波器,这样我们就会更多地依赖高分辨率图像块的中心部分(极端一点,如果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能提供更好的结果的原因之一,这也是为什么SRCNN会有更高的性能。

3.3训练:学习端到端映射函数F需要估计网络参数Theta = {W1; W2; W3; B1; B2; B3}。这是通过最小化重建图像F(Y;Theta)和相应的地面真实高分辨率图像X之间的损失来实现的。给定一组高分辨率图像{Xi}和它们相应的低分辨率图像{Yi},我们使用平均平方误差(MSE)作为损失函数:,其中n是训练样本的数量。使用MSE作为损失函数有利于获得高的PSNR。使用随机梯度下降法和标准反向传播法使损失最小化。特别是,权重矩阵被更新为:其中Iota属于{1,2,3},i是层和迭代的索引,Eta是学习率,是导数。每层的滤波器权重是通过从均值为零、标准差为0.001的高斯分布中随机抽取而初始化的(偏差为0)。前两层的学习率为10.4,最后一层为10.5。我们根据经验发现,最后一层较小的学习率对网络的收敛很重要(类似于去噪情况)。在训练阶段,地面真实图像{Xi}被准备为从训练图像中随机裁剪出来的(fsub x fsub x c)像素子图像。我们所说的 "子图像 "是指这些样本被视为小的 "图像 "而不是 "图像块",在这个意义上,"图像块 "是重叠的,需要进行一些平均化的后处理,而 "子图像 "则不需要。为了合成低分辨率的样本{Yi},我们用高斯核模糊一个子图像,用上标系数对其进行子采样,并通过双三次插值用相同的系数上标。为了避免训练过程中的边界效应,所有卷积层都没有填充,网络会产生一个较小的输出((fsub x f1 x f2 x f3 + 3)^2 x c)。MSE损失函数仅由Xi的中心像素和网络输出的差异来评估。虽然我们在训练中使用固定的图像尺寸,但在测试中卷积神经网络可以应用于任意尺寸的图像。我们使用cuda-convnet包实现我们的模型。我们也尝试了Caffe包,观察到类似的性能。

4.实验:。。

结果:SC在IFC和NQM上得到的分数甚至低于双三次插值。很明显,SC的结果比双三次插值的结果在视觉上更讨人喜欢。这表明这两个指标可能没有真实地揭示图像质量,除此之外其他结果都能达到目前最好的效果。

运行速度:

5.结论:本文提出了一种新的深度学习方法,用于单张图像的SR。我们表明,传统的基于稀疏编码的SR方法可以被重新表述为一个深度卷积神经网络。所提出的方法,即SRCNN,可以学习低分辨率和高分辨率图像之间的端到端映射,除了优化之外几乎没有额外的前/后处理。凭借轻量级的结构,SRCNN已经取得了比最先进的方法更出色的性能。我们猜想,通过探索更多的滤波器和不同的训练策略,可以进一步获得额外的性能。此外,所提出的结构具有简单和稳健的优点,可以应用于其他低层次的视觉问题,如图像去模糊化或同步SR+去噪。我们还可以研究一个网络来应对不同的放大系数。

文献阅读(SRCNN)相关推荐

  1. 四位科研牛人介绍的文献阅读经验

     每天保持读至少2-3 篇的文献的习惯.读文献有不同的读法,但最重要的自己总结概括这篇文献到底说了什么,否则就是白读,读的时候好像什么都明白,一合上就什么都不知道,这是读文献的大忌,既浪费时间,最 ...

  2. 最大熵模型(Maximum Entropy Model)文献阅读指南

    最大熵模型(Maximum Entropy Model)是一种机器学习方法,在自然语言处理的许多领域(如词性标注.中文分词.句子边界识别.浅层句法分析及文本分类等)都有比较好的应用效果.张乐博士的最大 ...

  3. 条件随机场(Conditional random fields,CRFs)文献阅读指南

    与最大熵模型相似,条件随机场(Conditional random fields,CRFs)是一种机器学习模型,在自然语言处理的许多领域(如词性标注.中文分词.命名实体识别等)都有比较好的应用效果.条 ...

  4. 文献阅读疑问(202010)

    学习笔记,仅供参考 文章目录 文献阅读疑问 Unsupervised Deep Embedding for Clustering Analysis 文献阅读疑问 Unsupervised Deep E ...

  5. 那些文献阅读能力爆表的科研学子,都在偷偷做这件事……

    对于广大科研学子来说,阅读文献这件事可谓是贯穿整个学术生涯,因为文献是了解现在所学专业的领域切入点,且做科研遇到难题时还可以在文献中寻找答案. 以及科研实验完毕后,若是准备发表论文,那么还得再看看文献 ...

  6. 知云文献翻译_工具推荐 | 知云学术翻译,让外文文献阅读不再难

    点击上方蓝字"Edtshare"一起玩耍 想必大家都经历过阅读外文文献的痛苦吧:专有名词不会.嵌套从句不懂.好不容易单词和句子都看懂了,连起来在说啥又一头雾水.笔者曾经深受其苦,所 ...

  7. 文献阅读005【精读】

    Markov Weight Fields for Face Sketch Synthesis 相关知识点:马尔可夫随机场(MRF) 1. Introduction 画像合成方法:MRF(Markov ...

  8. 知云文献翻译打不开_比有道更好用的英文文献阅读翻译神器免费啦

    知云文献翻译软件免费啦!您扫下面二维码就就可以得到,不需转发朋友圈.不配一款神器,科研哪来效率!有了这款神器,科研都变得更简单! 用它直接打开英文pdf文献,随便选中一段话,右侧立即给出翻译,不再需要 ...

  9. 知云文献阅读器_知云文献翻译

    记得点击蓝字关注我们哦! 外文文献看不懂! 翻译直译太牵强! 相见恨晚的PDF文献阅读翻译软件---知云文献翻译. 知云文献翻译软件既是一款阅读英文pdf文献或pdf书籍的翻译软件,同时也是一款功能非 ...

  10. 文献阅读软件_推荐一款阅读英文文献的神器,效率高不少,理解深不少!

    今天小编给大家推荐的这款软件用来阅读英文文献时思路非常顺畅,它自己就是一个pdf阅读器,随便选中一段话或一句话或一个单词,右侧就会给出翻译.再也不用像有道那样每次悬浮个窗口,屏幕上不该翻译的也到处翻译 ...

最新文章

  1. 一个可以实现图片格式相互转化的工具convert_picture.exe
  2. poj1236-Tarjan算法
  3. python csv文件参数化_Python 读取csv文件的某一列数据,并定义两个pattern,确定变化区间...
  4. Insomni'hack teaser 2019 - Misc - curlpipebash
  5. skimage.io.imread(), Image.open() 以及 cv2.imread()的区别
  6. Redis中的Sentinel 验证
  7. JS大幅卷屏广告代码
  8. 基于IP子网将加域的电脑移动到不同的OU
  9. 多线程android代码,android入门 — 多线程(一)(示例代码)
  10. 不续签合同,凭什么要求别人紧急加班
  11. 微信私人心情录小程序源码
  12. tas5424_TAS5424ATDKDQ1
  13. (转载)一文教你 “量子编程”入门式
  14. 一个SAP开发人员的双截棍之路
  15. 下载微信公众号视频文件
  16. 助力课堂智能点名 | 爱莫AI场景化应用(四)
  17. sql trace 的几种方法
  18. GIT提交错误汇总及解决方案
  19. 《编程珠玑》读书笔记 part1
  20. Nextcloud提供的缺省文件

热门文章

  1. URL在线编码/解码工具
  2. Mdict to macOS Dictionary转换笔记
  3. SourceForge下载慢的解决方案
  4. python不用模块随机列表_python不用库实现随机 如何用python实现随机抽取
  5. SAXReader 解析xml
  6. Linux查看vga分辨率,调整ubuntu启动界面vga分辨率的方法
  7. 云计算 | Centos7和Ubuntu1804制作本地安装源
  8. kotlin入门最容易教程一(最全,最详细)
  9. IIS7管理器设置网站首页
  10. 记账一定要读财务专业吗