Haris, M., G. Shakhnarovich and N. Ukita. Deep Back-Projection Networks For Super-Resolution. in IEEE Conference on Computer Vision and Pattern Recognition (CVPR), p.1664-1673, 2018.
本文是这篇 CVPR 会议论文的笔记,主要是对文中的理论方法进行展开详解。本人学术水平有限,文中如有错误之处,敬请指正。
摘要: 最近提出的超分辨率重建的深度网络中,均采用前向结构学习输入的特征,并通过非线性映射到高分辨率输出中。然而,这些方法并没有充分解决高分辨率图像和低分辨率图像之间的互相依赖性。此文提出了 Deep Back-Projection Network (DBPN),迭代地使用上采样和下采样层,提供一个误差反馈的机制来映射每一个阶段的误差。此文构建互相连接的上采样和下采样阶段,每一个都表示了不同类型的图像劣化和高分辨率部分。再结合串联多个上采样和下采样的阶段的特征,又提出了 Dense DBPN,来提升重建的结果。此方法对大的缩放倍数,比如 8 倍,非常有效。
I h ∈ R M × N I_h \in \mathbb{R}^{M \times N} Ih∈RM×N 和 I l ∈ R M ′ × N ′ I_l \in \mathbb{R}^{M' \times N'} Il∈RM′×N′ 分别表示高分辨率图像和低分辨率图像,其中 M ′ < M M' < M M′<M, N ′ < N N' < N N′<N 。
其中 ∗ * ∗ 表示卷积操作, ↑ s \uparrow_s ↑s 和 ↓ s \downarrow_s ↓s 分别表示上采样和下采样 s s s 倍操作, p t p_t pt, g t g_t gt,和 q t q_t qt 是卷积层或反卷积层。
L t − 1 L^{t-1} Lt−1 是 LR 特征作为输入,之后映射到 HR 部分 H 0 t H_0^t H0t;再把它映射回到 LR 部分 L 0 t L_0^t L0t 。将两个 LR 特征的残差 e t l = L 0 t − L t − 1 e_t^l = L_0^t - L^{t-1} etl=L0t−Lt−1 计算得到,然后将残差映射到 HR 部分,得到 H 1 t H_1^t H1t ;加上之前计算得到的 HR 特征 H 0 t H_0^t H0t,求和作为输出 H t H^t Ht 。
通过不停地交替计算 H 和 L 部分。这些单元可以理解为自我纠正的步骤:不停地将误差映射到采样层,改变分辨率。在这过程中使用的卷积核大小为 8 × 8 8 \times 8 8×8 和 12 × 12 12 \times 12 12×12 。其他网络中使用的核一般都比较小,为了避免收敛过慢或得到结果不好。但是迭代使用映射单元可以抑制这个限制,并得到更好的结果在浅层网络高缩放倍率时。
借鉴 DenseNet 的思想,将映射单元之间也进行密集的连接,实现浅层和深层的特征的复用。但是不同于原先的 DenseNet 结构,此文中将 Dropout 和 Batchnorm 层移除;因为它们不适合超分辨率重建,会失去特征的范围灵活性。
在 Dense DBPN 中,输入是前面每一层的输出的串联。 L t ~ − 1 L^{\tilde{t}-1} Lt~−1 和 H t ~ H^{\tilde{t}} Ht~ 分别是密集上采样和下采样单元的输入。在输入之前都经过 conv ( 1 , n R ) \text{conv}(1,n_R) conv(1,nR) 卷积层将特征聚合起来(减少特征数量)。
初始 2 个特征提取层, T T T 个上采样单元 (3 层), T − 1 T-1 T−1 个下采样单元 (3 层),还有最后一个重建层。在密集网络中,每一个单元 (除了前 3 个单元) 之前多加一个 conv ( 1 , 1 ) \text{conv}(1,1) conv(1,1) 卷积层,用于减少特征数量。
总结:此论文的思路很独特,并不和其他网络论文一样,提出更深、更宽的前向网络结构,而是通过反复的使用上采样和下采样来进行多次的误差矫正。最后还是采用密集连接的方式,构建大的网络来获得较好的重建效果。
G. Huang, Z. Liu, L. van der Maaten, and K. Q. Weinberger. Densely connected convolutional networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017. ↩︎