搜索
您的当前位置:首页正文

【CVPR2024】PTT: Point-Trajectory Transformer for Efficient Temporal 3D Object Detection

来源:尚车旅游网

最近基于时间 LiDAR 的 3D 物体检测器基于两阶段基于提议的方法实现了良好的性能。它们从第一阶段密集检测器生成 3D 框候选,然后采用不同的时间聚合方法。然而,这些方法需要每帧物体或整个点云,这带来了与内存库利用率相关的挑战。此外,点云和轨迹特征仅基于连接进行组合,这可能会忽略它们之间的有效交互。在本文中,我们提出了一种具有长短期记忆的点轨迹变换器,用于有效的时间 3D 物体检测。为此,我们仅使用当前帧物体的点云及其历史轨迹作为输入,以最小化内存库存储要求。此外,我们引入了模块来编码轨迹特征,重点关注长短期和未来感知视角,然后有效地将它们与点云特征聚合。我们在大规模 Waymo 数据集上进行了广泛的实验,以证明我们的方法与最先进的方法相比表现良好。代码和模型将在https://github.com/kuanchihhuang/PTT上公开发布。

1. Introduction

检测 3D 物体 [6–9, 14, 22] 是自动驾驶的关键问题,它使车辆能够准确感知和解释周围环境。随着 LiDAR 传感器的出现,在提高 3D 物体检测的精度方面取得了重大进展。然而,LiDAR 传感器捕获的点云数据固有的稀疏性带来了重大挑战。稀疏数据使准确识别和定位物体变得复杂,特别是在具有挑战性的遮挡场景中。

最近的研究 [1, 5, 32, 37] 已将重点转向利用多帧 LiDAR 数据作为输入来增强检测性能。这种方法利用了车辆在现实世界场景中移动时随时间捕获的点云序列。与单帧信息相比,这些序列提供了更全面、更密集的周围环境表示。

处理序列数据的一种直接方法是将所有多帧 LiDAR 连接起来作为输入 [32, 37],然后是原始的 3D 检测管道,这通过更密集的信息提供了性能优势。为了更好地对物体的信息而不是整个点云进行建模,最近的方法 [1, 5] 通常采用两阶段方法。在第一阶段,它们使用区域提议网络生成边界框候选并选择物体的点云。随后,这些方法将点特征与提议特征连接起来进行 3D 物体检测,如图 1(a) 所示。

然而,这些基于提议的技术有两个主要限制。首先,在序列建模中对每帧的物体点云进行采样会在训练和测试阶段对长序列造成内存负担。其次,这些方法专注于点云序列的网络设计,这往往忽略了点和提议特征之间相互作用的重要性。在本文中,我们提出了 PTT,一种用于高效时间 3D 物体检测的 PointTrajectory Transformer,以应对这两个挑战(见图 1(b))。

我们强调多帧提议轨迹的重要性。我们只输入当前帧物体点云,而不是存储所有先前 LiDAR 的采样点云。我们使用 PTT 来模拟单帧点云和多帧提议之间的关系,从而以减少内存开销的方式高效利用丰富的多帧 LiDAR 数据。我们的动机是认识到先前的提议本质上可以在不使用整个物体点云的情况下近似物体的信息。因此,我们可以有效地利用历史信息而不需要更多的内存。虽然以前的方法需要一个大的内存库来存储点云序列,但我们的管道可以在有限的内存使用量下处理来自更多帧的简洁信息。这使 PTT 能够在更长的时间内捕获物体轨迹(例如,我们的是 64 帧,而 MSF [5] 是 8 帧)。

此外,与以前将提议轨迹与点云特征连接起来的方法不同,我们引入了具有长短期记忆的点轨迹变换器来模拟单帧点云和多帧提议之间的关系。在这种方法中,我们将从多个帧获得的信息划分为长期和短期编码,以增强对时间信息的表示。此外,我们推断提议的未来可能轨迹以生成未来感知的点特征。最后,我们设计了一个聚合器来促进点和轨迹特征之间的交互。

我们在 Waymo Open 数据集 [25] 上进行了广泛的实验,以展示所提出的 PTT 的效率和有效性。例如,我们的方法可以使用更长的帧和更低的内存要求来实现与最先进方案相比的良好性能。此外,我们提出了详细的消融研究和分析,以证明所提出的组件在 PTT 中的有用性。这项工作的主要贡献是:
• 我们提出了一个时间 3D 对象检测框架,它仅有效地考虑当前帧中的点云以及更长的历史提议轨迹。
• 我们引入了一种具有长短期记忆和未来编码的点轨迹变换器,可以有效地从单帧点云和多帧轨迹中提取特征,从而无需存储多帧点云。
• 我们通过分析展示全面的结果,以证明我们方法的有效性,允许以更低的成本获得更长的时间信息,同时仍能取得优于其他方法的结果。

3. Proposed Approach

3.1. Framework Overview

在本文中,我们提出了一种点轨迹变换器 (PTT),用于高效的时间 3D 物体检测。整体框架如图 2 所示。我们使用区域提议网络 (RPN) 为每一帧生成提议,根据提议采样相应的兴趣点,并建立过去 T 帧的 3D 提议之间的联系以构建框轨迹。为了减轻存储库的开销,我们的方法仅存储单帧点云和多帧提议(参见第 3.2 节中的进一步分析)。

我们首先通过采样当前帧的点云和多帧轨迹(第 3.3 节)对两种类型的特征进行编码,即点到提议和提议到提议特征。然后,我们提出了点轨迹变换器来融合序列特征,主要由以下模块组成:1)长期和短期记忆模块旨在编码两种不同类型的序列特征。 2) 使用未来编码器来预测物体的未来轨迹,从而促进未来感知特征的编码。3) 我们引入点轨迹聚合器来将物体的当前帧点特征与其轨迹特征相结合(第 3.4 节)。

3.2. Analysis of Memory Bank’s Size

最近最先进的时间 3D 物体检测器通常采用两阶段方法 [1, 5]。在初始阶段,它们使用区域提议网络生成 3D 框候选,然后根据这些框采样点以整合跨时间帧的信息。然而,这些方法需要根据帧的长度存储大量原始点云数据 [5] 或已识别物体的点云 [1]。这会导致潜在的内存问题,尤其是在有大量帧的情况下。

我们在表 1 中比较了我们的方法与 MPPNet [1] 和 MSF [5] 的内存库空间复杂度。假设每个对象需要 O(N) 来存储其点云,并且 O(O) 来存储每帧中的提议,其中场景中的平均对象数为 k。这里,O(F) 表示每帧点云输入的平均空间复杂度。对于区域提议网络,我们使用 CenterPoint [33],输入 4 帧累积点云。这意味着所有方法都需要 O(4F) 空间复杂度来处理输入。

对于物体的点云,具有 16 帧(默认设置)的 MPPNet [1] 需要存储每个物体的每帧代理点 N′ = N/2,因此内存复杂度为 O(16kN′) = O(8kN),这将根据帧数增加复杂度。对于具有 8 帧输入的 MSF [5],处理点云的内存复杂度为 O(8F),因为它们需要保留整个连续点云以将提案传播到所有先前的帧中以找到先前的边界框候选。相反,我们的方法仅对当前帧物体点云进行采样,这只需要 O(kN) 空间复杂度,而不与帧数成比例,使我们能够利用更长的帧(例如 64)。

对于提案的复杂度,MPPNet、MSF 和我们的 PTT 分别为 O(16kO)、O(kO) 和 O(64kO),其中 MSF 的复杂度与帧数不成比例。虽然由于使用 64 帧,提议部分的空间复杂度更高,但与点云相比,提议的存储库大小要小得多。例如,每个对象存储一个 128 点 × 4 维的点云,包括 3D 位置和强度。相比之下,每个对象的提议只需要 9 个维度,包括 3D 中心点、3D 大小、航向和 2D BEV 速度。

假设有 k = 200 个对象,点云中的平均点数为每帧 160,000,我们可以计算出 O(F) 和 O(kN) 分别比 O(kO) 大约大 355 倍和 55 倍。然后我们可以得出我们的方法的存储库大小是最低的,这表明我们的方法有效地最小化了存储库的存储需求,同时最大化了利用的帧数。

3.3. Point-Trajectory Feature Generation

与先前的工作 [1,5] 保留每帧对象或整个点云不同,我们主张使用单帧点和多帧提议,这是一种更节省存储的解决方案,如第 3.2 节所述。我们遵循 MPPNet [1],根据所有提议的估计速度推断边界框的先前位置,以链接跨帧框。之后,我们建议对两种特征进行编码:点到提议和提议到提议特征。

Point-to-Proposal Features.点到提议特征。考虑当前帧的兴趣点 和特定对象的最新 T 帧框轨迹 {B1, …,BT},我们的目标是根据历史提议对点特征进行编码。我们首先根据边界框 b t b^t bt(即中心和八个角)的点与点之间的偏移量生成点到提议特征[19]:

Proposal-to-Proposal 特征。通过考虑前 T 帧中的提议,我们可以对提议相对于当前帧的相对位置进行编码,从而增强模型更有效地捕捉运动模式的能力。Proposal-to-Proposal 特征可以定义为:

Sequential Point-Trajectory Features. 连续点轨迹特征。从 (1) 和 (2) 中导出 Point-to-Proposal 和 Proposal-to-Proposal 特征后,我们可以将它们组合成集成特征。具体来说,我们使用 MaxPool 操作压缩每帧 Point-to-Proposal 特征,并将它们与相应的 Proposal-to-Proposal 特征连接起来以获取每帧点轨迹特征:

3.4. Point-Trajectory Transformer

获取顺序点轨迹特征后,我们的目标是设计一个具有长短期记忆的点轨迹变换器来编码这些特征。我们的变换器包含四个模块:长期记忆、短期记忆、未来感知编码器和点轨迹聚合器模块。

Long-Term Memory 长期记忆。与之前可能仅限于处理短序列的方法相反,我们的内存高效解决方案可以管理更长的序列。我们将特征序列划分为长期记忆和短期记忆,以有效捕获不同时期的顺序信息。

考虑到总帧长度 T,我们将连续点轨迹特征 {Pt} 分离到短记忆中,即$Ms = {PT, …, P^{T−ms+1}} ,短帧数为 m s 。 ,短帧数为 ms。 ,短帧数为msM_l = {P^{ml} , …, P}$,长帧数为 ml,其中 ml +ms = T。

对于长期记忆 M l ∈ R m l × C M_l ∈ R^{ml×C} MlRml×C,我们利用多头自注意力编码器层对长期特征进行编码:

其中 W∗ 表示长期记忆的可学习参数。我们利用一个线性层,然后是 ReLU 激活来构建我们的前馈网络 FFN(有关自注意力层 MultiHead 的详细信息,请参阅 [28])。为此,我们可以获得聚合的长期轨迹特征 Mˆl。

短期记忆。短期特征对于学习当前帧中的 3D 边界框至关重要,因为它们可以捕捉接近当前帧的动态状态。我们使用短期记忆 Ms 作为查询,从聚合的长期记忆 Mˆl 中提取历史序列中有价值的趋势。我们利用变换器模块来模拟短期记忆和长期记忆之间的关系:

其中 Mˆs 表示交互式短期记忆特征。然后,我们连接一个 FC 层来学习当前帧的提议与相应的地面真实边界框之间的残差偏移。这确保了学习到的短期特征可以表示短暂的历史运动线索。

Future-Aware Activation 未来感知激活。受到动作识别领域 [29] 中对未来动作的预测的启发,我们观察到未来信息对于当前帧中的 3D 估计也很重要,因为它可以改进特征学习。考虑一个 3D 提议框,其具有 (x, y, z, w, l, h, θ),其估计速度为 (vx, vy),在第 T 帧,我们可以推断出该框在未来时间差 ∆t 时的状态为 BT+∆t = (x +∆t · vx, y +∆t · vy, z, w, l, h, θ +∆t · vθ),其中 vθ 可以通过前几帧内的差异计算得出:vθ = (θT − θ1)/T。

接下来,我们可以利用 (3) 基于推断的未来框 {BT+t} =mf t=1 得出 mf 个未来帧的未来感知特征 Mf = {PT+mf , …, PT+1}。然后,我们将长期记忆 Mˆl 和短期记忆 Mˆs 连接起来,生成整个记忆特征 M =[ ˆMl, ˆMs],其中 [·, ·] 表示沿时间维度的特征连接操作。之后,由于推断的未来框可能不准确,我们将可学习查询 qf ∈ Rmf×C 连接到通道维度上的未来特征,然后进行卷积操作:M′f = Conv(Concat(qf,Mf)),促进额外的学习以进行潜在的纠正。然后将连接的特征 M′f 馈送到多头自注意编码器层:

其中 Mˆ′f 是未来感知特征。与短期记忆编码器类似,我们将特征连接到一个 FC 层,该层学习残差偏移,帮助模型捕获有意义的表示。

Point-Trajectory Aggregator 点轨迹聚合器。在获得基于长期、短期和未来编码的增强顺序点轨迹特征后,我们将它们与当前帧的点特征集成到所提出的点轨迹聚合器中,如图 3 所示。

对于当前帧的点云特征 GT ∈ RN×C,我们首先采用自注意编码块,然后进行最大池化操作以获得压缩点特征 GˆT ∈ RC。随后,使用三个不同的交叉注意模块与轨迹记忆进行交互:长期、短期和未来感知记忆,以点特征作为查询来生成三个不同的查询记忆:Mˆlp、Mˆsp 和 Mˆfp,其中 M∗p 分别表示长期、短期和未来编码的点交互特征。

之后,我们将这三个特征连接起来并应用卷积层,然后对点特征求和以获得最终的综合点特征:

其中 Gˆ′T 是当前帧的增强点特征。此外,我们应用 Max Pooling 操作来获得最终的轨迹特征 MTraj = MaxPool([ ˆMl, ˆMs, ˆM′f]) 并将其与增强点特征 ˆG ′T 连接起来,以进行接下来的 3D 框学习。

损失函数。最后,将学习到的特征发送到检测头进行 3D 框估计。总体检测损失 Ldet 包括置信度预测损失 Lconf 和框回归损失 Lreg,公式为:

L d e t = L c o n f + α L r e g , ( 8 ) \mathcal {L}_{\mathrm {det}}=\mathcal {L}_{\mathrm {conf}}+\alpha \mathcal {L}_{\mathrm {reg}}, (8) Ldet=Lconf+αLreg,(8)

其中 α 表示平衡两个损失的权重。我们的置信度预测损失 Lconf 和框回归损失 Lreg 分别使用二元交叉熵损失和框回归损失实现,类似于 CT3D [19] 中使用的损失。

5. 结论

在本文中,我们提出了一种点轨迹变换器 (PTT),用于高效的时间 3D 物体检测。我们发现 1) 利用多帧点云会导致内存开销,2) 考虑多帧提议轨迹可以高效且有效,而这两个观察结果在先前的工作中并未得到广泛研究。为此,我们的 PTT 有效地建立了单帧点云和多帧提议之间的联系,从而有助于利用丰富的 LiDAR 数据并减少内存开销。通过利用更少的点来学习有效的表示,我们的方法可以处理来自更多帧的信息而不会遇到内存问题。同时,我们提出了长期、短期和未来感知编码器,以增强对时间信息的特征学习,并能够通过未来轨迹生成未来感知特征,然后使用提出的点轨迹聚合器有效地集成点云和提议。我们的方法在具有挑战性的 Waymo Open Dataset 上表现优于最先进的方法,使用更多的帧但更小的内存开销和更快的运行时间,展示了所提出方法的有效性。

因篇幅问题不能全部显示,请点此查看更多更全内容

热门图文

Top