VDSR、DRRN、LapSRN、RCAN、DSRN…你都掌握了吗?一文总结超分辨率分析必备经典模型(二)
机器之心专栏
本文将分 3 期进行连载,共介绍 16 个在超分辨率分析任务上曾取得 SOTA 的经典模型。
第 1 期:SRCNN、DRCN、FSRCNN、ESPCN、SRGAN、RED
第 2 期:VDSR、DRRN、LapSRN、RCAN、DSRN
第 3 期:SFT-GAN、CSRCNN、CSNLN、HAN+、Config (f)
您正在阅读的是其中的第 2 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。
第 1 期回顾:SRCNN、DRCN、FSRCNN、ESPCN、SRGAN、RED…你都掌握了吗?一文总结超分辨率分析必备经典模型(一)
模型 | SOTA!模型资源站收录情况 | 模型来源论文 |
---|---|---|
VDSR | https://sota.jiqizhixin.com/project/vdsr收录实现数量:2支持框架:PyTorch、TensorFlow | Accurate Image Super-Resolution Using Very Deep Convolutional Networks |
DRRN | https://sota.jiqizhixin.com/project/drrn收录实现数量:1支持框架:TensorFlow | Image super-resolution via deep recursive residual network |
LapSRN | https://sota.jiqizhixin.com/project/lapsrn收录实现数量:1支持框架:PyTorch | Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution |
RCAN | https://sota.jiqizhixin.com/project/rcan收录实现数量:21支持框架:PyTorch、TensorFlow、MindSpore | Image Super-Resolution Using Very Deep Residual Channel Attention Networks |
DSRN | https://sota.jiqizhixin.com/project/dsrn收录实现数量:1支持框架:TensorFlow | Image Super-Resolution via Dual-State Recurrent Networks |
图像超分辨率(Super Resolution,SR)是指从低分辨率(Low Resolution,LR)图像中恢复高分辨率(High Resolution, HR)图像的过程,是计算机视觉和图像处理中一类重要的图像处理技术。SR在现实世界中有着广泛的应用,如医疗成像、监控和安全等。除了提高图像感知质量外,SR还有助于改善其他计算机视觉任务。一般来说,超分辨率分析是非常具有挑战性的,而且本身就是一个难题,因为总是有多个HR图像对应于一个LR图像。在已有文献中,研究人员提出了各种经典的SR方法,包括基于预测的方法、基于边缘的方法、统计方法、基于patch的方法和稀疏表示方法等。
近年来,随着深度学习技术的快速发展,基于深度学习的SR模型得到了快速发展,并在SR的各种基准上取得了最先进的性能。各种各样的深度学习方法已经被应用于SR任务,从早期的基于卷积神经网络(CNN)的方法到最近使用的生成对抗网络的SR方法。一般来说,使用深度学习技术的SR方法在以下主要方面有所不同:不同类型的网络架构、不同类型的损失函数、不同类型的学习原理和策略等。
超分辨率分析可以分为视频超分辨率VSR(Video Super Resolution) 和单帧超分辨率SISR(Single Image Super Resolution),本文重点关注单帧超分辨率分析方法。本文聚焦于深度学习技术,回顾SISR中必备的TOP模型。
1、 VDSR
VDSR( Very Deep Convolutional Networks SR)使用了一个非常深的卷积网络,灵感来自于Imagenet分类。作者发现,网络深度的增加导致了图像清晰度的显著提高。VDSR使用了20个权重层。通过在深度网络结构中多次级联小滤波器,有效地利用了大图像区域上的上下文信息。然而,在非常深的网络中,收敛速度成为训练过程中的一个关键问题。该文提出了一个简单而有效的训练程序,只学习残差,并使用极高的学习率。VDSR网络结构如图1。
图1 VDSR结构图
如图1,首先将图像进行插值得到LR图像,再将其输入网络。网络是基于VGG19的,利用了19组conv+relu层,每个conv采用的滤波器规格为3364。在卷积过程中,VDSR处理边缘像素采用了三种解决办法:1)限制核中心与边缘的距离;2)用0填充,通过公式计算padding宽度;3)用边缘像素填充,通过公式计算padding宽度。图9中所示VDSR共计D 层,其中,除了第一个和最后一层之外其它各层都是相同类型的,即,64 个大小为3 × 3 × 64的过滤器,每个过滤器运行在跨64个通道的3 × 3空间区域中(特征图)。第一层用于处理输入图像,最后一层则用于图像重建,由一个大小为3 × 3 × 64的单一滤波器组成。
假定一个训练集,我们的目的是学习模型预测值y^=f(x)
是对目标高分辨率图像的估计,损失函数:
在SRCNN中,输入的低分辨率图像必须通过所有层,直到它到达输出层,由此导致了严重的梯度消失/爆炸问题。作者引入了残差学习来解决这个问题。由于输入图像和输出图像非常相似,作者定义了一个残差图像r=y−x,其中大多数数值很可能是零或较小。我们想预测这个残差图像,损失函数变为:
其中,f(x)是网络预测。直接对残差图像进行建模,可以更快收敛,甚至有更好的精度。在网络中,这种改变展示在损失层。损失层有三个输入:残差估计、网络输入(LR图像)和真实的HR图像。损失计算为重建图像(网络输入和输出之和)与真实图像之间的欧式距离。利用基于反向传播的小batch梯度下降优化回归目标进行训练。作者设置动量参数为0.9,训练通过权重衰减(L2*0.0001)来规范化。
对于VDSR深度的训练还有一个问题:训练深的模型可能无法在现实的时间限制中收敛,作者分析,提高学习率以促进训练是一个基本的经验法则,但简单地增加学习率也会导致梯度消失或者梯度爆炸。因此,作者引入一个可调整的梯度裁剪最大化地提高速度,同时抑制梯度爆炸。利用裁剪,使梯度限制在一定的范围之内。利用训练中常用的随机梯度下降算法,将学习率乘以调整步长。为了能最大化收敛速度,作者将学习率裁剪为[−Θ/γ,−Θ/γ],
其中,γ是当前的学习率。
当前SOTA!平台收录VDSR共2个模型实现。
项目 | SOTA!平台项目详情页 |
---|---|
VDSR | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/vdsr |
2、 DRRN
本文提出的方法可以在一定程度上看做是DRCN的改良版,保留了DRCN的全局skip connection和循环块提升网络深度但限制参数量的思想,增加了ResNet的局部skip connection的思想。
图2 (a)ResNet简化结构。绿色的虚线框表示一个残差单元。(b) VDSR。紫色的线指的是一个全局身份映射。(c) DRCN。蓝色虚线框指的是一个递归层,其中卷积层(浅绿色)共享相同的权重。(d) DRRN。红色虚线框指的是由两个残差单元组成的递归块。在递归块中,残差单元中的相应卷积层(浅绿色或浅红色)共享相同的权重
具有预激活结构的残差单元表述为:
作者不直接使用上述残差单元,而是令身份分支和残差分支的输入不同,将残差单元重构为:
图3 递归块结构。U表示递归块中的残差单元数
进一步,作者在递归块的开始引入一个卷积层,然后将几个残差单元堆叠起来。如图11所示。令B为递归块的数量,x_b-1和x_b(b=1,2,...,B)为第b个递归块的输入和输出,(H_b)^0=fb(x_b-1)为x_b-1通过第一个卷积层后的结果,其函数为fb。第u个残差单元的结果是:
第b个递归块x_b的输出是:
最后,简单地堆叠几个递归块,然后用卷积层重建LR和HR图像之间的残差。将残差图像添加到来自输入LR图像的全局身份映射中。图12给出DRRN的整个网络结构。
图4 B=6、U=3的DRRN网络结构示例。这里,"RB "层是指递归块
当前SOTA!平台收录DRRN共1个模型实现。
项目 | SOTA!平台项目详情页 |
---|---|
DRRN | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/drrn |
3、LapSRN
本文提出了Laplacian金字塔超分辨率网络(Laplacian Pyramid Super-Resolution Network,LapSRN)来逐步重构高分辨率图像的子频带残差(sub-band residuals)。在每个金字塔的层,将低分辨率特征图作为输入,预测高频残差(high-frequency residuals),并使用反卷积(transposed convolutions)来进行向上采样到finer level。LapSRN并没有将双三次插值(bicubic interpolation)作为预处理步骤,从而减小了计算的复杂性。作者引入了一个强大的Charbonnier损失函数对所提出的LapSRN进行监督,实现了高质量的重建。网络通过渐进的重构,在一个前馈的过程(feed-forward)中生成了多尺度预测,从而促进了资源感知的应用。
图5 SRCNN、FSRCNN、VDSR、DRCN和LapSRN的网络结构。红色箭头表示卷积层。蓝色箭头表示转置的卷积(上采样)。绿色箭头表示元素相加运算,橙色箭头表示递归层
如图5(e)所示,在拉普拉斯金字塔框架的基础上构建网络。模型将LR图像作为输入(而不是LR图像的放大版本),并逐步预测log_2S水平的残差图像,其中,S是比例因子。例如,该网络由3个子网络组成,用于处理比例因子为8的LR图像。模型有两个分支:(1)特征提取(2)图像重建。
特征提取。在第s层,特征提取分支由d个卷积层和一个转置卷积层组成,对提取的特征按2的比例进行上采样。每个转置的卷积层的输出连接到两个不同的层:(1)用于重建s级残差图像的卷积层。(2)用于提取更高级别s+1特征的卷积层。作者在较低的分辨率下进行特征提取,并在较高的分辨率下生成特征图,只用一个转置的卷积层。与现有的在较高分辨率下进行所有特征提取和重建的网络相比,该网络设计大大降低了计算的复杂性。请注意,较低层次的特征表征与较高层次的特征表征是共享的,因此可以增加网络的非线性,以学习更高层次的复杂映射。
图像重建。在第s层,输入图像通过一个转置的卷积(上采样)层以2的比例进行上采样。使用双线性核初始化该层,并允许它与所有其他层联合优化。然后,上采样的图像与来自特征提取分支的预测残差图像相结合(使用元素相加),生成一个高分辨率的输出图像。然后,s级的输出HR图像被送入s+1级的图像重建分支。整个网络是一个级联的CNN,每一级都有类似的结构。
本文采用的损失函数如下:
当前SOTA!平台收录LapSRN共1个模型实现。
项目 | SOTA!平台项目详情页 |
---|---|
LapSRN | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/lapsrn |
4、 RCAN
CNN的深度是SR的关键,但深层的CNN很难训练。低分辨率的输入和特征包含大量的低频信息,而在通道间是无区别对待这些低频信息的,这对CNN的表示能力有影响。为解决该问题,作者提出了RCAN(deep residual channel attention networks),该网络层数更深,同时还能自适应学习更多有用的通道相关特征。具体来说,RCAN包括RIR(residual in residual)网络和通道注意力机制。RIR由几个具有long skip connection的残差组构成,每个残差组都包含一些short skip connection的残差块。RIR可以通过多个skip connection绕过大量的低频信息,使主网络专注于高频信息的学习。通道注意力机制考虑通道之间的相互依赖性,自适应地缩放通道中的相关特征。RCAN结构如图6。
图6 RCAN网络架构
输入低分辨率图像,首先过一个卷积层:
其中,F0为浅层特征。然后过一个RIR模块来提取深层次特征:
然后使用上采样模块:
经过重建层:
使用L1损失函数;
当前SOTA!平台收录RCAN共21个模型实现。
项目 | SOTA!平台项目详情页 |
---|---|
RCAN | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/rcan |
5、 DSRN
因为深度学习的超分辨率算法的快速发展,我们注意到许多最先进的深度SR架构可以被重新表述为单状态递归神经网络(RNN)的有限展开,在这篇论文中,基于RNN的紧凑结构,作者提出了一个两种状态(dual-state designs)的设计,即Dual-State Recurrent Network(DSRN)。与传统的Single-State的超分辨率算法相比(如图15),Dual-state的操作在两种空间中同时执行,HR和LR空间同时操作。循环信号就是这样通过一个delayed feedback在HR空间和LR空间中交换。
图7 (a) single-state RNN示例,它的特征是输入状态x、输出状态y和一个单一的递归状态s。黑色方块表示延迟了一个时间步长的状态转换函数。(b) single-state RNN的有限展开(T次)。(c)-(e)使single-state RNN等同的所需递归函数 ResNet、DRCN和DRRN。不同颜色的 "Conv "层表示不同的参数
图8 (a) DSRN的循环表示,其图的定义与图15(a)相同。(b) unrolled DSRN。相同颜色的边具有相同的状态转换函数和共享参数
双状态设计。与在同一空间分辨率下工作的单状态模型不同,DSRN同时包含了LR和HR空间的信息。具体来说,图16(a)中的s_l和s_h分别表示LR状态和HR状态。四个彩色箭头表示这两种状态之间的过渡函数。蓝色(f_lr)、橙色(f_hr)和黄色(f_up)链接存在于传统的两层RNN中,分别提供从LR到LR、HR到HR、LR到HR的信息流。为了进一步实现s_l和s_h之间的双向信息流动,增加了绿色链接。这里,引入了一个延迟的HR到LR的连接。DSRN的总体动态如下:
图8(b)通过一个展开的图展示了同样的概念,其中最上面一行代表HR状态,而下面一行是LR。这种设计选择鼓励了不同分辨率的特征专业化和不同分辨率的信息共享。
过渡函数。模型有六个过渡函数。如图8(b)所示,f_up、f_down、f_lr和f_hr。具体来说,使用标准的残差块来实现两个自过渡。单个卷积层用于下采样转换,单个转置的卷积(或反卷积)层用于上采样转换。这两个状态间层的步长被设置为与SR上标系数相同。
展开细节。与展开single state RNN以获得ResNet类似,对于图像SR,令x^t不影响计算状态转换:
将(s_l)^0设置为两个带有skip connection的卷积层的输出,该卷积层接收LR输入图像并将其转化为所需的特征空间。此外,(s_h)^0设置为零。
深度监督。unrolled DSRN能够在每个时间步长t执行如下:
其中,f_output是由一个卷积层表征的。然后,不是只在最后的展开T处进行预测,而是对所有的预测进行平均,如:
因此,每一个unrolled层都直接连接到损失层,以促进这样一个非常深的网络的训练。此外,该模型预测残差图像并使以下均方误差最小化:
当前SOTA!平台收录DSRN共1个模型实现。
项目 | SOTA!平台项目详情页 |
---|---|
DSRN | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/dsrn |
前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。
网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。
移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。
微信扫码关注该文公众号作者