图像超分辨率网络:RCAN

共 3165字,需浏览 7分钟

 ·

2021-12-29 09:07

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

   作者:石文华                      


前  言


章节目录

  1. 存在问题

  2. 主要贡献

  3. 网络结构

  4. 网络的细节

  5. 实验部分



01

存在问题

(1)、观察到图像SR的非常深的网络更难以训练,以及简单地堆叠残差块以构建更深的网络几乎无法获得更好的改进。更深层次的网络是否能进一步促进图像SR的性能,以及如何构建非常深的可训练网络,仍有待探讨。 

(2)、图像SR可以看作是这样一个过程:试图恢复尽可能多的高频信息。LR图像包含大多数低频信息,这些信息可以直接传递到最终的HR输出,不需要太多的计算。 

(3)、基于CNN的很多方法(例如,EDSR )将从原始LR输入中提取特征,但这些信息在信道上被平等对待。这样的过程会浪费不必要的计算以获得丰富的低频特征,缺乏跨特征通道的判别性学习能力,最终阻碍了CNN的表示能力。


02

主要贡献

(1)提出了一种非常深的残差信道注意网络(RCAN),用于高精度的图像SR。RCAN的深度可以构造的比以前基于CNN的网络更深,并获得更好的SR性能。 

(2)提出了Residual in Residual结构(RIR)来构建非常深的可训练网络。RIR中的长跳和短跳连接有助于传递丰富的低频信息,使主网络学习到更有效的信息。 

(3)提出了信道注意(CA)机制,通过考虑特征信道之间的相互依赖性自适应地调整特征。这种CA机制进一步提高了网络的表达能 力。。



03

网络结构


RCAN主要由四部分组成:浅特征提取、residual in residual (RIR) 深度特征提取、上采样模块和重建部分。假设I(LR)和I(SR)表示为RCAN的输入和输出。 

(1)、浅特征提取:仅使用一个卷积层(conv)从LR输入中提取浅特征F0(其中Hsf表示卷积运算,F0用于RIR模块的深度特征提取):

(2)、residual in residual (RIR) 深度特征提取(Hrir表示的是RIR模块,包括G个残差组):


(3)、上采样模块(Hup表示上采样的算法,Fup表示上采样之后得到的特征图):


有几种选择可用作上采样的模块,例如反卷积层(也称为转置卷积),最近邻上采样+ 

卷积以及ESPCN的亚像素卷神经网络。 

(4)、重建,通过一个Conv层重建升级的特征:

(5)、损失函数:超分辨loss有l1,l2,gan的loss以及纹理结构perceptual loss,为了保证有效性,选择了L1 loss:



04

网络的细节

(1)、Residual in Residual (RIR):

    RIR结构包含G个residual组(RG)和长跳跃连接(LSC),每一个RG包含B个具有短跳跃连接的残差通道注意块(RCAB),这种RIR的结构能够使高性能的图像SR算法训练的更深(超过400层)。第G组中的RG表示如下:

Hg表示的是第G个RG,Fg-1和Fg分别是第G个RG的输入和输出,作者发现,简单地堆叠多个RG将无法获得更好的性能。为了解决这个问题,在RIR中进一步引入了长跳跃连接(LSC),以稳定训练深的网络。LSC表示如下:

表达式中,Wlsc为最后一个RIR模块后接的一个conv层的权重,为了简单起见,省略了偏置项。

LSC不仅可以简化RG之间的信息流,而且可以在粗略的级别学习残差信息。在LR输入和特征包含着丰富的信息,SR网络的目标是恢复更多有用的信息。丰富的低频信息可以通过跳跃连接传输到后面。 

此外,每个RG中堆叠B个残差信道注意块。第g个RG中的第b个残留信道关注块(RCAB)可以表示为:

Fg,b-1和Fg,b表示的是第g个RG中的第b个RCAB的输入和输出,与RG块类似,这B个残差信道注意块也具有跳跃连接,称为短跳跃连接(SSC):

Wg是第g个RB模块尾部的一个conv的权重。LSC和SSC的存在,使更丰富的低频信息在训练过程流动到更深层。

(2)、Channel Attention (CA)

    以前基于CNN的SR方法对LR信道特征的处理是相同的,这在实际情况中并不灵活。为了使网络专注于更多信息特征,利用特征信道之间的相互依赖性,形成信道注意力机制。如下图所示:

使用全局平均池来将通道的全局空间信息转换为通道描述符,也就是获取1x1xc的特征图,然后压缩成1x1xc/r的特征图,接着再恢复回1x1xc,最后再通过一个sigmoid激活函数获取1x1xc的表示每个通道的权值的描述符,最后各通道权重值分别和原特征图对应通道的二维矩阵相乘。(f表示sigmoid,δ表示relu,s是通道的权重,Xc是全局平均池化前的特征图): 


(3)、Residual Channel Attention Block (RCAB)


将CA集成到RB中并提出残余信道注意块(RCAB)(如上图)。对于第g个RG中的第b个RB,表示如下(Rg,b表示的是CA函数模块,fg,b−1与fg,b分别表示的是输入和输出,Xg,b表示的是残差块中的2个堆叠的卷积):


05

实验部分

    RIR模块G=10个,每个RIR中,RCAB设为20个,对于卷积层,除了通道缩减和通道扩展中的内核大小为1×1,其他的用3x3的filter并使用零填充策略来保持大小固定, 浅层特征提取和RIR结构中的Conv层具有C = 64个filter, 通道缩减中的Conv层具有C / r = 4filter,其中缩减率r设置为16,上采样模块使用亚像素卷积,最后的卷积层有3个filter,表示输出为彩色图像。 

urban100和manga109数据集上4×SR,相关模型的效果:


urban100和manga109数据集上8×SR,相关模型的效果 :

模型定量结果。最佳和次优结果

代码地址 

网络结构的代码详见: 

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

欢迎大家指正和star~ 

参考: 

https://arxiv.org/pdf/1807.02758.pdf


下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python+OpenCV视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:Pytorch常用函数手册
小白学视觉公众号后台回复:pytorch常用函数手册即可下载含有200余个Pytorch常用函数的使用方式,帮助快速入门深度学习。


交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 62
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报