目前超分辨率算法存在两个明显的问题:
- 从 LR 图像到 HR 图像通常是一个高度病态的反问题,存在无数可能的HR 图像通过降采样得到同一张 LR 图像。解空间过大,从而很难去找到一个合适的解。
- 真实场景应用中,成对的 LR-HR 图像往往无法获得,因此对应图像降采样方式也往往未知。因此对于更普遍的情形,现有的SR模型经常会引起适应性问题,从而导致性能不佳。
论文针对这两个主要的问题进行改进,提出了对偶回归策略,通过引入对 LR 图像额外的约束,从而减小解空间的大小。也就是说,模型除了学习LR到HR图像的映射外,还学习了额外的对偶回归映射,用于估计下采样内核并重建LR图像,从而形成一个闭环以提供额外的监督。
特别地是,由于对偶回归策略并不依赖 HR 图像,因此可以直接从 LR 图像中进行学习。因此,可以很好地使得 SR 模型适应真实世界图像。
对偶回归任务
首先看一下Bicubic 降采样数据测试集上,DRN 和过去的 SOTA 方法在4倍放大比例下的性能比较。从表中可以看到,DRN 模型在5个数据集上取得了SOTA 性能,并且其模型参数量也仅为9.8M。
它是如何实现的?
Model 模型
DRN 首先采用了 Closed-Loop 闭环模型。模型结构类似于 U-Net,如下图所示:
模型中黑色箭头所指部分,为DRN模型的 Primary 网络,而红色箭头所指部分,则对应Dual Regression 网络。
Primary 网络实现了从 LR 到 HR 映射,并且生成多尺度的 SR 图像:x1 SR,x2 SR。
Dual Regression 网络则是HR 到 LR 映射,生成多尺度的 LR 图像:x2 LR,x1 LR。
为了控制网络模型参数,卷积输出特征图数量很小,假设特征图数量为 F,RCAB 模块在每一层级的数量为 B。
对于4× SR, DRN-S 有 F=16,B=30;DRN-L 有 F=20,B=40 ;
对于8× SR, DRN-S 有F=8,B=30;DRN-L 有F=10,B=36;
因为 DRN模型是一个deep-and-narrow 的模型。
Loss 函数
DRN 采用了对偶回归学习,因此引入了额外的对偶回归Loss :
论文中采用L1 Loss, 为对偶回归 Loss的权重参数。
值得注意的是,在作者公开的源码中可以看到, LP(.)包含着多尺度图像的 Loss。举一个例子:对于4x SR,DRN 会生成 x1 SR 图像,x2 SR图像,x4 SR 图像。这3个尺寸的图像,分别和对应尺度下的HR 图像(可以理解为 HR 图,x2 LR图像,LR 图像 )进行对比,计算 Loss。
loss_primary = self.loss(sr[-1], hr) for i in range(1, len(sr)): loss_primary += self.loss(sr[i - 1 - len(sr)], lr[i - len(sr)])
对于没有成对数据集的情况下,DRN 采用了半监督学习,引入部分的成对数据集用于训练,DRN损失函数为:
1SP(Xi)表示当Xi 属于成对数据集时,该函数等于1,否则等于0。
训练策略如下:
实验对比
从以下两张图中可以看到,在4x SR 和 8x SR 上,DRN 均能够在模型参数和性能上取得很好的平衡。
对于无成对数据集Unpaired Data,DRN 还额外引入成对的数据集(DIV2K+bicubic 降采样)用于模型训练。
Unpaired Data 生成过程:从ImageNet中选取3000张图像,并采用不同的图像退化方式如 Nearest 和 BD生成 LR 图像。
DRN 与其他方法在合成数据上进行了定量的比较,图像退化方法为Nearest 和 BD。
在真实图像上,由于没有 HR 图像,所以仅仅进行了定性的比较。
论文作者还进行一系列的消融实验,以验证两个问题:
- 对偶回归是否有效?
- 在半监督学习中,不成对数据集和成对数据集比例多少合适?
对偶回归有效性
表中可以看到,当引入对偶回归之后,DRN-S 和 DRN-L 均取得了明显的性能提升,说明了对偶回归的有效性。
不成对数据集和成对数据集比例
其中,表示不成对数据集数量在训练数据集中的比例。或者模型性能均会出现明显的下降。当时,模型的性能表现最佳。
总结
这篇论文提出了一种新的学习策略:对偶回归学习。这种学习策略不仅能够进一步提升监督学习下 SR 的性能,同时为半监督学习甚至是无监督学习提供了一种可行的思路。对真实图像超分辨率算法的研究,也能够起到很好的促进作用。