超分算法ESRT:Transformer for Single Image Super-Resolution

在这里插入图片描述
这篇文章网络结构ESRT( Efficient Super-Resolution Transformer)还是蛮复杂的,是一个CNN和Transformer结合的结构。文章提出了一个高效SRTransformer结构,是一个轻量级的Transformer。作者考虑到图像超分中一张图像内相似的细节部分可以作为参考补充,(类似于基于参考图像Ref的超分),于是引入了Transformer,可以在图像中建模一种长期依赖关系。而ViT这些方法计算量太大,太占内存,于是提出了这个轻量版的Transformer结构(ET)ET只使用了transformer中的encoder,并且作者还使用了feature spilt将QKV划分为小组分别计算注意力最后拼接。文章还在CNN部分提出了一个高频滤波器模块HFM,保留高频信息进行特征提取。

文章主要重点在速度(高效), 效果也是很好的,作者在实验部分提到把ET结构嫁接到RCAN中也能提高RCAN的效果,证明了ET的有效性。

原文链接:ESRT:Transformer for Single Image Super-Resolution
源码地址: https://github.com/luissen/ESRT.

Abstract

随着深度学习的发展,单幅图像超分辨率(SISR)技术取得了长足的进步。近来越来越多的研究人员开始探索Transformer在计算机视觉任务中的应用。然而,Vision Transformer巨大的计算成本和高GPU内存占用问题阻碍了其脚步。在本文中,提出了一种用于SISR的新型高效超分辨率Transformer(ESRT)。ESRT是一种混合模型,由轻型CNN主干网(LCB)轻型Transformer主干网(LTB)组成。其中,LCB可以动态调整特征图的大小,以较低的计算成本提取深层特征。LTB由一系列高效Transformer(ET)组成,使用专门设计的高效多头注意(EMHA),它占用的GPU内存很小。大量实验表明,ESRT以较低的计算成本获得了有竞争力的结果。与原始Transformer占用16057M GPU内存相比,ESRT仅占用4191M GPU内存。
在这里插入图片描述

1 Introduction

因为在同一张图像中相似的图像patch可以用作彼此的参考图像,以便使用参考patch来恢复特定patch的纹理细节。受此启发,作者将Transformer引入到SISR任务中,因为Transformer具有很强的特征表达能力,可以在图像中建模这种长期依赖关系。目标是探索在轻量级SISR任务中使用Transformer的可行性。近来有一些Transformer已经被提出用于计算机视觉任务。然而,这些方法往往占用大量GPU内存,这极大地限制了它们的灵活性和应用场景。

为了解决上述问题,提出了一种高效的超分辨率Transformer(ESRT),以增强SISR网络捕获长距离上下文依赖的能力,同时显著降低GPU的内存成本

ESRT是一种混合架构,使用“CNN+Transformer”模式来处理小型SR数据集。ESRT可分为两部分:轻型CNN主干网(LCB)和轻型Transformer主干网(LTB)。

  1. 对于LCB,更多地考虑减少中间层特征图的形状,并保持较深的网络深度,以确保较大的网络容量。受高通滤波器的启发,设计了一个高频滤波模块(HFM)捕捉图像的纹理细节。在HFM的内,又提出了一种高保留块(HPB),通过大小变化有效地提取潜在特征。在特征提取方面,提出了一种功能强大的自适应残差特征块(ARFB)作为基本特征提取单元,能够自适应调整残差路径和路径的权重。
  2. 在LTB中,提出了一种高效Transformer(ET),它使用专门设计的高效多头注意(EMHA)机制来降低GPU内存消耗。且只考虑局部区域中图像块之间的关系,因为SR图像中的像素通常与其相邻像素相关。尽管它是一个局部区域,但它比常规卷积要宽得多,可以提取更多有用的上下文信息。因此,ESRT可以有效地学习相似局部块之间的关系,使超分辨区域具有更多的参考。

主要贡献如下:

  1. 提出了一种轻量级的CNN主干(LCB),它使用高保留块(HPB)来动态调整特征图的大小,以较低的计算成本提取深层特征
  2. 提出了一种轻量级Transformer主干(LTB),利用专门设计的高效Transformer(ET)和高效多头注意(EMHA)机制,捕捉图像中类似patch之间的长期依赖关系
  3. 提出了一种称为高效SR Transformer(ESRT)的新模型,以有效地增强图像中相似patch的特征表达能力和长期依赖性,以较低的计算成本获得更好的性能。

2 Efficient Super-Resolution Transformer

高效超分辨率Transformer(ESRT)主要由四部分组成:浅层特征提取、轻型CNN主干(LCB)、轻型Transformer主干(LTB)和图像重建。
在这里插入图片描述

扫描二维码关注公众号,回复: 15081504 查看本文章

浅层特征提取:
一个3×3卷积层
在这里插入图片描述

轻型CNN主干(LCB):
由多个高保留块High Preserving Blocks(HPBs)组成(实验中为3个), ζ n ζ^n ζn 是第n个HPB的映射,第n个HPB的输出为 F n F_n Fn,公式:
在这里插入图片描述

轻型Transformer主干(LTB):
每个HPB的输出拼接后送进LTB融合特征,LTB由多个Efficient Transformers (ETs)组成(实验中为1个), ϕ \phi ϕ代表的是ET的功能, F d F_d Fd是LTB的输出,公式如下
在这里插入图片描述

图像重建:
最后 F d F_d Fd F 0 F_0 F0同时馈入重建模块,以获得重建图像 I S R I_{SR} ISR f f f f p f_p fp分别代表卷积层和亚像素卷积层,获得 I S R I_{SR} ISR的公式如下:
在这里插入图片描述

ESRT的整体结构比较常规,深层特征提取联合使用了CNN和Transformer。LCB内使用了比较复杂的结构,推理速度比较慢,而ET中仅使用了一个Transformer的encoder结构并不会带入太大的计算量。后面实验也证明了加入ET能给网络带来增益。

2.1 Lightweight CNN Backbone (LCB)

轻量级CNN主干网(LCB)的作用是提前提取潜在的图像特征,使模型具有超分辨率的初始能力。LCB主要由一系列高保留块(HPB)组成。
在这里插入图片描述

HPB:
以往的SR网络通常在处理过程中保持feature map的空间分辨率不变。在本文中为了降低计算成本,提出了一种新的高保留块(HPB)来降低处理特征的分辨率。然而,特征图尺寸的减小往往会导致图像细节的丢失,从而导致视觉上不自然的重建图像。为了解决这个问题,在HPB中,作者创造性地提出了高频滤波模块(HFM)自适应残差特征块(ARFB)

先介绍HPB的整体结:由HFM和ARFB组成。再详细剖析HFM和ARFB的结构。

整体结构: 前一个HPB的输出 F n − 1 F_{n-1} Fn1,作为当前HPB的输入。先经过一个ARFB用于提取 F n − 1 F_{n-1} Fn1作为HFM的输入功能。然后,使用HFM计算特征的高频信息(标记为 P h i g h P_{high} Phigh)。在获得 P h i g h P_{high} Phigh后,减小了特征映射的大小,以减少计算成本和特征冗余。下采样特征图表示为 f n − 1 ′ f'_{n−1} fn1、对于 f n − 1 ′ f'_{n−1} fn1使用多个共享权重的ARFB探索SR图像的潜在信息(减少参数)。同时,使用单个ARFB处理 P h i g h P_{high} Phigh来对齐特征空间 f n − 1 ′ f'_{n−1} fn1 f n − 1 ′ f'_{n−1} fn1在特征提取后通过双线性插值上采样到原始大小。拼接融合 f n − 1 ′ f'_{n−1} fn1 P h i g h ′ P'_{high} Phigh,得到 f n − 1 ′ ′ f''_{n−1} fn1,用于保留初始细节。得到 f n − 1 ′ ′ f''_{n−1} fn1的公式为:
在这里插入图片描述
其中,↑和↓代表上下采样; f a f_a fa代表ARFB的功能。为了平衡模型尺寸和性能,采用五个共享参数的ARFB。

f n − 1 ′ ′ f''_{n−1} fn1由两个特征拼接,因此先使用1×1卷积层来减少t通道数。然后,使用通道注意力来加大具有高激活值的频道权重。最后,使用ARFB提取最终特征,并提出全局残差连接来添加原始特征 F n − 1 F_{n−1} Fn1 F n F_n Fn。该操作的目的是从输入中学习残差信息并稳定训练。

通道注意力模块引自Squeeze-and-excitation networks这篇文章,或者和RCAN中使用的CA模块是一样的。

这篇文章实际上也是套娃残差结构,但在残差结构上进行了很多改进,比如说加入了自适应的Res scaling、高频滤波器,下采样循环卷积等等。

HFM:High-frequency Filtering Module

由于傅里叶变换很难嵌入到CNN中,本文提出了一种可微HFM。HFM的目标是从LR空间估计出图像的高频信息
在这里插入图片描述
如图4所示,假设输入特征映射 T L T_L TL的大小为 C × H × W C×H×W C×H×W,首先使用平均池化获得 T A T_A TA
在这里插入图片描述
其中k表示池化层的kernel大小,中间特征映射 T A T_A TA的大小为 C × H k × W k C×\frac{H}{k}×\frac{W}{k} C×kH×kW T A T_A TA中的每个值都可以被视为指定的 T L T_L TL小区域的平均强度。之后,对TA进行上采样,以获得尺寸为 C × H × W C×H×W C×H×W的新张量 T U T_U TU T U T_U TU是平均平滑度信息的表达式。最后,从 T L T_L TL按元素减去 T U T_U TU以获得高频信息。

T L T_L TL T U T_U TU和高频信息的视觉激活图如图5所示。可以观察到, T U T_U TU T L T_L TL更平滑,因为它是 T L T_L TL的平均信息。同时,高频信息在下采样(平均池化)之前保留了特征图的细节和边缘。因此,保存这些信息至关重要。

ARFB:Adaptive Residual Feature Block

受ResNet和VDSR启发,当模型的深度增加时,残差结构可以缓解梯度消失问题,并增加模型的表示能力。于是提出了一种自适应残差特征块(ARFB)作为基本特征提取块。
在这里插入图片描述
ARFB包含两个残差单元(RU)和两个卷积层。为了节省内存和参数数量,RU由两个模块组成:缩减模块和扩展模块。对于缩减,将特征映射的通道减少一半,并在扩展中恢复。同时,设计了一种带自适应权值的残差缩放算法(RSA),动态调整残差路径权重。与固定Res scaling相比,RSA可以改善梯度的流动,并自动调整残差特征映射的内容,以用于输入特征映射。假设 x r u x_{ru} xru是RU的输入,RU的过程可以表示为
在这里插入图片描述

其中, y r u y_{ru} yru是RU的输出, f r e f_{re} fre f e x f_{ex} fex表示缩减和扩展操作, λ r e s λ_{res} λres λ x λ_x λx分别是两条路径的自适应权重。使用1×1卷积层来改变通道数,以实现缩减和扩展功能。同时,将两个RU的输出拼接后输入1×1卷积层,以充分利用层次特征。最后,采用3×3卷积层来减少特征映射的通道,并从融合后的特征中提取有效信息

LCB,CNN的部分就结束了,回顾一下:LCB由三个HPB构成。每个HPB由HFM和ARFB构成,结构中包含通道注意力和上下采用及五个共享参数的ARFB。全文贯穿了一个理念:减少参数。(ARFB共享参数、上下采样、缩减扩展层都是为了减少参数,体现轻量高效


2.3 Lightweight Transformer Backbone (LTB)

在SISR中,图像中的相似图像块可以用作彼此的参考图像,因此可以参考其他图像块来恢复当前图像块的纹理细节,这非常适合使用Transformer。然而,以前的vision Transformer变体通常需要大量的GPU内存,这阻碍了Transformer在vision领域的发展。在本文中,作者提出了一种轻型Transformer主干(LTB)。LTB由专门设计的高效Transformer(ETs)组成,可以以较低的计算成本捕获图像中相似局部区域的长期依赖性
在这里插入图片描述
前后的准备工作: 将feature map展成一维序列、将序列转回feature map

标准Transformer将一维序列作为输入,学习序列的长距离依赖关系。而对于视觉任务,输入始终是二维图像

在ViT中,一维序列是通过非重叠块划分生成的,这意味着每个块之间没有像素重叠。作者认为这种预处理方法不适用于SISR。

因此,提出了一种新的特征映射处理方法。如图7所示,使用展开技术将特征地图分割成小块(其实就是用重叠的块来划分patch),每个小块都被视为一个“单词”。具体而言,feature map ∈ R C × H × W ∈ R^{C×H×W} RC×H×W(通过 k × k k×k k×k核)展开为一系列patch,即 F p i ∈ R k 2 × C , i = 1 , … , N F_{pi}∈ R^{k^2×C},i={1,…,N} FpiRk2×Ci=1N,其中 N = H × W N=H×W N=H×W是patch数量。关键部分就在于N的数量是 H × W H×W H×W,意味着分割的时候每次 k × k k×k k×k的kernel移动步长为1,每个patch之间有很大的重叠。而ViT和Swin-T都是以不重叠的块来划分,得到N数量为 H k × W k \frac{H}{k}\times\frac{W}{k} kH×kW

作者说由于“unfold”操作会自动反映每个patch的位置信息,因此每个patch的可学习位置嵌入都会被消除(???这是咋消除的)。然后,这些patch直接送进ET。ET的输出与输入具有相同的形状,使用“fold”操作来重建特征图。

 
EMHA:Efficient Multi-Head Attention
在这里插入图片描述
为了简单高效,与ViT一样,ET只使用标准Transformer的编码器结构。如图8左边所示,在ET的编码器中,有一个高效的多头注意(EMHA)和一个MLP。同时,在每个块之前使用层规范化,并且在每个块之后应用残差连接。ET部分与标准的encoder结构基本一致,唯二的区别在于,①作者把将QKV特征分割为s组,每组分别进行attention获得输出 O i O_i Oi,然后将输出Concat为O。将大矩阵相乘拆分为多个小矩阵相乘,来减少参数操作;②注意力计算的时候不适用mask。
在这里插入图片描述

如图8右边所示,假设输入 E i E_i Ei的形状为B×C×N。

  1. 首先,使用缩减层通道数减少一半 B × C 2 × N B×\frac{C}{2}×N B×2C×N)。
  2. 然后,通过一个线性层特征映射投影为三个元素:Q(查询)、K(键)和V(值)。
  3. 使用特征分割(FS)模块将Q、K和V分割为具有同等分割因子s的s等分段,分别表示为 Q 1 , . . . , Q s Q_1,...,Q_s Q1,...,Qs K 1 , . . . , K s K_1,...,K_s K1,...,Ks V 1 , . . . , V s V_1,...,V_s V1,...,Vs
  4. 对应的 Q i , K i , V i Q_i,K_i,V_i Qi,Ki,Vi分别计算注意力操作(SDPA)输出 O i O_i Oi,SDPA比于标准的注意力模块省略了mask操作。
  5. O 1 , O 2 , … , O s O_1,O_2,…,O_s O1,O2,,Os拼接起来,生成整个输出特征O
  6. 最后使用扩展层恢复通道数

假设标准Transformer中,Q和K计算形状为B×m×N×N的自注意力矩阵。然后该矩阵与V计算自注意力,第3和第4个维度为N×N。对于SISR,图像通常具有高分辨率导致N非常大,自注意力矩阵的计算消耗了大量GPU内存和计算成本。
↓↓
为了解决这个问题,由于超分辨率图像中的预测像素通常只依赖于LR中的局部相邻区域,因此将Q、K和V分割为s等分段。最后一个自矩阵的第3和第4个维度变为为 N s × N s \frac{N}{s}\times\frac{N}{s} sN×sN显著降低了计算量和GPU存储成本

3 Experiments

setting:

训练:使用DIV2K作为训练数据集。
测试:使用了五个基准数据集,包括Set5、Set14、BSD100、Urban100和Manga109
指标:PSNR和SSIM用于评估重建SR图像的性能。
batch:16
patch:48×48
图像增强:随机水平翻转和90度旋转
初始学习速率设置为 2 × 1 0 − 4 2×10^{-4} 2×104每200个epochs减少一半。
optimizer:Adam ,momentum = 0.9。
损失函数:L1 loss
使用一个GTX1080Ti GPU训练需要约两天时间。

缩减层使用1×1卷积核,其他均使用3×3
卷积层通道数32,融合层通道数64
图像重建使用PixelShuffle
HFM中的k = 2
三个HPB,一个ET
分裂因子s = 4
ET的前后工作中k = 3
EMHA 8头注意力

3.1 Comparisons with Advanced SISR Models

在表1中,

  1. 虽然EDSR基线的性能接近ESRT,但其参数几乎是ESRT的两倍。
  2. MAFFSRN和LatticeNet的参数量接近ESRT,但ESRT的结果比它们更好。
  3. ESRT在Urban100上的性能比其他模型要好得多。这是因为此数据集的每个图像中都有许多相似的patch。因此,在ESRT中引入的LTB可以用来捕获这些相似图像块之间的长期依赖关系,并了解它们的相关性,从而获得更好的结果。
  4. 在×4尺度下,ESRT与其他SR模型之间的差距更为明显。这得益于提出的ET的有效性,它可以从其他清晰的领域了解更多信息。
  5. 所有这些实验都验证了所提出的ESRT的有效性
    在这里插入图片描述

3.2 Comparison on Computational Cost

在表2中,

  1. ESRT可以达到163层,而在这些方法中仍然实现了第二最少的算力(67.7G)。这得益于所提出的HPB和ARFB,它们可以有效地提取有用的特征并保留高频信息。
  2. 即使ESRT使用Transformer架构,运行时间也很短。与CARN和IMDN相比,增加的时间是完全可以接受的。
    在这里插入图片描述

3.3 Ablation Study

HPB:
表3中探讨了ESRT中HPB各组成部分的有效性

  1. 对比Case1、2、3,可以观察到引入的HFM和CA可以有效地提高模型性能,但会增加参数。
  2. 对比Case2、4,可以看到,如果使用RB代替ARFB,PSNR结果仅增加0.01dB,但参数数量增加到972K。这意味着ARFB可以显著减少模型参数同时保持优异的性能
  3. 所有这些结果充分说明了这些模块和机制在HPB中的必要性和有效性。

在这里插入图片描述

ET:
在表4中,分析了有无Transformer对模型的影响

  1. 如果ESRT移除Transformer,模型性能将从32.18dB明显下降到31.96dB。这是因为引入的Transformer可以充分利用图像中相似图像块之间的关系。
  2. 将ET与表中的原始Transformer进行了比较。1ET以更少的参数和GPU内存消耗(1/4)获得了更好的结果。实验充分验证了所提出的ET的有效性。
  3. 随着ET数量的增加,模型性能将进一步提高。然而,值得注意的是,模型参数和GPU内存也会随着ET数量的增加而增加。因此,为了在模型的大小和性能之间实现良好的平衡,在最终ESRT中仅使用一个ET。

为了验证所提出的ET的有效性和普遍性将ET引入RCAN。作者在实验中仅使用了一个小型版本的RCAN(残差组数量设置为5),并在重建部分之前添加ET。从表5可以看出,“RCAN/2+ET”模型的性能接近甚至优于原始RCAN,且参数更少。这进一步证明了ET的有效性和通用性,它可以方便地移植到任何现有的SISR模型中,进一步提高模型的性能。
在这里插入图片描述

3.4 Real Image Super-Resolution

ESRT与真实图像数据集(RealSR)上的一些经典轻量级SR模型比较。根据表6,可以观察到ESRT达到了比IMDN更好的效果。此外,ESRT在×4上的性能优于LK-KPN,后者是专为实际SR任务设计的。该实验进一步验证了ESRT在真实图像上的有效性。

在这里插入图片描述

3.5 Comparison with SwinIR

ESRT中的EMHA类似于SwinIR的Swin-Transformer层。然而,SwinIR使用滑动窗口来解决Transformer的高计算问题,而ESRT使用分裂因子来减少GPU内存消耗。根据表7,与SwinIR相比,ESRT以更少的参数和GPU内存实现了接近的性能。值得注意的是,SwinIR使用了一个额外的数据集(Flickr2K)进行训练,这是进一步提高模型性能的关键。为了与IMDN等方法进行公平比较,作者在这项工作中没有使用此外部数据集。

在这里插入图片描述

4 Conclusion

本文中,提出了一种用于SISR的新型高效超分辨率Transformer(ESRT)。

  1. 是一个CNN和Transformer结合的混合结构。
  2. ESRT首先利用轻量级CNN主干(LCB)来提取深层特征,然后使用轻量级Transformer主干(LTB)来建模图像中相似局部区域之间的长期依赖关系
  3. 在LCB中,提出了一种高保留块(HPB),通过专门设计的高频滤波模块(HFM)和自适应残差特征块(ARFB)来降低计算成本并保留高频信息。
  4. 在LTB中,设计了一种高效Transformer(ET),在所提出的高效多头注意(EMHA)的帮助下,以较低的GPU内存占用来增强特征表示能力。
  5. 大量实验表明,ESRT在模型性能和计算成本之间取得了最佳的平衡。

最后祝各位科研顺利,身体健康,万事胜意~

猜你喜欢

转载自blog.csdn.net/qq_45122568/article/details/124635706