当前位置: 代码迷 >> 综合 >> DRN(CVPR2020)——SISR超分辨
  详细解决方案

DRN(CVPR2020)——SISR超分辨

热度:8   发布时间:2024-02-21 07:11:26.0

DRN: [ Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution ]DRN文论链接

SISR两个潜在的局限

  1. 学习LR到HR的隐射是一个病态问题,因为从HR下采样到LR,可以有无限个HR与LR对应。所以解空间太大,很难找到很好的解。
  2. 应用程序中可能无法获得成对的LR-HR数据,而且底层的退化方法通常是未知的。

所以为了很好解决上面问题,使得模型得到更好适用性。文章提出对偶回归(对称回归?感觉特别像反投影,只是这里的投影和反投影的操作不对称,但是本文章好像是受到CycleGANd 启发)。
通过在LR数据上引入额外的约束来减少可能函数的空间,我们提出了一个双重回归方案。,除了LR到HR图像的映射之外,我们还学习了一个额外的对偶回归映射,它可以估计下采样核并重构LR图像,从而形成一个闭环,提供额外的监督。(LR->HR->LR)。
在这种模型下,我们可以不依赖HR,直接从LR中学习,所以也能将这个模型用在现实数据中。
在这里插入图片描述

论文三点贡献:

  1. 通过引入额外的约束,我们提出了一个双重回归方案,这样映射可以形成一个闭环,LR图像可以重建来提高SR模型的性能。此外,我们还从理论上分析了该方法的泛化能力,进一步证明了该方法相对于现有方法的优越性。
  2. 我们研究了一个更一般情况下的超分辨率,对于现实世界中的LR数据没有相应的HR数据(就是数据不成对的情况)。通过提出的双重回归方案,深层模型可以很容易地适应现实世界的数据,例如YouTube的原始视频帧。
  3. 通过对训练数据和非配对真实数据的大量实验,证明了二元回归方法在图像超分辨方面的有效性。

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(HR1=P(LR)HR_1=P(LR)HR1?=P(LR)使得HR1≈HRHR_1\approx HRHR1?HR),和逆映射D(LR1=D(HR1)LR_1=D(HR_1)LR1?=DHR1?,使得LR1≈LRLR_1\approx LRLR1?LR),两者形成闭环。
在这里插入图片描述
注意,逆映射可以看作是对底层下采样核的估计。形式上,我们将SR问题表示为包含两个回归任务的对偶回归方案。
为了共同学习这两个映射,我们提出一个超分辨训练模型(就是损失函数),给N个配对的数据,损失函数为:
在这里插入图片描述
其中LDL_DLD?LpL_pLp?使用L1L_1L1?范数,λ\lambdaλ是逆映射的权重。
实际上,我们还可以在HR域上添加一个约束,即通过下采样和上采样来重构原始HR图像(像不像迭代反投影),但是会增加计算量而且效果有限。在实践中,我们只在LR数据上增加了双重回归损失,这极大地提高了性能,同时保留了与原始SR模型(SISR的传统映射)大致相同的代价。

Dual Regression for Unpaired Data(非配对的双重回归方案)

这里是针对一般情况,就是数据不配对的情况。用下面的算法(Algorithm1)
在这里插入图片描述

逆回归映射学习的是底层退化模型(一个下采样模型),并且这不一定依赖HR。因此,我们可以使用它直接从未配对的真实LR数据中学习,让模型有更好的适应性。为了保证HR图像的重建性能,我们还结合了成对数据的信息(比如用Bicubic来生成成对的数据。
m个不成对,n个成对的数据,目标函数为:
在这里插入图片描述

其中1Sp(xi)1_{S_p}(x_i)1Sp??(xi?)函数指示函数,SPS_PSP?是成对数据集(xi,yi)i=1N{(x_i,y_i)}^N_{i=1}(xi?,yi?)i=1N?,若xi∈SPx_i\in S_Pxi?SP?,则1Sp(xi)=11_{S_p}(x_i)=11Sp??(xi?)=1,或者1Sp(xi)=01_{S_p}(x_i)=01Sp??(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方法的区别)

  1. CycelGAN在解决欠约束图片转移问题,使用循环一致性损失(cycle consistency loss)来解决模型崩溃问题。本文为了提高性能,增加了约束,该约束通过将SR图像映射回相应的LR图像来减少可能的函数空间,这样提高我们的超分辨模型。
  2. CycleGAN是不要成对数据,DRN是用了成对和没有成对的(人工合成就是HR下采样到LR,真实世界数据就是看到啥就是啥。

Architecture Design of DRN (DRN细节)

U形网络,两个部分:原始映射网络(比如传统SISR,LR->HR)和逆映射网络(HR->LR)
在这里插入图片描述
其他的还是看论文吧:https://arxiv.org/pdf/2003.07018.pdf
代码:https://github.com/guoyongcs/DRN