查看原文
其他

TPAMI 2022 | 视觉transformer最新调研!

汽车人 自动驾驶之心 2023-02-05

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【全栈算法】技术交流群

后台回复【transformer综述】获取2022最新ViT综述论文!

Transformer首先应用于自然语言处理领域,是一种主要基于自我注意机制的深度神经网络。由于其强大的表示能力,研究人员正在寻找将transformer应用于计算机视觉任务的方法。在各种视觉基准测试中,基于transformer模型的性能类似于或优于其它类型的网络,如卷积和递归神经网络。鉴于transformer的高性能,transformer正受到计算机视觉界越来越多的关注。在本文中,通过在不同任务中对这些视觉transformer模型进行分类,并分析其优缺点,来回顾这些模型。探索的主要类别包括主干网络、高级/中级视觉、低级视觉和视频处理,还包括有效的transformer方法,用于将transformer推入基于真实设备的应用程序。此外,作者还简要介绍了计算机视觉中的自我注意机制,因为它是transformer中的基本组件。在本文的最后,讨论了这些挑战,并为视觉transformer提供了几个进一步的研究方向。

Transformer首先应用于自然语言处理(NLP)任务,在那里它实现了显著的改进,例如,Vaswani等人[9]首次提出了用于机器翻译和英语选区解析任务的基于注意力机制的transformer。Devlin等人引入了一种新的语言表示模型,称为BERT(Transformers的Bidirectional Encoder Representations的缩写),该模型在未标记文本上预训练transformer,同时考虑到每个单词的上下文,因为它是双向的。当BERT发布时,它在11项NLP任务上获得了最先进的性能。Brown等人[11]使用1750亿个参数,在45TB的压缩明文数据上预训练了一个名为GPT-3(Generative pre-trained transformer 3的简称)的大规模基于transformer的模型。它在不同类型的下游自然语言任务上实现了强大的性能,而无需任何微调。这些基于transformer的模型以其强大的表示能力,在NLP中取得了重大突破。

受transformer架构在NLP领域的重大成功启发,研究人员最近将transformer应用于计算机视觉(CV)任务。在视觉应用中,CNN被认为是基本组件,但如今transformer显示它是CNN的潜在替代品。Chen等人[14]训练了一个序列transformer来自动回归预测像素,在图像分类任务上实现与CNN相当的结果。另一种视觉transformer模型是ViT,它将纯transformer直接应用于图像块序列,以对整个图像进行分类。最近由Dosovitskiy等人提出[15],它在多个图像识别基准上取得了最先进的性能。除了图像分类之外,transformer还被用于解决各种其他视觉问题,包括目标检测、语义分割、图像处理和视频理解,由于其卓越的性能,越来越多的研究人员提出了基于transformer的模型,以改进广泛的视觉任务!

由于基于transformer的视觉模型的数量快速增加,跟上新进展的速度变得越来越困难。因此,迫切需要对现有工程进行调查,这将对社区有益。本文重点全面概述了视觉transformer的最新进展,并讨论了进一步改进的潜在方向。为了便于将来对不同主题的研究,根据应用场景对transformer模型进行了分类,如表1所示。主要类别包括主干网络、高级/中级视觉、低级视觉和视频处理。高级视觉处理图像中所见内容的解释和使用,而中级视觉处理如何将这些信息组织成我们所体验的物体和表面。鉴于在基于DNN的视觉系统中,高级和中级视觉之间的差距越来越模糊,论文将其视为一个单一类别。解决这些高级/中级视觉任务的transformer模型的几个例子包括DETR、用于目标检测的可变形DETR和用于分割的Max DeepLab。低级图像处理主要处理从图像中提取描述(此类描述通常表示为图像本身),低级别图像处理的典型应用包括超分辨率、图像去噪和风格转换,目前,只有少数作品[19]、[27]在低级视觉中使用了transformer,这就需要进一步调查另一类:视频处理,它是计算机视觉和基于图像的任务的重要组成部分。由于视频的序列特性,transformer本质上非常适合用于视频任务,在这些任务中,它开始与传统的CNN和RNN性能相当。本文调查了与基于transformer的视觉模型相关的工作,以跟踪该领域的进展。图1显示了视觉transformer的发展时间表:毫无疑问,未来还会有更多里程碑。

transformer结构

Transformer首次用于机器翻译任务的自然语言处理(NLP)领域,如图2所示,它由一个编码器和一个解码器组成,具有相同架构的多个transformer块。编码器生成输入的编码,而解码器接受所有编码并使用其合并的上下文信息来生成输出序列。每个transformer块由多头注意力层、前馈神经网络、快捷连接和层归一化组成。

在self-attention层中,首先将输入向量转换为三个不同的向量:查询向量q、关键字向量k和值向量v,维度dq=dk=dv=dmodel=512。然后将来自不同输入的向量组合成三个不同的矩阵,即Q、K和V,随后,不同输入向量之间的注意力函数计算如下(如图3左侧所示):

多头注意力是一种机制,可以用来提高self-attention层的表现。请注意,对于给定的参考词,在阅读句子时通常希望关注其它几个词。单一的头部自注意层限制了专注于一个或多个特定位置的能力,而不会同时影响对其它同等重要位置的注意力。这是通过给予注意层不同的表示子空间来实现的,具体来说,不同的查询、关键字和值矩阵用于不同的头部,这些矩阵在训练后由于随机初始化,可以将输入向量投影到不同的表示子空间。

视觉transformer

本节一起回顾了基于transformer的模型在计算机视觉中的应用,包括图像分类、高级/中级视觉、低级视觉和视频处理,还简要总结了自我关注机制和模型压缩方法在高效transformer中的应用!

1)表示学习的backbone

受transformer在NLP领域取得的成功启发,一些研究人员探索了类似的模型是否可以学习图像的有用表示。考虑到与文本相比,图像涉及更多的维度、噪声和冗余模态,它们被认为更难以进行生成建模。除了CNN之外,transformer还可以用作图像分类的骨干网络。Wu等人[58]采用ResNet作为方便的基线,并使用视觉transformer代替最后一级卷积。具体来说,他们应用卷积层来提取低级特征,然后将其输入到视觉transformer中。对于视觉transformer,他们使用标记器将像素分组为少量的视觉标记,每个标记表示图像中的语义概念。这些视觉标记直接用于图像分类,transformer用于对标记之间的关系进行建模。如图4所示,作品可以分为纯粹使用视觉transformer和结合CNN和transformer。在表2和图6中总结了这些模型的结果,以证明主干的发展,除了监督学习,自监督学习也在视觉transformer中进行了探索!

与BERT的[class]token类似,可学习嵌入被应用于嵌入patches序列,该嵌入的状态用作图像表示。在预训练和微调阶段,分类头都固定在相同的尺寸上。此外,1D位置嵌入被添加到patches嵌入,以便保留位置信息。值得注意的是,ViT仅使用标准transformer的编码器(除了层标准化的位置),其输出在MLP头之前。在大多数情况下,ViT在大型数据集上进行预训练,然后针对具有较小数据的下游任务进行微调。当在中型数据集(如ImageNet)上进行训练时,ViT会产生适度的结果,其精度比同等大小的ResNets低几个百分点。由于transformer缺少一些CNN固有的归纳偏差(如翻译的等同性和局部性),因此当在数据量不足的情况下进行训练时,它们不能很好地概括。然而,作者们发现,在大型数据集(1400万至3亿张图像)上训练模型超过了归纳偏见。当以足够的规模进行预训练时,transformer在数据点较少的任务上取得优异的结果。例如,当在JFT-300M数据集上进行预训练时,ViT在多个图像识别基准上接近甚至超过了最先进的性能。具体而言,它在ImageNet上达到了88.36%的准确率,在VTAB套件中达到了77.16%的准确率。Touvron等人[59]通过仅在ImageNet数据库上进行训练,提出了一种竞争性的无卷积transformer,称为数据高效图像transformer(DeiT)。参考视觉transformerDeiT-B具有与ViT-B相同的架构,使用8600万个参数。凭借强大的数据扩充,DeiTB在ImageNet上实现了83.1%的最高精度,无需外部数据。此外,作者还观察到,使用CNN教师比使用transformer的效果更好。具体而言,DeiT-B可以在基于tokens的蒸馏的帮助下实现最高精度84.40%。

根据ViT的范例,已经提出了一系列ViT的变体来提高视觉任务的性能。主要方法包括增强局部性、自我关注改善。原始的视觉transformer擅长捕捉面片之间的长距离依赖关系,但忽略了局部特征提取,因为2D面片被投影到具有简单线性层的向量上。最近,研究人员开始关注提高局部信息的建模能力,TNT进一步将补丁划分为多个子补丁,并引入了一种新的transformer中transformer架构,该架构利用内部transformer块来建模子补丁和外部transformer块之间的关系,以进行patch级信息交换。Swin Transformers在窗口内执行局部关注,并为跨窗口连接引入了移位窗口划分方法。乱序transformer进一步利用空间乱序操作,而不是移位窗口分区,以允许跨窗口连接。RegionViT从图像中生成区域token和local token,local token通过关注区域token来接收全局信息。除了当地的关注外,一些其它作品还提出通过局部特征聚合来增强局部信息,例如T2T,这些工作证明了视觉transformer中局部信息交换和全局信息交换的好处!

作为transformer的一个关键组件,自关注层提供了图像块之间全局交互的能力。改进自我注意层的计算吸引了许多研究人员,DeepViT建议建立十字头通信,以重新生成注意力图,以增加不同层次的多样性。KVT[69]引入了k-NN注意力,以利用图像补丁的局部性,并通过仅使用前k个相似令牌计算注意力来忽略噪声令牌。Refiner[70]探索了高维空间中的注意力扩展,并应用卷积来增强注意力图的局部模式,XCiT[71]跨特征通道而不是token执行自我关注计算,这允许高效处理高分辨率图像,自注意机制的计算复杂性和注意精度是未来优化的两个关键点。

网络架构是一个重要因素,正如在CNNs领域所证明的那样。ViT的原始架构是相同形状的transformer块的简单堆栈,视觉transformer的新架构设计一直是一个有趣的话题。金字塔状结构被许多视觉transformer模型使用,包括PVT、HVT、Swin transformer和PiT。还有其它类型的架构,如双流架构和U-net架构,还研究了神经架构搜索(NAS)以搜索更好的transformer架构,例如Scaling ViT、ViTAS、AutoFormer和GLiT。目前,视觉transformer的网络设计和NAS主要借鉴CNN的经验,未来希望视觉transformer领域会出现特定的和新颖的架构。除了上述方法,还有一些其它方向可以进一步改进视觉transformer,例如,位置编码、标准化策略、快捷连接和消除注意力。

尽管视觉transformer已经成功地应用于各种视觉任务,因为它们能够捕获输入中的长距离依赖性,但transformer与现有的神经网络之间的性能仍然存在差距,一个主要原因可能是缺乏提取局部信息的能力。除了上述增强局部性的ViT变体之外,将transformer与卷积相结合可以是将局部性引入传统transformer的更直接的方式。有很多工作试图用卷积来增强传统的变换块或自我关注层,例如CPVT提出了一种条件位置编码(CPE)方案,该方案以输入token的局部邻域为条件,并适用于任意输入大小,以利用卷积进行精细级别的特征编码。CvT、CeiT、LocalViT和CMT分析了直接从NLP借用Transformer架构并将卷积与transformer结合在一起时的潜在缺陷。具体而言,每个transformer块中的前馈网络(FFN)与促进相邻token之间相关性的卷积层相结合。LeViT重新审视了大量有关神经网络的文献中的原理,并将其应用于transformer,提出了一种用于快速推断图像分类的混合神经网络。BoTNet在ResNet的最后三个瓶颈块中用全局自关注代替了空间卷积,并在延迟开销最小的情况下显著改进了实例分割和目标检测任务的基线。

2)High/Mid-level Vision

最近,人们对将transformer用于高/中级计算机视觉任务越来越感兴趣,例如目标检测[16]、[17]、[113]、[114]、[115]、车道检测[116]、分割[33]、[25]、[18]和姿态估计[34]、[35]、[36]、[117],将在本节中回顾这些方法。

通用目标检测

传统的目标检测器主要基于神经网络,但基于transformer的目标检测由于其优势能力最近获得了极大的兴趣。一些目标检测方法尝试使用transformer的自我关注机制,然后增强现代检测器的特定模块,如特征融合模块和预测头。基于transformer的目标检测方法大致分为两组:基于transformer集预测方法和基于transformer主干方法,如图7所示。与基于CNN的检测器相比,基于transformer的方法在精度和运行速度方面都表现出了强大的性能。表3显示了先前COCO 2012值集中提到的不同基于transformer的物体检测器的检测结果。

作为基于transformer的检测方法的先驱,Carion等人提出的检测transformer(DETR)重新设计了目标检测的框架,DETR是一种简单且完全端到端的目标检测器,它将目标检测任务视为一个直观的集合预测问题,消除了传统手工制作的组件,如锚点生成和非最大抑制(NMS)后处理。

DETR是基于transformer的目标检测框架的新设计,使社区能够开发完全端到端的检测器。然而也带来了一些挑战,特别是,训练时间更长,小物体性能较差。为了解决这些挑战,Zhu等人[17]提出了可变形DETR,这已成为一种显著提高检测性能的流行方法。可变形注意力模块关注一小组关键位置,而不是像transformer中的原始多头注意力机制所执行的那样查看图像特征图上的所有空间位置。该方法显著降低了计算复杂性,并在快速收敛方面带来了好处。更重要的是,可变形注意力模块可以容易地应用于融合多尺度特征。可变形DETR比DETR性能更好,训练成本低10倍,推理速度快1.6倍。通过使用迭代bounding box细化方法和两阶段方案,可变形DETR可以进一步提高检测性能;

还有几种方法来处理原始DETR的慢收敛问题。例如,Sun等人[120]研究了DETR模型收敛缓慢的原因,发现这主要是由于transformer解码器中的交叉关注模块。为了解决这个问题,提出了仅编码器版本的DETR,在检测精度和训练收敛方面实现了显著的改进。此外,设计了一种新的二分匹配方案,以提高训练稳定性和更快的收敛速度,并提出了两种基于transformer的集预测模型,即TSP-FCOS和TSP-RCNN,以改进具有特征金字塔的仅编码器DETR。Gao等人[123]提出了空间调制共同注意(SMCA)机制,通过将共同注意响应限制在初始估计的边界盒位置附近的较高位置来加速收敛。通过将所提出的SMCA模块集成到DETR中,在可比的推理成本下,可以用大约10倍更少的训练时间获得类似的mAP!

鉴于与DETR相关的高计算复杂性,Zheng等人[121]提出了一种自适应聚类transformer(ACT),以降低预训练DETR的计算成本。ACT使用局部敏感散列(LSH)方法自适应地聚类查询特征,并将注意力输出广播到由所选原型表示的查询。ACT用于替换预先训练的DETR模型的自我注意模块,而不需要任何重新训练。这种方法显著降低了计算成本,同时精度略有下降。通过利用多任务知识提取(MTKD)方法,可以进一步降低性能下降,该方法利用原始transformer提取ACT模块,只需几次微调。Yao等人[124]指出,DETR中的随机初始化是需要多个解码器层和缓慢收敛的主要原因。为此,他们提出了高效DETR,以通过额外的区域建议网络将密集先验纳入检测管道。更好的初始化使他们能够仅使用一个解码器层而不是六个层,以实现更紧凑的网络的竞争性能。

基于transformer的检测主干。与DETR通过transformer将目标检测重新设计为一组预测任务不同,Beal等人[113]提出利用transformer作为常见检测框架(如Faster RCNN[13])的主干。输入图像被分成若干块,并被馈送到视觉transformer,在通过检测头以获得最终结果之前,视觉transformer的输出嵌入特征根据空间信息被重组。一个大规模的预训练transformer主干可以为提议的ViT FRCNN带来好处。还有很多方法可以探索多功能视觉transformer主干设计,并将这些主干传输到传统的检测框架,如RetinaNet和Cascade R-CNN。例如,Swin Transformer在ResNet-50主干上获得了大约4%个AP增益,具有用于各种检测框架的类似FLOP。

基于Transformer的目标检测预训练。受NLP中预训练transformer方案的启发,已经提出了几种方法来探索基于transformer的目标检测的不同预训练方案。Dai等人[32]提出了用于目标检测的无监督预训练(UP-DETR)。通过这种无监督的预训练方案,UP-DETR显著提高了相对较小数据集(PASCAL VOC)的检测精度。在具有足够训练数据的COCO基准上,UP-DETR仍然优于DETR,证明了无监督预训练方案的有效性!

Fang等人[126]探索了如何将在ImageNet上预训练的纯ViT结构转移到更具挑战性的目标检测任务中,并提出了YOLOS检测器。为了处理目标检测任务,提出的YOLOS首先删除ViT中的分类标记,并附加可学习的检测标记。此外,利用二分匹配损失对对象进行集合预测,利用ImageNet数据集上的这种简单的预训练方案,所提出的YOLOS在COCO基准上显示出具有竞争力的目标检测性能。

语义分割

分割是计算机视觉领域的一个重要课题,它广泛包括全景分割、实例分割和语义分割等。

全景分割transformer。DETR可以自然地扩展到全景分割任务,并通过在解码器上附加掩码头来获得竞争性结果。Wang等人[25]提出Max DeepLab使用掩码transformer直接预测全景分割结果,而不涉及替代子任务,如框检测。与DETR类似,Max DeepLab以端到端的方式简化了全景分割任务,并直接预测了一组不重叠的掩码和相应的标签。模型训练是使用全景质量(PQ)风格的损失进行的,但与之前在CNN主干上堆叠transformer的方法不同,MaxDeepLab采用了双路径框架,有助于将CNN和transformer结合起来!

用于实例分割的transformer。Wang等人[33]提出了基于transformer的视频实例分割模型VisTR,以从一系列输入图像中产生实例预测结果。作者提出了一种匹配实例序列的策略,以将预测分配给GT。为了获得每个实例的掩模序列,VisTR利用实例序列分割模块来累积来自多个帧的掩模特征,并使用3D CNN分割掩模序列。Hu等人[130]提出了一种实例分割transformer(ISTR)来预测低维掩模嵌入,并将其与集合损失的GT相匹配。ISTR使用与现有自上而下和自下而上框架不同的重复细化策略进行检测和分割。Yang等人[131]研究了如何在具有挑战性的多目标场景下实现更好、更高效的嵌入学习,以解决半监督视频对象分割问题。一些论文如[132]、[133]也讨论了使用Transformer处理分割任务。

语义分割transformer。Zheng等人[18]提出了一种基于transformer的语义分割网络(SETR),SETR利用类似于ViT[15]的编码器作为编码器从输入图像中提取特征,采用多级特征聚合模块进行逐像素分割。Strudel等人[134]介绍了Segmenter,它依赖于与图像块相对应的输出嵌入,并通过逐点线性解码器或掩码transformer解码器获得类标签。Xie等人[135]提出了一种简单、高效但功能强大的语义分割框架,该框架将Transformer与轻量级多层感知(MLP)解码器相结合,从而输出多尺度特征并避免复杂的解码器。

医学图像分割transformer。Cao等人[30]提出了一种用于医学图像分割的Unet类纯Transformer,通过将标记化的图像块馈送到基于Transformer的U形编码器-解码器架构中,该架构具有用于局部全局语义特征学习的跳过连接。Valanarasu等人[136]探索了基于transformer的解决方案,并研究了使用基于transformer的网络架构的可行性,并提出了一种门控轴向注意模型,该模型通过在自我注意模块中引入额外的控制机制来扩展现有架构。基于DETR全景分割模型的单元DETR是使用transformer进行单元实例分割的尝试。它在分割头中添加了桥接主干CNN和CNN解码器之间特征的跳过连接,以增强特征融合。

姿态估计

人体姿势和手部姿势估计是引起研究界极大兴趣的基础性课题。关节式姿态估计类似于结构化预测任务,旨在从输入的RGB/D图像中预测关节坐标或网格顶点。在这里讨论了一些方法[34]、[35]、[36]、[117],这些方法探索了如何利用transformer来建模人体姿势和手姿势的全局结构信息。

用于手姿势估计的transformer。Huang等人[34]提出了一种基于transformer的网络,用于从点集进行3D手姿态估计。编码器首先利用PointNet从输入点云中提取逐点特征,然后采用标准的多头自关注模块来生成嵌入。为了向解码器暴露更多的全局姿势相关信息,使用诸如PointNet++的特征提取器来提取手关节方向的特征,然后将其作为位置编码馈送到解码器中。类似地,Huang等人提出了HOT Net用于3D手目标姿态估计。与使用transformer从输入点云直接预测3D手部姿态的前述方法不同,HOT Net使用ResNet生成初始2D手部对象姿态,然后将其馈送到transformer以预测3D手目标姿态。因此,频谱图卷积网络用于提取编码器的输入嵌入。Hampali等人[140]提出在给定单色图像的情况下估计双手的3D姿态。具体而言,将双手关节的一组潜在2D位置的外观和空间编码输入到transformer,并使用注意力机制来整理关节的正确配置,输出双手的3D姿态。

人体姿态估计transformer。Lin等人提出了一种网格transformer(METRO),用于从单个RGB图像预测3D人体姿态和网格。METRO通过CNN提取图像特征,然后通过将模板人体网格连接到图像特征来执行位置编码。一种具有渐进维数的多层变换编码器提出了一种减少嵌入维数的方法,最终生成人体关节和网格顶点的三维坐标。为了鼓励学习人类关节之间的非局部关系,METRO在训练期间随机屏蔽一些输入查询。Yang等人[117]基于Transformer架构和低级卷积块构建了一个名为TransPose的可解释模型。Transformer中内置的注意力层可以捕捉关键点之间的长距离空间关系,并解释预测的关键点位置高度依赖的依赖性。Li等人[141]提出了一种基于token表示的新方法,用于人体姿势估计(TokenPose)。每个关键点都被显式嵌入,作为同时学习的标记约束关系和来自图像的外观提示。Mao等人[142]提出了一种人体姿态估计框架,以基于回归的方式解决了这一任务。他们将姿态估计任务公式化为序列预测问题,并通过transformer来解决,transformer绕过了基于热图的姿态估计的缺点。Jiang等人[143]提出了一种新的基于transformer的网络,该网络可以以无监督的方式学习姿势和运动的分布,而不是跟踪身体部位并尝试对其进行时间平滑。该方法克服了检测中的不精确性,并纠正了部分或全部骨架损坏。Hao等人[144]提出,在不使用任何手动注释的情况下,在给定一组人的测试图像的情况下个性化人体姿态估计器。该方法在测试期间调整姿态估计器以利用特定于人的信息,并使用Transformer模型来构建自监督关键点和受监督关键点之间的转换!

其它任务

还有很多不同的高级/中级视觉任务,探索了使用视觉transformer以获得更好的性能,这里简要回顾了以下几个任务。

行人检测。由于物体在遮挡和人群场景中的分布非常密集,因此当将普通检测网络应用于行人检测任务时,通常需要额外的分析和调整。Lin等人揭示,当直接将DETR或可变形DETR应用于行人检测任务时,稀疏统一查询和解码器中的弱注意力场会导致性能下降。为了缓解这些缺点,作者提出了行人端到端检测器(PED),该检测器采用了一种新的解码器,称为密集查询和纠正注意域(DQRF),以支持密集查询并减轻查询的噪声或狭窄的注意域。他们还提出了V-Match,它通过充分利用可见注释实现了额外的性能改进!

场景图。场景图是场景的结构化表示,可以清楚地表达场景中的对象、属性和对象之间的关系。为了生成场景图,大多数现有方法首先提取基于图像的对象表示,然后在它们之间进行消息传播。图R-CNN利用自关注来整合来自图中相邻节点的上下文信息。最近,Sharifzadeh等人[150]在提取的对象嵌入上使用了transformer,Sharifzadeh等人[151]提出了一种名为Texema的新管道,并使用了预训练的文本到文本转换transformer(T5),从文本输入创建结构化图,并利用它们来改进关系推理模块,T5模型使Texema能够利用文本中的知识。

跟踪。一些研究人员还探索了在基于模板的鉴别跟踪器中使用transformer编码器-解码器架构,如TMT[153]、TrTr[154]和TransT[155]。所有这些工作都使用类似Siamese的跟踪管道来进行视频对象跟踪,并利用编码器-解码器网络来替代显式互相关操作,以实现全局和丰富的上下文相关性。具体地,transformer编码器和解码器分别被分配给模板分支和搜索分支。此外,Sun等人提出了TransTrack[156],这是一种在线联合检测和跟踪pipeline。它利用查询键机制跟踪预先存在的对象,并将一组学习的对象查询引入到pipeline中,以检测新的目标,拟议的TransTrack在MOT17和MOT20基准上实现了74.5%和64.5%的MOTA!

点云学习。最近还出现了许多其他研究点云学习transformer架构的著作[160]、[161]、[162]。例如,Guo等人[161]提出了一种新的框架,该框架用更合适的偏移注意力模块取代了原始的自我注意力模块,该模块包括隐式拉普拉斯算子和归一化细化。此外,Zhao等人[162]设计了一种新的transformer架构,称为point transformer。所提出的自关注层对点集的排列是不变的,使其适合于点集处理任务,Point Transformer在3D点云的语义分割任务中表现出强大的性能。

3)Low-level Vision

很少有作品将transformer应用于低级别视觉领域,例如图像超分辨率和生成。这些任务通常将图像作为输出(例如,高分辨率或去噪图像),这比诸如分类、分割和检测之类的高级视觉任务(其输出是标签或框)更具挑战性。

图像生成

将transformer模型应用于图像生成任务的一个简单而有效的方法是直接将架构从CNNs更改为transformer,如图9(a)所示。Jiang等人[38]提出了TransGAN,使用transformer架构构建GAN。由于难以按像素生成高分辨率图像,因此通过在不同阶段逐渐增加特征图分辨率来使用内存友好的生成器。相应地,多尺度鉴别器被设计为处理不同阶段中不同大小的输入。引入了各种训练方案,包括网格自关注、数据增强、相对位置编码和修改的归一化,以稳定训练并提高其性能。在各种基准数据集上的实验证明了基于transformer的GAN模型在图像生成任务中的有效性和潜力,Kwonjoon Lee等人[163]提出了ViTGAN,它将几种技术引入生成器和鉴别器,以稳定训练过程和收敛。为自注意模块引入欧氏距离,以增强transformer鉴别器的Lipschitzness。提出了自调制层模型和隐式神经表示来增强生成器的训练。因此,ViTGAN是第一个证明基于transformer的GAN可以实现与最先进的基于CNN的GAN相当的性能的工作!

4)视频处理

Transformer在基于序列的任务上表现出色,尤其是在NLP任务上。在计算机视觉(特别是视频任务)中,空间和时间维度信息受到青睐,这导致了transformer在许多视频任务中的应用,如帧合成、动作识别和视频检索!

高层次视觉处理

视频动作识别。顾名思义,视频人类动作任务涉及识别和定位视频中的人类动作,语境(如其他人和目标)在识别人类行为方面起着关键作用。Rohit等人提出了action transformer,以模拟感兴趣的人与周围环境之间的潜在关系。具体而言,I3D[169]被用作提取高级特征图的主干,从中间特征图中提取(使用RoI池)的特征被视为查询(Q),而关键字(K)和值(V)是从中间特征中计算的。自我注意机制应用于三个组成部分,并输出分类和回归预测。Lohit等人[170]提出了一种可解释的可微模块,称为时间transformer网络,以减少类内方差并增加类间方差。此外,Fayyaz和Gall提出了一种时间transformer[171],以在弱监督设置下执行动作识别任务。除了人类动作识别,transformer还用于群体活动识别[172]。

视频检索。基于内容的视频检索的关键是找到视频之间的相似性,Shao等人[174]建议仅利用视频级特征的图像级来克服相关挑战。他建议使用transformer来建模长期语义依赖性,还引入了监督对比学习策略,以执行难负样本挖掘。在基准数据集上使用该方法的结果表明了其性能和速度优势。此外,Gabeur等人[175]提出了一种多模态transformer来学习不同的跨模态线索,以表示视频。

视频目标检测。要检测视频中的目标,需要全局和局部信息,Chen等人引入了内存增强的全局局部聚合(MEGA)[176]来捕获更多内容。代表性特征提高了整体性能,解决了无效和不足的问题。此外,Yin等人[177]提出了一种时空transformer来聚合空间和时间信息。与另一个空间特征编码组件一起,这两个组件在3D视频目标检测任务中表现良好。无边框视频通常包含许多与目标任务无关的帧,因此,挖掘相关信息并丢弃冗余信息至关重要。为了提取此类信息,Seong等人提出了视频多任务transformer网络,该网络处理未修剪视频上的多任务学习。对于CoVieW数据集,任务是场景识别、动作识别和重要性得分预测。ImageNet和Places365上的两个预训练网络提取场景特征和对象特征,多任务transformer被堆叠以实现特征融合,利用类转换矩阵(CCM)。

低层次视觉处理

帧/视频合成。帧合成任务涉及在两个连续帧之间或在帧序列之后合成帧,而视频合成任务涉及合成视频。Liu等人提出了ConvTransformer[166],它由五个组件组成:特征嵌入、位置编码、编码器、查询解码器和合成前馈网络。与基于LSTM的工作相比,ConvTransformer通过更可并行化的架构实现了更好的结果。Schatz等人提出了另一种基于transformer的方法[179],该方法使用递归transformer网络从新颖的视图合成人类动作。

视频修复。视频修复任务涉及完成帧内任何缺失的区域,这很有挑战性,因为它需要合并沿空间和时间维度的信息。Zeng等人提出了一种时空transformer网络[28],它使用所有输入帧作为输入并并行填充它们,时空对抗性loss用于优化transformer网络。

5)多模态任务

由于跨文本的NLP任务的transformer成功,许多研究都热衷于开发其处理多模式任务(例如,视频文本、图像文本和音频文本)。其中一个例子是VideoBERT,它使用基于CNN的模块来预处理视频,以获得表示token。然后在这些token上训练transformer编码器,以学习下游任务的视频文本表示,例如视频字幕。一些其它示例包括VisualBERT和VL-BERT,它们采用单流统一transformer来捕获视觉元素和图像文本关系,用于下游任务,如视觉问答(VQA)和视觉常识推理(VCR)。此外,SpeechBERT等多项研究探索了使用transformer编码器对音频和文本对进行编码的可能性,以处理自动文本任务,如语音问答(SQA)。

除了上述开创性的多模态transformer,对比语言图像预训练(CLIP)将自然语言作为监督,以学习更有效的图像表示。CLIP联合训练文本编码器和图像编码器以预测相应的训练文本图像对,CLIP的文本编码器是一个标准的transformer,具有掩蔽的自我注意,用于保持预训练语言模型的初始化能力。对于图像编码器,CLIP考虑了两种类型的架构,ResNet和Vision Transformer。CLIP是在一个新的数据集上训练的,该数据集包含从互联网收集的4亿对(图像、文本)。更具体地说,给定一批N(图像、文本)对,CLIP联合学习文本和图像嵌入,以最大化N个匹配嵌入的余弦相似性。在few-shot transfer上,CLIP展示了惊人的分类性能,在不使用任何ImageNet训练标签的情况下,在ImageNet-1K数据集上实现了76.2%的top 1精度。

6)高效的transformer

尽管transformer模型在各种任务中取得了成功,但其对内存和计算资源的高要求阻碍了其在资源有限的设备上的实现。在本节中,我们回顾了压缩和加速transformer模型以实现高效实现的研究,这包括网络修剪、低秩分解、知识提取、网络量化和紧凑的架构设计,表4列出了压缩基于transformer的模型的一些代表性工作!

裁剪和分解

在基于transformer的预训练模型(例如BERT)中,并行执行多个注意力操作,以独立地建模不同token之间的关系[9],[10],然而,特定任务不需要使用所有的头。例如,Michel等人提供了经验证据,表明在测试时可以去除很大比例的注意力,而不会显著影响性能。不同层所需的head数量不同,某些层甚至可能只需要一个头。考虑到注意力头部的冗余,在[44]中定义了重要性得分,以估计每个头部对最终输出的影响,并且可以移除不重要的头部以进行有效部署。Dalvi等人[184]从两个角度分析了预训练transformer模型中的冗余:一般冗余和任务特定冗余。对于将图像分割为多个面片的视觉transformer[15],Tang等人[186]提出减少面片计算以加速推断,并且可以通过考虑其对有效输出特征的贡献来自动发现冗余面片。Zhu等人[187]将网络瘦身方法[188]扩展到视觉transformer,以减少FFN和注意力模块中线性投影的尺寸。

除了transformer模型的宽度外,还可以减少深度(即层数),以加速推断过程[198],[1999]。与可以并行计算transformer模型中不同注意力头部的概念不同,不同的层必须按顺序计算,因为下一层的输入取决于前一层的输出。Fan等人[198]提出了一种明智的分层策略,以规范模型的训练,然后在测试阶段将整个层一起移除。除了直接丢弃transformer模型中的模块的修剪方法之外,矩阵分解旨在基于低秩假设用多个小矩阵逼近大矩阵。例如,Wang等人[200]分解了transformer模型中的标准矩阵乘法,提高了推理效率!

知识蒸馏

知识蒸馏旨在通过从大型教师网络转移知识来训练学生网络[201],[202],[203],与教师网络相比,学生网络通常具有更薄、更浅的架构,更容易部署在资源有限的资源上,神经网络的输出和中间特征也可以用于从教师向学生传递有效信息。Mukherjee等人[204]专注于transformer模型,利用预先训练的BERT[10]作为教师,利用大量未标记数据指导小模型的训练。Wang等人[205]训练学生网络,以模拟预先训练的教师模型中自我注意层的输出,引入值之间的点积作为指导学生的新知识形式。[205]中还引入了教师助理[206],减少了大型预训练transformer模型和紧凑型学生网络之间的差距,从而促进了模拟过程。由于transformer模型中的各种类型的层(即自我关注层、嵌入层和预测层),Jiao等人[45]设计了不同的目标函数,以将知识从教师传递给学生。例如,学生模型嵌入层的输出通过MSE损失模仿教师的输出,对于视觉transformer,Jia等人[207]提出了一种细粒度流形蒸馏方法,该方法通过图像和分割块之间的关系挖掘有效知识!

量化

量化旨在减少表示网络权重或中间特征所需的位数[208],[209],已经详细讨论了一般神经网络的量化方法,并实现了与原始网络相当的性能[210],[211],[212]。最近,人们对如何特别量化transformer模型[213]、[214]越来越感兴趣。例如,Shridhar等人[215]建议将输入嵌入二进制高维向量,然后使用二进制输入表示来训练二进制神经网络。Cheong等人[216]通过低位(例如4位)表示表示transformer模型中的权重。Zhao等人[217]实证研究了各种量化方法,并表明kmeans量化具有巨大的发展潜力。针对机器翻译任务,Prato等人[46]提出了一种完全量化的transformer,正如论文所宣称的,它是第一个在翻译质量上没有任何损失的8位模型,此外,Liu等人[218]探索了一种后训练量化方案,以减少视觉transformer的内存存储和计算成本。

紧凑型架构设计

除了将预定义的transformer模型压缩成更小的模型,一些工作还试图直接设计紧凑的模型[219],[47]。Jiang等人[47]通过提出一个新的模块:基于跨度的动态卷积。将完全连接的层和卷积层结合起来,简化了自我关注的计算。与标准的自关注操作相比,矩阵分解可以更有效地计算,同时清楚地反映不同token之间的依赖性。高效transformer架构的设计也可以通过神经架构搜索(NAS)来实现自动化,该搜索可以自动搜索如何组合不同的组件。例如,Su等人[82]搜索了线性投影的斑块大小和尺寸以及注意力模块的头部数量,以获得有效的视觉transformer。Li等人[223]探索了一种自我监督搜索策略,以获得由卷积模块和自我关注模块组成的混合架构!

transformer模型中的自关注操作计算给定序列中不同输入token表示之间的点积(图像识别任务中的补丁),其复杂性为O(N),其中N是序列的长度。最近,有一个目标是将大型方法的复杂性降低到O(N),以便transformer模型可以扩展到长序列。例如,Katharopoulos等人将自关注近似为内核特征图的线性点积,并通过RNN揭示了token之间的关系。Zaheer等人将每个标记视为图中的顶点,并将两个标记之间的内积计算定义为边。受图论[227],[228]的启发,各种稀疏图被组合以近似transformer模型中的稠密图,并且可以实现O(N)复杂性。讨论前面的方法在如何识别transformer模型中的冗余方面采取了不同的方法(见图13),修剪和分解方法通常需要具有冗余的预定义模型。具体而言,修剪侧重于减少transformer模型中的组件(例如,层、头部)的数量,而分解表示具有多个小矩阵的原始矩阵。紧凑型还可以直接手动(需要足够的专业知识)或自动(例如,通过NAS)设计,所获得的紧凑模型可以通过量化方法进一步用低比特表示,以在资源有限的设备上高效部署。

结论和挑战

transformer由于其与CNN相比的竞争性能和巨大潜力而成为计算机视觉领域的热门话题,为了发现和利用transformer的功率,正如本调查所总结的,近年来提出了许多方法。这些方法在广泛的视觉任务上表现出优异的性能,包括主干、高级/中级视觉、低级视觉和视频处理。然而,计算机视觉transformer的潜力尚未被充分发掘,这意味着仍有几个挑战需要解决,在本节中,我们将讨论这些挑战,并就未来前景提供见解。

1)挑战

尽管研究人员提出了许多基于transformer的模型来处理计算机视觉任务,但这些工作只是该领域的第一步,仍有很大的改进空间。例如,ViT中的transformer架构遵循NLP的标准transformer,但专门为CV设计的改进版本仍有待探索。此外,有必要将transformer应用于除前面提到的任务之外的更多任务,计算机视觉transformer的通用性和鲁棒性也具有挑战性。与CNN相比,纯transformer缺乏一些感应偏差,并且严重依赖于大规模数据集进行大规模训练,因此,数据质量对transformer的通用性和鲁棒性有重要影响。尽管ViT在诸如CIFAR和VTAB的下游图像分类任务上表现出优异的性能,直接将ViT主干应用于目标检测无法获得比CNN更好的结果。为了更好地将预训练的transformer推广到更广泛的视觉任务上,还有很长的路要走。

尽管许多工作已经解释了NLP中transformer的使用,但清楚地解释transformer为什么在视觉任务中工作良好仍然是一个具有挑战性的课题。inductive biases,包括翻译等同性和局部性,是CNN成功的原因,但transformer缺乏任何inductive biases。目前的文献通常以直观的方式分析这种效应,例如,Dosovitskiy等人[15]声称,大规模训练可以超越inductive biases。位置嵌入被添加到图像块中以保留位置信息,这在计算机视觉任务中是重要的。受transformer中大量参数使用的启发,过度参数化[238],[239]可能是视觉transformer可解释性的潜在点。最后但并非最不重要的是,为CV开发高效的transformer模型仍然是一个悬而未决的问题。transformer模型通常是巨大的,而且计算成本很高。例如,基础ViT模型[15]需要180亿FLOP来处理图像,相比之下,轻量级的CNN模型GhostNet,[241]仅使用约6亿FLOP就可以实现类似的性能。虽然已经提出了几种压缩transformer的方法,但它们仍然非常复杂,这些最初为NLP设计的方法可能不适合CV。因此,迫切需要高效的transformer模型,以便将视觉transformer部署在资源有限的设备上。

2)未来展望

为了推动视觉transformer的发展,我们为未来的研究提供了几个潜在的方向,一个方向是计算机视觉中transformer的有效性和效率。目标是开发高效的视觉transformer,特别是具有高性能和低资源成本的transformer。性能决定了模型是否可以应用于真实世界的应用程序,而资源成本影响设备上的部署。有效性通常与效率相关,因此确定如何在两者之间实现更好的平衡是未来研究的一个有意义的课题。大多数现有的视觉transformer模型被设计为仅处理单个任务。GPT-3等许多NLP模型都演示了transformer如何在一个模型中处理多个任务。CV领域的IPT还能够处理多个低级别视觉任务,如超分辨率、图像去噪和去噪。Perceiver[244]和PerceiverIO[245]是可以在多个领域(包括图像、音频、多模态、点云)上工作的先驱模型。作者认为,只有一个模型可以涉及更多的任务。在一个transformer中统一所有视觉任务甚至其它任务(即,一个大的统一模型)是一个令人兴奋的话题。

有各种类型的神经网络,如CNN、RNN和transformer,在CV领域,CNNs曾经是主流选择,但现在transformer正在变得流行。CNNs可以捕捉诸如翻译等同性和局部性等inductive bias,而ViT使用大规模训练来超越inductive bias。从目前的证据来看,CNN在小数据集上表现良好,而transformer在大数据集上的表现更好。未来的问题是使用CNN还是transformer。通过使用大型数据集进行训练,Transformer可以在NLP和CV基准上实现最先进的性能,神经网络可能需要大数据而不是inductive bias。

参考

[1] A Survey on Vision Transformer.

往期回顾

一文详解视觉Transformer在CV中的现状、趋势和未来方向


自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、硬件配置、AI求职交流等方向;

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存