Transformer 综述 & Transformers in Vision: A Survey

声明:

  • 因本人课题只涉及图像分类和目标检测,且此综述对这两个领域调查的比较多,所以此文章只对图像分类和目标检测进行精读。
  • 若是对 [ ] 中的论文感兴趣,到原论文中查阅参考文献即可。
  • 下图是综述内容涉及的计算机视觉十大领域(图像识别、目标检测、语义和实例分割、视频分析和分类、视觉问答、视觉常识推理、图像描述、视觉语言导航、聚类、小样本学习和3D数据分析)。
  • ViT和DETR两大经典论文,强烈推荐阅读,可访问本人Transformer专栏。

Transformer 综述 & Transformers in Vision: A Survey_第1张图片

目录

一、摘要

二、介绍

三、Transformer概述

四、视觉中的 Transformer

(1)Single-head Self-Attention(Self-Attention in CNNs)

(2)Single-head Self-Attention(Self-Attention as Stand-alone Primitive)

(3)Multi-head Self-Attention(Uniform-scale Vision Transformers)

(4)Multi-head Self-Attention(Multi-scale Vision Transformers)

(5)Multi-head Self-Attention(Hybrid ViTs with Convolutions)

(6)Multi-head Self-Attention(Self-Supervised Vision Transformers)

五、目标检测中的 Transformer

(1)Detection Transformers with CNN Backbone

(2)Detection with Pure Transformers

六、结论


一、摘要

来自自然语言任务的Transformer模型的惊人结果引起了视觉界的兴趣,他们研究了它们在计算机视觉问题中的应用。与长短期记忆( Long short-term memory,LSTM )等循环网络相比,Transformer能够建模输入序列元素之间的长依赖关系,并支持序列的并行处理。与卷积网络不同,Transformer在设计时要求最小的电感偏差,并且作为集合函数自然适用。此外,Transformers的简单设计允许使用类似的处理模块处理多个模态的(例如,图像、视频、文本和语音等),并在非常大容量的网络和巨大的数据集上展示了出色的可扩展性。这些优势使得Transformer网络在许多视觉任务上取得了令人振奋的进展。本次调查旨在对计算机视觉学科中的Transformer模型进行全面的概述。我们首先介绍Transformers成功背后的基本概念,即自注意力、大规模预训练和双向特征编码。然后介绍了Transformer在视觉中的广泛应用,包括流行的识别任务(例如,图像分类、物体检测、动作识别和分割)、生成式建模、多模态任务(例如,视觉问答、视觉推理和视觉接地)、视频处理(例如,活动识别、视频预测等)、底层视觉(例如,图像超分辨率、图像增强和彩色化等)和3D分析(例如,点云分类和分割)。我们从architectural design and experimental value两方面比较了流行技术各自的优势和局限性最后,我们对开放的研究方向和未来可能的工作进行了分析。我们希望这一努力能引起社会各界的进一步兴趣,以解决当前计算机视觉中Transformer模型应用面临的挑战。

Index Terms—Self-attention, transformers, bidirectional encoders, deep neural networks, convolutional networks, self-supervision.

论文地址:[2101.01169v4] Transformers in Vision: A Survey (arxiv.org)

二、介绍

近年来,TRANSFORMER模型[ 1 ]在文本分类、机器翻译[ 2 ]和问答等语言任务上取得了良好的效果。在这些型号中,最受欢迎的包括BERT (来自变压器的双向编码器表示) [ 3 ]、GPT (生成式预训练Transformer) v1-3 [ 4 ] - [ 6 ]、罗伯塔(鲁棒优化的BERTP再训练) [ 7 ]和T5 (文本到文本传输转换器) [ 8 ]。Transformer模型的深远影响随着其对超大容量模型的可伸缩性而变得更加清晰[ 9 ] [ 10 ]。例如,具有3.4亿个参数的BERT - large [ 3 ]模型明显优于具有175亿个参数的GPT - 3 [ 6 ]模型,而最新的 mixture-of-experts Switch transformer[ 10 ]的规模高达1.6万亿个参数!

Transformer 综述 & Transformers in Vision: A Survey_第2张图片

图1 在过去几年的同行评审和arXiv论文标题中出现BERT、Self - Attention和Transformers等关键词的次数统计(在计算机视觉和机器学习领域)。这些图表在最近的文献中显示出一致的增长。这个调查涵盖了最近在计算机视觉领域的Transformer的进展。 

自然语言处理( Natural Language Processing,NLP )领域中Transformer网络的突破引发了计算机视觉领域的极大兴趣,使这些模型能够适应视觉和多模态学习任务( 图1 )。然而,可视化数据遵循典型的(例如,空间和时间相干性)结构,因此需要新颖的网络设计和训练方案。因此,Transformer模型及其变体已成功用于图像识别[ 11 ]、[ 12 ]、目标检测[ 13 ]、[ 14 ]、分割[ 15 ]、图像超分辨率[ 16 ]、视频理解[ 17 ]、[ 18 ]、图像生成[ 19 ]、文本图像合成[ 20 ]和视觉问答[ 21 ] [ 22 ]等多个用例[ 23 ] - [ 26 ]。这项调查旨在涵盖计算机视觉领域最近的令人兴奋的努力,为感兴趣的读者提供全面的参考。

Transformer架构基于自注意力机制,该机制学习序列元素之间的关系。与递归网络递归处理序列元素且只能关注短期上下文不同,Transformer可以关注完整序列从而学习长程关系。尽管注意力模型在前馈网络和循环网络中都得到了广泛的应用[ 27 ],[ 28 ],Transformers完全基于注意力机制,并且有一个独特的实现(即多头注意力)被优化用于并行化。这些模型的一个重要特点是它们对高复杂度模型和大规模数据集的可扩展性,例如,相比于其他一些备选模型,如硬注意力[ 29 ],硬注意力具有随机非本质性,需要对注意力位置进行蒙特卡洛采样。由于Transformer相对于其卷积和循环对等[ 30 ] - [ 32 ]假设关于问题结构的先验知识最少,因此它们通常在大规模(未标记)数据集上使用前文本任务进行预训练[ 1 ],[ 3 ]。这样的预训练避免了昂贵的手动注释,从而编码了具有高度表现力和可泛化的表示,该表示建模了给定数据集中存在的实体之间的丰富关系。然后将学习到的表示以监督的方式在下游任务上进行微调,以获得良好的结果。

本文提供了为计算机视觉应用开发的Transformer模型的整体概述。我们开发了网络设计空间的分类法,并强调了现有方法的主要优点和缺点。其他文献综述主要集中在NLP域[ 33 ] [ 34 ]或涵盖基于注意力的通用方法[ 27 ] [ 33 ]。通过聚焦于视觉Transformer这一新兴领域,我们根据自注意力的内在特性和所研究的任务对近期的方法进行了全面的整理。我们首先提供了一个基本的Transformer网络的突出概念的介绍,然后详细阐述了最近的视觉Transformer的细节。在可能的情况下,我们在NLP领域中使用的Transformer [ 1 ]和为视觉问题开发的Transformer之间进行比较,以展示主要的新颖性和有趣的特定领域的见解。最近的方法表明,卷积操作可以被基于注意力的转换器模块完全取代,并且在一个单一的设计中联合使用,以鼓励这两个互补的操作之间的共生。本调查最后详述了开放式研究问题,并对未来可能的工作进行了展望。

三、Transformer概述

这篇综述中只对Transformer模型做了一个大概的讲解,具体的细节可以到本人的Transformer专栏中了解 变形金刚 Transformer_Flying Bulldog的博客-CSDN博客

Transformer 综述 & Transformers in Vision: A Survey_第3张图片

图3 Transformer模型结构。该模型首先针对一种语言的输入序列需要转换为另一种语言的输出序列的语言翻译任务而开发。Transformer编码器(中间行)对输入语言序列进行操作,并在将其传递到编码器块之前将其转换为嵌入。Transformer解码器(底部行)对前面生成的翻译语言输出和中间分支的编码输入序列进行操作,以输出输出序列中的下一个单词。前面输出的顺序(被用作解码器的输入)是通过将输出句右移一个位置并在开头附加句首标记来获得的。这种移位避免了模型学习简单地将解码器输入复制到输出。训练模型的基本事实是输出语言序列(没有任何右移)加上句末标记。由多头注意力(顶行)和前馈层组成的块在编码器和解码器中重复N次。 

四、视觉中的Transformer

Transformer 综述 & Transformers in Vision: A Survey_第4张图片

 图4 自注意力设计空间的分类法。现有的基于自注意力的方法探索了视觉任务的单头或多头(transformer)设计。我们注意到,利用卷积架构的知识来改进ViT s (例如,多尺度和混合设计)已经做出了有趣的努力。我们根据自注意力块(左树图)的类型对本节调查进行分类。 

我们将具有自注意力的视觉模型大致分为两类:使用单头自注意力的模型和使用基于多头自注意力的Transformer模块的模型。下面,我们首先讨论第一类基于单头自注意力的框架,这些框架通常在CNN架构中应用全局或局部自注意力,或者利用矩阵分解来提高设计效率并使用向量化注意力模型。

(1)Single-head Self-Attention(Self-Attention in CNNs)

受主要用于图像去噪的非局部均值操作[ 69 ]的启发,Wang等人[ 70 ]提出了一种用于深度神经网络的可微非局部操作,以前馈的方式捕获空间和时间上的长程依赖。在给定特征图的情况下,他们提出的算子《“Non-local neural networks”》将位置处的响应计算为特征图中所有位置处特征的加权和。这样,非局部操作能够捕获特征图中任意两个位置之间的交互,而不管它们之间的距离如何。视频分类是像素之间在空间和时间上都存在长程相互作用的任务的一个例子。具有建模远程交互的能力[ 70 ],证明了非局部深度神经网络在Dynamics数据集上进行更精确的视频分类的优越性[ 71 ]。

Transformer 综述 & Transformers in Vision: A Survey_第5张图片

图5 两种不同的自注意力方法的比较:非局部自注意力块[ 70 ]和交叉自注意力模块[ 72 ]。图来自[ 72 ]。 

虽然自注意力允许我们对全图像上下文信息建模,但它既是内存又是计算密集型的。如图5 ( a )所示,为了编码给定像素位置的全局上下文,非局部块[ 70 ]计算一个稠密的注意力图(绿色)。非局部块[ 70 ]的复杂度为其中N表示输入特征图的数量。为了减少这种计算负担,Huang等人[ 72 ]提出了十字交叉注意力模块,对于每个像素位置只在十字交叉路径上生成稀疏注意力图,如图5 ( b )所示。此外,通过反复应用纵横交错的注意力,每个像素位置可以从所有其他像素捕获上下文。相比于非局部块,十字交叉使用了11 ×更小的GPU内存,复杂度为在几个基准数据集上的语义和实例分割任务,包括Cityscapes [ 73 ]、ADE20K [ 74 ]、COCO [ 75 ]、LIP [ 76 ]和CamVid [ 77 ],都报告了最先进的结果[ 72 ]。

卷积运算符的另一个缺点来自于这样一个事实,即在训练之后,无论对视觉输入做任何更改,它都会应用固定权重。Hu等人[ 78 ]提出了局部关系网络来自适应地合成局部窗口中的像素。他们引入了一个新的可微层,该层根据局部窗口内像素/特征之间的组合关系(相似性)来调整其权重聚合这种自适应权重聚合将几何先验引入到网络中,对识别任务非常重要[ 78 ]。卷积被认为是一个自顶向下的算子,因为它在各个位置保持固定,而非局部操作(如[ 69 ]中介绍的)是一个自底向上的方法,因为它在整个图像中聚合了输入特征。局部关系层属于自底向上方法的范畴,但它仅限于固定的窗口大小,例如7x7邻域。

Bello等人[ 79 ]探讨了使用自注意力作为卷积运算符的替代方法的可能性。他们在两个维度上使用相对位置编码[ 80 ]来开发一种新的自注意力机制,它保持了等变性,这是处理图像的理想属性。虽然这种自注意力作为一个独立的计算原语提供了有竞争力的结果,但最好的性能是与卷积操作结合在一起的。作者的研究表明,对于不同的架构,注意力增强在图像分类和目标检测方面带来了系统性的性能增益。

(2)Single-head Self-Attention(Self-Attention as Stand-alone Primitive)

如上所述,卷积层具有平移等变性,但不能以大的感受野进行伸缩,因此不能捕获长距离的交互[ 81 ]。另一方面,关注输入的所有空间位置的全局注意力[ 1 ]可能是计算密集型的,在下采样的小图像、图像补丁[ 11 ]或增强卷积特征空间[ 79 ]上更受欢迎。拉马钱德兰等人[ 81 ]提出用局部自注意力层代替深度神经网络中的卷积层,该层可以应用于小或大的输入而不增加计算成本。在基本层次上,提出的自注意力层[ 81 ]考虑给定像素周围特定窗口大小内的所有像素位置,计算这些像素的查询、键和值向量,然后聚合该窗口内的空间信息。在投影查询和键的softmax得分后,对值向量进行聚合。对于所有给定的像素重复此过程,并将响应级联以产生输出像素。与基于卷积层的ResNet模型相比,具有局部自注意力层的ResNet模型可以用更少的参数解决ImageNet和COCO目标检测问题[ 81 ]。

Zhao等人[ 82 ]注意到传统的卷积运算符执行特征聚合和变换联合(通过施加一个滤波器,然后通过它的非线性)。相比之下,他们提出使用自注意力单独执行特征聚合,然后使用逐元素感知器层进行转换。对于特征聚合,他们提出了两种交替的策略:( a )成对自注意力和( b )分块自注意力。成对自注意力是置换和基数不变操作,而分块自注意力不具有这样的不变性属性(类似于卷积)。成对自注意力和分块自注意力都被实现为一个向量注意力[ 82 ],它学习空间维度和通道维度的权重。这为传统上使用标量权重(通过采取一个点产品)执行的注意力提供了替代方法。成对自注意力是一个集合运算符,它计算一个向量注意力,并在给定的局部邻域中保持特定特征与其邻居的关系。相比之下,分块自注意力是卷积算子(不是集合运算符)的推广,在计算注意力向量时,关注局部邻域内的所有特征向量。作者表明,使用更少的参数,自注意力网络( SAN )可以在ImageNet数据集上打败ResNet基线。它们进一步表现出对对抗扰动的鲁棒性[ 83 ],[ 84 ]和对未知变换的泛化性[ 85 ]。这种行为是由于注意的动态性使得对手难以计算出有用的方向。


单头自注意力将自注意力作为CNN启发的架构中的一个组件,Vision Transformer ( ViTs ) [ 11 ]采用了[ 1 ] (见图3)的架构,该架构级联了多个Transformer层。视觉里程计已经获得了重要的研究关注,最近提出了一些基于视觉里程计的方法。

我们分类讨论这些方法:通过所有层具有单尺度特征的统一尺度 ViT、学习更适合密集预测任务的分层特征的多尺度 ViT 以及在 ViT 内具有卷积操作的混合设计


 (3)Multi-head Self-Attention(Uniform-scale Vision Transformers)

最初的Vision Transformer [ 11 ]模型属于这个家族,其中多头自注意力应用于输入图像中的一致尺度,其中空间尺度通过网络层次结构保持。我们将此类模型命名为统一尺度的ViT,如下所述。

Transformer 综述 & Transformers in Vision: A Survey_第6张图片

图6 Vision Transformer (在左边)概述和Transformer编码器(在右边)的详细信息。该架构类似于NLP域中使用的Transformers,图像块经过展平后简单地馈送到模型中。训练完成后,使用从第一个标记位置获得的特征进行分类。本人Transformer专栏中有ViT论文详细讲解。

Vision Transformer ( ViT ) [ 11 ] (图6 )是第一个在大规模图像数据集上展示Transformer如何"完全"替代深度神经网络中的标准卷积的工作。他们将原始的Transformer模型[ 1 ] (具有最小的变化)应用在一系列图像"patches"平展上作为向量。该模型在大型适当数据集(包含3亿张图像的JFT数据集)上进行了预训练,然后微调到下游识别基准,例如ImageNet分类。这是一个重要的步骤,因为在中等范围的数据集上预训练ViT不会给出有竞争力的结果,因为与必须从非常大规模的数据中发现这些信息的Transformers相比,CNNs编码了关于图像(归纳性偏见,如翻译等变性)的先验知识,从而减少了对数据的需求。值得注意的是,与iGPT [ 19 ]模型同样将Transformers应用于全尺寸图像但作为生成任务进行训练相比,ViT通过监督分类任务(虽然也探索了一种自我监督的变体,导致了较低的性能)预训练模型。

DeiT [ 12 ]是第一个证明Transformers可以在中等规模的数据集(也就是说,与ViT 中使用的JFT 的3亿张图像相比, ImageNet有120万个示例)上在较短的训练集中学习的工作。除了使用CNN中常见的增强和正则化过程外,DeiT的主要贡献[ 12 ]是一种新颖的Transformers原生蒸馏方法,它使用CNN作为教师模型( RegNet Y-16GF )来训练Transformer模型。CNN的输出帮助Transformer有效地计算有用的表示,为输入图像提供有用的表示。一个蒸馏令牌附加了输入补丁嵌入和类令牌。自注意力层对这些标记进行操作,以学习它们的相互依赖关系,并输出学习的类、补丁和蒸馏标记。用定义在输出类标记上的交叉熵损失和蒸馏损失对网络进行训练,使蒸馏标记与教师输出相匹配。对蒸馏的软、硬标签选择进行了探索,发现硬蒸馏的效果更好。有趣的是,学习到的类和蒸馏标记没有表现出很高的相关性,表明它们的互补性。学习到的表示与诸如Efficient Net [ 87 ]之类的顶级CNN体系结构进行了良好的比较,并且对于许多下游识别任务也具有良好的泛化能力。

Token to Token (T2T) ViT [ 35 ]递归地将相邻的Token组合到单个Token中,以减少Token长度和聚合空间上下文。《Transformerin transformer》[ 88 ]在两个层次上计算注意力:补丁级(为标准ViTs )和局部亚补丁级(例如, 通过将一个16 × 16的patches细分为四个4 × 4块, 并在这些块之间计算注意力)。在令牌标签ViT [ 89 ]中,所有补丁令牌都有助于损失计算,这与常规ViT不同,后者只在损失中使用分类令牌。该过程包括辅助监督,其中每个图像块(令牌)使用预训练的CNN模型进行标记。与CutMix增强[ 90 ]类似,将来自不同图像的标记混合作为增强策略,并使用标准分类损失和辅助标记标签损失训练模型。他们的模型表现出优异的性能,特别是对于较小的模型。

自注意力的二次复杂度阻碍了其对更长序列(高分辨率图像)的适用性。互协方差图像转换器( XCiT ) [ 91 ]使用跨特征通道的注意力,而不是token,即它们的互协方差注意力由给出。提出的交叉协方差注意力具有线性复杂度(因为它取决于特征维度而不是令牌的数量)。因此,XCiT可以处理高分辨率图像,并在不同的视觉任务中表现出优异的性能,即自监督和完全监督的图像分类和密集预测(检测、分割)。Deep ViT [ 92 ]观察到较深层的注意力图之间相似度较高,阻碍了模型深度的缩放。他们提出在多头块中重新调整注意力图,而不是简单地聚合这些注意力图,并显示出与标准的基于ViT的标准多头注意力一致的增益。

(4)Multi-head Self-Attention(Multi-scale Vision Transformers)

在标准的ViT中,Token的数量和Token特征维度在网络的不同块中保持固定。这是有局限性的,因为模型无法捕捉不同尺度下的精细空间细节。因此,基于Initial Transformer的密集预测方法(例如DETR )具有卷积后端。ViTs的多阶段分层设计,令牌数量逐渐减少,令牌特征维度逐渐增加,已被证明可以为密集预测任务产生有效的特征[ 36 ] [ 93 ] - [ 96 ]。这些模型在识别任务中表现一般也较好。这些架构大多通过合并相邻的令牌并将其投影到更高维的特征空间来稀疏化令牌。多级ViTs的例子包括金字塔ViT [ 93 ],[ 97 ],Twins [ 37 ],CoaT [ 98 ],Swin Transformer [ 36 ],卷积视觉Transformer( CvT ) [ 96 ],Shuffle Transformer [ 95 ],Cross Former [ 99 ],Region ViT [ 100 ]和Focal Transformer模型[ 94 ]。其中一些是带有卷积和自注意力操作的混合设计,而另一些只是采用纯粹的基于自注意力的设计(下面讨论)。

Pyramid ViT ( PVT ) [ 93 ]是第一个针对ViT的层次化设计,提出了渐进式收缩金字塔和空间缩减注意力。PVT v2 [ 97 ]和Seg Former [ 101 ]通过引入重叠块嵌入、深度卷积和高效注意力对原始PVT [ 93 ]进行了改进。Swin Transformer [ 36 ]采用多级分层结构,通过将窗口划分为多个图像分块,在局部窗口内计算注意力。为了捕捉不同窗口(图像位置)之间的相互作用,窗口划分沿着网络的层次结构逐渐转移,以捕捉重叠区域。Focal Transformer模型[ 94 ]是另一种分层设计,其中引入了焦点自注意力,以同时捕获全局和局部关系。同样,Multi-Scale Vision Longformer [ 99 ]具有分层金字塔结构,并引入了跨尺度嵌入模块,以及长短距离注意力和动态位置偏见,以忠实地捕获局部和全局视觉线索。Region ViT [ 100 ]提出了一种区域到局部的注意力编码分层特征。Multi-Scale Vision Longformer [ 102 ]在自注意力中也考虑了局部上下文,但采用了高效的Longformer [ 103 ]设计自注意力。Cross ViT [ 104 ]采用两个分支(每个具有多个变压器块)编码多尺度特征,分别处理较小和较大的图像块。然后使用交叉注意力模块将来自这两个多尺度分支的信息融合在一起。

(5)Multi-head Self-Attention(Hybrid ViTs with Convolutions)

卷积在捕获图像中的低级局部特征方面做了出色的工作,并且已经在多个混合ViT设计中进行了探索,特别是在开始"patchify and tokenize"输入图像的时候。例如,卷积视觉变换( Convolutional Vision Transformer,CvT ) [ 96 ]采用基于卷积的投影来捕捉图像的空间结构和低层细节,用于图像块的表征。CvT具有分层设计,令牌数量逐渐减少,而令牌宽度增加,从而模仿CNN中空间下采样的影响。Convolution enhanced image Transformers[ 105 ]采用基于卷积的图像到令牌模块来提取低级特征。Compact Convolutional Transformer ( CCT ) [ 106 ]引入了一种新的序列池化( sequence pooling )方案,并结合卷积块( conv-pool-reshape )进行标记化。CCT可以在更小的数据集上从头开始训练,例如 CIFAR10,准确率达到 95%,这是传统 ViTs 所不具备的。

LocalViT [ 107 ]引入深度卷积来增强ViTs的局部特征建模能力。LeViT [ 108 ] (名字来自LeNet )在开始时使用一个4层的CNN块( 利用3 × 3卷积 ),并逐步增加通道( 3、32、64、128、256 )。对于一幅3 × 224 × 224的输入图像,由CNN块输出的256 × 14 × 14的结果作为层次化ViT的输入。通过它的设计,LeViT在推断时在CPU上比EfficientNet[ 87 ]快5倍。Res T[ 110 ]是另一个层次化体系结构,它在开始嵌入时使用一个CNN块。它结合了深度卷积和自适应位置编码来应对不同的图像尺寸。最近的Nes T [ 111 ]提出了一种在ViTs中引入层次结构的简单技术,NesT将图像划分为互不重叠的块(每个块进一步被分割成块)。它首先分别对每个块内的块应用局部自注意力,然后通过将它们聚合到图像空间并应用卷积操作来实现块之间的全局交互,然后进行下采样。块的数量沿着模型的层次结构逐渐减少,而局部块的数量保持不变。这种简单的方案与更复杂的设计相比表现良好[ 36 ],[ 97 ],并且能够从头开始在较小的数据集( 例如CIFAR - 10 )上训练Nes T。

深度卷积和自注意力网络( Depthwise Convolution and self-Attention Networks,CoAt Nets ) [ 112 ]引入了相对注意力模块(它结合了深度卷积和自注意力),以及垂直堆叠卷积和注意力层。在没有额外数据(即只在ImageNet - 1k上训练)的情况下,CoAt Nets展示了令人印象深刻的86% ImageNet top - 1准确率。Shuffle Transformer [ 95 ]在一个窗口内执行自注意力,并在基于窗口的多头自注意力和MLP之间进行深度卷积。它引入了shuffle操作来构建更强的cross-patch连接。CoaT ( Co-scale conv- attentional image Transformers ) [ 98 ],是一种混合层次金字塔设计,具有串行和并行块,其中串行块类似于标准Transformer块,除了注意力层用深度卷积代替。并行块应用于串行块的输出,并使用交叉注意力在多个尺度上编码令牌之间的关系。Twins [ 37 ]在PVT [ 93 ] (一种只关注金字塔设计)的基础上,通过将PVT中的绝对位置嵌入替换为相对条件位置嵌入[ 113 ],并结合可分离的深度卷积代替标准的空间注意力,以捕获图像的局部和全局上下文。从这个意义上说,混合设计倾向于结合卷积和变压器模型的优点。Trans CNN [ 114 ]提出了一种分层的多头自注意力块,该块首先利用自注意力学习小网格( token )内的交互,然后将较小的网格逐渐合并成较大的网格。然后可以将所提模块插入到现有的CNN架构中。

(6)Multi-head Self-Attention(Self-Supervised Vision Transformers)

基于对比学习的自我监督方法,在CNN的视觉任务中获得了巨大的成功,也被调查为ViTs。Chen等[ 115 ]评估了不同的自监督框架,并提出了包括MoCo v3 (扩展自v1 / v2  , [ 117 ])在内的实用策略,用于自监督ViTs的稳定训练。Xie等[ 118 ]结合MoCo v2 [ 117 ]和BYOL [ 119 ]训练DeiT [ 12 ]和Swin Transformer [ 36 ]。它们演示了自监督Swin Transformer对于检测和分割的密集预测任务的泛化。无标签自蒸馏( DINO ) [ 120 ]证明了自监督ViT可以自动分割图像的背景像素,即使它们从未使用像素级监督进行过训练,这种现象在CNN或完全监督的ViT中也没有观察到。高效的自监督视觉转换器( Es ViT ) [ 121 ]提出了一种多级设计,相邻的令牌沿着网络的层次结构逐渐合并,并使用DINO进行自我监督。除了像DINO那样的标准图像级自我监督之外,它们还包含了额外的补丁级自我监督,在图像的增强版本中,在相似的补丁之间促进了通信。Es ViT在自监督设置下表现出优异的性能,在18个评估数据集中的17个数据集上,其现成的特征迁移优于监督的Swin Transformer。 

Transformer 综述 & Transformers in Vision: A Survey_第7张图片

表3 不同的视觉Transformer和CNN模型在ImageNet验证集上的参数复杂度和 top-1(%) 准确率的比较分析。为了进行直接比较,我们考虑在ImageNet上从头开始训练的大小为224x224的模型,表示基于CNN的方法。 

五、目标检测中的 Transformer

基于Transformer的模块已经被用于以下方式的目标检测:

  • ( a )用于特征提取的Transformer主干,具有基于R - CNN的检测头。
  • ( b )用于视觉特征的CNN主干和用于目标检测的Transformer解码器《DETR》《Deformable DETR》《Anchor detr》《Pix2seq: A language modeling framework for object detection》
  •  ( c )纯Transformer设计用于端到端的目标检测《You only look at one sequence: Rethinking transformer in vision through object detection》

(1)Detection Transformers with CNN Backbone

Transformer 综述 & Transformers in Vision: A Survey_第8张图片

图7 Detection Transformer( DETR ) [ 13 ]将目标检测任务视为一个集合预测问题,并使用Trans -former网络来编码集合元素之间的关系。使用二分集合损失将框预测与真实框(显示在右边的两个栏上)进行唯一匹配。在不匹配的情况下,选择一个"no object"类预测。其简单的设计与最小的问题特定的修改可以击败一个精心构建和流行的Faster R - CNN模型。图来自[ 13 ]。 

Detection Transformer ( DETR ) [ 13 ]将目标检测视为一个集合预测任务,即给定一组图像特征,目标是预测一组对象边界框。Transformer模型允许对一组objects(在单个镜头中)进行预测,并允许对它们之间的关系进行建模。DETR采用了一个集合损失函数,它允许在预测和真实框之间进行二分匹配。DETR的主要优点是,它消除了对手工设计的模块和操作的依赖,例如目标检测中常用的RPN(区域提案网络)和NMS (非最大抑制) [ 125 ] - [ 129 ]。通过这种方式,对于目标检测等复杂结构任务,放松了对先验知识和精心设计的依赖。给定来自CNN主干的空间特征图,编码器首先将空间维度(见图7)扁平化。这给出了一个d × n的特征序列,其中d是特征维数,n = h × w,h,w是空间特征图的高度和宽度。然后使用多头自注意力模块对这些特征进行编码和解码,如文献[ 1 ]。在解码阶段的主要区别是所有的box都是并行预测的,而[ 1 ]使用RNN来逐个预测序列元素。由于编码器和解码器是排列不变的,因此解码器将学习的位置编码用作对象查询,以生成不同的框。注意,CNN检测器(例如, Faster R- CNN)中的空间结构自动编码位置信息。DETR获得了与流行的Faster R- CNN模型[ 125 ]相媲美的性能。DETR也被扩展到其他领域的有趣应用,例如Cell - DETR [ 130 ]将其扩展到生物细胞的实例分割。添加的注意力分支被添加以获得额外框预测中的实例分割,该预测通过CNN解码器增强以生成准确的实例掩码。

DETR [ 13 ]模型成功地将卷积网络与Transformers [ 1 ]相结合,消除了手工设计的要求,并实现了端到端可训练的目标检测管道。然而,它很难检测到小物体,并且收敛速度慢,计算成本相对较高[ 14 ]。在使用Transformer进行关系建模之前,DETR将图像映射到特征空间。因此,自注意力的计算成本随特征图的空间大小呈平方增长,即,其中H和W表示特征图的高度和宽度。这在本质上限制了DETR训练框架中多尺度层次特征的使用[ 131 ],而这些特征对检测小目标至关重要。此外,在训练开始时,注意力模块简单地将统一注意力投射到特征图的所有位置,并需要大量的训练时间来调整注意力权重,以收敛到有意义的稀疏位置。这种做法导致DETR收敛速度较慢。为了缓解上述问题,Deformable DETR提出了一种可变形的注意力模块来处理特征图。受可变形卷积[ 42 ]的启发,可变形注意力模块[ 14 ]只关注整个特征图中的稀疏元素集,而不考虑其空间大小。这进一步允许特征图在多尺度注意力模块的帮助下进行跨尺度聚合,而不会显著增加计算成本。Deformable DETR不仅性能更好,而且训练时间也比原始DETR模型低10倍[ 14 ]。Anchor DETR [ 122 ]将DETR中可学习的查询token替换为基于锚点的查询,使得每个查询都专注于预测锚点附近的对象。锚点可以固定在2D网格上,也可以从均匀分布的点中学习。锚点DETR [ 122 ]需要10 ×更少的训练次数,且性能相当。Pix2Seq [ 123 ]是一个通用的基于Transformer的框架,没有任何专门的任务特定模块,并学习直接产生带有对象描述( bounding-boxes and class-labels )的sequence of tokens。量化和序列化方案首先将边界框和类标签转换为离散的sequence of tokens。然后使用基于通用Transformer的编码器-解码器网络以自回归的方式生成这些 tokens,这些 tokens 是基于先前的预测和图像特征。

(2)Detection with Pure Transformers

You Only Look at One Sequence ( YOLOS ) [ 124 ]是直接在ViT [ 1 ] [ 132 ]基础上构建的一种简单、仅关注的体系结构。它将ViT中的类标记替换为多个可学习的对象查询标记,并采用类似《DETR》中的二分匹配损失进行目标检测。YOLOS以纯序列到序列的学习方式展示了ViTs对目标检测的灵活性,具有最小的图像相关2D感应偏差。本着类似的精神,将PVT [ 93 ]与DETR [ 13 ]结合,使用端到端的Transformer管道进行目标检测。我们注意到,将其他最近的ViT与基于Transformer的检测头结合起来是可行的,也可以创建纯ViT设计[ 124 ],我们希望在未来看到更多这样的努力。

六、结论

注意力在提供高效和准确的计算机视觉系统方面发挥了关键作用,同时也为深度神经网络的功能提供了见解。本综述回顾了自注意力方法,并特别关注基于自注意力原理构建的Transformer和双向编码架构。我们首先介绍与自注意力架构相关的基本概念,然后深入分析各种计算机视觉应用的竞争方法。具体而言,我们包括用于图像识别、目标检测、语义和实例分割、视频分析和分类、视觉问答、视觉常识推理、图像描述、视觉语言导航、聚类、小样本学习和3D数据分析的最新自注意力模型。我们系统地强调了现有方法的主要优势和局限性,并特别阐述了未来的重要研究方向。该调查以计算机视觉任务为重点,对最近自我注意力和基于Transformer的方法的进展提供了独特的看法。我们希望这一努力将推动愿景社区的进一步兴趣,以利用Transformer模型的潜力,并改善其目前的局限性,例如减少其碳足迹。

>>>如有疑问,欢迎评论区一起探讨。

你可能感兴趣的:(论文精读_解析模型结构,变形金刚,Transformer,transformer,深度学习,人工智能,计算机视觉,目标检测)