图像超分辨率 之 DRN 论文解读与感想

图像超分辨率 之 DRN (Closed-loop Matters: Dual Regression Networks for Single Image Super-Resolution)论文解读与感想

DRN是在2020年顶会(CVPR)上发表的一篇想法简单,但是结果非常不错的文章。

  1. 先来说一下文章的切入点

首先,对于图像超分辨率,可以说是一个经典的病态问题(ill-posed problem)。因为一个高分辨率图像可以通过不同的下采样(downscaled)方法获得不同的低分辨率图像,这也就是论文中所表达的 HR images that can be downscaled to obtain the same LR image。什么叫做病态问题呢,就是说这类问题是没有一个真正正确的结果的,或者说是我们无法去验证我们的结果是否正确。这让我联想起类似于一个一元函数,一个自变量却对应多个函数值(数学上这是不成立的)。由于病态问题的解不唯一,这就使得可能的模型映射空间无比巨大,在这个空间中寻找一个合适且性能优异的映射非常困难(the space of the possible functions that map LR to HR images becomes extremely large)。
其次,在真实应用时,我们通常是无法获取成对(paired data)的HR image和LR image的。我们知道在进行仿真实验时,我们通常会选择将一张HR图像进行人工降低分辨率(e.g.,performing Bicubic kernel to produce LR-HR pairs)那么我们的模型实际上是已知自变量和结果,在模拟一个Bicubic的逆变换,然而如果这个LR不是通过Bicubic 方法得到的,甚至是多种下采样方法共同得到的,很明显我们事先使用Bicubic人工生成的paired data所训练的模型,就会出现问题,这也就是作者所说的以往传统方法泛化性不好的原因(incur a severe adaptation problem and yield poor performance)。

  1. 针对上面两个问题,作者提出了理论上的解决方法

降低映射空间的复杂度 and 直接使用LR image对模型进行训练
如何降低映射空间的复杂度,很明显,给模型添加更多的限制就可,因为限制越多,所满足限制的可能的解就越少嘛。但是有一点需要强调,所添加的限制一定是对模型原本的限制有促进作用的限制,这样才能在原本的映射空间里求子空间(这样万能的对抗损失就没法用了)。了解过data imputation领域的应该知道,data imputation也是一种经典的病态问题,而如果将结果的不确定性考虑进去,所获得的结果精度往往会有很大的提升(经典的有GAIN1, MICE2
直接使用LR image对模型进行训练,这就牵扯到一个image to image conversion中一个经典的问题,unpaired data。在图像风格转换领域,使用unpaired data的经典之作是CycleGAN,它是通过将输入图像映射为目标域中的结果,又将这个结果映射回原始的输入图像来进行训练的,这就巧妙的避开了使用paired data训练模型。

  1. 紧接着,作者给出了一种全新的模型:DRN
    图像超分辨率 之 DRN 论文解读与感想_第1张图片

给出一个论文的模型图。可以看到相比于传统的SR model(蓝色部分),这篇文章多了一个往回的步骤(红色部分),因而整个训练过程呈现出一个循环,这也是为啥这篇文章叫这么个名字,生动形象。这个图中有两个已知量 ( x , y ) (x,y) x,y,这代表成对的LR image和HR image,在训练过程中,模型将 x x x映射成伪HR image y ^ \hat{y} y^,然后和真实的HR image求一个primal regression loss L p ( y , y ^ ) L_p(y,\hat{y}) Lp(y,y^),之后通过dual regression task将 y ^ \hat{y} y^再映射成LR image x ^ \hat{x} x^,求取一个dual regression loss L d ( x , x ^ ) L_d(x,\hat{x}) Ld(x,x^)。最后联合优化 L p + L d L_p+L_d Lp+Ld
当输入的数据是unpaired data时,也就是此时没有y,那么我们就放弃 L p L_p Lp一项,转而仅仅优化 L d L_d Ld一项,这么看,后一项才是本文的灵魂。
图像超分辨率 之 DRN 论文解读与感想_第2张图片

这个过程乍一看和CycleGAN很像,但是作者也对二者进行了对比,给出了不同点:
首先,CycleGAN是通过cycle loss实现的,而本文是通过添加额外的约束 L d L_d Ld实现的。这点我的理解是 在CycleGAN中,模型需要训练两个生成器和两个鉴别器,这就使得模型的训练时间和参数都增加了一倍,而在DRN中,这个往回走的过程是通过一个简单的下采样网络(文章称之为 dual network)来实现的,很明显这个下采样网络的结构要比原始网络简单,训练起来也容易的多。这里给出我个人的一个疑问:既然这个采样过程都是将一个图像进行相同倍数的下采样,可否将dual network和primal network的前半部分下采样共享参数呢,理论上这样可以在不破坏模型性能的基础上进一步提升模型训练效率,减少参数,这个问题有待思考。
其次,在训练数据的选择上,作者提出CycleGAN直接放弃了paired data,仅仅使用unpaired data进行训练,而本文可以同时使用paired data和unpaired data进行训练,其中两部分数据的比例使用 ρ = m / ( m + n ) ρ = m/(m + n) ρ=m/(m+n) 进行调节,其中m,n是两类数据的数量。关于这一点我觉得有点牵强,因为相比于图像超分辨率领域,图像风格转换领域的paired data难以获得的多,所以CycleGAN仅仅针对于unpaired data也是有现实因素在里面的(大清自有国情在啊…)不过我们不可否认,从文章后面的消融实验可以看出,通过 ρ ρ ρ来调节两类数据为适当比例进行训练,确实在一定程度上可以提升模型性能。

  1. 总结

本文作为第一篇在图像超分辨率领域使用环形训练方式的文章,用一种很独特的方法极大的提升了模型的性能。此外,虽然文章给出的是一种具体模型,但是我个人认为,这种方法是通用性的,只需将dual network稍加改进,便可添加到已有的图像超分辨率模型中使用。


  1. Yoon J., Jordon J. & van der Schaar M. (2018) Gain: Missing data imputation using generative adversarial nets. In International Conference on Machine Learning (ICML).。 ↩︎

  2. Sanchez-Morales, A., Sancho-Gómez, J. L., Martınez-Garcıa, J. A., & Figueiras-Vidal, A.R. (2020). Improving deep learning performance with missing values via deletion and compensation. Neural Computing and Applications, 32(17), 13233-13244 ↩︎

你可能感兴趣的:(超分辨率,深度学习,机器学习)