浙大和腾讯开源CrossFormer:基于跨尺度注意力的视觉Transformer

2021-08-10 16:17:25 浏览数 (1)

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

CrossFormer:基于跨尺度注意力机制的通用视觉Transformer

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

代码地址(已开源):

https://github.com/cheerss/CrossFormer

作者单位:浙江大学CAD&CG国家重点实验室、哥伦比亚大学、腾讯

在视觉任务中,跨尺度的注意力机制非常重要。如,同一张图片中不同大小的物体建立关联需要跨尺度的注意力机制;而在实例分割等任务中,为了得出更好的分割结果,也需要建立大尺度的全局特征和小尺度的细粒度特征之间的关联。但现有的视觉Transformer并不拥有建立跨尺度特征的能力。本文分析造成此问题的原因有两方面:

  • 现有的Transformer大多把输入图像分成相同大小的图块,然后生成视觉嵌入(embeddings)。因此,同一层中的所有嵌入的尺度总是相同的,本身并不具备跨尺度的特征。
  • 为了降低自注意力模块(self-attention)的显存和计算开销,很多现有Transformer会合并相邻的嵌入,让他们共享相同的key/value。因此,此时嵌入本身含有跨尺度的特征,这种合并的操作也会使得他们失去小尺度(细粒度)的特征,从而无法构建跨尺度的注意力。

针对此问题,本文提出基于跨尺度注意力机制的视觉Transformer -– CrossFormer。CrossFormer和PVT等一样采用金字塔式的结构,从而将模型分为了多个不同的阶段(stage),如图1所示。它的核心设计包含跨尺度嵌入层(CEL)和长短距离注意力(L/SDA)两个模块:

图 1 CrossFormer的整体结构

图 2 跨尺度嵌入层Cross-scale Embedding Layer(CEL)

  • 跨尺度嵌入层(Cross-scale Embedding Layer, CEL):CEL出现在每个stage的开头,它接收上一个stage的输出(或者是图片)为输入,为当前的stage生产嵌入。以第一个stage的CEL层为例,如图2所示,它用多个不同的kernel对输入进行采样。从图中可以看出,4个不同的kernel会产生4中不同尺度的图块,每4个相对应的图块经过映射、拼接后生成一个嵌入。这样,每个嵌入都可以包含4中不同尺度的信息。实际中,采样和映射的过程可以用4个kernel大小不同的卷积层来完成。考虑到大卷积和容易引入更多的计算量,作者给小尺度特征分配了更大的维度,而大卷积核用较小的维度。
  • 长短距离注意力(Long Short Distance Attention,LSDA):原有的自注意力机制对于视觉输入而言开销过大,因此我们也设计了一个其替代品。但为了不破坏嵌入的细粒度特征,我们不采用合并嵌入的方式来减小开销。相反,我们把自注意力分为了短距离注意力(SDA)和长距离注意力(LDA)。SDA和LDA采用和ViT相同的注意力计算方式,但是他们将每层的输入分为了很多组,并且限制自注意力的计算只在每组内部进行。SDA和LDA主要区别在于分组方式不同,如图所示,SDA把相近的嵌入分为一组,图3(a)所示每组大小为

;而LDA在分组时以间隔

来采样,图3(b)中给出了一个

的例子,图中所有红色边框的嵌入属于同一组,所有黄色边框的嵌入属于另一组。

图3 长短距离注意力(Long Short Distance Attention,LSDA)的分组方式。

文中给出了4种不同大小的CrossFormer,它们在图像分类、物体检测、实例分割、语义分割4个具有代表性的视觉任务上超越了其他的视觉Transformer。并且在物体检测、实例分割、语义分割3个任务上涨点非常显著。代码和预训练模型已在github公开。

在图像分割上的性能表现

在语义分割上的性能表现:

在目标检测和实例分割上的性能表现:

论文PDF和代码下载

0 人点赞