Khan, S., Naseer, M., Hayat, M., Zamir, S. W., Khan, F. S., & Shah, M. (2021). Transformers in Vision: A Survey. In arXiv [cs.CV]. arXiv. http://arxiv.org/abs/2101.01169
Transformer综述
摘要
Transformer模型在自然语言任务上取得的惊人成果引起了视觉社区对研究它们在计算机视觉问题中的应用的兴趣。在它们显著的优势中,Transformer使得能够对输入序列元素之间的长依赖关系进行建模,并支持对序列的并行处理,相比之下循环网络(如长短时记忆网络 LSTM)需要更多的设计归纳偏差。与卷积网络不同,Transformer在设计上需要最少的归纳偏差,并且天然适用于作为集合函数。此外,Transformer的直观设计允许使用类似的处理模块处理多种模态(例如图像、视频、文本和语音),并展现出对非常大容量网络和庞大数据集的卓越可扩展性。这些优势导致了在使用Transformer网络解决许多视觉任务方面的令人兴奋的进展。本调查旨在提供计算机视觉领域中关于Transformer模型的全面概述。我们首先介绍了Transformer成功背后的基本概念,即自注意力、大规模预训练和双向编码。然后,我们涵盖了Transformer在视觉中的广泛应用,包括流行的识别任务(例如图像分类、目标检测、动作识别和分割)、生成建模、多模态任务(例如视觉问答、视觉推理和视觉定位)、视频处理(例如活动识别、视频预测)、低级别视觉(例如图像超分辨率、图像增强和上色)以及3D分析(例如点云分类和分割)。我们比较了流行技术在架构设计和实验价值方面的各自优势和局限性。最后,我们对开放的研究方向和可能的未来工作进行了分析。
图1:关于关键词(如BERT、Self-Attention和Transformers)在同行评审和arXiv论文标题中出现次数的统计数据,涵盖了过去几年(在计算机视觉和机器学习领域)。图表显示了近期文献中这些关键词的持续增长。本调查涵盖了计算机视觉领域中关于Transformers的最新进展。
图2:在视觉领域中使用的自注意力块示例[39]。给定图像特征的输入序列,首先计算(键、查询、值)的三元组,然后进行注意力计算并将其应用于重新加权值。这里显示了一个单头(single head),并且最终应用输出投影(W)以获得与输入相同维度的输出特征。图形改编自[39]。
图3:Transformer模型的架构[1]。该模型最初是为语言翻译任务开发的,其中需要将一个语言中的输入序列转换为另一语言中的输出序列。Transformer编码器(中间行)对输入语言序列进行操作,并在将其传递给编码器块之前将其转换为嵌入。Transformer解码器(底部行)对翻译语言中先前生成的输出和中间分支的编码输入序列进行操作,以输出输出序列中的下一个词。先前输出的序列(用作解码器的输入)是通过将输出句子向右移动一个位置并在开头添加句子开头标记来获得的。这种移位避免了模型学习简单地将解码器输入复制到输出。用于训练模型的地面实况是简单地将输出语言序列(不进行任何右移)附加到句子末尾的标记。由多头注意力(顶部行)和前馈层组成的块在编码器和解码器中都重复了 N 次。
图4:自注意力设计空间的分类法。基于自注意力的现有方法探索用于视觉任务的单头或多头(transformer)设计。我们注意到,已经付出了一些有趣的努力,利用基于卷积的体系结构的知识来改进ViTs(例如,多尺度和混合设计)。我们根据自注意力块的类型(左树状图)以及计算机视觉中突出的任务(右侧)对本调查的即将到来的部分进行了分类。
图5:两种不同的自注意力方法的比较:非局部自注意力块[70]和交叉自注意力模块[72]。图片来自[72]。
图6:Vision Transformer的概览(左侧)和Transformer编码器的详细信息(右侧)。该架构类似于NLP领域中使用的Transformer,图像块被简单地展平后馈送到模型。在训练后,从第一个令牌位置获得的特征用于分类。图片来自[11]。
图7:检测Transformer(DETR)[13]将目标检测任务视为一个集合预测问题,并使用Transformer网络来编码集合元素之间的关系。使用二分图集合损失来将盒子预测与地面实况盒子唯一匹配(显示在右两列)。如果没有匹配,就会选择“无目标”类别的预测。它的简单设计,只需最少的问题特定修改,就能击败精心构建且受欢迎的Faster R-CNN模型。图片来自[13]。
图8:轴向注意力模块[133],它沿着高度和宽度轴顺序应用多头轴向注意力操作。图片来自[133]。
图9:(a) 图像Transformer中的自注意力块[142]。给定一个像素q的通道,该块关注以前合成像素的内存(mi),然后是一个前馈子网络。位置编码pi在第一层中添加。 (b) 局部自注意力中执行的操作(显示了2D情况的示例)。图像被划分为一个空间块网格,称为查询块。在自注意力操作中,查询块中的每个像素都会关注内存块中的所有像素(显示为青色矩形)。白色网格位置显示对自注意力没有贡献的被屏蔽输入。
图10:由DALL·E [20]从以下文本提示生成的图像。 (a) 一个像牛油果形状的扶手椅。 (b) 旧金山金门大桥的照片。给定图像的一部分(在绿色框内),DALL·E执行图像完成。 © 一个穿着蓝色帽子、红色手套、绿色衬衫和黄色裤子的小企鹅的表情符号。 (d) 一个坐在田野里的树懒的极端特写。 (e) 一颗石榴的横截面。 (f) 一个用西瓜做的企鹅。 (g) 顶部是完全相同的猫,底部是草图。
图11:纹理Transformer模块的图示。Q(查询)、K(键)和V(值)分别表示从(双三次上采样的)低分辨率图像、顺序下/上采样的参考图像和原始参考图像中提取的纹理特征。相关嵌入旨在估计低分辨率图像与参考图像之间的相似性。H和S分别表示从相关嵌入计算得到的硬和软关注。T表示然后传输到低分辨率图像的特征F的高分辨率纹理特征。图片来自[16]。
图12:用于计算机视觉多模态任务的Transformer模型的概览。在这个类别中,Transformer设计可以分为单流(UNITER [43]、OSCAR [44]、VideoBERT [17]、Unicoder-VL [180]、VisualBERT [63]和VL-BERT [22])和双流架构(LXMERT [21]、ViLBERT [181]和PEMT [182])。模型之间的一个关键区别是损失函数的选择。虽然大多数多模态方法都专注于将图像作为视觉数据,但VideoBERT [17]和PEMT [182]被设计用于处理视频流,并利用视频中的独特模态,例如音频信号[182]。
图13:可视化令牌(Vokens)[191]:使用与语言模型密切相关的图像进行视觉监督,从而得到更好的预训练模型特征表示。图片来自[191]。
图14:骨架数据表示的空间/时间注意力。使用两个专用的自注意力模块来建模身体关节之间的关系和帧间依赖性。图片来自[216]。
图15:FEAT [26]的概览。与在FSL中保持所有任务的嵌入函数相同的传统实例嵌入方法相比(a),FEAT使用一个集合到集合的函数来使嵌入函数适应每个FSL任务(b)。它评估了几个集合到集合的函数,并发现Transformer模块是FSL的最合适选择。图片来自[26]。
图16:Mesh Transformer架构。关节和顶点查询被附加了位置嵌入,并通过多个自注意力层,一起回归关节和网格顶点的3D坐标。图片来自[45]。