【深度学习】Image Super-Resolution Using Deep Convolutional Networks

摘要

作者提出了一种深度学习图像超分辨率的方法,直接在高低分辨率图像之间学习一个端到端的映射。作者后续还证明了传统的sparse-coding-based超分方法也可以看做一个深度卷积神经网络,相对于这种方法,作者的方法联合优化所有层。作者的深度CNN有一个轻量级的结构,实现了SOTA效果并且速度更快。作者通过在不同的网络结构和参数设置中进行探索实现了性能与速度的平衡。另外,作者还拓展网络来同时处理三色通道,并且得到了更好的全局重建性能。

1、Introduction

图像超分辨率是CV的一个经典问题,但是这个问题本质上是不适定的,因为任何给定的低分辨率像素都存在多重解。因此这种问题需要强大的先验信息。为了学习这个先验,最近的方法主要是基于实例的策略。这些方法要么挖掘同一张图的内部相似性,要么学习高低分辨率之间的映射。外部基于实例的方法可以用于生成式超分以及根据数据集应用于领域特定问题。
SC方法是基于实例的SR代表性方法,涉及到以下几步:首先重叠部分会被从输入图像中裁剪并且预处理(例如减去均值并归一化)。这些块然后被编码为低分辨率字典。这个解析系数然后被传递给一个高分辨率字典来重建高分辨块。这些重建块最终被合并得到最终的输出。这个过程被大多数基于外部实例的方法使用,主要关注学习与优化字典或构件有效的映射函数。然而,这个流程的其他部分很少被考虑。
在本文中,作者前面提出的方法与深度卷积神经网络是等价的。基于这个事实,作者考虑使用一个端到端的CNN来直接学习这个映射。不同于前面的方法,作者不显式地学习字典或流形,块的提取与聚合也通过CNN实现与优化。在作者的方法里,SR流程几乎全部通过CNN实现,几乎不使用预处理与后处理方法。
作者提出的方法命名为SRCNN,有很多具有吸引力的特性。首先,其结构经过了有意的设计,相对于SOTA有更高的精度。第二,通过适中数量的滤波器和层,可以实现一个较快的速度。该方法比很多基于实例的方法要快,因为不需要在使用的时候解决任何优化问题。第三,实验证明恢复效果随着数据集变大或者更复杂的模型可以进一步提升。另外,提出的网络可以同时处理三个图像通道来提升超分效果。
总的来说,该工作的贡献可以总结为以下三个方面:
1)作者提出了一个用于图像超分的全卷积神经网络,可以直接学习端到端的映射。
2)作者确立了深度学习方法与传统方法的关系,可以用于设计网络结构。
3)作者证明深度学习方法对于经典的计算机视觉问题例如超分是很有用的,并且能够实现比较好的质量与速度。
相对于第一个方法,首先通过引入更大的滤波器并且探索更深的网络结构。第二,作者拓展SRCNN来同时处理三通道信息。经过实验,作者证明了比单通道的网络有了提升。第三,加入了更多分析与解释。

2、相关工作

2.1 图像超分
2.2 卷积神经网络
2.3 通过深度学习进行图像超分

3、使用卷积神经网络实现超分

3.1 Formulation

对于一张低分辨率图像,首先将其上采样到需要的尺寸,这也是唯一的预处理。目标便是从这张图中恢复出尽可能接近GT的结果。作者希望能够学习一个映射F,包括以下三个操作:
1)Patch extraction and representation
这个操作从低分辨率提取块并且表示为高维向量,向量组成feature map。
2)Non-linear mapping
3)Reconstruction
【深度学习】Image Super-Resolution Using Deep Convolutional Networks_第1张图片
Patch Extraction and Representation
图像恢复一个流行的策略是提取patch然后通过PCA、DCT等方法得到基底进行表示。和与通过滤波器卷积图像等价。
形式上,第一层有如下表示:

双三次差值也是一种卷积操作,因此也可以设计为卷积层。为了利用流行的良好优化的实现,比如cuda convnet,从学习中排除了这个层。
【深度学习】Image Super-Resolution Using Deep Convolutional Networks_第2张图片
非线性映射
第一层从每个patch中提取了n1维特征,第二次层将n1维特征映射为n2维特征。这与应用n2的滤波器等价,这个解释只对1×1的滤波器有效。但也很容易类推到3×3或者5×5,这种情况下非线性映射就不是1个patch,而是3×3或5×5个。

当然也可以增加层数来提高非线性效果,但是这样会增大计算量,降低速度。
重建
传统的方法高分辨率图像一般会被平均来得到最终完整的图像。这个平均的过程也可以看做在一组feature map上预定义的滤波器,每个位置都是高分辨率patch展平的向量。基于这个作者又定义了一个卷积层来产生最终的高分辨率图像。

如果高分patch在图像域,希望滤波器表现的像均值滤波器,其他域则希望W3类似首先映射到图像域然后再进行均值化。在这两种方法中W3都是线性滤波器。
有趣的是,尽管这三个步骤来自不同的动机,最终都是表现为卷积层,将三者合并最终形成一个卷积神经网络。其中的滤波器均为模型的优化目标。

3.2 Relationship to Sparse-Coding-Based Methods
3.3 Training

loss:MSE
optimizer:
Initializer:Gaussion mean=0 cov=0.001
SGDm:0.9 10-4(前两层) 10-5(最后一层)
GT f×f×c
低分辨率输入:高斯滤波 上采样
避免边界效应:no padding

4、实验

【深度学习】Image Super-Resolution Using Deep Convolutional Networks_第3张图片

4.1 Training Data
4.2 Learned Filters for Super-Resolution
4.3 Model and Performance Trade-Offs

总结

这篇文章是深度学习刚流行不久的文章,其实主要做的就是通过CNN来代替传统的SR方法,但是因为CNN有更强的特征提取与拟合能力,效果比传统方法好一些。后来也有很多更高级的超分算法,但很多都是建立在SRCNN的基础上。作者后面也做了很多实验选择kernel size以及其他方面的比较。总的来说,其思路是用卷积层代替了传统SR方法的特征提取与表示、非线性映射和重建三个步骤。使用的loss也是比较常规的mse。一个比较大的启发就是对于一些传统方法,如何通过CNN对其进行几乎等价替换,得到更好的效果或者更快的速度。

你可能感兴趣的:(计算机视觉,模式识别,深度学习)