点击上方
“
小白学视觉
”,选择加"
星标
"或“
置顶
”
重磅干货,第一时间送达
题目:Vision Transformer With Quadrangle Attention
四边形注意力的视觉Transformer
作者:Qiming Zhang; Jing Zhang; Yufei Xu; Dacheng Tao
摘要
基于窗口的注意力由于其优异的性能、较低的计算复杂度和较小的内存占用,已成为视觉转换器中的热门选择。然而,手工设计的窗口是数据无关的,限制了转换器适应不同大小、形状和方向的对象的灵活性。为了解决这个问题,我们提出了一种新的四边形注意力(QA)方法,该方法将基于窗口的注意力扩展到通用的四边形公式。我们的方法采用端到端的可学习四边形回归模块,该模块预测变换矩阵,将默认窗口变换为目标四边形,以便对令牌进行采样和注意力计算,从而使网络能够模拟具有不同形状和方向的各种目标,并捕捉丰富的上下文信息。我们将QA集成到普通和分层的视觉转换器中,创建了一种名为QFormer的新架构,该架构只需要少量代码修改,几乎没有额外的计算成本。在公共基准上的广泛实验表明,QFormer在各种视觉任务(包括分类、目标检测、语义分割和姿态估计)中都优于现有的代表性视觉转换器。代码将在QFormer上公开。
关键词
-
目标检测
-
姿态估计
-
四边形注意力
-
语义分割
-
视觉转换器
引言
视觉转换器(ViT)已成为各种视觉任务中的一种有前途的方法。ViT通过将2D图像划分为补丁并将其嵌入为令牌来将输入图像视为1D序列,然后使用堆叠的包含自注意力和前馈网络的转换器块处理这些令牌。尽管其结构简单,但这种架构表现出了优越的性能。然而,原始自注意力在输入令牌长度上的二次复杂性对处理高分辨率图像构成了挑战。为了解决这个问题,提出了局部窗口注意力,它将图像划分为几个不重叠的方块(即窗口),并在每个窗口内分别执行注意力。这种设计在性能、计算复杂度和内存占用之间取得了平衡,从而显著扩展了普通和分层转换器在各种视觉任务中的应用。然而,它也对窗口的设计形式施加了约束,即方形,从而限制了转换器模拟长程依赖以及处理不同大小、形状和方向的对象的能力,这对视觉任务至关重要。
先前的研究集中在通过高级设计使基于窗口的注意力能够模拟长程依赖。一种简单的方法是,如Swin转换器中探索的那样,将窗口大小从7×7扩大到32×32,以包含更多的令牌进行计算,尽管计算成本更高。其他研究尝试手动设计各种形式的窗口,例如焦点注意力,它包含粗粒度的令牌以捕捉长程上下文,十字形窗口注意力,它使用两个十字矩形窗口从垂直和水平方向模拟长程依赖,以及Pale,它在扩展的垂直/水平方向上关注令牌以从对角方向模拟长程依赖。这些方法通过扩大注意力距离提高了图像分类性能。然而,所有这些方法都采用固定的矩形窗口进行注意力计算,尽管图像中目标的大小、形状和方向是任意的。这种数据无关的手工设计窗口可能对视觉转换器来说不是最优的。在这项研究中,我们通过将默认窗口从矩形扩展到四边形来提出一种数据驱动的解决方案,其中的最佳参数(例如形状、大小和方向)可以自动学习。这使得转换器能够学习更好的特征表示以处理各种对象,例如通过自适应四边形包含的长程令牌捕捉丰富的上下文。
具体来说,我们提出了一种名为四边形注意力(QA)的新型注意力方法,该方法旨在从数据中学习自适应的四边形配置以进行局部注意力计算。它使用默认窗口划分输入图像,并使用端到端的可学习四边形回归模块为每个窗口预测参数化的变换矩阵。变换包括平移、缩放、旋转、剪切和投影,用于将默认窗口变换为目标四边形。为了增强训练的稳定性并提供良好的可解释性,变换矩阵被公式化为几个基本变换的组合。与窗口注意力不同的是,在多头自注意力(MHSA)层中,不同头之间共享窗口定义,所提出的四边形变换是对每个头独立执行的。这种设计使得注意力层能够模拟不同的长程依赖,并促进重叠窗口之间的信息交换,而无需窗口移动或令牌置换。我们将QA集成到普通和分层的视觉转换器中,创建了一种名为QFormer的新架构,该架构只需要少量代码修改,几乎没有额外的计算成本。我们在各种视觉任务(包括分类、目标检测、语义分割和姿态估计)上进行了广泛的实验和消融研究。结果表明,QA的有效性和QFormer相对于现有代表性视觉转换器的优越性。
总的来说,本研究的贡献有三点:
-
我们提出了一种新型的四边形注意力方法,可以直接从数据中学习自适应的四边形配置。它打破了现有架构中固定大小窗口的限制,使得转换器能够更容易地适应各种大小、形状和方向的对象。
-
我们在普通和分层的视觉转换器中采用了QA,创建了一种名为QFormer的新架构,该架构只需要少量代码修改且几乎没有额外的计算成本。
-
在公共基准上的广泛实验表明,QA的有效性以及QFormer在各种视觉任务(包括图像分类、目标检测和语义分割)中优于代表性的视觉转换器。
III. 方法
在本节中,我们介绍了视觉转换器的预备知识、QA的技术细节、通过在普通ViTs和分层转换器(如Swin Transformer)中采用QA实现的QFormer,以及计算复杂度分析。
A. 预备知识
我们将首先简要回顾视觉转换器中的典型基于窗口的注意力。如图2(a)所示,给定输入特征图
作为输入,它被划分为不重叠的窗口,即
,其中
是预定义的窗口大小,窗口通常是正方形的。在空间维度上展平分割的令牌,并按照原始自注意力的相同投影过程将它们投影为查询、键和值令牌,即
其中
代表查询、键和值令牌。
是通道维度。为了允许模型从不同的表示子空间中捕捉上下文信息,将令牌在通道维度上等量分块为
个头,结果令牌为
其中
,
是每个头的通道维度,即
。在以下内容中,我们省略下标
以简化表示。给定来自第
个窗口的展平查询
,键
和值
令牌,窗口注意力层执行自注意力操作,即
是自注意力操作
后的输出特征。然后分别沿空间和通道维度连接特征以恢复特征图。请注意,每个窗口内的令牌以相同的方式处理,我们在以下内容中省略查询、键和值令牌的窗口索引符号
。注意力操作计算为值的加权和,其中权重(即注意力矩阵)由查询和相应键之间的相似度通过点积和softmax函数确定,即
其中
是相对位置嵌入,用于编码空间信息。训练过程中始终是可学习的。
与原始自注意力相比,基于窗口的注意力的一个关键优势是将计算复杂度减少到线性与输入大小有关,即每个窗口注意力的复杂度为
,每个图像的窗口注意力计算复杂度为
。为了促进不同窗口之间的信息交换,在Swin中,在两个相邻的转换器层之间使用了偏移窗口策略,并且在ViTDet中间隔采用了几层原始自注意力层。结果,通过顺序堆叠转换器层,模型的感受野被扩大。然而,当前基于窗口的注意力限制了每个转换器层内的令牌在手工设计的固定大小窗口内的注意力区域。这限制了模型捕捉远距离上下文并学习更好的特征以表示不同大小、方向和形状的对象的能力。因此,他们需要仔细调整窗口的大小以适应不同的任务,例如在输入分辨率变大时扩大Swin Transformers中的窗口大小。
B. 四边形注意力
基本窗口生成:为了减轻使用手工设计窗口处理各种对象的困难,我们提出了QA,允许模型以数据驱动的方式动态确定每个窗口的适当位置、大小、方向和形状。QA易于实现,只需对基于窗口注意力的视觉转换器的基本结构进行少量修改,通过简单地替换注意力模块,如图3所示。由于提出的QA对每个头进行相同且独立的操作,我们以下以一个头为例。技术上,给定输入特征图,首先将其划分为几个窗口
,窗口大小为预定义的
,与基于窗口的注意力相同,如图2(b)所示。我们将这些窗口称为基本窗口,并分别从每个窗口的特征中获取查询、键和值令牌,即
我们直接使用查询令牌进行QA计算,即
,同时将键和值令牌重塑为特征图,以便在QA计算中进行后续采样步骤。
四边形生成:我们将基本窗口视为参考,并通过投影变换将每个基本窗口转换为目标四边形。由于投影变换不保留平行性、长度和方向,获得的四边形在位置、大小、方向和形状方面非常灵活,使其非常适合覆盖不同大小、方向和形状的对象。我们将简要介绍投影变换的定义。它由一个八参数的变换矩阵表示:
其中
定义了缩放、旋转和剪切的变换,
定义了平移,
是投影向量,定义了观察者视点在深度维度变化时感知对象的变化。
如图2(b)所示,给定基本窗口中的令牌
,QA使用四边形预测模块预测关于基本窗口的投影变换。然而,直接回归投影矩阵的八个参数并不容易。相反,我们将投影变换解耦为几个基本变换,并分别预测每个基本变换的参数。具体来说,四边形预测模块首先预测替代参数
,该模块依次由平均池化层、LeakyReLU激活层和1×1卷积层组成:
然后,根据输出
获得基本变换,包括缩放
、剪切
、旋转
、平移
和投影
:
其中
和
缩放关于图像大小的平移,以帮助模型适应不同的输入大小。最后,通过顺序乘以所有变换得到变换矩阵
:
给定估计的投影矩阵,通过标准投影过程获取投影点的位置,即给定点的坐标
,变换可以通过简单的乘法完成:
并行对基本窗口中的每个点进行计算,以获取投影四边形中的目标位置。需要注意的是,该公式还包括传统窗口注意力作为QA的一种特殊情况,其中
,因此
是单位矩阵。默认情况下,我们初始化四边形预测模块的权重以产生
。
然而,仅使用相同坐标系下的令牌坐标在生成四边形时会导致歧义,如图5所示。例如,给定两个位置不同的窗口,离原点较远的窗口(b)与靠近原点的窗口(a)相比,即使它们具有相同的投影变换矩阵(即旋转),也会有显著不同的平移。这将导致训练过程中四边形回归模块优化困难。为了解决这个问题,投影变换通过使用每个窗口的相对坐标而不是绝对坐标进行,如图4所示。具体来说,给定窗口内令牌的坐标
,其中
索引令牌,
,我们将其坐标转换为相对坐标:
其中
表示窗口中心的中心,如图2(b)所示,
是相对于中心的相对坐标。获得变换矩阵后,我们可以根据(12)和(13)从
获得目标四边形中每个令牌的相对坐标
。然后,变换后的绝对坐标如下:
获得每个目标四边形中令牌的坐标后,我们使用网格采样函数从
中采样键和值令牌
。由于QA中窗口配置的数据驱动学习机制,可能会有许多多样且重叠的四边形,从而促进跨窗口的信息交换。然而,这样的设计可能会生成覆盖特征图以外区域的四边形。为了解决这个问题,提出了一种简单的采样策略:(1)对于特征图内的采样坐标,采用双线性插值进行采样;(2)对于特征图外的坐标,使用零向量作为其采样值。最后,使用采样的
和原始
进行自注意力计算,如(4)所述。
C. 正则化
如上所述,学习的四边形可能覆盖特征图以外的区域,在这种情况下采样到的值为零。这种现象阻碍了四边形回归模块的学习,因为这些区域的梯度总是为零。为了解决这个问题,我们设计了一种正则化项,以鼓励投影四边形覆盖更多特征图内的有效区域。具体来说,给定四边形内的令牌坐标
,我们定义一个惩罚函数,以惩罚那些特征图外的坐标:
其中
是超参数。我们将正则化损失与常见训练损失相加,例如图像分类的交叉熵损失。
D. 模型规格
我们将QA集成到普通和分层的视觉转换器中,创建了一种名为QFormer的新架构,其模型规格如表I所示。两种架构都由一系列转换器层组成,如图6所示。分层架构QFormerh在几个阶段中逐步下采样特征图,即分别按4×、2×、2×、2×的比例下采样,如图6(b)所示。我们使用Swin Transformer作为参考架构,并在注意力层之前采用CPVT中的条件位置嵌入(CPE)将空间信息编码到模型中,如图3(c)所示,即
每个阶段中的转换器层数和通道维度与Swin Transformer相同,但我们为了简化移除了窗口移动操作。对于大模型,我们使用普通的ViT作为参考架构,并采用MAE预训练权重进行初始化。如图6(a)所示,普通架构QFormerp在所有转换器层中具有相同的特征大小,遵循ViT中的设置。
E. 计算复杂度分析
QA带来的额外计算来自CPE和四边形预测模块,而其他部分,包括基于窗口的MHSA和FFN,与参考架构完全相同。给定输入特征
,分层架构中的QA首先使用一个7×7内核的深度卷积层生成CPE,这带来了额外的
计算。为了学习投影矩阵,我们首先使用内核大小和步幅等于窗口大小的平均池化层,从基本窗口中聚合特征,其计算复杂度为
。随后的激活函数不引入额外计算,最后一个内核大小为1×1的卷积层以
作为输入,并为每个头预测变换参数
。因此,其计算复杂度为
。在获得变换矩阵后,我们将默认窗口变换为均匀采样
令牌的四边形。这里我们忽略计算新坐标的计算复杂度,因为它非常小(即27HW)。每个四边形中采样的计算复杂度为
,总采样计算复杂度为
。因此,QA带来的总额外计算为