图像超分辨率网络:RDN
作者:石文华
编辑:陈人和
前 言
章节目录
存在问题
解决方法
网络结构
细节
实验结果
话题模型
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模型与前向反向传播算法
【4】 终于来了!TensorFlow 2.0入门指南(下篇)
【5】 终于来了!TensorFlow 2.0入门指南(上篇)
机器学习算法工程师
一个用心的公众号
进群,学习,得帮助
你的关注,我们的热度,
我们一定给你学习最大的帮助