TPAMI 2024 | MsSVT++: 用于3D目标检测的混合尺度稀疏体素变换器与中心投票

共 38259字,需浏览 77分钟

 ·

2024-06-20 10:10

点击上方小白学视觉”,选择加"星标"或“置顶”

重磅干货,第一时间送达

MsSVT++: Mixed-Scale Sparse Voxel Transformer With Center Voting for 3D Object Detection

题目:MsSVT++: 用于3D目标检测的混合尺度稀疏体素变换器与中心投票

作者:Jianan Li; Shaocong Dong; Lihe Ding; Tingfa Xu


摘要

大规模户外场景中精确的3D目标检测需要同时具备丰富长距离和细粒度信息的特征。尽管最近的检测器已经利用基于窗口的变换器来模拟长距离依赖性,但它们往往忽视了细粒度细节。为了弥补这一差距,我们提出了MsSVT++,一种创新的多尺度稀疏体素变换器,它通过分而治之的方法同时捕获这两种类型的信息。这种方法涉及显式地将注意力头分为多个组,每个组负责关注特定范围内的信息。这些组的输出随后被合并以获得最终的多尺度特征。为了减轻在3D体素空间应用基于窗口的变换器所带来的计算复杂性,我们引入了一种新颖的棋盘采样策略,并使用哈希映射稀疏地实现体素采样和聚集操作。此外,一个重要的挑战来自于观察到非空体素主要位于物体表面,这阻碍了边界框的准确估计。为了克服这一挑战,我们引入了一个中心投票模块,它将新投票的体素与混合尺度上下文信息整合到物体中心,从而提高精确的目标定位。广泛的实验表明,我们的单阶段检测器,建立在MsSVT++的基础上,始终在不同的数据集上提供卓越的性能。

关键词

  • 3D目标检测

  • 点云

  • 体素变换器

I. 引言

自动驾驶应用的蓬勃发展使得人们对从点云中进行3D目标检测的兴趣日益增加。然而,与具有结构化像素排列的2D图像不同,激光雷达点云具有固有的无序性和不规则性,这给应用类似CNN的操作带来了挑战[2],[3]。为了克服这一障碍,许多研究人员选择将点云转换为规则的体素网格[4],并利用3D CNN来提取全面的体素特征。最近,受到视觉变换器(ViT)在2D图像分析中的成就的启发[5],人们努力将高效的基于窗口的变换器扩展到3D体素[6]或支柱[7]。尽管这些方法通过利用变换器的强大能力在捕获长距离信息方面取得了成功,但它们忽略了一个事实,即不加选择地扩展接受域可能会掩盖稀疏3D空间中对准确目标识别和定位至关重要的细粒度细节。

在传统的基于窗口的变换器中,查询特征通过在同一窗口内关注来自该窗口的键来更新。然而,为了有效地捕获长距离上下文和细粒度细节,有必要扩大窗口大小以包含本地和远距离的体素。不幸的是,直接将窗口内的所有体素作为键纳入会导致计算负荷显著增加,这一负荷随着窗口大小的立方增加而增加。为了解决这一挑战,一些努力已经通过采样一定数量的键体素[6]来减轻计算负担。然而,简单的采样策略往往会导致局部体素的稀疏采样(图1(b)),使模型偏向于长距离上下文。为了克服这个限制,我们提议利用以查询窗口为中心的多个不同大小的键窗口。随后,我们独立地从小窗口和大窗口中分别采样相同数量的局部和远距离键体素。这种新颖的方法允许模型在保持局部区域的细粒度的同时保留细粒度细节,同时捕获远距离体素以扩大接受域(图1(c))。


在这里插入图片描述


一旦体素被采样,下一个挑战在于如何有效地关注来自不同窗口的体素,同时捕获长距离上下文和细粒度细节。为了解决这个问题,我们提出了一种分而治之的方法,受到最近研究[5],[8],[9]的启发,这些研究表明变换器可以使用不同的头学习不同级别的自注意力。基于这一洞见,我们引入了一种新的骨干网络,称为多尺度稀疏体素变换器(MsSVT)。关键思想是显式地将变换器头分成多个组,每个组专注于处理从特定大小窗口中采样的体素。这种划分使我们能够在不同尺度上捕获信息,有效地同时包含长距离上下文和细粒度细节。通过聚合所有头组的输出,我们实现了一个全面的表示,该表示结合了混合尺度信息。此外,我们设计了一种尺度感知的相对位置编码策略,根据相应键的范围适应每个头组中使用的位置编码。这种策略确保了位置编码与正在处理的体素的特定尺度对齐。我们在图1(d)和(e)中提供了来自两个不同头组的注意力图。这些图展示了MsSVT如何有效地关注来自不同窗口的体素,捕获局部和远距离的依赖性。此外,MsSVT中的混合尺度注意力促进了局部窗口之间的信息交换,使其比通常需要额外移动窗口操作的基于窗口的变换器[7],[10]更加紧凑。

为了提高在3D体素空间应用变换器的计算效率,我们提出了两种策略。首先,我们引入了一种称为棋盘采样(CBS)的新方法,以减少需要在查询窗口内采样的查询体素的数量。CBS涉及在查询窗口中的每个体素上用四种符号之一标记,形成类似棋盘盘的模式。在每个MsSVT块中,我们从带有特定符号的非空体素中采样查询,并通过对注意力学习更新它们的功能。对于未采样的非空体素,我们采用K最近查询体素插值方法,其中K个最近更新的查询体素用于线性插值特征。通过采用这种循环模式的符号,我们确保了以较低的计算成本全面覆盖所有体素。其次,我们利用非空体素的稀疏性,通过哈希映射并行化搜索和特征收集过程,仅在3D空间的非空位点上执行多尺度基于窗口的注意力。

然而,由于激光雷达点通常位于物体表面,物体的内部和中心通常是空的。因此,我们的MsSVT专门操作非空体素,严重依赖表面体素进行边界框预测。这可能导致对整个对象的覆盖不完整,特别是对于较大的对象。受到VoteNet[11]的启发,我们假设用一些生成的体素填充通常由空体素占据的物体中心,这些体素从对象的不同部分收集特征,可以大大缓解这个问题。

受到上述挑战的启发,我们引入了一个先进的变换器网络,称为MsSVT++,扩展了MsSVT的能力。与Li等人[1]之前提出的作品不同,MsSVT++整合了一个新颖的中心投票模块,以提高3D目标检测的精度。中心投票模块的工作原理如下:(i)它通过预测从体素中心到相应物体中心的偏移量,为每个体素生成一个投票点;(ii)生成的投票点集被体素化,结果产生围绕物体中心的聚集体素;(iii)这些新生成的体素通过多尺度注意力机制与混合尺度上下文信息丰富;(iv)原始体素网格的物体中心被这些新的体素填充,创建一个合并的体素网格以进行后续处理,如前所述。通过整合中心投票模块,我们的MsSVT++在预测边界框方面表现出更高的准确性,特别是对于较大的对象,超越了其前身的能力。这一进步有助于开发更实用的3D检测器。

我们使用MsSVT++替换SECOND[12]中原始的稀疏3D CNN骨干,并开发了一个3D检测器。为了评估我们检测器的性能,我们在三个数据集上进行了广泛的实验:Waymo[13]、KITTI[14]和Argoverse 2数据集[15]。我们的单阶段检测器,利用MsSVT++抽象混合尺度体素特征的卓越能力,展现了超越最先进两阶段检测器的显著性能。

我们的贡献可以总结如下:

  • 我们提出了一种新颖的多尺度稀疏体素变换器(MsSVT),它能够在考虑长距离上下文和细粒度细节的同时抽象体素特征。

  • 我们设计了一种高效的棋盘采样策略,显著降低了在3D空间应用基于体素的变换器的计算成本。此外,所有操作都以稀疏方式实现以提高效率。

  • 我们引入了一种新颖的中心投票模块,扩展了MsSVT的能力,它收集混合尺度上下文信息并将其引导至通常由空体素占据的物体中心。结果产生的MsSVT++代表了在准确3D检测,特别是大型物体方面的显著进步。

III. 方法

在本节中,我们首先详细介绍了MsSVT模块的架构及其高效的稀疏实现。接着,我们深入探讨了中心投票模块的具体细节。最后,我们展示了基于MsSVT++的3D检测器的整体构建。

A. 多尺度稀疏体素变换器

MsSVT块的整体架构如图2所示。最初,使用棋盘采样和平衡多窗口采样技术分别获取查询和键体素。随后,所获得的查询和键输入到多个头组中,通过尺度感知注意力学习提取多尺度信息。此外,整合了尺度感知相对位置编码,以增强不同头组中位置信息的利用。


在这里插入图片描述


  1. 平衡多窗口采样:设 表示包含 个体素的输入体素集合。每个体素 由其 坐标 和特征向量 所表征。设 表示一系列窗口大小。这里, 对应于查询窗口的大小,而 对应于M个连续更大的键窗口大小。最初,我们将体素集合划分为大小为 的非重叠3D窗口。我们考虑非空窗口作为查询窗口,以 为中心,其中L表示查询窗口的总数。查询窗口中心在cj的查询体素 , 可以通过收集窗口内 个非空体素获得。为了确保计算效率,我们引入了一种新颖的棋盘采样策略,将在第III-A2节中全面解释。
    为了确定键体素,我们不是像以前的方法[6]那样一次在一个单一的大窗口内采样,这可能会引入对局部或远距离体素的偏见,我们建议在多个不同大小的键窗口 中搜索每个中心cj的邻居。对于大小为 的键窗口,我们收集窗口内最多 个非空体素,表示为 , ,其中 是预定的数字。为了减少计算成本并确保平衡采样,我们采用最远点采样(FPS)算法从Vcj,rm中均匀采样Nk个体素,得到最终的不同尺度的键体素 , ,m = 1, ..., M。这里, 表示设定的采样体素的最大数量。通过采用这种多窗口策略和通过FPS进行均匀采样,我们在不同尺度上实现了键体素的平衡采样,这对于捕获多尺度信息至关重要。
  2. 棋盘采样:对于键的采样,没有必要保留所有键体素。相反,我们可以选择选择代表性体素以最小化计算冗余。然而,这种方法不能扩展到查询。在注意力层之后,保留并更新每个查询体素变得至关重要,以避免潜在的重要信息丢失。然而,由于更大的窗口大小会带来显著增加的计算成本和内存需求,使得它们的实现变得不切实际,因此减少查询的数量是必要的。
    鉴于非空体素的位置在整个多个注意力块中保持不变,我们提出了一种解决方案,即只对查询体素的一个子集进行采样,用于特征更新目的。然后这个子集被用来更新未采样的查询体素。我们在图3中描述了这个解决方案,并称之为棋盘采样(CBS)策略。
    在棋盘采样策略中,查询窗口中的每个体素都被分配一个符号:“×”,“⃝”,“△”或“□”。这些符号以均匀分布的模式分布。在每个MsSVT块中,我们只从带有特定符号的非空体素中采样查询,并通过注意力学习更新它们的特征。随后,通过识别K个最近的查询体素(默认值为K = 3)并线性插值它们的更新特征来更新未采样的非空体素的特征。四个符号以循环模式用于在堆叠块中采样查询体素。这种方法使我们能够保留原始结构并尽可能全面地涵盖所有体素。此外,我们可以在任何x、y、z轴上应用间隔采样,以实现1/2、1/4或1/8的采样率。通常,这种技术在水平的x-y平面上实现,如图3所示。
在这里插入图片描述
  1. 尺度感知头部注意力:给定查询体素 ,其中体素坐标 和特征向量 ,以及多尺度键体素,体素坐标 和特征向量 ,我们计算查询 ,键和值 如下:
    其中WQ ∈ RC×C和WK_m, WV_m ∈ RC×C/M表示线性投影。
    为了便于尺度感知注意力学习,我们将多个注意力头分成M个不同的组,并将不同大小窗口的键分配给不同的头组。同样,我们将查询Q的特征通道分成M组。具体来说,第m个通道组的Q表示为Qm = Q[:, :, (m − 1) × C/M : m × C/M],m = 1, ..., M,并输入到相应的第m个头组。这种方法使每个头组能够专注于学习特定尺度的注意力模式。第m个头组的注意力特征表示为:
    这里,MHA(·)表示多头注意力操作,RPE(·)表示新提出的相对位置编码,将在第III-A4节中详细说明。每个窗口大小对应一个头组,该组有一个或多个注意力头。
    所有头组的输出,表示为{ }Mm=1,被连接形成 。随后,使用多层感知器(MLP)实现的前馈网络(FFN)被用来处理 并获取最终的多尺度特征Y。这个过程可以描述如下:
    这里,LN(·)表示层归一化。
  2. 尺度感知相对位置编码:相对位置编码在基于变换器的网络中起着至关重要的作用,因为加深网络可能会导致高级特征中的细粒度位置信息的退化。为了解决这一挑战并增强多尺度特征学习,我们采用了尺度感知自适应相对位置编码策略,该策略受到先前研究[58],[59],[60]的启发。该策略根据所涉及的不同头组和尺度动态生成位置偏差。
    具体来说,我们为第m个头组引入了一个可学习的嵌入表Tm ∈ RC/M×R,由最大键窗口的大小[10]决定。这里,R表示可能的相对位置对的数量。查询的相对位置偏差计算如下:
    这里,Im ∈ ZNq×Nk表示对应于查询和键之间的实际相对位置的表索引,而G(·)表示根据索引收集特征的操作。类似地,我们获得键的相对位置偏差,表示为BKm ∈ RNq×Nk。随后,这些偏差直接并入注意力权重,修改原始的注意力方程(2)如下:
    其中σ(·)表示softmax函数。因此,这种方法允许根据不同尺度适应性地调整位置嵌入,从而提高尺度感知头部注意力的有效性。

B. 稀疏实现

为了在3D体素空间内直接运行体素变换器会导致显著的内存和计算开销,这使得它在实际应用中变得不切实际。为了利用点云的固有稀疏性并提高计算效率,我们采用了稀疏实现方法,用于涉及窗口中心搜索、窗口聚集以及体素采样和聚集的各种操作。这些操作使用CUDA操作实现,并主要依赖于哈希映射。以下将详细解释如何针对稀疏体素实现基于窗口的注意力。
  1. 哈希表建立:首先,我们构建一个哈希表以便于基于输入的稀疏体素集 进行高效的体素搜索。在此哈希表中,键由展平的体素坐标 表示,而值则存储体素特征。这里, 分别表示批次索引和体素坐标, 表示体素空间的最大范围。哈希函数采用模数策略,并使用线性探测法在哈希冲突时定位空地址。这种方法使我们能够仅保留非空体素,并建立体素坐标与其对应特征之间的联系。通过提供体素坐标,我们可以高效地确定其是否为空,并检索非空位置的关联特征数据。值得注意的是,CUDA的并行处理能力使哈希表能够被并行处理,从而进一步加速体素搜索过程。
  2. 稀疏窗口划分:在第III-A1节中,输入体素集被划分为基于指定窗口大小 的非重叠3D窗口。随后,我们识别非空窗口作为查询窗口,并使用以下公式确定它们对应的窗口中心
    这里, 表示第 个查询窗口中心体素的xyz坐标。值得注意的是,我们进一步采取措施消除任何重复中心,从而得到一个唯一的中心集。这个过程有助于减少计算成本。
  3. 体素采样与聚集:确定了窗口中心后,我们下一步是搜索这些中心周围在查询或键窗口内的非空体素。通过利用预构建的哈希表,体素搜索过程可以转化为使用哈希函数定位现有哈希键。这使我们能够识别所有非空窗口内非空体素的坐标。随后,我们使用平衡多窗口采样获得最终的采样体素坐标集。最后,我们通过使用采样体素坐标从哈希表中高效地聚集体素特征。这些体素坐标及其对应的特征随后被输入到第III-A3节中描述的注意力机制中。

C. 中心投票模块

表示从MsSVT骨干网络得到的精炼体素集,其中 表示体素的中心, 表示第 个体素的精炼体素特征。中心投票模块的目标是生成一个新的体素集 ,其中对象中心附近最初为空的体素被填充有来自对象不同部分聚合特征的非空体素。整个过程,如图4(b)所示,由四个主要阶段组成:投票生成、投票集重新体素化、多尺度上下文聚合和体素合并。
在这里插入图片描述
投票生成:在 中的每个非空体素被视为种子体素,一个共享的投票模块独立地为每个种子体素生成一个投票点。种子特征 被用作投票模块的输入,该模块采用多层感知器(MLP)网络来学习一个映射函数 ,根据以下公式产生欧几里得空间偏移
由种子体素 生成的投票点表示为 。为了监督预测的偏移 ,采用回归损失定义如下:
这里 表示种子体素是否为前景体素。前景体素是那些落在真实边界框内的体素,通常位于对象的表面。 表示前景体素的总数。 表示从种子位置 到相应对象边界框中心的真实位移。
同时,我们训练模型预测每个体素的对象性得分,给出如下:
其中 是由MLP网络学习的一个映射函数,后接Sigmoid激活。预测的对象性得分 使用Focal Loss进行监督,前景体素的真实对象性得分设置为1,其余体素设置为0。在推理过程中,预测的对象性得分用于区分前景体素和背景体素。
投票集重新体素化:在收集了所有前景种子生成的投票点后,我们获得了一组由 个投票点组成的投票点集 。为了将此集合体素化,我们使用与 相同的体素大小,并初始化每个非空体素的特征,方法是计算落在该体素内所有投票点特征的平均值。因此,我们获得了一个新的体素集 。集合 中的非空体素通常集中在对象的中心。
多尺度上下文聚合:这一阶段的目标是通过多尺度注意力机制,将来自不同尺度的上下文信息整合到集合 的体素特征中,这包括来自对象不同部分的线索以及更远范围的上下文。为此,我们首先将 划分为非重叠的查询窗口。对于每个查询窗口,我们从 中收集多个不同大小的键窗口。查询窗口内的非空体素作为查询而不使用棋盘采样,而相应的多个键窗口使用平衡多窗口采样策略提供键。随后执行多尺度注意力,如MsSVT块中实现的那样。这导致更新后的体素集 ,其中每个非空体素的特征都通过多尺度上下文进行了增强。
值得注意的是,集合 中的非空体素(查询)主要集中在对象中心附近,通常数量较少。这一特点确保了上下文聚合步骤在计算上仍然非常高效。
体素合并:在这一步中,体素集 通过将 中非空体素的特征映射到 中同一位置的相应体素进行合并。通常,集合 中的非空体素集中在对象中心,而 中的体素在这些位置通常为空。通过合并这些体素集, 中对象中心的空体素的特征被填充为来自周围对象的有信息的多尺度上下文特征。所得的体素集记为 ,并像以前一样在后续过程中使用。

D. 探测器建立

我们的MsSVT主干由多个MsSVT块组成,形成了我们的体系结构的基础。根据OpenPCDet[62]中引入的传统3D检测方法,我们的单级检测器建立在MsSVT++的基础上,包括一个体素特征编码(VFE)层、一个MsSVT主干、一个中心投票模块和一个2D区域建议网络(RPN),如图4所示。具体来说,我们用MsSVT替换了第二个[12]的3D主干,并集成了一个中心投票模块,同时保持剩余的网络组件不变。由于MsSVT擅长于捕获不同尺度上的特征,因此不需要进行降采样过程。输入点云被转换为规则体素,并输入到我们的MsSVT主干中,然后是中心投票模块,以提取混合尺度体素特征。然后使用一个额外的MsSVT块垂直压缩这些特性,其中该块中的查询和关键窗口大小被设置为(1,1,∞)。这种设置有效地将3D体素压缩为2D特征图。具体来说,该查询代表了柱状窗口内的平均体素特性。然后将压缩后的特征传递给二维RPN和检测头,以获得检测结果。为了进一步提高我们的单级检测器的检测性能,我们采用了一个由CT3D [38]实现的感兴趣区域(ROI)头。这种集成导致了一种基于MsSVT++的两级检测器的开发。

IV. 实验

在本节中,我们介绍了 MsSVT 的架构细节。随后,我们将我们的模型与最近最先进的检测器在三个不同的数据集上进行了比较,即 Waymo Open [13]、KITTI [14] 和 Argoverse 2 [15]。

A. 架构细节

MsSVT 由四个常规的 MsSVT 模块组成,每个模块的查询窗口大小为 (3, 3, 5),关键窗口大小为 (3, 3, 5) 和 (7, 7, 7)。这些模块后面跟着一个 Center Voting 模块和一个特殊的 MsSVT 模块,其中窗口设置为第 III-D 节中提到的 1 × 1 柱形。我们将 8 个注意力头分为 2 个头组。棋盘采样的采样率为 1/4,采样的关键数 Nk 最大值为 32。我们使用中心头 [63] 生成单阶段边界框。此外,我们还提供了一个使用 CT3D [38] 的两阶段版本。有关实验设置的更多细节,请参考 OpenPCDet [62],因为我们的所有实验都是使用这个工具箱进行的。

B. 在 Waymo 上的结果

设置:我们最初在大规模的 Waymo Open 数据集 [13] 上评估了我们的模型。输入是单帧点云,覆盖了 150 m × 150 m 的检测范围。我们将检测范围设置为水平方向 [-75.2 m, 75.2 m] 和垂直方向 [-2.0 m, 4.0 m]。体素大小设置为 (0.4 m, 0.4 m, 0.6 m)。我们采用了与 [6] 中相同的训练策略,即模型使用 Adam 优化器 [71] 训练 80 个周期,使用 20% 的 Waymo 数据。我们还报告了使用相同的优化器和学习率方案在 100% 的 Waymo 数据上训练 30 个周期所得到的结果。我们使用难度级别 LEVEL 1 和 LEVEL 2 的 3D 平均精度均值 (mAP) 评估指标来评估模型的性能。
主要结果:在表 I 中,我们将我们的模型与先前的工作进行了比较。值得注意的是,我们的模型具有同时检测三个对象类别的能力,这比检测单一类别更具挑战性。即使只使用 20% 的训练数据,我们的单阶段检测器,记作 MsSVT++ (SS),在各个类别上显著优于其他单阶段对手,尽管其中一些是专门为某一特定类别训练的。引人注目的是,MsSVT++ (SS) 在车辆、行人和骑自行车者类别上分别达到了 78.53、80.63 和 75.47 的 mAP 分数,甚至超过了最先进的两阶段 PV-RCNN++ [37] 分别为 0.9、1.2 和 3.0。同样,表 II 展示了,在使用 100% 数据时,我们的方法与对手相比表现出色。MsSVT++ (SS) 在车辆和骑自行车者类别上分别比专门用于小目标检测的基于 Transformer 的检测器 SST [7] 高出 3.8 和 4.5 mAP。这些结果清楚地证明了我们的方法在捕获混合尺度信息方面优于传统 Transformer 设计。

此外,表 I 展示了基于 MsSVT++ 的两阶段检测器的结果,其中在 MsSVT++ (SS) 模型之后整合了第二阶段检测头 CT3D [38]。两阶段检测器,记作 MsSVT++ (CT3D),在所有类别上都取得了优越的性能,并显著超过了以前的最先进 PVRCNN++,在行人和骑自行车者类别上分别提高了 3.0 和 4.0 mAP,即使只用了 20% 的数据。此外,为了评估我们方法的普适性,我们还开发了一个基于 MsSVT++ 使用 LidarRCNN 架构的两阶段检测器。这个两阶段检测器,命名为 MsSVT++ (LidarRCNN),在车辆、行人和骑自行车者类别上分别取得了 5.1、11.1 和 7.0 mAP 的显著改进。这些发现突出了我们的方法在不同架构上的广泛适用性。同样,表 II 说明了当我们使用 100% 的可用数据时,我们的两阶段 MsSVT++ (CT3D) 模型在性能上超过了其他模型。
我们还提供了我们方法与以前方法的运行时间比较。如表 III 所示,我们的 MsSVT++ (SS) 在保持与以前方法相当的推理速度的同时,展示了更高的检测精度。这验证了我们方法在实现显著精度-速度权衡方面的有效性。
在这里插入图片描述
定性结果:我们在图 5 中展示了我们方法的定性结果。值得注意的是,我们的方法即使在超过 50 米的场景中也能精确预测边界框,这些场景的点密度显著较低 (图 5(a))。这一显著的能力突出了 MsSVT 在捕获上下文信息方面的有效性,它通过补偿长距离目标检测场景中缺乏的细粒度细节。此外,我们的模型在具有大量尺度变化的密集对象的复杂场景中展示了令人印象深刻的性能 (图 5(b)),这突出了 MsSVT 的灵活性和鲁棒性。
在这里插入图片描述
然而,当处理遥远、孤立的对象 (图 5(c)) 时,代表目标对象的点表现出明显的稀疏分布,缺乏局部几何信息。此外,由于缺乏接近的对象,缺少长距离上下文信息。在这些特定场景中,我们的方法可能偶尔在检测目标对象时遇到困难。这种限制主要可以归因于点云数据固有的稀疏性。
注意力图的可视化:为了更好地理解我们的 MsSVT 的行为,我们可视化了注意力图,这些图指示了模型关注的内容。如图 6 上半部分所示,较小关键窗口的头组优先考虑本地前景信息,而较大关键窗口的头组更多地关注长距离上下文。因此,这两个头组相互补充,有效地捕获了混合尺度的信息,从而促进了具有不同尺度的对象的检测。
在这里插入图片描述
此外,在图 6 的下半部分,我们展示了我们在具有挑战性情况下预测的边界框及其相应的注意力权重的附加可视化结果。观察到,在图 6(e) 和 (f) 中的大多数对象都以高精度被检测到。值得注意的是,在某些由虚线矩形指示的实例中,边界框内只有有限数量的点(从 1 到 5)。然而,尽管点的表示很稀疏,这些边界框仍然以置信度超过 0.5 被准确预测。
在可视化注意力权重时,我们观察到,在这些具有挑战性的情况下,边界框内有限数量的点表现出对邻近对象的高度关注,以收集补充上下文信息,以补偿框内的稀疏点。这一观察强调了 MsSVT 捕获更广泛上下文信息的能力,即使在缺乏复杂细节的情况下,也能使盒子的位置和大小准确推断。这一现象的代表性示例可以在图 6(e) 和 (f) 的下半部分观察到:在相邻车辆的行中,即使一辆车几乎没有被点覆盖,其边界框仍然可以通过利用对场景语义学的理解以及分析周围车辆的空间分布和尺寸来精确预测。
投票体素的可视化:为了更全面地理解我们提出的 Center Voting 模块的功能,我们展示了在对象中心填充过程中获得的中间结果的可视化。如图 7 上半部分所示,对象的前景体素有效地生成了投票点,这些点在对象中心周围呈现出紧凑的聚集模式。因此,这一过程有效地用新体素填充了对象中心的先前空缺体素空间,这些新体素已经从对象的不同区域整合了信息。
在这里插入图片描述
在图 7 的下半部分,我们展示了预测结果,特别是 (e) 使用和 (f) 不使用对象中心投票模块的情况。包含此模块显著提高了边界框定位的准确性,特别是对于大型对象。例如,考虑放大图的顶部中间部分的长途巴士。如果不使用对象中心投票模块,预测的边界框将显著偏离真实情况。这种差异是由于包含关键结构信息的 LiDAR 点主要集中于巴士的尾部,远离其中心。因此,检测头被迫对更大的边界框偏移值做出更激进的预测,这无疑是一个更复杂的挑战。
相反,包含对象中心投票模块有助于将来自对象不同区域的信息整合到新生成的体素上,这些体素包围了对象中心。这种信息的整合简化了基于这些增强体素的预测过程,从而产生一个全面包含整个对象并更接近真实情况的边界框。

C. 在 KITTI 上的结果

设置:我们的模型还在 KITTI 基准 [14] 上进行了评估。为了准备输入点云,我们应用了一个过滤过程,以保留落在以下范围内的点:x 轴 [0 m, 70.4 m],y 轴 [-40.0 m, 40.0 m],以及 z 轴 [-3.0 m, 1.0 m]。体素大小设置为 (0.32 m, 0.32 m, 0.4 m),所有其他设置保持不变,就像在 Waymo 数据集上进行的实验一样。模型使用 Adam 优化器训练 100 个周期,学习率为 0.003,并进行周期性衰减 [12]。使用的评估指标是三个难度等级的 3D 平均精度均值 (mAP):简单、中等和困难。
主要结果:表 IV 显示我们的模型在 KITTI 验证集的所有三个类别上都取得了有竞争力的性能。我们的单阶段 MsSVT++ (SS) 在汽车类别上比 VoTr [6] 高出 1.0 mAP,并且在行人和骑自行车者类别上超过了一些领先的两阶段检测器。此外,我们的两阶段 MsSVT++ (CT3D) 在汽车和骑自行车者类别上实现了最高性能,mAP 分别为 84.93 和 73.98,从而进一步扩大了我们的领先优势。我们在 KITTI 测试集上的方法性能显示出类似的趋势。我们的单阶段 MsSVT++ (SS) 在汽车类别上超过了优越的两阶段 PV-RCNN++,而我们的两阶段 MsSVT++ (CT3D) 超过了当前的 VoTr-TS,mAP 领先幅度为 0.8。
在这里插入图片描述

D. 在 Argoverse 2 上的结果

设置:Argoverse 2 [15] 是最近发布的一项大规模数据集,包含 1000 个传感器注释序列。该数据集包含来自 30 个不同类别的对象,并呈现出长尾分布的挑战。对于我们的模型实现,我们采用单帧点云作为输入,并将其裁剪至 200 m × 200 m 的大小。模型使用 AdamW 优化器训练 30 个周期,学习率为 0.001,配置与 [74] 中描述的相同。除了平均精度 (AP),AV2 还采用综合得分作为评估指标,它考虑了平均精度 (AP) 和定位误差。
主要结果:在表 V 中,我们在 [74] 中提出的方法中评估了我们的模型。按照这项工作,我们由于实例数量有限,排除了狗、轮椅和信息板拖车类别的结果。在所有类别中,我们的 MsSVT++ (SS) 达到了与其他现有检测器相当或更优越的性能。值得注意的是,我们的 MsSVT++ (SS) 在检测小物体方面显著优于最新的 FSD,在标志类别上分别提高了 2.4 和 2.0 的精度和综合得分。此外,我们的 MsSVT++ (SS) 在检测极大物体方面也表现优于 FSD,例如在校园巴士和 V-拖车类别上,分别提高了 3.2 和 2.6 的精度和综合得分。这些结果明确证明了我们的方法在识别和准确定位各种尺度的对象方面的优越性。
在这里插入图片描述

E. 消融研究

我们进行了彻底的消融研究,以验证我们的设计选择和参数设置。所有消融模型都使用 Waymo 数据集的 20% 训练了 12 个周期。我们在 Tesla-V100 GPU 上测量延迟,使用 Unbuntu-16.04、Python 3.7、Cuda-10.2 和 Pytorch-1.8。

1) 关键组件的影响:

我们评估了关键组件的有效性,即平衡多窗口采样策略、尺度感知头部注意力机制、尺度感知相对位置编码和中心投票模块。我们逐步以增加复杂性的顺序整合了这些组件,如表 VI 所示。
在这里插入图片描述
平衡多窗口采样:我们首先验证了我们提出的平衡多窗口采样策略的有效性。第一行中列出的基础模型采用了标准基于窗口的 3D 版本注意力 [10],窗口大小为 (3, 3, 5),没有移位窗口方案。它采用了扩张关键采样 [6],并收集了窗口内所有非空体素作为查询。为了评估我们提出的平衡多窗口采样的影响,我们在模型变体中用这种方法替换了扩张关键采样。第二行的结果表明,从不同大小的多个窗口中采样关键体素可以获得显著的性能提升,行人从 71.66 提高到 73.44,骑自行车者从 63.31 提高到 66.88。
尺度感知头部注意力:接下来,我们验证了我们提出的尺度感知头部注意力机制的有效性。通过比较表 VI 中第二行和第三行的结果,可以明显看出,使多个头部组能够捕获不同尺度的信息显著提高了性能,从 73.44 提高到 75.08。
尺度感知相对位置编码:第三行和第四行的结果表明,与使用尺度不可知的位置编码的模型变体相比,整合尺度感知相对位置编码进一步提高了性能。这些结果强烈支持我们的设计动机,表明位置编码应随不同尺度而变化。
中心投票模块:表 VI 最后三行的结果表明,将投票体素(被平均点特征占据)纳入对象中心可以提高所有类别的 AP。此外,将这些投票体素与混合尺度上下文特征结合,可以获得进一步的性能提升。总体而言,车辆和骑自行车者类别的 AP 分别显著增加了 1.49 和 1.28。对于小尺度对象,如行人,改进相对较小,为 0.48,主要是由于对象中心的空体素数量减少。这一观察表明,中心投票模块增强了我们模型的预测能力,特别是对于大型对象。
为了增强混合尺度上下文特征增强的可信度,我们对有无这些特征的物体检测结果进行了比较分析。如图 8 所示,使用混合尺度上下文特征得到的预测边界框与真实边界框非常接近。这一观察强调了混合尺度上下文特征在提高物体定位精度中的重要作用。这种增强来自于同时整合来自对象不同部分的线索和整合更长距离的上下文信息。
在这里插入图片描述

2) 混合尺度窗口设置的影响:

在这一部分中,我们检查了关键窗口的不同配置的影响。这些配置包括分配给关键窗口的尺度数量、不同尺度关键窗口的头部组分配以及关键窗口的大小。查询窗口的大小始终设置为 [3, 3, 5]。为了专注于评估混合尺度稀疏体素变换器的有效性,下面的消融研究排除了中心投票模块。
关键窗口的尺度数量:我们实现了两组具有不同尺度的关键窗口,分别为 [3, 3, 5] 和 [7, 7, 7]。我们的主要目标是评估混合尺度配置对关键窗口尺度数量的影响,同时保持总共 8 个注意力头。最初,我们采用了单一尺度的关键窗口,即 [3, 3, 5] 或 [7, 7, 7]。第一和第二行的结果表明,使用单一尺度的关键窗口由于无法充分模拟多尺度信息,导致准确度较低。
在这里插入图片描述
相反,我们引入了额外的窗口尺寸 [5, 5, 7] 和 [9, 9, 7] 以纳入更多尺度。然而,中间三行的结果显示,引入更多尺度并没有提高准确度,反而增加了运行时间延迟。这可以通过我们的尺度感知头部注意力机制来解释,该机制将注意力头(特征通道)分配给不同尺度的窗口,允许每组头部处理特定尺度。如果关键窗口尺度过于分散,可能会减少每个头部组用于特定尺度的特征通道数量,从而可能降低特定尺度的特征表示能力。此外,结果表明,引入并分配更多注意力头到过大的窗口,如 [9, 9, 7],会影响小物体的准确性。骑自行车者类别的准确度从 67.01 下降到 66.53。
关键窗口的大小:通过将关键窗口的尺度数量固定为 2,我们进一步研究了每个尺度的窗口大小的影响,如图 VIII 所示。我们的发现一致表明,随着窗口大小的增加,性能会下降。我们认为这种下降是由于大窗口内关键体素的稀疏性导致细粒度信息的丢失。解决这个问题的一个潜在方法是增加采样的关键体素数量。然而,这种方法带来了显著的计算成本,可能不实用。因此,我们决定在实验中将两个尺度的窗口大小分别设置为 [3, 3, 5] 和 [7, 7, 7]。
在这里插入图片描述
注意力头的分配:根据两种不同量表的关键窗口的配置,我们研究了为每个量表分配不同数量的注意头的影响。表七的最后三行显示的结果表明,我们的模型的性能不受不同数量的注意力头分配的显著影响。

3) 体素采样设置的影响。获取查询和关键点的采样策略:

我们使用棋盘采样 (CBS) 和 FPS 在查询和关键窗口中采样体素。为了研究替代采样策略,进行了额外的实验,结果呈现在表 IX 中。与 CBS (查询) + FPS (关键) 方法相比,对查询和关键点都使用 FPS 会导致延迟增加和在车辆和行人类别上的轻微性能下降。相反,仅使用 CBS 会加快处理速度,但准确性会降低。CBS (查询) + FPS (关键) 的组合在保持准确性的同时平衡了延迟,利用了每种采样方法的优势。CBS 大大减少了查询采样相关的计算成本,同时减轻了由于不确定体素更新引起的信息丢失。与此同时,FPS 更好地保留了几何结构。因此,这种方法在准确性和速度之间实现了有利的权衡。
在这里插入图片描述
棋盘采样的采样率:我们旨在研究使用不同棋盘采样率的影响。如表 X 所示,我们的模型在各种采样率下表现出鲁棒性。值得注意的是,当不应用采样时,实现了最高的准确性。然而,这是以大量的内存占用和较慢的速度为代价的。相比之下,采用 1/4 的棋盘采样率只会导致与未采样模型变体相比的轻微性能下降。此外,这种方法通过减少内存占用(高达 33%)和延迟(高达 28%)显著提高了计算效率。
在这里插入图片描述

4) MsSVT 模块数量的影响:

所提出的骨干网络MsSVT由多个MsSVT块组成。改变块数对模型性能的影响如表XI所示。总的来说,当块的数量被改变时,我们的模型显示出了鲁棒性。增加街区的数量可以提高车辆的精度,而行人和自行车手的精度最初上升,但随后下降。值得注意的是,增加块的数量会产生更大的接受域,这有利于提取更高级的语义信息。这被证明对车辆等较大的物体尤其有利。为了在性能和效率考虑之间取得平衡,我们选择了4个块作为MsSVT网络的默认配置。
在这里插入图片描述

5) 扩展到多帧输入:

MsSVT++同时采用普通体素进行输入和输出,无缝地支持多帧点云输入。我们扩展我们的MsSVT++(SS),使用SST方法[7]来容纳多个帧(3帧)。为了评估我们的扩展模型的有效性,我们将其与使用多帧点云作为输入的几种基线方法进行了比较,包括尖柱-3F[26]、RSN-3F [64]和SST-3F [7]。与比较方法一致,我们在100%的Waymo数据集上进行了训练,并在验证分割上呈现了LEVEL_1 AP。
如表XII所示,我们的模型从单帧输入扩展到多帧输入的过程已经导致了所有类别的性能的显著提高。具体来说,我们在车辆、行人和自行车类别中的研究结果分别达到了79.83%、82.26%和77.28%的准确率。这种显著的性能超过了尖柱-3F和RSN- 3F,并与SST-3F相媲美。这些结果强调了我们所提出的方法的可扩展性。
在这里插入图片描述

V. 结论

本文针对大规模户外场景中基于点云的3D目标检测的关键任务提出了一种新颖的方法,即MsSVT++。MsSVT++利用多尺度稀疏体素变换器的能力,有效地捕获了长距离上下文和细粒度细节。通过将变换器头显式地划分为不同的组,这些组负责处理从特定大小窗口中采样的体素,我们的分而治之方法成功地解决了整合不同尺度信息的挑战。结合棋盘采样策略,利用稀疏性和哈希映射技术,显著降低了在3D体素空间应用变换器的计算复杂性。此外,引入的中心投票模块利用多尺度上下文信息填充位于物体中心的空体素,从而大大改善了物体定位,特别是对于较大的物体。广泛的实验评估验证了MsSVT++在检测各种尺度和粒度的物体方面的卓越性能。
限制:MsSVT++已经展现出利用多个局部窗口有效捕获多尺度信息的能力,表现出有希望的性能。然而,一个显著的局限性是窗口大小的手动预设。在未来的工作中,我们打算探索MsSVT++的自适应窗口变体来解决这个问题。
此外,我们的MsSVT++在处理广阔点云场景中的远程孤立物体时偶尔遇到挑战。这种局限性主要归因于点云数据的固有稀疏性。一个可行的解决方案是将补充数据模态,如图像,整合到MsSVT++中,从而提供额外的线索以增强目标检测。我们也认为上述提议是未来研究的一个有希望的途径。

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。
   
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 11
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报