DRN: [ Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution ]DRN文论链接
SISR两个潜在的局限
- 学习LR到HR的隐射是一个病态问题,因为从HR下采样到LR,可以有无限个HR与LR对应。所以解空间太大,很难找到很好的解。
- 应用程序中可能无法获得成对的LR-HR数据,而且底层的退化方法通常是未知的。
所以为了很好解决上面问题,使得模型得到更好适用性。文章提出对偶回归(对称回归?感觉特别像反投影,只是这里的投影和反投影的操作不对称,但是本文章好像是受到CycleGANd 启发)。
通过在LR数据上引入额外的约束来减少可能函数的空间,我们提出了一个双重回归方案。,除了LR到HR图像的映射之外,我们还学习了一个额外的对偶回归映射,它可以估计下采样核并重构LR图像,从而形成一个闭环,提供额外的监督。(LR->HR->LR)。
在这种模型下,我们可以不依赖HR,直接从LR中学习,所以也能将这个模型用在现实数据中。
论文三点贡献:
- 通过引入额外的约束,我们提出了一个双重回归方案,这样映射可以形成一个闭环,LR图像可以重建来提高SR模型的性能。此外,我们还从理论上分析了该方法的泛化能力,进一步证明了该方法相对于现有方法的优越性。
- 我们研究了一个更一般情况下的超分辨率,对于现实世界中的LR数据没有相应的HR数据(就是数据不成对的情况)。通过提出的双重回归方案,深层模型可以很容易地适应现实世界的数据,例如YouTube的原始视频帧。
- 通过对训练数据和非配对真实数据的大量实验,证明了二元回归方法在图像超分辨方面的有效性。
Dual learning(对偶学习,对称学习?)
它包含一个原始模型(传统SISR的LR->HR映射)和一个对偶模型(逆模型),可以同时学习两个相对的映射,提高语言翻译的性能。最近,该方案也被用于不需要对训练数据的图像变换,例如CycleGAN, DualGAN。具体地说,提出了循环一致性损失以避免GAN方法的模式崩溃问题并帮助最小化分布发散。这些方法不能直接用到SISR中,在此基础上,我们利用闭环来缩小SR的可能解空间,并考虑学习非对称映射,为使用循环的合理性和必要性提供了理论保证。
文章方法
Dual Regression Scheme for Paired Data(配对数据的双重回归方案)
除了像传统SISR那样用<LR,HR>学习映射,我们还学习了从HR到LR图像的逆/对偶映射。(这篇论文就是缩小解空间,像极了迭代反投影,DBPN前期网络)
假设X是LR,Y是HR。同时学习原始映射P(
H
R
1
=
P
(
L
R
)
HR_1=P(LR)
HR1=P(LR)使得
H
R
1
≈
H
R
HR_1\approx HR
HR1≈HR),和逆映射D(
L
R
1
=
D
(
H
R
1
)
LR_1=D(HR_1)
LR1=D(HR1),使得
L
R
1
≈
L
R
LR_1\approx LR
LR1≈LR),两者形成闭环。
注意,逆映射可以看作是对底层下采样核的估计。形式上,我们将SR问题表示为包含两个回归任务的对偶回归方案。
为了共同学习这两个映射,我们提出一个超分辨训练模型(就是损失函数),给N个配对的数据,损失函数为:
其中
L
D
L_D
LD和
L
p
L_p
Lp使用
L
1
L_1
L1范数,
λ
\lambda
λ是逆映射的权重。
实际上,我们还可以在HR域上添加一个约束,即通过下采样和上采样来重构原始HR图像(像不像迭代反投影),但是会增加计算量而且效果有限。在实践中,我们只在LR数据上增加了双重回归损失,这极大地提高了性能,同时保留了与原始SR模型(SISR的传统映射)大致相同的代价。
Dual Regression for Unpaired Data(非配对的双重回归方案)
这里是针对一般情况,就是数据不配对的情况。用下面的算法(Algorithm1)
逆回归映射学习的是底层退化模型(一个下采样模型),并且这不一定依赖HR。因此,我们可以使用它直接从未配对的真实LR数据中学习,让模型有更好的适应性。为了保证HR图像的重建性能,我们还结合了成对数据的信息(比如用Bicubic来生成成对的数据。)
m个不成对,n个成对的数据,目标函数为:
其中 1 S p ( x i ) 1_{S_p}(x_i) 1Sp(xi)函数指示函数, S P S_P SP是成对数据集 ( x i , y i ) i = 1 N {(x_i,y_i)}^N_{i=1} (xi,yi)i=1N,若 x i ∈ S P x_i\in S_P xi∈SP,则 1 S p ( x i ) = 1 1_{S_p}(x_i)=1 1Sp(xi)=1,或者 1 S p ( x i ) = 0 1_{S_p}(x_i)=0 1Sp(xi)=0。
Training Method(训练方式)
Training method on paired data.(有成对数据的训练)
就是最小化公式1
Training method on unpaired data.(非成对数据的训练)
参照算法1(Algorithm1),在每次迭代中,我们m个非成对,n个成对数据,然后最小化等式2。比较好的比例是用 ρ = m / ( m + n ) \rho=m/(m+n) ρ=m/(m+n) 这个公式,当 ρ = 30 \rho=30% ρ=30 的时候,得到的结果最好。(这是作者实验结果)
Differences from CycleGAN based SR Methods(和CycleGAN方法的区别)
- CycelGAN在解决欠约束图片转移问题,使用循环一致性损失(cycle consistency loss)来解决模型崩溃问题。本文为了提高性能,增加了约束,该约束通过将SR图像映射回相应的LR图像来减少可能的函数空间,这样提高我们的超分辨模型。
- CycleGAN是不要成对数据,DRN是用了成对和没有成对的(人工合成就是HR下采样到LR,真实世界数据就是看到啥就是啥。)
Architecture Design of DRN (DRN细节)
U形网络,两个部分:原始映射网络(比如传统SISR,LR->HR)和逆映射网络(HR->LR)
原始网络:遵循下采样,再上采样的U形设计。每个包含一个log2(s)的块,s是尺度因子。这意味着,放大4倍,需要2个块,8倍就要3个块。与原始U形设计(就是改进)不同,我们使用B剩余通道注意块(RCAB)来构建每个基本块,以提高模型容量。在此之后我们添加额外的输出来生成相应比例的图像(即1×、2×、4×图像),并将所提出的损失应用于这些图像来训练模型。在输入网络之前,图片用Bicubic放大对应尺寸。
文章设计逆映射网络,就是为了从HR中学到一个下采样模型,它比原始映射简单,用了2个卷积,一个ReLU**函数。
Theoretical Analysis
其他的还是看论文附录吧,怕公式推导翻译不太准确
论文:https://arxiv.org/pdf/2003.07018.pdf
代码:https://github.com/guoyongcs/DRN