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

在这里插入图片描述

Deep Unfolding Network for Image Super-Resolution本文是2020年较早的一篇关于单图像超分的文章。本文针对于non-blind情况,即已知LR图像,下采样方法,模糊核,噪声的情况下,求对应的HR图像。不同于传统的方法,本文提出了一种model-based和learning-based相结合的方法,对解决超分辨率问题开辟了一个新的途径。

文章切入点:

当前的退化图像还原方法主要分为两种,一种是model-based方法,就是通过将问题公式化,然后通过不断迭代结果,最终得到一个令人较为满意的解。作者提出这种方法虽然有着一定的灵活性(可以将不同的下采样倍数,模糊核,噪声强度带入公式),但是却不能对生成结果进行直观的评判,也就是经典的感知损失不能集合进去,这使得模型没法进行end-to-end的进行优化。此外,对于经典的双三次下采样方法,通过model-based方法计算其上采样异常复杂,并且计算量非常巨大,这也是制约这类方法在图像超分领域发展的一个重要原因。另外一种方法是learning-based方法,也就是我们常说的深度学习的方法。众所周知,深度学习是一个黑盒子,特别是针对这种ill-posed问题,其黑盒子特征更为明显。即使这样,我们不能否认这种方法在近些年的图像超分领域取得的成就,其可以引入各种感知损失,通过end-to-end的训练方法,得到令人满意的模型。并且针对各种复杂的下采样方法,learning-based方法可以很容易的进行拟合。然而作者也指出,由于模型训练时的限定,这种方法的拓展性往往不尽人意。
通过上面的分析,我们可以看出,两者方法互有优劣,并且两者是可以互补的,因此作者提出,如果将两者的优点集于一身,岂不美哉。

文章创新点:

为了实现上面这个目的,本文提出了一种深度展开网络: deep unfolding super-resolution network,这种网络就像一个桥梁,联通了这两类方法。它既可以像model-based方法一样在应对不同的下采样倍数、模糊核、噪声时,将其当做参数与LR一同输入到模型中,有着良好的应用范围,同时也可以像learning-based方法一样,引入各种损失函数,进行端到端的训练,这使得模型可以最大限度的减少人为干预,实现精度最大化。

具体实现:

本文的方法如果用一句话来总结,就是:(1)、将问题公式化,用HQS(alf-quadratic splitting)法将其分为两个可迭代的公式化子问题,(2)、将两个公式化的子问题用神经网络求解。接下来我们来看看具体实现方法。
首先作者提出了超分辨率类问题的公式描述(这是一种model-based描述,并且以后的论文中被多次引用):
k b i c u b i c × s = a r g m i n k ∣ ∣ ( x ⊗ k ) ↓ s − y ∣ ∣ k^{×s}_{bicubic} = argmin_k ||(x ⊗ k)↓_s −y|| kbicubic×s=argmink(xk)sy这里描述的是HR图像 x x x经过模糊核 k k k s s s倍的双三次下采样后,和对应的LR图像 y y y的重建误差。之后,作者又引入了一个额外的先验知识 噪声强度,这个先验知识通过最大后验概率推断(MAP)加入进来,共同构成了本文的一个重要表达式:
E ( x ) = 1 2 σ 2 ∣ ∣ y − ( x ⊗ k ) ↓ s ∣ ∣ 2 + λ Φ ( x ) E(x) =\frac{1}{2σ^2}||y − (x ⊗ k)↓_s||^2 + λΦ(x) E(x)=2σ21y(xk)s2+λΦ(x)这种表达最早在Image Restoration: From Sparse and Low-Rank Priors to Deep Priors这篇文章中被提出,当时只用于图像去噪和去模糊,第一项为保真项,第二项则为惩罚项。在本文中,作者将第一项称之为数据项(data term),称第二项为先验项(prior term), λ \lambda λ是平衡两者的一个超参。很明显,这两项都是正的,所以要想使得生成的结果最优,就要使得第一项和第二项都达到最小。接着作者使用HQS,引入了一个辅助变量 z z z,将上式转化为:
E μ ( x , z ) = 1 2 σ 2 ∣ ∣ y − ( z ⊗ k ) ↓ s ∣ ∣ 2 + λ Φ ( x ) + μ 2 ∣ ∣ z − x ∣ ∣ 2 E_\mu (x,z) =\frac{1}{2σ^2}||y−(z⊗k)↓_s||^2 +λΦ(x)+\frac{\mu}{2}||z−x||^2 Eμ(x,z)=2σ21y(zk)s2+λΦ(x)+2μzx2 μ \mu μ是一个惩罚参数,个人理解是控制最后 z z z x x x差距的。
之后我们发现,上式的第一项不受 x x x影响,第二项不受 z z z影响,而第三项则和二者都有关,因此可以将其转化为两个子问题的迭代:
在这里插入图片描述
这样做的还有一个目的,就是将数据项和先验项解耦和,这种解耦和的思想使得模型可以任意匹配噪声和下采样,从而有了learning-based方法没有的泛化性。到这里,就有了本文的大致框架了,通过model-based方法引入了一种迭代求解的方法,接下来如何对这个迭代进行求解,就要用到神经网络的方法了。
让我们先看看第一部分是如何求解的:
在这里插入图片描述
这里用到了快速傅里叶变换和其复共轭变换。通过(7)式,我们可以将 z k z_k zk x k − 1 x_{k-1} xk1建立联系,从而实现 z k z_k zk的迭代更新。这里注意一下,在(7)式中, k , s , α k k,s,\alpha_k k,s,αk都可以看做输入的超参,因此对于(7)式本身并没有进行迭代更新(因为7式本身没有参数)。我们可以通过简易形式将其表示:
z k = D ( x k − 1 , s , k , y , α k ) . z_k = D(x_{k−1} ,s,k,y,α_k ). zk=D(xk1,s,k,y,αk).接下来就是本文的重点,对于(6)式的求解。对于(6)式,从贝叶斯的角度来看,它实际上可以看做一个去噪问题,其噪声等级为:
β k = λ μ k β_k =\sqrt{\frac{\lambda}{\mu_k}} βk=μkλ 为了进行去噪,作者提出了一个神经网络去噪器ResUNet,其实这个去噪器并不复杂,就是一个添加了残差项的U-Net。这个网络将上式的噪声等级和 z k z_k zk进行concat后作为输入,并输出一个干净图片。我们可以将其表示为:
x k = P ( z k , β k ) x_k = P(z_k ,β_k ) xk=P(zk,βk)这样这个去噪模型就可以根据输入的噪声等级,去噪各种噪声。
最后就是一个权重生成器,来控制数据项和先验项的权重 α k , β k \alpha_k,\beta_k αk,βk。作者也指出,虽然权重可以预先给定,但是为了提高模型的泛化能力,作者还是使用神经网络来自适应的生成,神经网络的输入就是下采样倍数 s s s和噪声等级 σ \sigma σ这里为什么不需要模糊核,个人有点不解),输入就是 α = [ α 1 , . . . , α K ] \alpha=[\alpha_1,...,\alpha_K] α=[α1,...,αK] β = [ β 1 , . . . , β K ] \beta=[\beta_1,...,\beta_K] β=[β1,...,βK]。表示为:
[ α , β ] = H ( σ , s ) . [α,β] = H(σ,s). [α,β]=H(σ,s).
到现在为止,模型三大部件介绍完了,接下来就是拼插在一起,进行end-to-end训练了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值