简单高效!浙大CAD&腾讯&哥大开源跨尺度的Transformer,显著涨点检测、分割、分类三大CV任务!

 写在前面

Transformer在处理视觉任务方面取得了很大的进展。然而,现有的视觉Transformer仍然不具备在不同尺度的视觉特征之间建立attention的能力。造成这个问题的原因有两方面:1)每层的输入embedding都是等尺度的,没有跨尺度特征;2)一些视觉Transformer牺牲了小尺度的特征embedding,以降低Self-Attention模块的计算成本。

为了弥补这一缺陷,作者提出了跨尺度embedding层(Cross-scale Embedding Layer,CEL)长短距离注意层(Long Short Distance Attention,LSDA)CEL将每个embedding与不同尺度的多个patch融合 ,为模型提供跨尺度embedding。LSDA将自注意模块分为短距离模块和长距离模块 ,降低了计算成本,但在embedding中保留了小规模和大规模的特性。
通过这两种设计,模型实现了跨尺度的attention。此外,作者还提出了视觉Transformer的动态位置偏差(dynamic position bias),以使目前的相对位置偏差方法能够应用于可变大小的图像 。基于这些提出的模块,作者构建了新的视觉Transformer架构,称为CrossFormer。实验表明,CrossFormer在多个具有代表性的视觉任务上,特别是目标检测和分割上,优于其他Transformer结构。

 1. 论文和代码地址

CrossFormer: A Versatile Vision Transformer Based on Cross-scale Attention

论文:https://arxiv.org/abs/2108.00154

代码:https://github.com/cheerss/CrossFormer

 2. Motivation

Transformer在自然语言处理(NLP)方面取得了巨大的成功。受益于其高效的自注意模块,Transformer天生就具有建立远程依赖的能力,这对许多视觉任务也很重要。因此,已经有大量的研究探索了基于Transformer的视觉架构。

原始Transformer需要一系列的embedding作为输入。为了适应视觉任务,大多数现有的视觉Transformer通过将图像分割成相同大小的patch来产生embedding。例如,一个224×224图像可以被分割成56×56个4×4大小的patch,然后这些patch通过线性层投影成为embedding序列。
在Transformer内部,自注意模块可以在任意两个embedding之间建立依赖关系。然而,普通自注意机制的显存和计算成本对于视觉任务来说太大了,因为视觉embedding的序列长度比NLP的要长得多。因此,目前也有一些工作提出了许多Self-Attention机制的替代品,以较低的成本近似Self-Attention模块。
虽然上述工作取得了一些进展,但现有的视觉Transformer仍然存在限制其性能的问题——它们不能在不同尺度的特征之间建立attention而这种能力对视觉任务非常重要 。例如,一个图像通常包含许多不同尺度的对象,而建立它们之间的关系需要一个跨尺度的注意机制。此外,一些任务,如实例分割,需要大规模(粗粒度)特征和小规模(细粒度)特征之间的交互。

现有的视觉Transformer无法处理这些情况,原因有两个原因:

1)embedding序列用相同大小的patch生成的,所以embedding在同一层只拥有一个尺度的特征
2)目前的一些transformer模型为了减少self-attention的计算量,将相邻的key和value特征进行了合并 。因此,即使embedding同时具有不同尺度的特征,合并操作也会造成每个embedding的小规模(细粒度)特征的损失,从而阻碍了跨尺度的attention。

为了解决这一问题,作者设计了新的embedding层和自注意模块:

1)跨尺度embedding层(Cross-scale Embedding Layer,CEL) ,作者在Transformer使用了一个金字塔结构,将模型自然地分为多个stage。CEL出现在每个stage的开始阶段,接收上一个stage的输出作为输入,使用多个不同尺度的卷积核进行采样patch。然后,每个embedding都是通过投影和concat这些patch来构建的,因此构建的embedding是多尺度的,而不是单尺度的。
2)长短距离注意层(Long Short Distance Attention,LSDA) ,作者提出了一种替代普通的Self-Attention的方法。为了保持小规模的特征,所有的embedding将不会被合并。LSDA可以分为短距离注意(SDA)长距离注意(LDA) 。SDA构建相邻embedding之间的依赖关系,而LDA负责远离距离的embedding之间的依赖关系。此外,LSDA还降低了自注意模块的成本,并且LSDA还不会损害小规模或大规模的特征,有助于多尺度的特征信息交互。
此外,相对位置偏差(RPB)是视觉Transformer的有效位置表示方法。但是,它仅适用于输入图像大小固定的情况下。对于目标检测等任务,输入的图片通常是不固定的。为了使其更加灵活,作者提出了一个可训练的模块,称为动态位置偏差(DPB),它接收两个embedding的距离作为输入,并输出它们的位置偏差 。DPB在训练阶段进行了端到端优化,并且适用于可变的图像大小。
基于上面提出的几个模块,作者构建了四种不同计算量和参数量的多尺度视觉Transformer,称为CrossFormer。实验表明,CrossFormer在多个具有代表性的视觉任务上,特别是目标检测和分割上,优于其他Transformer结构。作者认为这是因为图像分类只需要关注一个目标和大规模特征,而密集的预测任务更依赖于跨尺度注意。

 3. 方法

Crossformer的模型结构如上图所示,Crossformer采用了金字塔结构,自然地将模型分为四个阶段。每个阶段由一个跨尺度embedding层和几个Crossformer Block组成。CEL接收上一个阶段的输出作为输入,并生成跨尺度的embedding。
在这个过程中,CEL(除了Stage-1)将embedding的数量减少到四分之一,而金字塔结构的维度增加了一倍。然后CEL后面接上Crossformer Block,并在网络的最后接上特定任务的head以完成特定的任务。

3.1跨尺度embedding层(CEL)

跨尺度embedding层用于生成每个阶段的输入embedding。上图展示了Stage1的CEL。它接收一个图像作为输入,使用四个不同大小的核来采样patch。四个核的步长保持不变,以便它们生成相同数量的embedding。
如上图所示,每四个对应的patch都有相同的中心,但有不同的尺度。这四个patch将被投影并concat为一个embedding。在实现上,采样和embedding的过程可以通过四个卷积层来实现。
对于跨尺度embedding,有一个问题是如何设置每个尺度的投影维度 。由于一个大的核更容易产生相当大的计算成本,因此作者对于大的核使用较小的维度,而对于小的核使用较高的维度。
与平均分配通道维度相比,这样的方案节省了很大的计算成本,也没有明显地影响模型的性能。其他阶段的跨尺度embedding层也以类似的方式工作。第2/3/4阶段的CEL使用两个核(2×2和4×4)。并将步长设置为2×2,将embedding数量减少为二分之一。

3.2 Crossformer Block

如上图所示,每个Crossformer块由一个短距离注意(SDA)或长距离注意(LDA)模块和一个多层感知机(MLP)组成。SDA和LDA在不同的块中交替出现,动态位置偏差(DPB)在SDA和LDA中用于embedding的位置表示。

3.2.1长短距离注意(LSDA)

作者将Self-Attention模块分为短距离注意力(SDA)和长距离注意力(LDA)两部分。对于SDA,每个G×G相邻的embedding被分组在一起,上图给了一个G=3的例子。
对于输入大小为S×S的LDA,embedding以固定的步长I进行采样。上图给了一个I=3的例子。
所有包含红色边框的embedding都属于一个组,而具有黄色边框的embedding则属于另一组。在对embedding进行分组后,SDA和LDA在每一组内都使用了Self-Attention模块。因此,自注意模块的内存和计算成本从降低到。
在上图中,作者绘制了两组embedding(红色、黄色)。我们可以看到,在计算Self-Attention时两个相邻的embedding在原图中是不相邻的,如果没有大尺度patch的帮助就很难判断它们的关系。
因此,如果这两个embedding仅由小规模的patch构建,就很难建立它们之间的依赖关系。相反,相邻的大尺度patch提供了足够的上下文来建立这两个embedding的联系。因此,在大尺度patch的指导下,长距离跨尺度的attention就变得更容易、更有意义。

3.2.2动态位置偏差(DPB)

相对位置偏差(RPB)通过在embedding的attention map上加入一个位置偏差,来表示embedding的相对位置:
在以前的工作中,位置偏差的计算如下:
是一个固定的矩阵,是embedding坐标的相对距离。因此,图像大小就会受到矩阵大小的限制。为了解决这个问题,作者提出了一个基于MLP的模块,称为DPB来动态产生相对位置偏差:
DPB的结构如上图所示,它由三个具有layer normalization的全连接层和ReLU激活函数组成。

3.3. Variants of CrossFormer

基于上面提出的结构,作者提出四种不同大小和计算量的Crossformer。

 4.实验

4.1图像分类

与其他模型相比,CrossFormer在相似的参数和FLOPs下获得了最高的精度。

4.2目标检测和实例分割

可以看到,在目标检测和实例分割任务上,CrossFormer也具有很大的性能优势。此外,当扩大模型时,CrossFormer的性能提高增加,表明CrossFormer具有更高的潜力。

4.3语义分割

在语义分割任务上,与目标检测类似,在扩大模型时,CrossFormer显示出比其他模型更大的性能增益。

4.4消融研究

Cross-scale Embeddings vs. Single-scale Embeddings

从上表可以看出,跨尺度embedding获得了较大的性能增益,即其精度比没有跨尺度embedding的模型高1.0%(第三、第四行)。

LSDA vs. Other Self-attentions

从上表1,2,3行可以看出,本文的LSDA相比于其他attention方法,具有性能上的优势。

DPB vs. Other Position Representations

上表对比了不同position表示的方式性能,可以看出,DPB的精度与RPB相同,但是它比RPB更灵活,适用于可变的图像大小。

 5. 总结

在本文中,作者提出了一种基于Transformer的视觉架构,称为CrossFormer。其核心设计包括一个跨尺度的embedding层长短距离注意(LSDA) 模块。此外,作者提出了动态位置偏差(DPB) ,使得相对位置偏差能够适用于任何大小的输入。

实验表明,CrossFormer在多个具有代表性的视觉任务上比其他视觉Transformer具有更好的性能。CrossFormer在检测和分割方面有了很大的改进,这表明跨尺度embedding和LSDA对于密集的预测视觉任务尤为重要。

▊ 作者简介

研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。

知乎/公众号:FightingCV

END,入群👇备注:CV

(0)

相关推荐