查看原文
其他

图像超分辨率网络:RDN

石文华 机器学习算法工程师 2021-12-31

   作者:石文华           

编辑:陈人和           


前  言


单幅图像超分辨率(SISR)旨在于低分辨率(LR)尺寸的基础上生成视觉良好的高分辨率(HR)图像。SISR 用于各种计算机视觉任务,如安全和监视成像 、医学成像和图像生成。图像超分辨率是一个不适定(ill-posed)逆过程,因为对于任何 LR 输入都存在多种解决方案。为了解决这个逆问题,研究者们已经提出了大量的图像 SR 算法,包括基于插值、基于重建和基于学习的方法 。


章节目录

  • 存在问题

  • 解决方法

  • 网络结构

  • 细节

  • 实验结果

  • 话题模型


01

存在问题

(1)、EDSR、MemNet等方法随着网络变深,每个卷积层中的特征将具有不同层级的感受野。然而,这些方法忽略了充分利用每个卷积层的信息。尽管提出的记忆块中的门控单元是控制短期记忆的,但局部卷积层不能直接访问后续层,所以很难说记忆块充分利用了其内部所有层的信息。 

(2)、图像中的物体具有不同的大小、视角和高宽比。一个非常深的网络的分层特征将为重构提供更多的线索,大多基于深度学习(DL)的方法(如 VDSR、LapSRN 和 EDSR )在重构时忽略了使用分层特征。




02

解决方法

为了解决这些缺点,提出了残差密度网络(RDN)来有效地从LR空间的所有层中提取和自适应融合特征,通过残差密度网络的残差密集块(RDB)来充分利用原始 LR 图像的所有分层特征,残差密集块如下图(a为 MDSR 中的残差块(residual block),b为 SRDenseNet 中的密集块(dense block),c为残差密集块。):


03

网络结构

由上图所示, RDN 主要包含四部分:浅层特征提取网络(SFENet)、残差密集块(RDBs)、密集特征融合(DFF)以及上采样网络(UPNet)。我们将 ILR 和 ISR 表示为 RDN 的输入和输出,具体来说,我们使用两个 Conv 层来提取浅层特征。前向传播表示如下

(1)浅层卷积1(这一层提取的特征用于进一步的浅层特征提取以及全局的残差学习)

(2)浅层卷积2(这一层提取的特征作为RDB模块的输入):

 

(3)RDB模块,假设我们有d个RDBs,则第d个RDB的输出fd可以表示为: 

(4)密集特征融合(DFF),包括全局特征融合(GFF)和全局残差学习(GRL),它充分利用了前面所有层的特性,可以表示为 

(5)在提取了LR空间中的局部和全局特征后,接着堆叠了一个上采样网络(up net)。这里在upnet中使用了espcn的亚像素卷积层(sub-pixel convolutional layer) 技术,上采样之后再堆叠一个conv层。最后RDN的输出表示为: 



04

细节

(1)、连续记忆机制。 
通过将前一个RDB的状态传递给当前RDB的每一层来实现连续记忆机制。Fd−1和 Fd分别表示第d个RDB模块的输入输出,特征图数都是G0,则第d个 RDB中的第 c个conv层的输出可以表示为

σ表示激活函数,Wd,c是第c个卷积层的权重,假设Fd,c有G个特征图,则[Fd−1, Fd,1, · · · , Fd,c−1]表示由输入(第d-1个RDB模块的输出)经过各个conv得到的特征进行通道上的拼接,拼接到的特征图通道数为:G0+(c − 1) ×G,这样的连接能够使前馈网络更好的传递信息,并且有利于提取局部的密集特征。 

(2)、局部特征融合。 

局部特征融合通过使用concatenation的方式融合前一个RDB和当前RDB中的整个conv层的状态特征,并采用1×1卷积层(助于更大增长率的RDB模块的训练)来自适应控制输出信息,表示如下(H_dLFF表示1*1卷积操作,输出特征图的通道数是G)

(3)、局部残差学习 
也就是将RDB的输入跟局部特征融合之后的特征图进行加和操作,该操作有助于提升模型的表达能力。

(4)、密集特征融合(DFF) 
DFF包括全局特征融合(GFF)和全局残差学习,全局特征融合表示如下

[F1, · · · , FD]表示的是各个RDB模块产生的特征图在通道上拼接起来组成的整体,Hgff表示的是1×1和3×3的卷积操作,1×1卷积层用于自适应融合一系列不同层次的特征。引入3×3卷积层进一步提取特征(即公式9的Fgf)然后进行全局残差学习,全局残差学习表示如下

全局残差学习其实就是浅层产生的也在F-1和FGF进行加和操作。跟RDB的局部残差的套路一样


05

实验结果 

(1)、BD 和 DN 退化模型的基准结果

(2)使用缩放因子×3 的 BD 退化模型的可视化结果。SR 结果分别是由 Urban100 的图像得到的「img 096」和由 Urban100 得到的「img 099」

(3) 使用缩放因子×3 的 DN 退化模型的可视化结果。SR 结果分别是由 B100 的图像得到的「302008」和 Manga109 得到的「LancelotFullThrottle」


网络结构的代码详见: 

https://github.com/cswhshi/super-resolution/blob/master/rdn.py 

欢迎大家指正和star~


参考:

https://arxiv.org/pdf/1802.08797.pdf





 

END








往期回顾

【1】 神经网络长什么样不知道?这有一份简单的 pytorch可视化技巧(1)

【2】 LSTM模型与前向反向传播算法

【3】 深入理解one-stage目标检测算法(上篇)

【4】 终于来了!TensorFlow 2.0入门指南(下篇)

【5】 终于来了!TensorFlow 2.0入门指南(上篇)









机器学习算法工程师


                            一个用心的公众号

长按,识别,加关注

进群,学习,得帮助

你的关注,我们的热度,

我们一定给你学习最大的帮助



你点的每个赞,我都认真当成了喜欢







: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存