ESRT-Transformer for Single Image Super-Resolution
- 论文地址
- 摘要
- [1. 引言](#1. 引言)
- 2.相关工作
-
- [2.1 基于 CNN 的 SISR 模型](#2.1 基于 CNN 的 SISR 模型)
- [2.2 Vision Transformer Transformer](#2.2 Vision Transformer Transformer)
- [3. Efficient Super-Resolution Transformer](#3. Efficient Super-Resolution Transformer)
-
- [3.1. Lightweight CNN Backbone (LCB)](#3.1. Lightweight CNN Backbone (LCB))
- [3.2. High-frequency Filtering Module (HFM)](#3.2. High-frequency Filtering Module (HFM))
-
- [3.2.1 自适应残差特征块(ARFB)](#3.2.1 自适应残差特征块(ARFB))
- [3.3. Lightweight Transformer Backbone (LTB)](#3.3. Lightweight Transformer Backbone (LTB))
-
- [3.3.1 Pre- and Post-processing for ET](#3.3.1 Pre- and Post-processing for ET)
- [3.3.2 Efficient Transformer(ET)](#3.3.2 Efficient Transformer(ET))
论文地址
1、论文地址
2、论文源码
摘要
随着深度学习的发展,单图像超分辨率(SISR)取得了长足的进步。然而,大多数现有研究都侧重于构建具有大量层的更复杂的网络。最近,越来越多的研究人员开始探索 Transformer 在计算机视觉任务中的应用。但是,vision Transformer计算成本高、GPU显存占用高等问题也不容忽视。在本文中,我们提出了一种用于 SISR 的新型高效超分辨率变压器 (ESRT)。 ESRT 是一种混合模型,由轻量级 CNN 骨干网 (LCB) 和轻量级变压器骨干网 (LTB) 组成。其中,LCB 可以动态调整特征图的大小,以较低的计算成本提取深层特征。 LTB 由一系列 Efficient Transformers (ET) 组成,由于专门设计的 Efficient Multi-Head Attention (EMHA),它占用的 GPU 内存很小。大量实验表明,ESRT 以低计算成本取得了有竞争力的结果。与占用 16,057M GPU 内存的原始 Transformer 相比,ESRT 仅占用 4,191M GPU 内存。所有代码均可在 https:/github.com/luissen/ESRT 上获得。
1. 引言
单图像超分辨率(SISR)旨在从其退化的低分辨率(LR)对应物中恢复超分辨率(SR)图像,这是克服许多应用中分辨率限制的有用技术。然而,它仍然是一个不合适的问题,因为存在无限的HR图像。为了解决这个问题,已经提出了许多深度神经网络[10,13,18,21,22,26,39,40,45]。尽管这些方法取得了出色的性能,但由于计算成本高,它们无法在实际应用中轻松使用。和记忆存储。为了解决这个问题,已经提出了许多循环网络和轻量级网络,例如 DRCN [19]、SRRFN [23]、IMDN [16]、IDN [17]、CARN [2]、ASSLN [46]、MAFFSRN [31] ],和 RFDN [27]。所有这些模型都专注于构建更高效的网络结构,但网络容量的减少会导致性能不佳。
如图1所示,相同颜色的框内部区域彼此相似。因此,这些相似的图像块可以相互作为参考图像,从而可以使用参考块来恢复某个块的纹理细节。受此启发,我们将 Transformer 引入到 SISR 任务中,因为它具有很强的特征表达能力,可以对图像中的这种长期依赖性进行建模。换句话说,我们旨在探索在轻量级 SISR 任务中使用 Transformer 的可行性。近年来,一些 Vision-Transformer [11, 28] 被提出用于计算机视觉任务。然而,这些方法往往占用大量的GPU内存,极大地限制了它们的灵活性和应用场景。此外,这些方法不能直接转移到 SISR,因为图像恢复任务通常需要较大分辨率的图像作为输入,这将占用大量内存。
为了解决上述问题,提出了一种高效的超分辨率变压器(ESRT)来增强- 增强 SISR 网络捕获长距离上下文相关性的能力,同时显着降低 GPU 内存成本。值得注意的是,ESRT 是一种 hy-brid 架构,它使用"CNN+Transformer"模式来处理小型 SR 数据集。具体来说,ESRT可以分为两部分:Lightweight CNN Backbone(LCB)和Lightweight Transformer Backbone(LTB)。对于LCB,我们更多地考虑减少中间层特征图的形状并保持较深的网络深度以确保较大的网络容量。受高通滤波器的启发,我们设计了一个高频滤波模块(HFM)来捕捉图像的纹理细节。借助 HFM,提出了一种高保留块 (HPB),通过大小变化有效地提取潜在特征。对于特征提取,提出了一种强大的自适应残差特征块(ARFB)作为基本特征提取单元,能够自适应调整残差路径和身份路径的权重。在 LTB 中,提出了一种高效的 Transformer(ET),它使用专门设计的 Efficient Multi-Head Attention(EMHA)机制来降低 GPU 内存消耗。值得注意的是,EMHA 只考虑局部区域图像块之间的关系,因为 SR 图像中的像素通常与其相邻像素相关。尽管它是局部区域,但它比常规卷积要宽得多,可以提取更有用的上下文信息。因此,ESRT可以有效地学习相似局部块之间的关系,使超分辨区域具有更多的参考。
主要贡献如下
• 我们提出了一种轻量级 CNN 主干 (LCB),它使用高保留块 (HPB) 动态调整特征图的大小,以低计算成本提取深度特征。
• 我们提出了一个Lightweight Transformer Backbone (LTB) 在专门设计的 Efficient Transformer (ET) 和 Efficient Multi-Head Attention (EMHA) 机制的帮助下捕获图像中相似块之间的长期依赖关系。
• 一种称为Efficient SR Transformer (ESRT) 的提出是为了有效增强图像中相似块的特征表达能力和长期依赖性,从而以较低的计算成本获得更好的性能。
2.相关工作
2.1 基于 CNN 的 SISR 模型
最近,已经为 SISR 提出了许多基于 CNN 的模型。例如,SRCNN [10] 首先将深度 CNN 引入 SISR 并取得了可喜的结果。 EDSR [26] 通过删除不必要的操作和扩展模型大小来优化残差块。 RCAN [44] 提出了一个具有残差结构和通道注意机制的深度残差网络。SAN [9] 提出了一个二阶注意网络来增强特征表达和特征相关性学习。 IDN [17] 通过使用组卷积并结合短期和长期特征来压缩模型大小。 IMDN [16] 改进了 IDN 的体系结构并引入了信息多蒸馏块以有效地提取层次特征。 LatticeNet [29] 设计了模拟快速傅里叶变换实现的点阵块,采用蝴蝶结构。尽管这些模型取得了有竞争力的结果,但它们是纯基于 CNN 的模型。这意味着它们只能提取局部特征而不能学习全局信息,不利于纹理细节的恢复。
2.2 Vision Transformer Transformer
在 NLP 中的突破引起了计算机视觉界的极大兴趣。 Transformer 的核心思想是"self-attention",它可以捕获序列元素之间的长期信息。通过在视觉任务中采用 Transformer,它已成功应用于图像识别 [11,24,36]、目标检测 [7、47] 和低级图像处理 [8、41]。其中,ViT [11] 是第一个用 Transformer 代替标准卷积的工作。为了生成序列元素,ViT 将 2D 图像块展平为一个向量,并将它们送入 Transformer。 IPT [8] 使用一种新颖的基于 Transformer 的网络作为低级图像恢复任务的预训练模型。 SwinIR [25] 将 Swin Transformer [28] 引入 SISR,并展示了 Transformer 在 SISR 中的巨大潜力。尽管这些方法取得了可喜的结果,但它们需要大量的训练数据,并且需要大量的 GPU 内存来训练模型,不适合实际应用。因此,我们的目标是为 SISR 探索一种更高效的视觉转换器。
3. Efficient Super-Resolution Transformer
如图2所示,高效超分辨率变换器(ESRT)主要由四个部分组成:浅层特征提取、轻量级CNN主干(LCB)、轻量级变换器主干(LTB)和图像重建。将ILR和ISR分别定义为ESRT的输入和输出。首先,我们利用卷积层从ILR中提取浅层特征
其中 fs 表示浅层特征提取层。F0 是提取的浅层特征,然后用作具有多个高保留块 (HPB) 的 LCB 输入
其中 ⇣n 表示第 n 个 HPB 的映射,Fn 表示第 n 个 HPB 的输出。HPB的所有输出都连接起来,与几个高效变压器(ET)一起发送到LTB,以融合这些中间特征
其中Fd是LTB的输出,xx代表ET的操作。最后,Fd和F0被同时送入重建模块,以获得SR图像ISR
其中f和fp分别表示卷积层和PixelShuffle层。
3.1. Lightweight CNN Backbone (LCB)
轻量级CNN骨干网(LCB)的作用是提前挖掘潜在的SR特征,使模型具有超分辨率的初始能力。根据图2,我们可以观察到LCB主要由一系列高保鲜块(HPB)组成。
High Preserving Block (HPB).以前的SR网络通常在处理过程中保持特征图的空间分辨率不变。在这项工作中,为了降低计算成本,提出了一种新的高保存块(HPB)来降低处理特征的分辨率。然而,特征图尺寸的减小总是会导致图像细节的丢失,从而导致SR图像异常不自然。为了解决这个问题,在HPB中,我们创造性地保留了高频滤波模块(HFM)和自适应残差特征块(ARFB)。
如图3所示,首先使用ARFB提取Fn-1作为HFM的输入特征。然后,使用HFM计算特征的高频信息(标记为Phigh)。获得Phigh后,我们减小特征图的大小,以减少计算成本和特征冗余。下采样的特征图表示为 Fn-1'.对于 Fn-1',使用多个 ARFB 来探索完成 SR 图像的潜在信息。值得注意的是,这些 ARFB 共享权重以减少参数。同时,使用单个 ARFB 处理 Phigh 以将特征空间与 Fn-1' 对齐。特征提取后,Fn-1'通过双线性插值上采样到原始大小。之后,我们将F'n-1与P'high融合以保留初始细节并获得特征F''n-1。此操作可以表示为
其中,向上和向下分别表示上采样和下采样操作。fa 表示 ARFB 的运作。为了在模型大小和性能之间实现良好的权衡,我们根据消融研究在此部件中使用了五个 ARFB,并将其定义为 fa5o
对于 F''n-1,由于它由两个特征连接,因此使用 1x1 卷积层来减少通道数。然后,采用通道注意力模块[14]突出显示具有高激活值的通道。最后,利用ARFB提取最终特征,并提出全局残差连接将原始特征Fn-1添加到Fn中。此操作的目标是从输入中学习残差信息并稳定训练
3.2. High-frequency Filtering Module (HFM)
由于傅里叶变换难以嵌入CNN中,因此提出了一种可微分HFM。HFM的目标是从LR空间估计图像的高频信息。如图 4 所示,假设输入特征映射 TL 的大小为 C x H x W,则首先将平均池化层应用于 TL
其中 k 表示池化层的内核大小,中间特征映射 TA 的大小为 C x H/k x W/k 。TA中的每个值都可以看作是TL的每个指定小区域的平均强度。之后,对 TA 进行上采样以获得大小为C x H x W的新张量 TU。TU被视为与原始TL相比的平均平滑度信息的表达式。最后,从TL中逐个减去TU以获得高频信息。
TL、TU和高频信息的视觉激活图也如图5所示。可以观察到,TU比TL更平滑,因为它是TL的平均信息。同时,高频信息在下采样之前保留特征图的细节和边缘。因此,保存这些信息至关重要。
3.2.1 自适应残差特征块(ARFB)
正如ResNet [12]和VDSR [18]所探讨的,当模型的深度增加时,残差架构可以缓解梯度消失问题并增强模型的再现能力。受其启发,提出了自适应残差特征块(ARFB)作为基础特征提取块。如图 6 所示,ARFB 包含两个残差单元 (RU) 和两个卷积外行。为了节省内存和参数数量,RU 由两个模块组成:缩减和扩展。对于缩减,特征图的通道减少一半并在扩展中恢复。同时,设计了具有自适应权重(RSA)的残差缩放,以动态调整残差路径和身份路径的重要性。与固定残差缩放相比,RSA可以证明梯度的流动,并自动调整输入特征图的残差特征图的一致性。假设 xru 是 RU 的输入,RU 的过程可以表述为:
其中 yru 是 RU 的输出,fre 和 fex 表示缩减和扩展操作,
分别是两条路径的两个自适应权重。这两个操作使用1x1卷积层来改变通道数,以实现缩减和扩展的功能。同时,两个RU的输出连接起来,然后连接一个1 x 1卷积层,以充分利用分层特征。最后,采用3x 3卷积层对特征图的通道进行缩减,从融合特征中提取有效信息。
3.3. Lightweight Transformer Backbone (LTB)
在SISR中,图像内相似的图像块可以相互作为参考图像,从而可以参考其他图像块来恢复当前图像块的纹理细节,这是恰当的使用变压器。然而,以前的视觉Transformer变体通常需要沉重的GPU内存成本,这阻碍了Transformer在视觉领域的发展。在本文中,我们提出了一种轻量级变压器主干(LTB)。 LTB由专门设计的高效变压器(ET)组成,能够以较低的计算成本捕获图像中类似局部区域的长期依赖性。
3.3.1 Pre- and Post-processing for ET
标准 Transformer 以一维序列作为输入,学习序列的长距离依赖性。然而,对于视觉任务,输入始终是二维图像。将二维图像转换为一维序列的常用方法是将图像中的像素一一排序。然而,这种方法将失去图像独特的局部相关性,导致次优性能。在 ViT [11] 中,一维序列是由非重叠块划分生成的,这意味着每个块之间没有像素重叠。根据我们的实验,这些预处理方法不适合 SISR。因此,提出了一种新的处理方式来处理特征图。
如图 7 所示,我们使用展开技术将特征图分割成块,每个块被视为一个"词"。具体来说,特征映射 Fori 2 RC⇥H⇥W 被展开(通过 k ⇥ k 内核)成一系列补丁,即 Fpi 2 Rk2 ⇥C , i = {1, ..., N },其中 N = H ⇥ W 是补丁的数量。在这里,由于"展开"操作会自动反映每个补丁的位置信息,因此消除了每个补丁的可学习位置嵌入。之后,这些补丁 Fp 直接发送给 ET。 ET 的输出与输入具有相同的形状,我们使用"折叠"操作来重建特征图。
3.3.2 Efficient Transformer(ET)
为了简单和高效,与 ViT [11] 一样,ET 仅使用编码器结构标准变压器。如图 8 所示,在 ET 的编码器中,有一个 Efficient Multi-Head Attention (EMHA) 和一个 MLP。同时,在每个块之前采用层归一化[4],并且在每个块之后也应用残差连接。假设输入embeddings是Ei,输出embeddings Eo可以通过
Em1 = EMHA(Norm(Ei)) + Ei, Eo =MLP(Norm(Em1))+Em1得到,
其中Eo是ET的输出,EMHA (·)和MLP(·)分别代表EMHA和MLP操作。
Efficient Multi-Head Attention (EMHA)如图 8 所示,与原始 MHA 相比,EMHA 进行了多项修改,使 EMHA 更高效,占用的 GPU 内存成本更低 [37]。假设输入嵌入 Ei 的形状是 B ⇥ C ⇥ N。首先,使用减少层将通道数减少一半(B⇥C1⇥N,C1 = C2)。之后,采用线性层将特征图投影为三个元素:Q(查询)、K(键)和 V(值)。在 Transformer 中,我们线性投射 Q、K、V 和 mtimes 来执行多头注意力。 m 是头数。接下来对三个元素的形状reshapeK,V直接用大规模矩阵乘法计算self-attention,耗费内存大。假设 Q 和 K 计算形状为 B ⇥ m ⇥ N ⇥ N 的自注意力矩阵。然后这个矩阵用 V 计算自注意力,第 3 维和第 4 维是 N ⇥ N。对于SISR,图像通常具有高分辨率,导致N非常大,自注意力矩阵的计算消耗了大量的GPU内存成本和计算成本。为了解决这个问题,使用特征分割 (FS) 模块将 Q、K 和 V 分成 s 个相等的段,分割因子为 s,因为超分辨率图像中的预测像素通常仅取决于局部相邻区域LR。因此,最后一个自矩阵的第 3 维和第 4 维为 Ns ⇥ Ns,这可以显着降低计算和 GPU 内存成本。将这些段表示为 Q1、...、Qs、K1、...、Ks 和 V1、...、Vs。这些段的每个三元组分别应用缩放点积注意 (SDPA) 操作。 SDPA的结构也如图8所示,只是省略了M ask操作。之后,SDPA的所有输出(O1,O2,...,Os)连接在一起以生成整个输出特征O。最后,扩展层用于恢复通道数。