LAPAR: Linearly-Assembled Pixel-Adaptive Regression Network for Single Image Super-resolution and Beyond
论文信息
- Paper: [NeurIPS2020] LAPAR: Linearly-Assembled Pixel-Adaptive Regression Network for Single Image Super-resolution and Beyond
- Link: http://proceedings.neurips.cc/paper/2020/file/eaae339c4d89fc102edd9dbdb6a28915-Paper.pdf
- Code: https://github.com/Jia-Research-Lab/Simple-SR (testing code only)
背景梳理
图像超分辨率 (Single Image Super Resolution, SISR) 任务是指将一张低分辨率 (Low Resolution, LR) 的图像恢复成对应的高分辨率 (High Resolution, HR) 图像,要求恢复后的高分辨率图像尽可能真实。自 SRCNN[1] 首次将卷积神经网络运用到 SISR 以来, 目前深度学习方法已取得超分辨率任务的最佳性能。然而,如何在模型复杂度和性能之间达到平衡,是现有深度学习方法面临的一个关键挑战。
本文提出了一种轻量级的图像超分模型——线性组装的像素级自适应回归网络 (Linearly-Assembled Pixel-Adaptive Regression Network, LAPAR) 。与其他基于深度学习的超分辨率模型不同,LAPAR 没有直接去学习 LR 图像到 HR 图像的映射,而是将任务简化为针对多个基滤波器 (base filter) 的线性回归任务。 在保证推理速度的同时,本文提出的方法在超分辨率、去噪、JPEG块效应去除 (deblocking) 等图像修复任务上都有很好的性能。
主要亮点
-
本文精心设计并预定义了一组有实际意义的基滤波器,使模型只需专注于针对这些基滤波器的回归任务。
-
与现有的图像超分辨轻量网络相比,本文提出的 LAPAR 在模型参数、计算量和性能上取得了 state-of-the-art 的效果。
方法
问题定义
对于一张 ( s H ) × ( s W ) (sH)\times (sW) (sH)×(sW) 大小的高分辨率图片 y y y,我们使用某种退化方式进行 s s s 倍降采样,可得到对应的 H × W H\times W H×W 大小的低分辨率图像 x x x。图像超分辨的任务就是将 x x x 恢复成 y y y。显然,这是一个不适定(ill-posed)问题,因为我们需要将 x x x 中的每1个像素变为高分辨率图像中的 s × s s\times s s×s 个像素,所以我们需要利用其它先验或约束来解决这个问题。
对基滤波核的线性回归
本文假设:对于 x x x 经过 bicubic 上采样得到的图像 bicubic(x) \text{bicubic(x)} bicubic(x),其每个像素 p p p 可以通过对 p p p 周围的 k × k k\times k k×k 范围感受野进行滤波(filtering)增强。为了表述方便,文章定义 B ∈ R ( H W s 2 ) × ( k 2 ) B\in \mathbb{R}^{(HWs^2)\times (k^2)} B∈R(HWs2)×(k2) 为 bicubic(x) \text{bicubic(x)} bicubic(x) 图像的 ( H W s 2 ) (HWs^2) (HWs2) 个 ( k × k ) (k\times k) (k×k) 大小的patch。此时,我们需要估计滤波核矩阵 F ∈ R ( H W s 2 ) × k 2 F \in \mathbb{R}^{(HWs^2) \times k^2} F∈R(HWs2)×k2。对于 y y y 中的每个像素点 y i y_i yi,对应滤波核 F i F_i Fi 的目标函数为:
KaTeX parse error: Undefined control sequence: \bbox at position 2: \̲b̲b̲o̲x̲[white]{\min_{F…
考虑到 F F F 矩阵的元素个数,利用网络去直接学习出 F F F 的所有参数是非常难的,搜索空间过大。因此,作者预先设计了一个滤波核字典 D ∈ R L × k 2 D\in \mathbb{R}^{L\times k^2} D∈RL×k2,包含了 L L L 个 k × k k \times k k×k 大小的滤波核。那么,我们可以规定 F i = Φ i D F_i = \Phi_i D Fi=ΦiD 是这些基滤波核的线性加权,其中 Φ i ∈ R 1 × L \Phi_i \in \mathbb{R}^{1\times L} Φi∈R1×L 是 F i F_i Fi 对应的加权系数。因此,文章最终需要估计的是 ( H W s 2 ) (HWs^2) (HWs2) 个 Φ i \Phi_i Φi,每个 Φ i \Phi_i Φi 的目标函数为
KaTeX parse error: Undefined control sequence: \bbox at position 2: \̲b̲b̲o̲x̲[white]{ \min_…
滤波核字典设计
本文中滤波核字典 D ∈ R L × k 2 D\in \mathbb{R}^{L\times k^2} D∈RL×k2 中的基滤波核个数 L = 72 L = 72 L=72, 滤波核大小 k = 5 k=5 k=5。 因为 L > k 2 L>k^2 L>k2,所以字典容量足够覆盖整个滤波核空间。这里,作者使用了两类滤波核构建字典:
- 高斯核,因为高斯核具有很强的表征能力;
- DoG (Difference of Gaussian), 因为DoG 善于捕捉细节和边缘。
下图是这72个滤波核的可视化,其中 γ , θ , r \gamma,\,\theta,\,r γ,θ,r 分表表示高斯核的 scaling, rotation 和 elongation ratio。
整体结构
如下图所示,LAPAR 整体分为三个步骤:
(1) 对 x x x 经过简单上采样得到 bicubic(x) \text{bicubic(x)} bicubic(x),并使用卷积网络,自适应地得到针对各个像素的滤波核权重系数 Φ \Phi Φ,其元素个数为 H W s 2 × L HWs^2 \times L HWs2×L;
(2)利用预定义的字典 D D D 和学习到的参数 Φ \Phi Φ,得到每个像素对应的滤波核参数,即前文提到的 F F F 矩阵;
(3)依据 F F F 对 bicubic(x) \text{bicubic(x)} bicubic(x) 进行滤波,得到最终输出 y ^ \hat{y} y^。
实验结果
图像超分辨率任务
作者在 Set5、Set14、B100、Urban100、Manga109 等数据集上将 LAPAR 和其他图像超分模型进行比较,放大倍数为x2、x3、x4。可以看到,本文提出的 LAPAR 模型在性能和计算量上有更优的结果(更多实验结果请查看论文原文)。
字典设计
本文中的字典是人工进行设计的。如果字典是其他方式生成的,性能会有什么变化呢?文章也给出了实验结果。可以看到,如果滤波核字典是学习得到而不是预先定义,从指标上来看模型性能其实也非常不错。不过,作者在文中指出,学习得到的滤波核因为没有明确的意义,图像会出现边缘 artifact 和增强噪声的情况。有意思的是,在随机生成滤波核的情况下,模型的效果也不是很差,这说明本文提出的学习策略是有效的。
去噪和JPEG块效应去除
利用类似的思想,作者在去噪和JPEG块效应去除等图像修复任务上验证了模型的学习能力。
分析与总结
本文提出的 LAPAR 算法的效果无疑是优秀的。事实上,大部分基于 CNN 的方法都可以认为是对输入图像中的像素进行邻域范围的滤波,得到高分辨率图的对应像素。那么 LAPAR 为什么能做到"又快又好"呢?我认为有以下原因:
-
本文不是直接去学习滤波核参数,而是改为基滤波核的线性加权,简化了模型的学习压力。因此,模型不需要堆叠大量的特征提取模块,能够提升速度;
-
本文把每个滤波核的大小控制在了 5 × 5 5\times 5 5×5,其实这个感受野要比其他基于卷积网络的超分模型小很多。但是,本文方法的优势是对每张图的每个像素都能自适应地滤波,而其他方法针对任意输入都使用了同一套滤波核、或是只能做到图像级(而不是像素级)自适应滤波,弥补了感受野较小的劣势。因此在轻量级模型中,本文的算法性能依然可以保持较高水平。
参考文献
[1] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang. Learning a Deep Convolutional Network for Image Super-Resolution, in Proceedings of European Conference on Computer Vision (ECCV), 2014.