FMEN网络----《Fast and Memory-Efficient Network Towards Efficient Image Super-Resolution》论文解读

目录

初步介绍:

引言:

相关工作:

内存分析:

网络结构:

ERB:

 HFAB:

 总结一下整体网络的设计:

实验:

ERB的有效性:

与其他注意力机制的比较:

与SOTA方法的比较:

频率分析:

根据参考论文,补充知识点:

学习SRFBN:


初步介绍:

首先说一下什么是EISR:高效的图像超分辨率。

所谓的高效是针对两个方面而言:运行时间(比如推理时长)和内存消耗。

出于现实原因,主要是由于资源受限的设备,高效的图像超分辨率网络愈发受到关注。

     再来看一下这个比赛,"NTIRE 2022 Challenge on EISR",本文中作者将网络进行删减(将除HFAB外的每个卷积层的卷积核数减少到50个(正常是64个卷积核),以保持在DIV2K验证集上的PSNR为29.00dB),形成一个缩小版的FMEN-S,并且在比赛中,分别报告了参数的数量、FLOPs、运行时长、峰值内存消耗、激活量和卷积的数量。与最近先进的EISR方法IMDN,E-RFDN进行比较。具体来说,与AIM2020赢家解决方案E-RFDN相比,我们的模型可以减少21.2%的参数,17.8%的流量,33.1%的运行时间,74%的峰值内存消耗和35.7%的激活,只有0.04dBPSNR下降。与NTIRE2022挑战的其他高效超分辨率的参与者相比,我们的模型取得了最少的内存消耗,以及第二好的推理速度,同时保持了相当的恢复精度

引言:

      高效网络设计的关键是如何充分利用有限的特征来生成更具有代表性的特征。我们观察到,最近的EISR趋向于使用特征融合来实现这个目标。但是特征融合策略遭受巨大的内存消耗,这是由于内存中存在的多重相关特征映射会保存到融合时所造成的。此外,由于引入了额外的节点,融合设计通常会降低推理速度。为了加快推理速度和降低内存消耗,我们通过高度优化的串行网络操作来设计网络主干,而不是通过特征融合,并通过注意机制来增强特征表示。相比之下,顺序的网络操作避免了频繁地访问之前的状态和额外的节点,从而有利于减少内存消耗和运行时开销。 基于这一点,我们设计了一个兼具快速和高效的内存网络(FMEN)。FMEN主要由两个基本块组成:增强残差块(ERB)和高频注意块(HFAB)。 我们的方法获得了在运行时长和内存消耗两方面的显著改进,同时保持了相当的重构性。

相关工作:

内存分析:

作者想要通过该部分,对EISR中的两种拓扑结构,普通网络的拓扑结构和融合型拓扑结构的内存消耗,进行对比,以此来说明融合型的拓扑结构更加消耗内存:

一般来说,一个节点的内存消耗M由四部分组成:输入特征内存Minput,输出特征内存Moutput,Mkept保持特征内存(之前计算并在未来的节点中使用的)网络参数内存Mnet(很小可以忽略)。

对于RELU层,由于输入和输出可以共享相同的内存块,所以输出内存可以设为0.所以这里删掉RELU便于讨论,而针对于卷积层,输入输出并不共享相同的内存块。对于图2 (a),一个普通的3*3卷积,在卷积结点的峰值内存消耗是Minput+Moutput。如果在整个过程中的特征尺寸没有改变,那么峰值内存消耗大约是2*C*H*W,按照相同的网络拓扑序列进行堆叠,不会增加推理阶段的峰值内存消耗。对于融合结构(concatadd都是特征融合的方式),与融合层相关的特征映射需要保留,直到连接完成。有融合过程,那么至少会消耗2倍的内存,因为Minput和Moutput都会在融合的连接结点出现。

对于该图的解读:

图2(a):第一个1x,只有输入。第一个2x,因为在此结点,既有输入又有输出,所以是2x.第二个1x,个人理解此处既没有输入也没有输出,而是上一个节点计算的结果即将被用在下一个节点的Mkept。所以是1x.后面的以此类推。

图2(b)的第二个3x:论文中说此处是它自身的输入和输出+第一个卷积的输入即将被用在concat融合操作,所以一共三倍。concat期间,三倍的输入要对应三倍的输出,所以是6x,由于concat有三个输入三个输出,那会产生三个中间结果,即Mkept,所以是3x,通过看相关文章(CARN和IMDN)得知,融合结构的最后一个1x1卷积是起到融合降维的作用,该例子有两个输入的3x3卷积需要融合,所以是两个输入两个输出,整体有4倍,之后融合降维得到最后一个输出,所以是1x.

因此,与普通序列拓扑相比,特征融合通常会增加推理过程中的峰值内存消耗。

网络结构:

网络结构包括三个部分:特征提取部分、细节学习部分和重构部分。特征提取部分和重构部分与之前的工作相同(EDSR),细节学习部分是交替使用了ERB和HFAB

ERB:

 虽然残差中的跳跃连接被广泛的使用,但是,跳跃连接的使用增加了额外的内存消耗,并且由于额外的内存访问成本,会降低推理速度。实验表明,去掉EDSR中的跳跃连接,会降低10%的运行时间,为了在不引入上述成本的情况下继承残差学习的优点,我们设计了ERB来代替RB。ERB由一个渗漏的ReLU非线性和两个残差重参数化块(RRRB)中的两个残差组成,这是受RCANresidual in residual)和RepVGG(结构重参数化)的启发。RRRB在推理过程中相当于单个3×3卷积,因为3x3卷积的计算密度是1x1和5x5卷积的4倍。结构重参数化的作用是在推理时,将多分支转换成单分支。

个人理解,跳跃连接在大块会比在小块要更消耗内存,

 HFAB:

以往的注意块(通道注意力、空间注意力等)是多分支拓扑,包含低效的操作,这会导致额外的内存消耗,降低推理速度。考虑到这两个方面,作者设计了一个高频注意块(HFAB)。我们首先用3×3卷积而不是1×1卷积来降低通道维度(因为3x3卷积的计算密度是14倍,考虑到计算效率)。然后应用ERB来捕获局部交互作用。接下来,通道尺寸增加到原始级别,并使用sigmoid将值从0限制到1。最后,通过以像素级的方式乘以注意图来重新校准输入特征。上述步骤的动机主要来自于边缘检测,其中可以使用附近像素的线性组合来检测边缘。卷积带来的感受野非常有限,这意味着只有局部范围内进行建模才能确定每个像素的重要程度。因此,将批归一化(BN)注入到顺序层中,引入全局交互。HFAB只包含四个高度优化的操作:3×3卷积,LReLU非线性,sigmoid和元素乘法。HFAB避免了复杂的多分支拓扑,从而确保了与ESA(空间注意力块)相比更快的推理。在像素级的重新缩放特性使HFAB在信道级比CCA更强大。

 总结一下整体网络的设计:

为了加快推理速度和降低内存消耗,我们通过高度优化的串行网络操作来设计网络主干,而不是通过特征融合,并通过注意机制来增强特征表示。考虑到SR是修复丢失的高频细节(纹理、边缘),我们提出了一个高频注意力块HFAB,它可以学习一个特别受关注的高频区域注意图。我们还从局部和全局的角度,在HFAB中设计了注意力分支。我们依次堆叠高效的算子,如3×3卷积和LReLU层,用于建模局部信号之间的关系。将BN注入HFAB,在训练过程中捕获全局上下文,同时在推理过程中合并3x3卷积,此外,我们设计了残差块RB,并引入了增强的残差块(ERB),在训练过程中在高维空间中提取特征,在推理过程中我们通过将相应的参数合并到相关的卷积层中消除了HFAB层和BN层内ERB的跳跃连接(同于RepVGG使用结构重参数化技术的设计,推理的时候单分支,没有跳跃连接,残差网络属于多分支结构)我们证明,与以往的EIRB相比,这种设计能够在不牺牲SR性能的情况下加速网络推理和降低内存消耗。通过对ERBHFAB的应用,我们构建了一个高效网络,即快速高效内存网络(FMEN),在保持相同恢复性能的情况下,就运行时长和峰值内存消耗方面比现有的EISR方法具有明显的优势。

ERB:增强的残差块,在训练过程,在高维空间提取特征,构建更深的网络(residual inresidual的特点),通过结构重参数化,进行高效推理。

HFAB:高频注意块,相比于其他的注意力(如通道级、像素级、特征级注意力)保证了更快的推理速度以及更少的内存消耗。

我们通过减少卷积内核的数量来建立 一个更小的模型FMEN-S,此图更直观的展示FMEN-S同其他EISR网络 模型在三个指标上的对比,分别是: 推理时间、内存消耗以及参数量。 显然,FMEN-S取得了最好的效果。

实验:

ERB的有效性:

      ERB提出了结合序列拓扑和残差学习的优点。

为了验证其有效性,比较了三个块:通过删除RB中的跳跃连接生成的PB(plain block)、RB和ERB。将它们分别应用于EDSR-baseline和FMEN.具体来说,原始的EDSR-baseline采用RBs来构建网络,我们用PBs和ERBs来代替它。对于FMEN,我们用RBs和PBs替换ERB。    

从图5中我们可以看出,ERB体系结构的性能与RB体系结构相当,而PB体系结构的表现要差得多(下降了近0.2dB)。在推理过程中,ERB可以简化为PB(推理过程不使用带有跳跃连接的分支结构),可以提升效率。

我们还在表1中进行了推理速度的比较。ERB通过避免内存访问成本(MAC),减少了大约10%的推理时间。

与其他注意力机制的比较:

具体来说,我们研究了基于对比度的通道注意力(CCA)和增强空间注意力(ESA)。

插入注意力的方式与FMEN保持相同。    

我们在细节学习部分构建了一个包含15个ERB的对照(该baseline有15个ERB,每3个ERB插入一个注意力块,这个注意力块就是普通的注意力,这样的方式能保证baseline同FMEN一样,也有5个注意力模块,它和FMEN的区别就在于注意力块的不同)。Increase rate是指同比于baseline增长的推理时长(45.25 + 46.13*1.9% = 46.13 )。在相同数量的注意力块下, 由于多分支拓扑(CCA)带来的MAC和 7×7卷积(ESA)等低效操作,导致更大的时间开销. 虽然通过嵌入这两种注意块,可以提高基线的性能,但其增益相对低于我们的方案。

与SOTA方法的比较:

具体结果自行看表,基本就是在说该方法是如何碾压了其他的方法。

FMEN与最具竞争力的EISR方法相比, LatticeNet,实现了相近的PSNR和SSIM,但在运行时间(46msvs.68ms)和内存消耗(68Mvs.225M)方面获得了明显的优势。(文章中没有显示)

[]:对于一个 Hi*Wi*Ci 的输入特征图经过Kw*Kh的卷积操作并输出 Ho*Wo*Co 的特征图有两种算数操作(即,Multi-Add)

1,乘法操作

    对于Kh*Kw的卷积窗口,有 Kh*Kw*Ci 次乘法操作,因为卷积是在输入特征图上进行,而卷积是在 Ci 个通道上同时进行。

2,加法操作

    对于 n 个元素求和,我们需要 n - 1次加法。而在一个卷积窗口内有 Kh * Kw * Ci 个元素。所以我们需要Kh*Kw*Ci - 1次加法操作

频率分析:

此部分需要一些图像处理的知识,感兴趣可以自行学习。

     为了指出HFAB这个注意块是否专注于我们期望的高频信息,我们在每一个HFAB的前后分析了特征频率分布。而高频和低频则是指该部分是否更需要被关注,高频是边缘、轮廓,低频是平滑区域。

具体操作:我们以平均特征图的功率谱为中心,并通过放置同心圆估计一组连续频率的谱密度。我们将每个频率的谱密度除以谱密度之和,以直观地观察低频和高频所占的百分比。功率谱密度(PSD)的计算过程如图7所示(不连续的傅里叶变换)

功率谱密度:

是指用密度的概念表示信号功率在各频率点的分布情况,

谱密度越高的地方,对应的频率成分的振幅越大。

在此基础上,我们在图6中展示了的频率分析结果,纵坐标:光谱密度比。

其中我们有三个主要的观测结果。

首先,通过HFAB进行处理,抑制输入特征的低频信号,加强高频信号(看图容易理解)。

其次,HFAB的输入(由主干分支中的ERB处理)缓慢地关注高频信号,同时HFAB可以立即重新校准高频区域(个人理解:直观上看是根据图八的最后一组图,起初对于边缘探测不够清晰,立刻进行校正。)

第三,后验HFAB可进一步增强频率的可分性(见图6最右图)-----完全没理解。

更直观地说,我们绘制了四个细粒度HFAB的输入和输出(第一个HFAB似乎调整了图6中的中频信号----不知道在说啥)。

图8所示的可视化是对图6得出的结论的有效补充,它提供了更深的见解,注意力机制后的特征图包含更多的负值,能够很好地抑制输入图像中的平滑区域,即增强区域几乎是边缘和、轮廓等其他细节。

根据参考论文,补充知识点:

学习SRFBN:

1、该网络的任务是抑制原始输入图像的平滑区域,并预测高频分量(即边缘和轮廓)对平均特征图的可视化效果中,负值越多表明抑制原始图像平滑部分的效果越明显(feedback更好)

2、第二个观察结果是,在处理相同的任务时,反馈网络学习的是不同的表征。在前馈网络中,特征图从第一次迭代(t=1)到最后一次迭代(t=4)变化显著:在早期迭代中勾画出边缘和轮廓,然后在后一次迭代中抑制原始图像的平滑区域。不同的模式表明,前馈网络通过层,形成信息层次,而反馈网络被允许投入大部分精力进行自校正过程,因为它可以在初始迭代中获得良好的特征表示。这进一步表明,在反馈网络中第t次迭代中包含高级信息的Ftout将在后续迭代中敦促之前的层生成更好的表示。

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值