Efficient Sub-Pixel Convolutional Neural Network(ESPCN)

https://github.com/wangxuewen99/Super-Resolution/tree/master/ESPCN

摘要:

当前基于深度神经网络的方法对于单图片的超分辨率在重建效率和计算量方面有了很大的成功。但是,这些方法中,都是用低分辨率的图片通过单一的滤波器,通常是双三次插值法,变成高分辨率的图片。这意味着超分辨率的工作是在高分辨率的基础上完成的。这种方法是次最优并且计算量很大。

该论文提出了一种方法,将低分辨率的图片直接通过CNN来做超分辨率。另外,提出了一种有效的子像素卷积层,这层能学习到一组扩大滤波器去将低分辨率的特征映射到高分辨率的输出。这样做,我们就省去了双三次插值法,也减轻了计算量。

1. 简介:

大部分的超分辨率问题都假设低分辨率的数据是高分辨率数据的低通滤波,下采样和噪声产生的。由于在不可逆的低通滤波和子采样操作期间发生的高频信息的丢失,这是一个非常恶劣的问题。另外,从低分辨率到高分辨率的映射过程,超分辨率有许多的选择。基于许多超分辨率技术的一个关键假设是大部分高频数据是冗余的,因此可以从低频分量精确地重构。因此,超分辨率是一个推理问题,因此依赖于我们关于图像统计的模型。

许多方法假设多个图像可用作具有不同视角的相同场景的低分辨率实例,即具有唯一的先前仿射变换。这些可以归类为多图像超分辨率方法,并通过限制不正确的问题附加信息并尝试反转下采样过程来利用显式冗余。然而,这些方法通常需要计算复杂的图像配准和融合阶段,其准确性直接影响结果的质量。一种替代的方法是单图像超分辨率(SISR)技术。这些技术寻求学习自然数据中存在的隐性冗余,以从单个低分辨率实例中恢复丢失的高分辨率信息。这通常以图像的局部空间相关性和视频中的附加时间相关性的形式出现。在这种情况下,需要以重建约束的形式的先前信息来限制重构的解空间。

1.1 相关工作:

最近最流行的SISR方法可以分为:edge-based, image statistics-based和patch-based。另外,最新蓬勃发展的技术是sparsity-based techniques(稀疏性技术)。稀疏编码是一个有效的机制,它假设任何的自然图片都能够在转换区域被稀疏的表达。这种转换域通常是一个图像原子性的字典,能通过发现低分辨率和高分辨率之间的对应关系学习到。这个字典能够嵌入先验知识以限制上面提到的恶劣的问题。但是稀疏性技术的缺点是将稀疏性限制引入到非线性重建中时,通常需要较大的计算代价。

除此之外,通过神经网络来习得图像的表达对于SISR也是很常见的。这些方法,通过在大型的图片数据库,比如ImageNet,进行反向传播训练,学习到低分辨率到高分辨率的映射关系。堆叠的协同本地自编码被用作一层层的去做低分辨率图片的超分辨率。有学者建议用预测卷积稀疏编码框架来做SISR。于是,基于稀疏编码的多层卷积神经网络被提出。该方法提出使用多阶段可训练非线性反应扩散(TNRD)作为CNN的替代方法,其中权重和非线性是可训练的。还有人从LISTA得到灵感(学习迭代收缩和阈值算法)训练了一个端到端的级联的稀疏编码网络,以充分利用图像的自然稀疏性。这个网络结构不仅限制于神经网络,比如随机森林同样可以成功的利用。

1.2 动机和贡献

有两种方法去提高分辨率。一种是在神经网络的中间层逐渐增加,另一种是在喂入神经网络第一层之前就增加分辨率。后者的方法有许多的缺点。第一,计算代价大。第二,插值法并没有解决ill-posed的问题。

这篇论文中,和之前不一样的,提出了一种在神经网络的末端增加分辨率的方法。这解决了一个问题,那就是大部分的超分辨率操作没有必要在较大的高分辨率图片上面执行。所以,我们采用了高效的子像素卷积层去学习倍增分辨率的操作。

这个方法有两个好处:

1. upscaling在神经网络的末端执行。这意味着将低分辨率图片喂入神经网络,并且特者提取是发生在低分辨率空间的非线性卷积操作。因为输入的分辨率降低了,我们可以有效地利用较小的过滤器去合成同样的信息。分辨率和滤波器大小的减小,极大的减小了运算量和存储空间以至于超分辨率能够实时地在HD的录像上完成。

2. 没有使用插值法,这意味着网络能明确地学习到对超分辨率有用的东西。因此,比起在第一层用一个固定的倍增滤波器,这个网络能学习到一个更好的从低分辨率到高分辨率的映射。这能导致重建正确率的提高。

2. 方法

输入是用高分辨率的图片,采取r的倍增速率,通过高斯滤波器,压缩成低分辨率的图片。所以低分辨率图片的大小是H*W*C,高分辨率图片的大小是rH*rW*C(C是channel的数量)。

为了恢复高分辨率的图片,该论文用了3层的卷积神经网络,如下图。

在结构中,直接作用了l层神经网络在低分辨率图像上,然后用了一个子像素卷积层,将低分辨率的特征映射到超分辨率上。

2.1 反卷积层

附加的反卷积层是从max-pooling层和其他图像的下采样层中恢复高分辨率的一个很流行的选择。这种方法已经成功地用于可视化层激活,并且用于使用来自网络的高级特征来生成语义分割。这表明SRCNN中使用的双三次插值是反卷积层的一种特殊情况。反卷积层可以看作是每个输入像素乘以一个滤波器单元与步幅r,并且在所得到的输出窗口上也称为向后卷积。

2.2 高效的子像素卷积层

另外一种方法去倍增低分辨率图像是用一个步长为分数的1/r的卷积作用域低分辨率空间。

3. 实验

3.1 数据集

用5000张随机从ImageNet数据集中选择出来的图片用来训练。

3.2 实验结果



 

猜你喜欢

转载自blog.csdn.net/wolf2345/article/details/81284063