Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network
作者提到,像SRCNN那样的方法,由于需要将低分辨率图像通过上采样插值得到与高分辨率图像相同大小的尺寸,再输入到网络中,这意味着要在较高的分辨率上进行卷积操作,从而增加了计算复杂度。本文提出了一种直接在低分辨率图像尺寸上提取特征,计算得到高分辨率图像的高效方法。ESPCN网络结构如下图所示。
在这里插入图片描述
摘要
近年来,基于深度神经网络的几种模型在单幅图像超分辨率重建精度和计算性能方面都取得了很大的成功。在这些方法中,通常在重建之前,使用单个滤波器(通常为双三次插值)将低分辨率(LR)输入图像放大到高分辨率(HR)空间。这意味着在HR空间中执行超分辨率(SR)操作。我们证明,这是次优的,并且增加了计算复杂度。在本文中,我们提出了第一种能够在单个K2 GPU上实时1080p视频SR的卷积神经网络(CNN)。为此,我们提出了一种新的CNN体系结构,在LR空间中提取特征映射。此外,我们引入了一个有效的亚像素卷积层,它学习一组尺度扩展滤波器,以便将最终的LR特征映射放大到HR输出中。通过这样做,我们有效地将SR传递途径中的手工双三次滤波器替换为针对每个特征图专门训练的更复杂的放大滤波器,同时还降低了整个SR操作的计算复杂度。我们使用来自公开可用的数据集的图像和视频来评估所提出的方法,并显示出其性能明显更好(+0.15dB用于图像,+0.39dB用于视频),并且比先前基于CNN的方法快一个数量级。
介绍
从它低分辨率(LR)对应部分恢复高分辨率(HR)图像或视频是数字图像处理领域非常感兴趣的课题。这项被称为超分辨率(SR)的任务在许多领域有直接的应用,如HDTV[15]、医学成像[28,33]、卫星成像[38]、人脸识别[17]和监视[53]。全局SR问题假设LR数据是HR数据的低通滤波(模糊)、下采样和噪声版本。由于不可逆低通滤波和子采样过程中出现的高频信息丢失,这是一个高度不适定(病态)的问题。此外,SR操作实际上是从LR到HR空间的一对多映射,该映射可以有多个解,其中确定正确的解是困难的(重要的)。许多SR技术的基础的一个关键假设是许多高频数据是冗余的,因此可以从低频分量中精确地重构。因此,SR是一个推理问题,因此依赖于我们所讨论的图像的统计模型。
许多方法假设多个图像可用作具有不同视角的同一场景的LR实例,即具有独特的先验仿射变换。这些可归类为多图像SR方法,并通过用附加信息约束不适定问题并尝试反转下采样过程来利用显式冗余。然而,这些方法通常需要计算复杂的图像配准和融合阶段,其精度直接影响结果的质量。另一种方法是单图像超分辨率(SISR)技术。这些技术试图学习自然数据中存在的隐式冗余,以便从单个LR实例中恢复丢失的HR信息。这通常以图像的局部空间相关性和视频中的附加时间相关性的形式出现。在这种情况,需要重构约束形式的先验信息来限制重构的解空间。
。
方法
SISR的任务是从给定一张由相应原始HR图像的缩放得到的LR图像来估计HR图像。下采样操作是确定性的且是已知的:为了从产生,我们首先使用高斯滤波器卷积,从而模拟相机的点扩展函数,然后将图像下采样r倍。一般来说,和都有C个颜色通道,因此它们分别表示为大小为H×W×C和rH×rW×C的真值张量。
为了解决SISR问题,提出的SRCNN从的放大和内插版本中恢复,而不是从中恢复。为了恢复,使用了3层卷积网络。在本节中,我们提出了一种新颖的网络体系结构,如图1所示,以避免在将馈入网络之前对其进行升级。在我们的体系结构中,我们首先将l层卷积神经网络直接应用于LR图像,然后将亚像素卷积层应用于LR特征映射的放大以产生。
对于一个有L层组成的网络,首先L-1层可以如下描述:
其中分别是学习网络的权值和偏差,是一个大小为的2D卷积张量,其中是层的特征数量,是层的卷积大小。是长度为的向量偏置。非线性函数(或激活函数)应用为智能元素并且固定。最后一层将LR特征图转换为HR图像。
反卷积层
添加反卷积层是从最大值池化max-pooling 和其他图像下采样down-sampling层恢复分辨率的常用选择。这种方法已经成功地用于可视化层激活以及使用来自网络的高级特征生成语义分割。要证明SRCNN中使用的双三次插值是反卷积层的特殊情况,这一点并不重要。反卷积层可以看作是每个输入像素乘以滤波器元素与步幅r的乘法,并且在得到的输出窗口上求和,也称为向后卷积。
高效的亚像素卷积层
因为第一次接触亚像素这个概念,先介绍一下亚像素概念,如有不对望指出:
在相机成像的过程中,获得的图像数据是将图像进行了离散化的处理,由于感光元件本身的能力限制,到成像面上每个像素只代表附近的颜色。例如两个感官原件上的像素之间有4.5um的间距,宏观上它们是连在一起的,微观上它们之间还有无数微小的东西存在,这些存在于两个实际物理像素之间的像素,就被称为“亚像素”。亚像素实际上应该是存在的,只是缺少更小的传感器将其检测出来而已,因此只能在软件上将其近似计算出来。
亚像素可以表示为如下图所示,每四个红色点围成的矩形区域为实际原件上的像素点,黑色点为亚像素点:
在这里插入图片描述
根据相邻两像素之间插值情况的不同,可以调整亚像素的精度,例如四分之一,就是将每个像素从横向和纵向上当做四个像素点。也就是上面图里的红色点之间有三个黑色点。这样通过亚像素插值的方法可以实现从小矩形到大矩形的映射,从而提高分辨率。
正因为这样的操作,所以在图像超分辨的任务里使用pixel shuffle的方式获得高分辨图像(例如ESPCN)。在一般的反卷积里会存在大量补0的区域,这可能对结果有害。因此pixel shuffle通过亚像素卷积的方式,实现从低分辨图到高分辨图的重构,具体如下所示,通过将多通道feature上的单个像素组合成一个feature上的单位即可,每个feature上的像素就相当于新的feature上的亚像素了。
亚像素卷积层包含两个过程,一个普通的卷积层和后面的排列像素的步骤。就是说,最后一层卷积层输出的特征个数需要设置成固定值,即放大倍数r的平方,这样总的像素个数就与要得到的高分辨率图像一致,将像素进行重新排列就能得到高分辨率图。
在ESPCN网络中,图像尺寸放大过程的插值函数被隐含地包含在前面的卷积层中,可以自动学习到。由于卷积运算都是在低分辨率图像尺寸大小上进行,因此效率会较高。
训练时,可以将输入的训练数据,预处理成重新排列操作前的格式,比如将21×21的单通道图,预处理成9个通道,7×7的图,这样在训练时,就不需要做重新排列的操作。另外,ESPCN激活函数采用tanh替代了ReLU。损失函数为均方误差。
实验结果
[外链图片转存失败(img-KrNVC8w6-1563846580935)(assets/markdown-img-paste-20190718154904471.png)]在这里插入图片描述
网友评论