用深度神经网络进行图像超分辨

用深度神经网络进行图像超分辨

  1. 介绍

单张图片超分辨这个问题本质上是病态的,因为对于任何给定的低分辨率像素都存在多种解决方案。换句话说,它是一个欠定逆问题,其解不是唯一的。这类问题通常通过强先验信息约束解空间来缓解。

论文考虑了一种卷积神经网络,它可以直接学习低分辨率图像之间的端到端映射。这种方法与现有的基于实例的外部方法有根本不同,整个SR流水线是完全通过学习获得的,几乎没有预处理和后处理。

论文将该模型命名为超分辨率卷积神经网络(SRCNN)。SRCNN的结构是有意设计的,在头脑简单,但提供了优越的准确性相比,最先进的基于实例的方法,图1给出了一个示例的比较。其次,中等数量的过滤器和层,该方法实现了快速的实际在线使用,要比许多基于实例的方法更快。第三,实验表明,当可利用的数据集更大、更多样化,使用更大、更深的模型时,网络的恢复质量可以进一步提高。此外,该网络可以同时处理彩色图像的三个通道,从而提高超分辨性能。

img

​ figure 1.

然而,之前已经有人提出过这种模型,本论文对其进行了一种优化。首先,我们对SRCNN进行了改进,在非线性映射层中使用更大的滤波器(filter)尺寸,并通过添加非线性映射层来探索更深层次的结构。其次,我们扩展SRCNN以同时处理三个颜色通道(YCbCr或RGB颜色空间)。实验表明,与单通道网络相比,该网络的性能可以得到改善。第三,在最初的结果中加入了大量新的分析和直观的解释。我们还将原始实验从Set5和Set14测试图像扩展BSD20031。此外,我们与最近发布的一些方法进行了比较,确认了我们的模型仍然优于使用不同评估指标的现有方法。

2. 材料和方法

2.1 F映射

CNN:卷积神经网络可以追溯到几十年前和deep CNNs最近显示出爆炸性的流行,部分原因是它在图像分类上的成功。考虑一个低分辨率的图像,我们首先使用将其优化到所需的大小。让我们表示插值图像为Y .我们的目标是恢复图像F(Y)尽可能相似的实际原图X。我们称Y为“低分辨率”图像,同时我们期望学习到一个映射F,它包含三个操作:

  1. Patch的提取和表示。该操作从低分辨率图像Y中提取(重叠的)patch,并将每个patch表示为高维向量。这些矢量由一组特征图组成,其数量等于矢量的维数。

2)非线性映射。这个操作非线性地将每个高维向量映射到另一个高维向量上。每个映射向量在概念上都是一个高分辨率patch的表示。这些向量由另一组特征图组成。

3)重建。此操作聚合了上述高分辨率贴片表示,以生成最终的高分辨率图像。这个图像应该与ground truth X相似。

2.1.1 Patch的提取和表示

在图像恢复(如[1])中,常用的一种策略是对patch进行密集提取,然后用一组预先训练好的基(如PCA、DCT、Haar等)表示。这相当于用一组滤波器对图像进行卷积,每个滤波器都是一个基。在我们的方法中,我们把基底的优化变为网络的优化。形式上,我们的第一层被表示为一个操作F1: \[ F_{1}(Y)=max(0,W_{1}*Y+B_1) \] 其中W1和B1分别表示过滤器和biases,“*”代表卷积操作。W1表示 向量c×f1×f1的n1滤波器 ,c是输入图片的通道数,f1是滤波器的空间大小。

W1对图片进行n1次卷积操作,每个卷积都有一个c×f1×f1大小的核。输出由n1个特征图组成,B1是n1维的向量,其每一个元素都联系着一个滤波器。滤波器响应是ReLU。

2.1.2非线性映射

第一层为每一个patch提取出了一个n1维的特征向量,然后非线性映射到n2维的向量。这个非线性映射跟用n2个1×1卷积核是一样的,不过更容易升级为更大的卷积核比如3×3的。本文采用的方法中,非线性映射不是直接来自于原始图像,而是来自于3×3或5×5的feature map“补丁”。第二层的操作: \[ F_{2}(Y)=max(0,W_{2}*F_1(Y)+B_2) \] W2包含n2滤波器,其大小为n1×f2×f2,B2为n2维的。每个输出的n2维向量在概念上都是用于重建的高解像度的patch的表示。增加参数是可能的,但是这将大大增加模型的复杂度(一层有n2×f2×f2×n2个参数)。

2.1.3重建

传统方法会对重叠的高解像度补丁做一个平均,“平均”这个行为可被视为在feature map上一个预定义的过滤器。受此启发,最终重建高解像度图片的卷积层为: \[ F_{3}(Y)=max(0,W_{3}*F_2(Y)+B_3) \] W3表示c个大小为f2×f3×f3的过滤器,B3是一个c维向量。如果高分辨率patch的表示在图像域(即,我们可以简单地重塑每个表示来形成patch),我们期望过滤器的行为像一个平均过滤器;如果高分辨率斑块的表示是在其他区域(例如,以某些基底表示的系数),我们认为W3的表现类似于首先将系数投影到图像区域,然后对其进行平均。不管怎样,W3是一组线性滤波器。有趣的是,尽管上述三种操作的动机不同,但它们的形式都与卷积层相同。我们将这三种操作放在一起,形成一个卷积神经网络(图2)。在这个模型中,所有的滤波权值和偏差都将得到优化。尽管整体结构很简洁,但我们的SRCNN模型是通过吸取超分辨率、的重大进展带来的丰富经验而精心开发的。

img

​ figure 2

2.2 与基于稀疏编码的方法的关系

在稀疏编码方法中,考虑一个从输入图片提取出的f1×f1的低解像度patch,首先将其映射到低解像度字典上。如果这个字典的大小为n1,这等价于n1个线性滤波器(f1×f1)应用于原始图像上(平均减法也是一个线性操作)。稀疏编码求解器不是前馈的,而是迭代算法。最后一层的参数量可以减少,把重心放在中间的部分。

3.结果和讨论

loss:误差二范数 \[ L(\Theta)=\frac{1}{n}\sum_{i=1}^{n}||F(Y_i;\Theta)-X_i||^2 \] 随机梯度下降 \[ \Delta_{i+1}=0.9*\Delta_i+\eta *\frac{\partial L}{\partial W_{i}^{l} } ,\qquad W_{i+1}^{l}=W_{i}^{l}+\Delta_{i+1} \]