文章目录
文章链接:(CVPR 2020)https://arxiv.org/abs/2003.07018
代码链接:https://github.com/guoyongcs/DRN
Abstract
深度神经网络通过学习LR到HR的非线性映射,在图像超分辨(SR)方面显示出了良好的性能。然而,现有的SR方法有两个潜在的局限性。
- 首先,学习从LR图像到HR图像的映射函数是一个典型的病态问题,因为存在着无限多个HR图像可以被下采样到同一个LR图像,存在无数多个LR到HR的映射函数 (一对多)。
- 其次,很难找到真实场景中的LR-HR图像对(现有SR方法用到的数据集,往往都是自己将HR数据集通过bicubic等退化方法合成的)。人工将HR退化到LR,与真实环境中的LR的分布并不一致,导致现有方法性能有限。
为了解决上述问题,本文提出了一个对偶回归方法(Dual Regression),通过在LR数据上引入额外的约束来减少可能函数的空间。具体来说,除了从LR到HR图像的映射之外,我们还学习了一个额外的对偶回归映射,用来估计下采样核并重建LR图像,从而形成一个闭环来提供额外的监督。更关键的是,由于这个对偶回归过程不依赖于HR图像,因此我们可以直接从LR图像中进行学习。
从这个意义上说,我们可以很容易地将SR模型应用于真实世界的数据,例如YouTube上的原始视频帧。通过在LR-HR数据对和未配对的真实数据上进行大量的实验,证明了文章提出的方法优于现有的方法。
1 Introduction
本文的主要贡献:
- 设计了一个对偶回归结构来约束LR-HR映射,以此增强SR的性能。并且从理论上分析了这个对偶结构的泛化能力,进一步证明了其优越性。
- 学习了一个更general的超分情形,即没有对应HR的真实LR数据。通过对偶架构,模型可以很容易地处理如YouTube上截的原始帧等真实数据。
- 大量在paired-data和unpaired-data上的实验证明了所提对偶方法在SR问题上是有效的。
2 Related Work
2.1 Supervised
- 基于插值的方法:[19](1978)
- DBPN(CVPR,2018):提出了通过不断迭代上采样、下采样组成的反馈模块(FB)。
- RCAN(ECCV, 2018): 首个将通道注意力机制应用于超分辨的方法。
- SRFBN(CVPR,2019):借鉴了上面DBPN的反馈思想,并加入了课程学习(curriculum learning)。
2.2 Unsupervised
- CinCGAN(CVPR,2018):基于CycleGAN提出,结合了循环周期降噪框架和循环周期SR模型,不需要paired-data。
- KernelGAN(CVPR,2019):用于估计与真实图像接近的降采样核,从而构建超分训练的图像对(Blind-SR),提升对现实图像超分的性能。
- Kernel Modeling(ICCV,2019):使用核估计算法从照片中提取真实的模糊核,并通过训练GAN来扩大核池,生成一个GAN增强的真实模糊核池。接着用从内核池中采样的内核构建一个成对的LR-HR训练数据集,并训练一个深度CNN超分网络。
2.3 Dual learning
Dual learning 通过同时训练两个相反方向的映射—— primal model 和 dual model,来增强语言翻译问题的性能。最近,这种模式被用在了无需成对训练数据集的图像风格潜移上面。
在 CycleGAN 中,加入了循环一致性检验以解决GAN的模式坍塌问题(这也是训练不成对图像的难点所在)。然而,这些方法依然没法直接应用到标准的SR问题当中去。
3 Proposed Method
整个对偶回归结构的示意图如Fig. 2所示:
3.1 Paired Data
传统的超分任务——从LR图像到HR图像的映射,由函数 P P P表示,其中 P : X → Y P:\mathcal{X}\rightarrow\mathcal{Y} P:X→Y。这个映射生成的高分辨率图像SR与真实的HR作比较,得到primal regression loss L P ( P ( x i ) , y i ) \mathcal{L}_P(P(x_i),y_i) LP(P(xi),yi)。
此外,再用另一个对偶的映射,把生成的SR图像反向降采样到LR,这个映射用函数 D D D表示,其中 D : Y → X D:\mathcal{Y}\rightarrow\mathcal{X} D:Y→X。同样的,把映射 D D D得到的 L R ′ LR ' LR′与真实的 L R LR LR作比较,可以得到另一个loss:dual regression loss L D ( D ( P ( x i ) ) , x i ) \mathcal{L}_D(D(P(x_i)),x_i) LD(D(P(xi)),xi)。
最后,总的训练损失为:
∑
i
=
1
N
L
P
(
P
(
x
i
)
,
y
i
)
+
λ
L
D
(
D
(
P
(
x
i
)
)
,
x
i
)
\sum^N_{i=1}\mathcal{L}_P(P(x_i),y_i)+\lambda\mathcal{L}_D(D(P(x_i)),x_i)
∑i=1NLP(P(xi),yi)+λLD(D(P(xi)),xi)
其中 λ \lambda λ为系数,用来决定对偶损失的权重大小; L P 、 L D \mathcal{L}_P、\mathcal{L}_D LP、LD用的都是 l 1 l_1 l1损失。
3.2 Unpaired Data
在应对无HR(Unpaired)的真实数据时,采用如下的训练策略:
可以得到算法的流程为:
- 首先,导入预训练的模型 P 和 D;
- 数据集由 m + n m+n m+n组图片组成,其中前 m m m组为Unpaired的真实数据(LR),后 n n n组为Bicubic人工合成的Paired数据(LR-HR);
- 更新 P: ①对于前m组图片,由于没有 H R HR HR,指示函数 1 S P = 0 1_{S_P}=0 1SP=0,只需P把LR变换成 S R SR SR,再由D将其变换回 L R ′ LR' LR′,比较 L R ′ LR' LR′与 L R LR LR并计算对偶损失 L D \mathcal{L}_D LD 即可;②对于后面的n组成对图片,则跟前面Paired数据一样正常训练即可;
- 更新 D: 通过对偶损失 L D \mathcal{L}_D LD 更新D,直到收敛。
实验表明,真实Unpaired数据与合成的Paired数据的数量之比 ρ = m / m + n = 30 % \rho=m/m+n=30\% ρ=m/m+n=30% 时效果最好。
4 DRN 网络结构
文章所提出的对偶网络DRN的结构图如下:
可以看到,DRN的主干网络是一个U-Net类型的超分网络。其中,在网络的上采样部分,每一级都加入了大量残差通道注意力机制模块(RCAB),并且上采样使用了PixelShuffle。
右侧的红线部分就是DRN的对偶网络了,在结构上使用了跟U-Net下采样完全一样操作(在代码上,也共用了相同的代码)。
图中右边下面的“2x image”、"1x image"出就体现出了对偶损失 L D \mathcal{L}_D LD 。
5 Experiment
DRN的常规BI退化结果比较如下:
粗体的是最佳结果,蓝色字是第二好结果,可以看到其在几个主流数据集上的PSNR、SSIM结果几乎都拿到了SOTA(2020)。
【其他超分辨方向论文】
【1】(RDN)Residual Dense Network for Image Super-Resolution
【2】(IDN)Fast and Accurate Single Image Super-Resolution via Information Distillation Network
【3】(RCAN)Image Super-Resolution Using Very Deep Residual Channel Attention Networks