【论文笔记】Residual Dense Network for Image Super-Resolution

Residual Dense Network for Image Super-Resolution

Abstract

  • 1.深层CNN拥有提取多层次的特征(低维,高维特征)的能力,但多数基于CNN的超分辨率模型不能完全利用这些特征。
  • 2.(Residual Dense Network) RDN网络可以解决上述问题,充分利用提取出的多层次信息。
  • 3.RDN网络中的密集连接 Residual dense block(RDB)抽取足够多的局部特征,通过连续记忆机制(contiguous memory(CM)),链接至所有当前RBD的卷积操作(Dense)。
  • 4.RDB抽取出的局部特征会通过 1*1的卷积来减少多余特征并进行再学习
  • 5.局部特征抽取完毕之后,RDN网络会将多个RDB结构的输出以及浅层特征进行全局特征结合。
  • 6.上述网络RDN在Super Resolution(超分辨率)任务多个公共数据集上取得state-of-the-art

Introduction

  • 1.Single image Super-Resolution(SISR)任务是通过低分辨率低图片生成高分辨率的图片。应用场景十分广泛
  • 2.此处至介绍了DL相关的方法,SISR任务中主要性能的提升都是一些CNN中普适的优化:
  • 2.1 增加CNN网络深度,使用残差,梯度裁剪等方法降低训练难度
  • 2.2 大大增加网络宽度和深度,使用残差缩放,用大型的网络提升性能
  • 2.3 memory block 记忆块来建立MeMNet,希望能够保存底层,浅层的特征
  • 3.上述方法1,2不能保证完整使用层级特征(Abstract 1)方法3长期记忆机制并不能直接链接特征,因此也很难利用全部特征。
  • 4.层级特征会更完善的表征图像,从大小,视图,角度等方面,但很多网络拒绝这么做。XXXX的网络有XXXX不好
  • 5.RDN网络可以通过RDB运用全部的层次特征(Abstract 2)
  • 5.1 RDB中通过密集残差链接 通过局部残差学习(Local Residual Learning(LRL))得到Local Feature Fusion(LFL),RDB之间支持连续学习机制
  • 5.2 LRL允许大量的特征进入并动态过滤出有效的结果,这为网络学习的稳定性提供了很好的保证
  • 5.3 局部特征融合(LFF)完成之后,网络会进行全局特征融合(Global Feature Fusion(GFF)),将每一个RDB的输出结果与最初的卷积提取出的浅层结果进行特征融合。

Related Work

第一部分主要介绍了SR这个领域中深度学习的方法,此处仅列出粗浅结构特性,建议大家通过网络名称去查询原论文

1. 具有代表性的解决 SR 问题的DL方法
  • 1.1 SRCNN 端到端映射
  • 1.2 VDSR IRCNN 堆叠stack 残差卷积层 增加网络深度
  • 1.3 DRCN 递归学习
  • 1.4 DRRN (Recusive block)递归块
  • 1.5 Memnet (Memory block)记忆块
以上的网络均需要在网络输入时对其插值(resize操作),这对图片本身的信息就有了损失且增加了计算量,最终难以建立低清晰度与高清晰度图片之间的映射。
2. 为了解决上述问题,另外一类DL方法:
  • 2.1 使用反卷积网络进行 upsample
  • 2.2 PCN sub-pixel卷积层 upscale
  • 2.3 SRResNet EDSR sub-pixel + residual block
第二类网路由于使用了反卷积或者sub-pixel卷积,均不可以做到实时的图片超分辨率,甚至不可以建立大型的网络
3.为了解决上述问题:
  • 3.1 堆叠建立残差卷积层的网络可以使用最后一层特征来进行放大

第二部分主要介绍RDN网络相关的工作

1. DenseNet
  • 1.1 DenseNet 使得任意两个卷积层之间的结果进行连接,使得更多的信息被保留
  • 1.2 Dense connection 被运用于 DensetNet, SRDenseNet, MemNet, RDN

总结

上述工作均取得了不错的效果,但是要用上全部层级特征的问题,还是看我们提出的RDN (笔者:挺搞笑的)

Residual Denset Network for Image Super Resolution

文章缩写过多,使用Main Abbreviation table列举

AbbreviationFull nameMeaning
RDNResidual Dense Network密集残差网络
RDBResidual Dense Block密集残差块
SRSuper Resolution超分辨率
LRLow Resolution低分辨率
HRHigh Resolution高分辨率
LFFLocal Feature Fusion局部特征融合
LRLLocal Residual Learning局部残差学习
CMcontiguous memory连续记忆
SFEShallow Feature Extraction浅层特征抽取
GFFGlobal Feature Fusion全局特征融合
GRLGlobal Residual Learning全局残差学习
DFFDense Feature Fusion密集特征融合
UPNetUp-sampling net超采样网络

Main notation table

NotationMeaningExplaination
I L R I_{LR} ILRImage with Low Resolution低清晰度图片(输入)
I H R I_{HR} IHRImage with High Resolution高清晰度图片(输出)
F − 1 F_{-1} F1Output of SFE layer1浅层卷积第一层输出
F 0 F_{0} F0Output of SFE layer2浅层卷积第二层输出
H s t h H_{sth} HsthFunction of something某某结构的功能
σ \sigma σActivation Function激活函数

Network Structure

RDN网络由4部分组成:

RDN 结构

  • 1.浅层特征抽取网络(Shallow feature extraction net(SFENet)) 指上图中左侧蓝色两个卷积层,提取浅层特征。
  • 2.多个密集残差块(Residual Dense Blocks (RDBs)) 指上图中中间部分 D D D 个RDB.
  • 3.密集特征融合(Dense Feature Fusion(DFF))
  • 3.1 Local Feature Fusion(LFF) 指 D D D个RDB输出结果Concate之后经过1*1 Conv 与Conv layer之后得出 F G F F_{GF} FGF的过程
  • 3.2 Global Feature Fusion(GFF) 指LFF的结果 F G F F_{GF} FGF与浅层卷积的中间结果 F − 1 F_{-1} F1结合得出 F D F F_{DF} FDF的过程
  • 4.升采样网络(Up-sample Net (UPNet)) 图中紫色块 Upscale的架构,主要用到了Related Work中的反卷积网络

上述架构会在下文详细介绍:

Shallow Feature Extraction Net:

F − 1 = H S F E 1 ( I L R ) (1) F_{-1} = H_{SFE1}(I_{LR}) \tag{1} F1=HSFE1(ILR)(1)

F 0 = H S F E 2 ( F − 1 ) (2) F_{0} = H_{SFE2}(F_{-1}) \tag{2} F0=HSFE2(F1)(2)
其中:

  • I L R I_{LR} ILR代表了低清晰度图片输入
  • H S F E 1 , H S F E 2 H_{SFE1}, H_{SFE2} HSFE1,HSFE2代表了SFENet第一层, 第二层卷积
  • F − 1 , F 0 F_{-1}, F_{0} F1,F0分别代表了两层卷积之后的输出结果
Multiple Residual Dense Blocks:

F d = H R D B , d ( F d − 1 ) = H R D B , d ( H R D B , d − 1 ( . . . ( H R D B , 1 ( F 0 ) ) . . . ) ) (3) \begin{aligned} F_d &= H_{RDB, d}(F_{d-1})\\ &= H_{RDB, d}(H_{RDB, d-1}(...(H_{RDB, 1}(F_0))...)) \end{aligned} \tag{3} Fd=HRDB,d(Fd1)=HRDB,d(HRDB,d1(...(HRDB,1(F0))...))(3)
其中:

  • H R D B , d H_{RDB, d} HRDB,d代表第 d d d个RDB, 其结果是前 d − 1 d-1 d1个RDB的计算结果, H R D B , 1 H_{RDB, 1} HRDB,1的输入就是 SFENet的输出结果 F 0 F_0 F0
  • 每两个RDB之间可以通过激活函数,文中用的是ReLU
  • F d F_d Fd, F d − 1 F_{d-1} Fd1均是每个对应RDB 内部 Local Feature Fusion与Local Residual Learning之后的结果!,具体会在 RDB中解释
Dense Feature Fusion:

F D F = H D F F ( F − 1 , F 0 , F 1 , . . . , F D ) (4) F_{DF} = H_{DFF}(F_{-1}, F_{0}, F_{1}, ... ,F_{D}) \tag{4} FDF=HDFF(F1,F0,F1,...,FD)(4)
其中:

  • Dense Feature Fusion包含了 Dense Feature Learning 与 Global Feature Fusion
  • F − 1 F_{-1} F1 是浅层卷积第一层输出的feature (Dense Feature Learning)
  • F 0 , F 1 , . . . , F D F_{0}, F_{1}, ..., F_{D} F0,F1,...,FD分别代表了 D D D个RDB输出的结果 (Global Feature Fusion)
  • H D F F H_{DFF} HDFF代表了Dense Feature Fusion功能

这样就结合起了 最浅层的特征,以及 D D D层级抽取的特征,拥有了最全的图像信息

Summarize:

I S R = H R D N ( I L R ) (5) I_{SR} = H_{RDN}(I_{LR}) \tag{5} ISR=HRDN(ILR)(5)
描述了整个网络的功能即是将低分辨率图像生成出高分辨率图像

Residual Dense Block

RDB结构

RDB结构中包含:

  • 局部特征融合(Local Feature Fusion(LFF))
  • 局部残差学习(Local Residual Learning)
  • 连续记忆机制(contiguous memory(CM) mechanism)

Contiguous memory

在一个RDB中,有多个卷积层,对于第 c c c个卷积层的输出为:
F d , c = σ ( W d , c [ F d − 1 , F d , 1 , . . . , F d , c − 1 ] ) (6) F_{d, c} = \sigma(W_{d,c}[F_{d-1}, F_{d, 1}, ..., F_{d, c-1}]) \tag{6} Fd,c=σ(Wd,c[Fd1,Fd,1,...,Fd,c1])(6)
其中:

  • W d , c W_{d, c} Wd,c代表的是第 d d d个RDB中第 c c c个卷积操作 注意:为了更简洁的网络,原文中每个weights对应的都取消了bias
  • F d − 1 F_{d-1} Fd1代表第 d − 1 d-1 d1个RDB的输出
  • F d , 1 , F d , 2 , . . . , F d , c − 1 F_{d, 1}, F_{d, 2}, ..., F_{d, c-1} Fd,1,Fd,2,...,Fd,c1代表前 c − 1 c-1 c1个卷积的输出,全部dense connect。
Contiguous memory 意思就是dense connection,连续的连接保证了连续的低级高级信息存储和记忆,每一个RDB模块的输出结果,concate上一个RDB模块的输出,以及所有的卷积层之间的信息,其包含local feature极其丰富,也包含了层级信息,保证了信息不丢失。

Local Feature Fusion

对第 d d d个 RDB来说:
F d , L F = H L F F d ( [ F d − 1 , F d , 1 , . . . , F d , c , . . . , F d , C ] ) (7) F_{d, LF} = H^d_{LFF}([F_{d-1}, F_{d, 1}, ..., F_{d, c}, ..., F_{d, C}]) \tag{7} Fd,LF=HLFFd([Fd1,Fd,1,...,Fd,c,...,Fd,C])(7)
其中:

  • F d − 1 F_{d-1} Fd1代表第 d − 1 d-1 d1个RDB的输出
  • F d , 1 , F d , 2 , . . . , F d , C F_{d, 1}, F_{d, 2}, ..., F_{d, C} Fd,1,Fd,2,...,Fd,C代表该RDB内部所有 C C C个卷积层输出
  • 将以上信息通过 H L F F d H^d_{LFF} HLFFd融合 则得到 F d , L F F_{d, LF} Fd,LF

Local Residual Learning

对第 d d d个RDB来说:
F d = F d − 1 + F d , L F (8) F_d = F_{d-1}+ F_{d,LF} \tag{8} Fd=Fd1+Fd,LF(8)
就是将公式7 LFF的结果与上一个RDB的输出结果进行skip connection也就是残差链接。整合了上一层RDB输出信息与当前RDB结合的feature,保证了层级信息与信息不被丢失。

Dense Feature Fusion

通过RDBs 抽取除了足够多了 Local Dense Features之后,进行全局信息整合,具体包含两步:

  • 全局特征融合 (Global Feature Fusion(GFF))
  • 全局残差学习 (Global Residual Learning(GRL))

Global Feature Fusion

F G F = H G F F ( [ F 1 , . . . , F D ] ) (9) F_{GF} = H_{GFF}([F_1, ..., F_D]) \tag{9} FGF=HGFF([F1,...,FD])(9)
其中:

  • [ F 1 , . . . , F D ] [F_1, ..., F_D] [F1,...,FD] 代表了 D D D个RDB的输出结果concat起来
  • G G F F G_{GFF} GGFF代表了Fig.2中中间部分的11 Conv与 33 Conv两层,抽取出更高层的特征。

Global Residual Learning

F D F = F − 1 + F G F (10) F_{DF} = F_{-1} + F_{GF} \tag{10} FDF=F1+FGF(10)
就是将浅层特征与最高层的全局融合特征再进行了残差连接
得到了 F D F F_{DF} FDF,最后将这些特征送入Upscaler,最终得到放大后的图片输出。

Implementation Details

  • LFF 与 GFF中的两个卷积 kernel size 1*1,其他所有的卷积核size均为3 * 3.
  • 每一层之间不同于传统的Residual Block,取消了Batch Normalization
  • 不再使用pooling layers

Experiments

实验此处不再赘述。有兴趣直接去看原论文吧
代码:https://github.com/yulunzhang/RDN.
主要数据集: DIV2K, Set5, Set14, B100, Urban100, Manga109

Ablation Study

消融研究
通过对模型不同模块的缺省和性能分析,可以看出每一个模块和连接均对性能有了不同程度的提升。

CaseStudy

样例研究

Conclusion

  • 文章将 MemNet中对记忆机制运用到dense connection与feature fusion的特征通过上
  • 文章将residual connect 与 dense connect进行了结合,从loca,global等多个角度均体现了dense, residual的思想,极大程度的保证了信息的全面性与层级性,保证多层级特征不被丢失,取得最佳的效果。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页