Fast and Memory-Efficient Network Towards Efficient Image Super-Resolution
论文地址
摘要
运行时和内存消耗是在资源受限设备上部署高效图像超分辨率 (EISR) 模型的两个重要方面。 EISR [16、32] 的最新进展利用具有大量通道拆分和连接操作的蒸馏和聚合策略来充分利用有限的层次特征。相比之下,顺序网络操作避免频繁访问前面的状态和额外的节点,因此有利于减少内存消耗和运行时开销。按照这个想法,我们通过主要堆叠多个高度优化的卷积和激活层并减少特征融合的使用来设计我们的轻量级网络主干。我们提出了一种新颖的顺序注意分支,其中根据局部和全局上下文为每个像素分配一个重要因素,以增强高频细节。此外,我们为 EISR 定制残差块并提出增强的残差块 (ERB) 以进一步加速网络推理。最后,结合上述所有技术,我们构建了一个快速且内存高效的网络 (FMEN) 及其小版本 FMEN-S,与状态相比,它的运行速度提高了 33%,内存消耗减少了 74%最先进的 EISR 模型:E-RFDN,[49] 中的冠军。此外,FMEN-S 在 NTIRE 2022 高效超分辨率挑战中实现了最低的内存消耗和第二短的运行时间 [28]。代码可在 https:/github.com/NJU-Jet/FMEN 获得。
1. 简介
单幅图像超分辨率(SR)是一种典型的低水平视觉问题,其目的是根据其退化的低分辨率(LR)对应物恢复高分辨率(HR)图像。为了解决这个高度不适的问题,已经提出了不同类型的方法。其中,基于深度学习的方法[9, 16, 31, 32, 51],以卷积神经网络(CNN)为代表,产生了卓越的成果并彻底改变了这一领域。
由于资源有限设备的现实需求,高效图像超分辨率(EISR)吸引了越来越多的SR社区。在早期阶段,采用递归神经网络[29,40]和群卷积[1]来降低模型参数,但计算成本高或性能较差。最近,许多研究人员专注于精心设计的网络工作,因为它不仅对性能产生直接影响,而且还影响后续的网络修剪[3,5,26,27]和知识蒸馏[36,43]。高效网络设计的关键点是如何充分利用有限的特征来产生更具代表性的特征。
我们观察到,由于以下两个主要优点,最近的EISR方法倾向于应用特征融合来实现这一目标[1,16,17,32,47]。一、多层次整合连接有利于传播梯度,这有助于更深层网络的训练。其次,它通常与门控机制相关联,门控机制自适应地控制特征域中的先前和当前状态。 CARN [1] 在局部和全局级别使用级联机制来合并来自多个层的特征。 IMDN [16] 提出了信息多重蒸馏块(IMDB)来逐步提取层次特征,并根据候选特征的重要性聚合它们。 LatticeNet [47] 采用后向顺序连接策略来融合不同感受野的特征。 RFDN [32] 应用了残差特征蒸馏块,它是 IMDB 的变体,但更强大和灵活。上面提到的特征融合策略遭受巨大的内存消耗,这是由于多个相关的特征映射驻留在内存中直到聚合。此外,融合设计通常会降低推理速度,因为引入了额外的节点(例如,级联、1×1 卷积)和 RepVGG [8] 中讨论的频繁内存访问。为了加快推理速度并减少内存消耗,我们通过高度优化的串行网络操作而不是特征聚合来设计我们的网络主干,并通过注意机制增强特征表示。
- 考虑到 SR 的目标是恢复丢失的高频细节(例如,边缘,纹理),我们提出了一个高频注意力块(HFAB),它学习一个特别关注高频区域的注意力图。
具体来说,我们从局部和全局的角度设计了 HFAB 中的注意力分支。我们依次堆叠 3×3 卷积和 Leaky ReLU 层等高效运算符,以对局部信号之间的关系进行建模。批量归一化 (BN) 被注入 HFAB 以在训练期间捕获全局上下文,同时在推理期间合并到卷积中。 - 此外,我们定制残差块(RB)并引入增强残差块(ERB),其中在训练期间在更高维空间中提取特征,并使用结构重新参数化技术在推理期间删除跳过连接[ 8].
我们表明,与传统的 RB 相比,这种设计能够在不牺牲 SR 性能的情况下加速网络推理并减少内存消耗。
通过以顺序和交替的方式应用 ERB 和 HFAB,我们构建了一个高效的网络,即快速内存高效网络(FMEN),在保持相同水平的恢复性能时,它在运行时和峰值内存消耗方面证明了优于现有 EISR 方法的明显优势。此外,我们通过减少卷积核的数量构建了一个更小的模型,FMEN-S,与 E-RFDN 相比,运行速度提高了 33%,内存消耗减少了 74%,如图 1 所示,我们的贡献如下:
• 我们仔细分析了影响 EISR 模型的推理速度和内存消耗的因素。
• 我们提出了一种高频注意块 (HFAB) 来增强高频特征,并提出了一种增强型残差块 (ERB) 来更快地利用残差学习推理和更少的内存消耗。
• 我们通过顺序组合 HFAB 和 ERB 构建了一个快速且内存高效的网络,在 NTIRE 2022 高效超分辨率挑战中实现了最低的内存消耗和第二短的运行时间。
2.相关工作
2.1 图像超分辨率概述
最近,基于卷积神经网络(CNN-based)的方法在包括 SISR 在内的许多任务中取得了优异的成绩。由于董等人。 [9] 创造性地引入了一种称为 SRCNN 的三层端到端 CNN 来恢复 HR 图像,提出了多种方法来进一步增强学习能力。为了减少由 HR 空间学习引起的高计算成本,shi 等人。设计了 ESPCN [38],用亚像素卷积代替双三次滤波器,这是主流 SR 架构 [4、32、44、47、50] 所采用的。在同一时期,Kim 等人。 [19] 使用残差学习和可调梯度裁剪来训练一个极其精确的二十层模型,证明深度在重建性能中起着重要作用。随后,Ledig 等人。 [24] 成功地利用了残差块 (RB) [12] 并提出了一个基于 GAN 的网络来恢复逼真的纹理。此外,基于 SRResNet [24],Lim 等人。 [31] 提出了一种增强的深度超分辨率网络 (EDSR),它通过删除 RB 中不必要的模块超越了以前的网络,并启发了后续工作 [1、33、47、51-53]。例如,RDN [53] 提出了残差密集块,以通过密集连接的卷积层充分利用所有层次特征。 RCAN [51] 将通道注意机制集成到 RB 中,并采用残差中残差(RIR)结构形成一个非常深的网络。 LatticeNet [47] 应用蝶形结构自适应地组合两个 RB.
2.2 Efficient Image Super-Resolution
为了部署SR模型,除了恢复精度外,还应考虑几个方面,例如参数数量、FLOPs、峰值内存消耗和推理时间。最近针对 EISR 的方法可以大致分为显式 [1, 17, 20, 29, 39] 和隐式方案 [1, 16, 22, 40, 47]。前者通过减少宽度来降低模型的复杂性和深度 [29]、递归结构 [20、39] 和群卷积 [1、17]。上述策略导致精度损失或更多额外开销(例如,FLOP)。后一种隐式方案侧重于充分利用中间特征以及增强判别能力,从而导致较低的复杂性和更好的整体性能。例如,LapSRN [22] 利用分层金字塔特征来重建各种分辨率的残差。 MemNet [40] 采用门控机制来桥接深层特征和浅层信息。 CARN [1] 提出了受 SRDenseNet [42] 启发的局部和全局级联机制,以提高表示能力。 IMDN [16] 保留部分特征作为细化信息,并通过对比感知通道注意块聚合蒸馏特征。 LatticeNet [47] 应用蝴蝶结构来动态组合两个 RB。 RFDN [32] 通过特征蒸馏连接增强了 IMDB。 DLSR [14] 提出了一种可区分的神经架构搜索方法,以找到基于 RFDB 的更强大的融合块。可以看出,特征融合在最近的进展中起着举足轻重的作用。虽然在理论上是有效的,但由于相关特征在聚合之前一直驻留在内存中,因此与没有特征融合的简单拓扑对应物相比,内存消耗是多倍的。
2.3 SR
Attention机制中的注意力机制已被证明非常强大,并与 CNN 结合应用于各种计算机视觉任务,包括 SR [7,16,18,32,46,51,52]。它旨在引导网络关注重要信号并抑制不必要的信号。自从 SENet [18] 在图像分类方面取得成功以来,各种注意机制已应用于 SR 模型。 RCAN [51] 首先将通道注意力(CA)集成到 SISR 的 RB 中。 RNAN [52] 引入了局部和非局部块来自适应地重新缩放层次特征。 SAN [7] 使用二阶特征统计来生成更具代表性的通道注意力图。 RFA [33] 采用增强空间注意力 (ESA) 块来获得更复杂的注意力图。 HAN [37] 提出层注意和通道空间注意来模拟层、通道和位置之间的整体相互依赖性。最近,基于变换器的方法 [6、30] 也被引入到 SR 中。 SwinIR [30] 应用移位窗口机制来模拟远程依赖,这可以解释为空间变化的卷积,用于捕获图像内容和注意力权重之间基于内容的交互。他们取得了重大进展,但由于多分支拓扑、内存中驻留的多个特征和低效的操作,对于 EISR 来说效率不够。
3. 提议的方法
3.1 内存分析
我们首先介绍了推理过程中的内存分析,这激发了我们网络架构的设计。内存消耗是 EISR 模型部署的一个重要因素。通常,一个节点的内存消耗M由四部分组成:输入特征内存Minput,输出特征内存Moutput,保留特征内存Mkept,之前计算并在未来节点中使用,网络参数内存Mnet。总内存 M 可以表示为:M = Minput + Moutput +Mkept +Mnet。 Mnet 太小,因此与特征记忆相比可以忽略不计。为了比较普通网络拓扑和特征融合方案的内存消耗,我们考虑图 2 中 EISR 的普通拓扑和特征融合的两种典型结构(假设输入占用 1x 内存)。对于 inplace ReLU 层,输入和输出共享相同的内存块,因此 Moutput 为零,为了讨论简单,我们将其省略。对于内核大小为 Cin × Cout × K × K 的卷积层,由于每个输入位置的 Cout × K × K 访问和 Winograd [23],Minput 和 Moutput 不能共享。
考虑普通 3 × 3 convo-在图 2(a) 中,卷积节点的内存消耗峰值由 Minput + Moutput 决定。如果在整个过程中不改变特征大小,这种普通拓扑的峰值内存消耗约为 2×C×H×W,其中 Cisthenumberoffeaturemaps 和 H、W 分别表示每个特征图的高度和宽度。堆叠相同的网络拓扑序列最终不会增加推理过程中的峰值内存消耗。
至于融合结构,需要保留与融合层相关的特征图,直到连接完成。以图2(b)为例,第二个3×3卷积层有3个特征占用内存:本层的输入和输出,第一个3×3卷积层的输入,将在后面的连接节点中使用,因此该层的峰值内存消耗是输入的 3 倍。按照相同的逻辑,峰值内存消耗在三个输入特征的以下连接节点处加倍。一般来说,如果有N个相同大小(C×H×W)的特征参与融合,内存消耗至少会提高到2×N×C×H×W,因为Minput和Moutput都是N×C×H × W 为级联节点。
如果像当前的轻量级架构 [1, 16, 32, 40] 那样同时使用全局和局部融合,Nlocal 输入特征、Nlocal 级联输出特征和 Nglobal - 1 保留特征将同时占用连接节点处的内存最后一个局部融合部分,其中 Nglobal 和 Nlocal 分别是参与全局和局部融合的特征数。因此,与普通顺序拓扑相比,特征融合通常会增加推理过程中的峰值内存消耗。
3.2 网络架构
将顺序网络拓扑应用于 EISR 并非易事。
一种方法是直接采用完全顺序的架构[10],另一种方法是用可重新参数化的构建块[50]替换普通的卷积层,以在训练期间扩展优化空间。
然而,与最近的高级融合拓扑 [32、47] 相比,两者的性能往往有所下降。
除了内存消耗之外,推理时间是 EISR 模型的另一个关键方面。
基于顺序网络拓扑,我们提出了用于深度特征学习的增强残差块(ERB)和用于特征增强的有效高频注意块(HFAB),两者不仅减少了内存消耗,还加速了推理.
整体网络架构如图3所示,主要包括三个部分:特征提取部分、细节学习部分和重构部分。
第一部分和最后一部分与之前的作品 [16、31、47、50] 保持一致。
第二部分由交替的 ERB 和 HFAB 组成。整个模型的内存消耗峰值出现在HFAB内部的每个elementwise乘法节点,这里的内存被全局残差、对应HFAB的输入特征、对应HFAB的attention map和输出特征占用,约为4 ×长×高×宽。
3.3. 增强残差块Enhanced Residual Block
[12]中提出的残差块(RB)已广泛应用于网络模型中。它在EDSR中被定制并显示出对SR有效[31],因此已被用于许多后续SR研究[1,47,51,52]。除非另有说明,否则我们将 RB 称为以下 EDSR 的版本。但是,在引入特征图大小 C ×H ×W 的额外内存消耗,并且由于额外的内存访问成本而降低了推理速度,实验表明 if在 EDSR 基线 [31] 中删除了跳过连接,模型运行时在第 4.2 节中减少了约 10%。
为了继承剩余学习的优点,而无需引入上述成本,我们设计了ERB来取代RB。ERB 由一个 Leaky ReLU 非线性和两个残差重新参数化块 (RRRB) 组成,灵感来自 RCAN [51] 和 RepVGG [8]。RRRB在优化过程中挖掘了复杂结构的潜在能力,同时在推理过程中相当于单个3×3卷积。RB和ERB的网络结构比较如图4 所示。
3.4 High-Frequency Attention Block
所示。最近关注区块,注意机制已在 SR 文献中得到广泛研究。
基于粒度组成,它可以分为通道注意力[16、18]、空间注意力[33、46]、像素注意力[54]和层注意力[37]。
以前的注意力块 [16,32,37] 是多分支拓扑结构并且包含低效的运算符,这会导致额外的内存消耗,如第 1 节所述。 3.1 并减慢推理速度。考虑到这两个方面,我们设计了一个高频注意块(HFAB),如图 3 所示。注意分支负责为每个像素分配一个缩放因子,高频区域有望被分配更大的值因为它们主要影响恢复精度 [13、25]。
- 我们首先通过 3×3 卷积而不是 1×1 卷积来降低通道维度以提高效率。
- 之后应用 ERB 来捕获本地交互。
- 接下来,通道维度增加到原始水平,并使用 sigmoid 层将值限制在 0 到 1 之间。
- 最后,通过以像素方式乘以注意力图来重新校准输入特征。
上述步骤的动机主要来自边缘检测,其中附近像素的线性组合可用于检测边缘。
卷积带来的感受野非常有限,这意味着仅对局部范围依赖性进行建模以确定每个像素的重要性。
因此,将批量归一化(BN)注入顺序层以引入全局交互,同时有利于 sigmoid 函数的不饱和区域。
尽管之前的工作 [31, 44] 报道 BN 可能导致一些意想不到的伪影,但我们凭经验观察到 BN 在限制像素范围多样性方面发挥了作用,这符合高频学习设计,从而有助于性能改进。
在推理过程中,我们通过将相应的参数合并到相关的卷积层中,去除了 HFAB 和 BN 层内 ERB 的跳跃连接。 HFAB 仅包含四个高度优化的运算符:3×3 卷积、Leaky ReLU 非线性、sigmoid 和 element-wise的乘法。 HFAB 避免了复杂的多分支拓扑结构,因此与 ESA [33] 相比可以确保更快的推理速度。像素级别的重新缩放功能使 HFAB 在通道级别比 CCA [16] 更强大。实验细节可以在第二节中找到。
4.实验
4.1 设置数据集和指标。
继最近的工作 [32、47] 之后,我们采用广泛使用的高质量(2K 分辨率)DIV2K [41] 和 Flickr2K 作为训练数据集。为了进行测试,使用了五个标准基准数据集:Set5 [2]、Set14 [48]、B100 [34]、Urban100 [15] 和 Manga109 [35]。 LR 图像的生成方式与 [1, 16, 31, 47] 相同。为了与现有方法[16、17、31、40、47]保持一致,SR结果在变换后的YCbCr空间的亮度通道上进行评估,使用两种称为峰值信噪比(PSNR)的常用指标) 和结构相似性指数 (SSIM) [45]。根据 AIM 2020 [49],使用 Py-Torch 函数 torch.cuda.max 内存分配在大小为 256 × 256 的 LR 图像上测试最大 GPU 内存消耗。实现细节。在每个训练批次中,将通过随机翻转和旋转增强的 64 个裁剪 64 × 64 LR RGB 补丁输入到网络。采用 L1 损失来训练我们的模型。学习率初始化为 5×10−4,每 6×105 次迭代减少一半,总共 3×106 次迭代。 ERB 主干中的卷积核数量设置为 64 和 64,HFAB 中的第一个卷积将通道维度降低为 32。ERB 和 HFAB 对的数量设置为 5,以实现与 LatticeNet 相当的性能 [47] .我们模型的参数使用 He 等人提出的方法进行初始化。 [11] 并由 ADAM 优化器 [21] 优化,β1 = 0.9,β2 = 0.999,ε = 10−8。我们的模型是在 Nvidia 1080Ti GPU 上使用 PyTorch 框架实现的。
4.2. 提出了ERB
ERB的有效性,以结合顺序拓扑和残差学习的优点。为了验证其有效性,我们比较了三个块:通过删除RB,RB和ERB中的跳过连接来消除普通块(PB)。它们具有相同数量的参数,我们将它们分别应用于EDSR基线[31]和FMEN。具体来说,原始的EDSR基线[31]采用RB来构建网络,我们用PB或ERB代替它。对于FMEN,我们将ERB替换为RB或PB。5,我们可以看到ERB架构实现了与RB架构相当的性能,而PB架构的行为要差得多(近0.2dB的下降)。在推理过程中,ERB可以简化为PB,从而享受顺序拓扑的效率。我们同时在选项卡 1 中报告推理速度比较。ERB 通过避免内存访问成本 (MAC) 将推理时间缩短约 10%。
4.3 HFAB
为了弄清楚 HFAB 是否像我们预期的那样关注高频区域,我们分析了每个 HFAB 前后的特征频率分布。受 MemNet [40] 和 SRFBN [29] 的启发,我们将平均特征图的功率谱居中,并通过放置同心圆来估计一组连续频率的谱密度。我们将每个频率的频谱密度除以频谱密度之和,以直观地观察低频和高频所占的百分比。图 7 显示了计算功率谱密度 (PSD) 的过程。在此基础上,我们在图 6 中显示了频率分析结果,从中我们得到了三个主要观察结果。
首先,经过HFAB处理,抑制输入特征的低频信号,增强高频信号。
其次,HFAB 的输入(由主干分支中的 ERB 处理)慢慢关注高频信号,而我们的 HFAB 可以立即重新校准兴趣区域,这解释了为什么我们的设计优于堆叠 RB 架构。
第三,后验 HFAB 可以进一步增强频率的可分离性(见图 6 中最右边的图)。
更直观地,我们绘制了四个细粒度 HFAB 的输入和输出(第一个 HFAB 似乎调整了图 6 中的中频信号)。图 8 中显示的可视化是对图 6 中得出的结论的有效补充,它提供了更深入的洞察力,即增强区域几乎是边缘和其他细节。
4.4.与其他注意力机制的比较
众所周知,注意力机制已被证明有助于提高 EISR 网络的性能。在本小节中,我们将最近的注意力机制与我们的方案进行比较。正如 [16] 中所讨论的,深度与执行速度最相关,因此我们在细节学习部分构建了一个包含 15 个 ERB 的基线,其深度和参数数量与我们的相似。由于我们的网络中有 5 个 HFAB,我们每 3 个 ERB 插入一个注意力块到基线中,这样注意力机制也应用了 5 次。具体来说,我们研究了对比感知通道注意力 (CCA) [16、47] 和增强空间注意力 (ESA) [33]。插入模式与 FMEN 相同。虽然高学习率对 FMEN 更有利,但我们将学习率设置为 1×10-4 以适应其他注意力模型。桌子。图 2 显示通过嵌入当前注意力块可以提高基线的性能,但增益相对低于我们的方案。此外,在注意块数量相同的情况下,由于多分支拓扑[16、47]带来的MAC和7×7卷积[32]等低效操作,竞争注意机制会导致更大的时间开销,而我们的方案对网络推理更友好,不需要耗时的操作。
4.5.与最先进方法的比较
在本节中,我们将我们的方法与其他轻量级 SR 模型进行比较:SRCNN [9]、FSRCNN [10]、VDSR [19]、DRCN [20]、LapSRN [22]、DRRN [ 39]、MemNet [40]、IDN [17]、EDSR 基线 [31]、CARN [1]、IMDN [16]、LatticeNet [47] 和 RFDN [32]。在五个公开可用的 SR 基准数据集上进行 x2、x3、x4 放大的定量比较如表 1 所示。 3. FMEN 与最具竞争力的 EISR 方法 LatticeNet 实现了可比的 PSNR 和 SSIM,但在运行时间(46 毫秒对 68 毫秒)和内存消耗(68M 对 225M)方面获得了明显的优势。视觉比较如图 9 所示。与其他最先进的方法相比,我们的方法在选定的 Urban100 和 Manga109 图像中产生了更美观的图案。
4.6. NTIRE 2022 Challenge on Efficient Super-Resolution
为了参加这次比赛,我们将除 HFAB 之外的每个卷积层的卷积核数量减少到 50,以在 DIV2K 验证集上保持 29.00dB 的 PSNR。我们将此模型表示为 FMEN-S。值得一提的是,竞赛的基线 [28]RFDN 将 RFDB 的数量从 6 个减少到 4 个,参数数量从 550K 减少到 433K,并且它是这里表示为 E-RFDN [32]。我们遵循官方评估设置,并在 Tab 中报告参数数量、FLOP、运行时间、峰值内存消耗、激活和卷积数量。 4. 包括最近的高级 EISR 方法 IMDN [16]、E-RFDN [32] 和 [28] 中的顶级方法以供比较。我们的方法实现了最低的内存消耗和第二短的运行时间,同时保持了相当的恢复精度。具体来说,与 AIM 2020 获胜者解决方案 E-RFDN [32] 相比,我们的模型可以减少 21.2% 的参数、17.8% 的 FLOPs、33.1% 的运行时间、74% 的峰值内存消耗和 35.7% 的激活,而 PSNR 仅为 0.04dB降低。与 NTIRE 2022 高效超分辨率挑战的其他参与者相比 [28],我们的模型实现了最佳内存消耗、激活和卷积数量以及第二好的推理速度。与理论指标相比,上述指标在实际使用中更为重要。
5.结论
在本文中,我们分析了影响当前 EISR 模型运行时间和内存消耗的因素,并设计了一个具有高效顺序运算符和注意机制的快速内存高效网络 (FMEN)。
FMEN主要由两个基本块组成:增强残差块(ERB)和高频注意力块(HFAB)。 ERB 利用了 RB 但对部署更友好。 HFAB 比传统的注意力块更强大、更轻便。
我们的方法在运行时间和内存消耗方面获得了实质性的改进,同时保持了可比的重建性能。