Press "Enter" to skip to content

用Transformer进行端到端视觉表示学习! Box-Attention:目标检测、实例分割轻松涨点

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

作者丨ChaucerG

 

论文链接: https://arxiv.org/abs/2111.13087

 

在本文中提出了一种简单的注意力机制Box-Attention。它支持网格特征之间的空间交互(从感兴趣的Box中采样),并提高了Transformer针对多个视觉任务的学习能力。

 

具体来说,介绍的BoxeR,即Box Transformer的缩写,它通过预测输入特征图上的参考窗口的转换来处理一组Box。BoxeR通过考虑它的网格结构来计算这些Box上的注意力权重。值得注意的是,BoxeR-2D在其注意力模块中自然地对Box信息进行推理,使其适合于端到端实例检测和分割任务。通过学习box-attention模块中的旋转不变性,BoxeR-3D能够从鸟瞰平面生成判别信息,用于三维端到端目标检测。

 

实验表明,提出的BoxeR-2D在COCO检测上取得了更好的结果,在COCO实例分割上达到了与完善且高度优化的Mask R-CNN相当的性能。BoxeR-3D在没有任何特定类别的优化的情况下,已经在Waymo Open的车辆类别中获得不错的结果。

 

1 简介

 

对于目标检测、实例分割、图像分类和许多其他当前的计算机视觉挑战,一个带有Multi-Head Self-Attention的Transformer可能是所有任务都需要的。Transformer在自然语言处理中取得成功后,学习远程特征依赖在计算机视觉中也被证明是一种有效的策略。

 

令人惊讶的是,现有的Vision Transformer中没有明确地考虑视觉形态的内在规律性。重要的是,图像特征的矢量化方式与语言Token完全相同,导致像素之间的局部连通性丧失。传统的Transformer一旦输入了足够的数据,可能可以弥补这种空间结构的损失;

 

在本文中,作者更倾向于通过设计使Transformer具备空间图像感知能力。最近的研究表明,归纳偏差在自然语言处理和计算机视觉中都是至关重要的,在图像识别和物体检测方面的领先工作都利用了“空间信息”。此外,强而有效的归纳偏置可以使模型更快地收敛和更好地推广。

 

一种解决方案是使用位置编码来丰富图像特征,在特征层显式地编码位置信息。当将Multi-Head Self-Attention应用于视觉任务时,这已经是常见的做法。Carion和Zhu将绝对2D位置转换,Ramachandran将相对2D位置编码为矢量,并将其求和为注意力计算中的图像特征。

 

然而,这种方法只能作为图像特征的数据增强。它要求网络在权值内隐式地推断空间信息,由于网络结构中缺乏空间意识,导致在训练时收敛速度较慢。众所周知,网络架构中的归纳偏向提供了强大的学习能力,这已经被着名的架构如卷积神经网络和长短期记忆所证明。

 

假设在Transformer的注意力模块中可以设计出一个更好的空间感应偏差,那幺便可以更好地学习图像特征的表示。

 

基于这一观察,本文的主要贡献如下:

 

1.提出的使用Transformer进行端到端视觉表示学习的Box-Attention机制。它不使用感兴趣区域内的图像特征,而是将一组表示网格结构中相对位置的可学习嵌入作为注意力计算的Key向量;

 

2.提出了BoxeR-2D,是Box TransformeR的缩写,它能够在端到端物体检测和实例分割任务中更好地预测;

 

3.将BoxeR-2D和Box-Attention扩展到BoxeR-3D中,以解决端到端3D物体检测,而不需要3D-iou计算、Anchor point和对象中心的Heatmap(如图1所示)。

2 相关工作研究

 

2.1 Attention for Vision Backbones

 

随着注意机制的发展,在卷积网络中产生和使用注意力的方法有多种。最近在Vision Transformer研究显示,仅使用注意力的网络在图像识别方面也可以实现不错的性能,并且在更多数据和更长的训练时间的情况下优于卷积神经网络。

 

随着高分辨率图像使ViT在计算上变得更加昂贵,而仅产生单尺度特征地图,一些研究集中于加快Self-Attention计算和生成用于目标检测和分割的多尺度特征地图。在本文中转而关注预测模块,它将从视觉Backbone中提取的特征作为输入,并对多个视觉任务进行预测。

 

2.2 Attention for Object Detection

 

Two-Stage目标检测方法(如,Faster R-CNN)利用区域提议网络(RPN)和一个预测模块在预训练的Backbone上预测一组预定义的目标。在一些研究中引入注意力机制作为RPN和预测模块的补充,以进一步提高性能。

 

One-Stage目标检测方法删除了RPN,直接从卷积特征映射中预测目标。虽然检测性能得到了显着提高,但这些基于卷积的架构仍然依赖于许多手工设计的组件。

 

最近,Carion等人介绍了一个基于Transformer的预测模型,称为DETR,它以端到端的方式给出预测结果。Zhu等人指出图像特征的Self-Attention收敛速度慢,计算成本高,引入了Multi-Head Deformable Attention,将注意力计算中的点积替换为采样点的两个线性投影,计算它们的注意力权重。在提高收敛速度和精度的同时,参考点周围的采样位置策略使其无法有效地捕获目标的大小和位置等信息。由于图像特征映射上的采样点被分离,模块不知道参与区域的局部连通性。

 

BoxeR紧密遵循Carion等人所提出的端对端目标检测的总体框架,但在其核心上不同,它使用了空间先验和Multi-Head Attention。而Box-Attention是受到标准的Multi-Head Attention和卷积操作的启发,这两种操作都被证明可以学习鲁棒的图像表示。Box-Attention仅通过预测框的中心和大小来考虑框区域,这是更有效的,并允许模型可以提取预测区域内的结构化信息。

 

2.3 Attention for Instance Segmentation

 

需要一种处理实例分割的方法来定位对象并同时分割属于该对象的像素。受目标检测的启发,早期的研究在第一阶段预测了segment proposals;然后在第二阶段对segment proposals进行分类。

 

何凯明等人提出在多任务设置中同时训练目标检测和实例分割,以提高两个任务的性能。与从同一组特征(即ResNet特征)预测边界框和Mask的分割模型不同,DETR依赖于Transformer特征进行目标检测,并依赖于通过Transformer的注意力图增强的ResNet特征进行分割。这将导致特征信息的不匹配,因为这两个任务高度相关。

 

本文引入Box-Attention,在单一BoxeR-2D架构中,Box-Attention可以自然地扩展到目标检测和实例分割。

 

2.4 Attention for 3D Object Detection

 

三维目标检测的主要挑战是如何处理鸟瞰图特征中的旋转包围框。许多方法通过生成不同角度的Anchor作为object proposals,然后进行分类和回归,从而适应Faster R-CNN。

 

由于基于Anchor的方法产生大量的重叠proposals,这需要针对每个类调整NMS,而Anchor-Free方法侧重于预测场景中目标中心的Heatmap。虽然减少了重叠proposals的数量,但与基于Anchor相比,预测Heatmap会导致先验信息的丢失,并且仍然依赖于NMS来过滤object proposals。

 

也有方法也采用了具有Self-Attention的Transformer进行三维目标检测。不幸的是,它们和传统的检测器存在同样的问题,因为它们的方法需要根据以前的方法进行初始目标预测。

 

Misra等人最近的工作介绍了3DETR用于室内三维物体检测。该方法对点云上由最远点采样算法生成的目标query在编码器和解码器中都利用了Self-Attention。

 

相反,BoxeR提出了一个在室外场景中端到端3D物体检测的解决方案,它只需要简单地使用鸟瞰特征来预测物体,而不需要NMS或3D旋转IoU。BoxeR的目标query由编码器特性上的object proposals模块简单生成,不需要复杂的初始化方法。

 

3 Box-Attention

 

Box-attention也是一种Multi-Head Attention,用于关注图像特征图中感兴趣的Box。为此,它在每个Box内采样一个网格,并从网格结构中计算采样特征的注意力权重,使该模块易于推广到 2D 或 3D 对象检测和实例分割。在每个注意力计算Head中,通过预测一个预定义参考窗口的几何变换(如平移、缩放和旋转)生成一个感兴趣的框。Box-attention的设计允许网络以合理的计算成本关注图像特征的动态区域。

 

3.1 Multi-Head Attention

 

首先简要概述Transformer中的标准Multi-Head Attention。1个注意力头的Multi-Head Attention通过计算Key向量K对应的Value特征V的加权平均向量生成Query(Q)的输出特征:

Self-Attention 模块利用特征Q和K之间的点积在每个Head计算一个注意力图,而这个计算量会随矩阵大小增长呈二次增长。

 

其中是一个Head的key特征的尺寸。

 

3.2 Multi-Head Box-Attention

 

BOX-Attention采用式(1)中的Multi-Head Attention计算, 具有多个Head的相同特征聚合和一个可学习的投影矩阵。在注意力计算阶段, 给定第个注意力头中query向量的一个兴趣box,Box-Attention使用双线性插值从中提取尺寸为的网格特征图, 如下图所示。利用双线性插值计算网格特征的精确值, 减少了Box-Attention在box回归和像素分割中的量化误差。

这与Deformable  Attention不同,Deformable  Attention预测在捕获目标信息时导致模糊的非结构化点。相反,BOX-Attention继承了RoI-Align的精神,即精确采样感兴趣区域内的网格结构(即BBox proposal),以获得准确的像素级信息,这对于像素级精确Mask来说非常重要。

 

在第个attention的计算, 网格特性映射为一组对应query的value。然后通过 计算和可学习向量之间的点积生成注意力分数(其中每个向量代表网格 结构中的一个相对位置), 然后进行softmax运算。

 

因此, 在各个query中共享相同的ey集。通过将作为采样网格的相对位置嵌入, boxattention可以有效地捕获区域的空间信息。在实现中, 注意力图的生成可以通过一个简单 的线性投影有效地执行, 该投影相当于带有可学习向量的点积。最后的是中向量的注意力权重加权平均值。

 

where, andis the dimension of features in one head。

 

多尺度特征图在目标检测和实例分割两方面带来了巨大的改进。而Box-attention可以简单 地扩展到多尺度功能。给定一个注意力头中query向量的一组方框, 每个方框都属于个 多尺度特征图, 从每个方框中采样一个特征网格, 得到注意 力分数的计算方法与可学习向量相同, 其中每个向量表示网格结构中的一个相对位置, 然后进行softmax归一化。特征现在是个向 量在中的加权平均值, 如式(3)所示。

 

3.3 Multi-Head Instance-Attention

 

Multi-Head Instance-Attention是Multi-Head Box-Attention的简单扩展, 没有任何额外参数。目标是从感兴趣的Box中生成一个精确的Mask,用于实例分割。在第个注意头中,产生两个输出,用于目标检测,用于实例分割。

 

当对中的特征加权平均以创建时, 在的第一个维度(包含多尺度特征的数 量) 中折叠。为此, 使用softmax函数对注意力得分的第一个维度进行标准化, 然后将其应用于。注意, 在生成和时, 共享注意力模块的所有参数, 包括可学习投影矩阵。

 

3.4 Where-to-attend

 

“Where-to-attend”是Box-Attention的一个关键组成部分,它指的是在注意力计算中预测感兴趣的框的操作。具体来说,该模块学习了通过简单的几何变换,如平移、缩放等,将特征图上query的参考窗口转换为参与区域(见图3)。

具体来说, 用分别表示其中心位置,是归一化坐标下 窗口的宽度和高度。平移函数以和为输入进行平移, 输出如下:

 

其中和是相对于参考窗口中心的偏移量。类似地, 缩放函数接受相同的输入并调整的大小。

 

其中和为参考窗口大小的偏移量。为了提高效率, 偏移参数 (即) 是通过上的线性投影来预则的。在个头部和个多尺度特征图的multi-head attention设置中, 使用变换函数, 每个函数为第个头部和第个特征图预测一个感兴趣的Box。

 

Where-to-attend是转换的组合,并允许box-attention 使用少量参数和低计算开销有效地关注必要的区域。它也可以被看作是一个伪预测步骤,因为它提供网络空间信息来预测注意力模块内的一个感兴趣的区域。

 

4 BoxeR-2D:A Box Transformer

 

为了证明方法的有效性提出了BoxeR,一个基于Transformer具有box-attention结构的网络。

如图4所示,BoxeR由一个编码器和一个解码器组成,编码器用于编码从Backbone中提取的多尺度特征图,而解码器用于预测实例边界框和像素Mask。本文方法遵循端到端目标检测框架(即DETR)的精神,减少了手工制作模块的需求,如NMS和Anchor。

 

4.1 BoxeR编码器

 

与Transformer一样,每个BoxeR编码器层都包含box-attention和前馈层,每个子层后面都有一个带有残差连接的LayerNorm。

 

编码器将多尺度图像特征映射从ResNet Backbone的C3提取到C5(通过1×1卷积转换到隐藏维数)作为其输入。第t个feature map是通过在最终的feature上应用卷积层, 步长为2得到的。BoxeR编码器将多尺度输入转换为多尺度上下文表示。

 

注意, 多尺度上下文表示与输入具有相同的分辨率。

 

在编码器中,和都是来自多尺度特征图的特征。为每个query向量分配一个引用窗口, 该窗口位于query空间位置的中心。在多尺度特征映射上, 滑动窗口的大小为(或在每个多尺度特征映射上有 42 个特征)。由于box-attention的平行注意头能够在每个特征级别隐式地捕捉多种长宽比的方框, 作者发现没有必要有多种长宽比的参考窗口(见图5)。除了用位置嵌入增强每个query之外, 还添加了Size嵌入, 它表示对应于每个query的引用窗口的大小。Size嵌入在不同level的query向量之间是不同的。这两种嵌入都是标准化的, 并使用正弦编码进行编码。

由于两阶段网络表明了目标检测的显着改进,作者证明了BoxeR编码器能够产生高质量的目标建议作为解码器的输入。在object proposal阶段,来自最后一个编码器层的特征被送入预测头,以预测object proposal的参考窗口。

 

不把在object proposal阶段预测的边界框的正弦嵌入处理为对象query,而是简单地将分类得分最高的编码器特征(通过线性投影转换)作为解码器的输入特征。这为BoxeR解码器提供了更丰富的信息,因为编码器特性同时包含空间信息和上下文信息。在解码器中,将预测的边界框作为其相应建议的参考窗口。

 

4.2 BoxeR解码器

 

在每个BoxeR解码器层中,交叉注意子层是我们的多头实例注意,而Self-Attention和前馈子层保持不变。编码器提出的目标建议的特征是BoxeR解码器的输入。在这一阶段对目标建议的参考窗口进行了细化,以便给出准确的预测。

 

具体地说, 用表示第个解码器层的输入。第个解码器层的输出和。这两个输出的前馈层是相同的。输出特征然 后被解码为Box坐标和类标签, 而用于生成实例Mask。遵循Mask R-CNN 中的训练策略, 用一个逐像素的sigmoid和一个binary 损失来预测实例Mask。

 

由于注意力模块中的“where-to-attend”模块基于参考窗口预测感兴趣区域,作者设计了检测头来预测一个边界框作为相对偏移,其参考窗口的大小和位置。在预测阶段,参考窗口作为对其对象提议特征的初步猜测。其他解码器层的辅助解码损失也是有效的。BoxeR解码器中的所有预测头共享它们的参数。论文发现没有必要在匈牙利匹配器中增加Mask成本,从而使训练更有效。

 

5 BoxeR-3D: End-to-end 3D Object Detection

 

将box-attention和BoxeR扩展到点云输入,从而实现端到端三维物体检测。

 

5.1 Box-Attention for 3D Object Detection

 

除了在where-to-attend模块中平移和缩放外,还在鸟瞰平面中添加了旋转变换来模拟物体的角 度。用表示的参考窗口, 其中表示其中心位置,为窗口的宽度 和高度,为在归一化坐标中围绕其中心的旋转角度。最后的旋转函数预测窗口旋转角度 的偏移量。然后在从采样的网格坐标上应用一个旋转矩阵:

 

式中为参考角的偏置。同样, 使用上的线性投影来预测。

 

5.2 BoxeR for 3D Object Detection

 

为了更好地捕捉不同角度的目标, 为BoxeR编码器特征的每个query向量分配了多角度的参考窗口。在每个滑动位置, 基于二维目标检测设置, 在每个角度的多尺度特征图上 使用 3 个的参考窗口。每个注意力头将被分配一个角度的参考窗口。通过这样做, 由boxattention生成的特征对于旋转预测是很强的(见图5)。在对象建议阶段, 对于每个编码器特征, 预测类别分数和三个建议的边界框, 它们的三个角度的参考窗口。3D 匈牙利匹配器是在训练期间使用。

 

由于参考窗口的均匀分布,我们的系统中只嵌入了关于特定对象类的最小先验知识,例如车辆的典型尺寸。这不同于以前的方法[35,37,38,47],以前的方法对每个类别使用不同的Anchor size、Heatmap或Backbone。本文的网络还消除了手工制作模块的需要,如旋转非最大抑制或3D计算。

 

6 实验

 

6.1 消融实验

 

1、Box-Attention vs. Alternatives

首先在端到端目标检测中比较Box Attention、Self-Attention、Deformable-Attention和Dynamic-Attention。表1中的结果表明Box-Attention在所有指标上都有改进,小目标(APS)提升最高(1.5%)。此外,与其他注意力机制相比,Box-Attention需要更少的FLOPs。

 

作者还实验了Box-Attention没有采用参考窗口但不采用转换函数(平移和缩放)的where-to-attend模块。从表1中可以看出,where-to-attend模块在所有类别中的提升均超过2分。这表明转换和缩放在学习注意力相关区域方面的重要性。

 

2、BoxeR-2D Ablation

由于BoxeR-2D在其编码器中使用多尺度参考窗口来预测object proposals,因此这些proposals在解码器中用作参考窗口。在表2a中,通过在解码器层中添加object proposals 细化来评估object proposals的质量。虽然这种改进在先前的工作中被证明是有益的,但可以观察到AP下降了1个百分点。这表明当BoxeR-2D编码器使用参考窗口生成object proposals时,它们足以让BoxeR-2D解码器预测proposals,而无需在每个步骤中进行细化(见图4)。

 

BoxeR-2D很灵活,因为可以轻松地将Instance-Attention插入其解码器,以预测目标位置及其Mask。表2b显示了BoxeR-2D从多任务训练(目标检测和实例分割)中获益。

 

3、BoxeR-3D Ablation

在表3中删除BoxeR-3D设计对3D目标检测的有效性。表明了旋转变换在where-to-attend模块中的作用,它在所有类别中贡献了超过1分,但代价是很小的计算量。

 

具体来说,作者发现旋转变换在添加到解码器层中的box-attention时最有效。表3还显示了BoxeR-3D编码器层中多角度与单角度参考窗口之间的比较。使用多角度参考窗口对车辆和骑自行车者类别产生改进,同时对行人保持稳定。这表明多头注意力中的每个头都能够有效捕捉不同旋转角度的信息。

 

6.2 与SOTA方法对比

 

1、2D目标检测

2、3D目标检测

6.3 方法的局限性

 

在本文中,作者提出了一种基于Transformer的检测器,用于端到端的目标检测和实例分割,名为BoxeR。该网络的核心是box-attention,它旨在通过从初始参考窗口学习转换来关注图像区域。由于其灵活性,BoxeR可以执行2D和3D端到端目标检测以及实例分割,而无需手工制作模块。在COCO和Waymo Open数据集上的实验证实了所提出架构的有效性。

 

与其他基于Transformer的架构类似,与基于卷积的架构(如Faster R-CNN或Mask R-CNN)相比,在网络训练期间观察到更大的内存占用。这导致需要更先进的GPU和更高的能耗。此外,在相同的FLOPs下,box-attention比卷积算子慢。原因可能来自于box-attention中网格采样的无序内存访问以及传统卷积的高度优化的硬件和实现。作者希望通过发布具有更优化实现的代码来缓解其中的一些问题。

 

参考

 

[1].BoxeR:Box-Attention for 2D and 3D Transformers

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注