论文地址:Exploring Object-Centric Temporal Modeling for Efficient Multi-View 3D Object Detection
源代码:StreamPETR

摘要
本文提出了一种用于多视角三维目标检测的长序列建模框架,名为StreamPETR。该框架基于PETR系列中的稀疏查询设计,系统地开发了一种以目标为中心的时序机制。该模型以在线方式运行,通过目标查询逐帧传播长期历史信息。此外,我们引入了一种运动感知的层归一化方法,用于建模目标的运动。与单帧baseline相比,StreamPETR仅引入了微不足道的计算成本,却实现了显著的性能提升。在标准的nuScenes基准测试中,StreamPETR是首个在线多视角方法,其性能(67.6%的NDS和65.3%的AMOTA)与lidar-based的方法相当。其轻量级版本实现了45.0%的mAP和31.7 FPS,比当前最先进的方法(SOLOFusion)高出2.3%的mAP,并且速度提升了1.8倍。
1. 引言
仅依赖摄像头的3D目标检测对于自动驾驶至关重要,因为其部署成本低且能够方便地检测道路元素。近年来,多视角目标检测通过利用时序信息取得了显著进展 [27, 16, 31, 25, 39, 29]。历史特征有助于检测被遮挡的目标,并显著提升性能。根据时序表示的不同,现有方法大致可以分为基于鸟瞰图(BEV)的时序方法和基于透视图的时序方法。
基于BEV的时序方法 [27, 16, 25, 39] 显式地将历史帧的BEV特征对齐到当前帧,如图1(a)所示,其中BEV特征作为时序建模的有效中间表示。然而,高度结构化的BEV特征限制了对移动目标的建模。这种范式需要较大的感受野来缓解这一问题 [16, 39, 27]。
与这些方法不同,基于透视图的时序方法 [31, 29] 主要基于DETR [4, 60]。稀疏查询设计有助于建模移动目标 [29]。然而,稀疏目标查询需要与多帧图像特征进行交互以实现长期时序依赖(见图1(b)),这导致了多次计算。因此,现有工作要么陷入解决移动目标的问题,要么引入多次计算成本。
基于上述分析,我们认为可以将稀疏查询作为时序传播的隐藏状态。通过这种方式,我们可以利用目标查询来建模移动目标,同时保持高效率。因此,我们引入了一种新的范式:以目标为中心的时序建模,并设计了一个高效的框架,称为StreamPETR,如图1(c)所示。StreamPETR直接在视频流上逐帧进行3D预测。它对运动建模有效,并能够构建长期的时空交互。
具体来说,首先构建一个Memory Queue以存储历史目标查询,然后传播Transformer与当前目标查询进行长距离的时间和空间交互。更新后的目标查询用于生成3D边界框,并推入Memory Queue。此外,我们引入了一种运动感知层归一化(MLN),以隐式编码不同时间戳下自车和周围目标的运动。

与现有时序方法相比,提出的以目标为中心的时序建模带来了几个优势。StreamPETR仅处理少量目标查询,而不是每个时间戳的密集特征图,计算负担微不足道(如图2所示)。对于移动目标,MLN减轻了视频流中的累积误差。除了之前方法中使用的空间位置先验外,StreamPETR还通过全局attention考虑语义相似性,这有助于在运动场景中进行检测。总结来说,我们的贡献包括:
-
我们提出了流式多视角3D检测的关键点,并系统地设计了一种以目标为中心的时序建模范式。长期历史信息通过目标查询逐帧传播。
-
我们开发了一个以目标为中心的时序建模框架,称为StreamPETR。它同时建模移动目标和长期时空交互,几乎不增加存储和计算成本。
-
在标准的nuScenes数据集上,StreamPETR超越了所有在线仅使用摄像头的算法。广泛的实验表明,它可以很好地推广到其他基于稀疏查询的方法,例如DETR3D [47]。
2. 相关工作
2.1 多视角3D目标检测
多视角3D目标检测是自动驾驶领域的一个重要任务,需要连续处理多摄像头图像,并随时间预测3D边界框。早期的研究工作 [47, 30, 18, 27, 19, 48] 关注于如何将多视角图像高效地转换到统一的三维空间中,这些方法可以分为基于鸟瞰图(BEV)的方法 [18, 27, 49, 15, 25, 19] 和基于稀疏查询的方法 [47, 30, 29, 5, 48]。为了缓解遮挡问题并简化速度预测的难度,近期的研究进一步引入时序信息来扩展这两种范式。
将单帧BEV方法扩展为时序建模是相对直观的。BEVFormer [27] 首次将序列化的时序建模引入多视角3D目标检测,并应用了时序self-attention。BEVDet系列 [16, 25, 23] 通过拼接操作融合相邻的BEV特征,取得了显著的成果。此外,SOLOFusion [39] 将BEVStereo [23] 扩展到长期记忆,达到了有希望的性能。与基于BEV的方法不同,基于查询的方法没有中间特征表示,其时序建模更具挑战性。PETRv2 [31] 执行全局cross-attention,而DETR4D [34] 和Sparse4D [29] 应用稀疏attention来建模多帧之间的交互,但这些方法引入了多次计算。然而,稀疏查询设计便于建模移动目标 [29]。为了结合这两种范式的优势,我们利用稀疏目标查询作为中间表示,既可以建模移动目标,又能高效地传播长期时序信息。
2.2 Query Propagation
自DETR [4] 在2D目标检测中提出以来,目标查询已被应用于许多下游任务 [54, 35, 57, 56, 12],用于建模时序交互。对于视频目标检测,LWDN [20] 采用了一种受大脑启发的记忆机制来传播和更新记忆特征。QueryProp [12] 通过执行查询交互来减少非关键帧上的计算成本,显著提升了性能,同时保持了高效率。3D-MAN [52] 有类似的想法,将单帧lidar检测器扩展到多帧,有效地结合了来自场景不同视角的特征。在目标跟踪中,MOTR [54] 和TrackFormer [35] 提出了跟踪查询,用于建模跨帧的目标关联。MeMOT [2] 使用记忆库来构建长期时序依赖,从而进一步提升性能。MOTRv2 [57] 通过引入额外的检测器,缓解了检测和关联任务之间的冲突。MUTR [56] 和PF-Track [36] 将MOTR [54] 扩展到多视角3D目标跟踪,并取得了有希望的结果。
3. 深入时序建模
为了便于我们的研究,我们提出了一个用于各种时序建模设计的通用公式。给定透视图特征 、密集鸟瞰图(BEV)特征
和稀疏目标特征
,主导的时序建模方法可以表示为:
其中, 是时序融合操作,
是包含时序信息的输出特征。我们首先描述基于BEV和透视图的现有时序建模方法,然后详细阐述我们提出的以目标为中心的时序建模方法。
基于BEV的时序建模使用网格结构化的BEV特征来执行时序融合。为了补偿自车的运动,通常将上一帧的BEV特征 对齐到当前帧:
然后,可以应用时序融合函数 (如concatenation [16, 25] 或deformable attention [27])来生成中间时序表示
。将上述过程扩展到长期时序建模,主要有两种方法。第一种是将历史的 k 帧BEV特征对齐,并与当前帧拼接:
对于另一种方法,长期历史信息通过BEV特征的隐藏状态 以递归方式传播:
然而,基于BEV的时序融合仅考虑静态的BEV特征,忽略了目标的运动,导致空间错位。
基于透视图的时序建模主要通过目标查询和透视特征之间的交互来实现。时序函数 通常通过空间cross-attention [31, 29, 34] 实现:
目标查询与多帧透视图之间的cross-attention需要重复的特征聚合。简单地扩展到长期时序建模会显著增加计算成本。
我们提出的以目标为中心的时序建模通过目标查询来建模时序交互。通过目标查询,可以基于估计的状态 方便地应用运动补偿:
其中,μ 是一个显式的线性速度模型或隐式函数,用于编码运动属性 M(包括相对时间间隔 Δt、估计速度 v 和自车姿态矩阵 E,这些定义与第4节相同)。进一步,通过全局attention 构建时序信息的逐帧传播:

4. 方法
4.1 总体架构
如图3所示,StreamPETR基于端到端的稀疏查询3D目标检测器 [30, 47] 构建。它包括一个图像编码器、一个递归更新的Memory Queue和一个传播Transformer。图像编码器是一个标准的2D backbone,用于从多视角图像中提取语义特征。随后,提取的特征、Memory Queue中的信息和目标查询被输入到传播Transformer中,以执行时空交互。StreamPETR与单帧baseline的主要区别在于Memory Queue,它递归地更新目标查询的时序信息。结合传播Transformer,Memory Queue能够高效地将时序先验从上一帧传播到当前帧。
4.2 Memory Queue
我们设计了一个大小为 N×K 的Memory Queue,用于有效的时序建模。其中,N 表示存储的帧数,K 表示每帧存储的目标数量。根据经验,我们设置 N=4 和 K=256(确保在复杂场景中具有高召回率)。在设定的时间间隔 后,选定目标查询的相对时间间隔 Δt、上下文嵌入
、目标中心
、速度 v 和自车姿态矩阵 E 被存储在Memory Queue中。具体而言,上述信息对应于前景目标(具有最高分类分数的top-K个目标)被选择并推入Memory Queue。Memory Queue的入口和出口遵循先进先出(FIFO)规则。当新帧的信息被添加到Memory Queue时,最旧的信息将被丢弃。实际上,我们提出Memory Queue具有高度的灵活性和可定制性,用户可以在训练和推理期间自由控制最大记忆大小 N×K 和保存间隔 τ。

4.3 Propagation Transformer
如图4所示,propagation Transformer由三个主要组件构成:(1)运动感知层归一化模块隐式更新目标状态,根据Memory Queue中记录的上下文嵌入和运动信息;(2)hybrid attention取代默认的self-attention操作,它在执行时序建模的同时去除重复预测;(3)cross-attention用于特征聚合。它可以被替换为任意的空间操作,以构建图像tokens和3D目标查询之间的关系,例如PETR [30] 中的global attention或DETR3D [47] 中的sparse projective attention。
运动感知层归一化旨在建模目标的运动。为简化起见,我们以从上一帧 t−1 到当前帧 t 的转换过程为例,并对其他先前帧采用相同的操作。给定上一帧 和当前帧
的自车姿态矩阵,可以计算出自车变换
:
假设目标是静止的,Memory Queue中的3D中心 可以显式地对齐到当前帧,公式如下:
其中, 是对齐后的中心。受生成模型中任务特定控制 [9, 40, 55] 的启发,我们采用条件层归一化来建模目标的运动。如图4所示,层归一化(LN)中的默认仿射变换被关闭。运动属性 (
,v,Δt) 被展平并转换为仿射向量 γ 和 β,通过两个线性层 (ξ1,ξ2) 实现:
随后,执行仿射变换以获得运动感知的上下文嵌入 和运动感知的位置编码
:
其中, 是一个多层感知机(MLP),它将采样点
转换为位置编码
。为了统一,MLN也被应用于当前帧目标查询。当前帧的速度 v 和时间间隔 Δt 被初始化为零。
Hybrid Attention层。self-attention在DETR [4] 中用于去除重复预测,我们用hybrid attention,取代了它,从而引入了时序交互。如图4所示,Memory Queue中存储的所有目标查询与当前查询拼接在一起,形成混合查询。混合查询作为multi-head attention中的键(Key)和值(Value)。由于混合查询的数量较少(大约为2k,远小于cross-attention中图像标记的数量),hybrid attention层带来的计算成本可以忽略不计。
按照PETR [30] 的方式,查询可以定义为随机初始化的3D锚点。为了充分利用流视频中的空间和上下文先验,Memory Queue中的一些目标查询被直接传播到当前帧。在我们的实现中,上一帧的查询与随机初始化的查询拼接在一起。为了公平比较,随机初始化查询和传播查询的数量分别设置为644和256。
5. 实验
5.1 数据集和评估指标
我们在大规模的 nuScenes 数据集 [1] 和 Waymo Open 数据集 [42] 上评估了我们的方法。nuScenes 数据集包含 1000 个场景,每个场景时长 20 秒,标注频率为 2Hz。摄像头覆盖了完整的 360° 视场角(FOV)。标注包含了多达 140 万个3D边界框,用于评估的 10 个常见类别包括:汽车、卡车、公交车、拖车、施工车辆、行人、摩托车、自行车、路障和交通锥。我们使用以下指标进行比较:nuScenes 检测分数(NDS)、平均精度均值(mAP)以及 5 种真阳性(TP)指标,包括平均平移误差(ATE)、平均尺度误差(ASE)、平均方向误差(AOE)、平均速度误差(AVE)和平均属性误差(AAE)。按照标准评估指标,我们还报告了3D目标跟踪任务的平均多目标跟踪精度(AMOTA)、平均多目标跟踪精度(AMOTP)、召回率(RECALL)、多目标跟踪精度(MOTA)和 ID 切换次数(IDS)。
Waymo Open 数据集仅收集了水平视场角为 230 度的摄像头数据,标注的真值边界框最大范围为 75 米。我们使用纵向误差容忍指标 LET-3D-AP、LET-3D-AP-H 和 LET-3D-APL 进行评估。需要注意的是,为了公平比较,我们仅使用了 20% 的训练数据,这符合常见的实践。
5.2 实现细节
我们在 ResNet50 [13]、ResNet101、V2-99 [21] 和 ViT [8] 等不同backbone下进行实验,并采用不同的预训练方法。按照之前的方法 [27, 30, 39],我们在 nuScenes 验证集上提供了使用 ImageNet [7] 和 nuImages [1] 预训练权重的 ResNet50 和 ResNet101 模型的性能。为了扩展我们的方法,我们还在 nuScenes 测试集上报告了使用 V2-99(从 DD3D [38] 检查点初始化)和 ViT-Large [8] 的结果。按照 BEVFormer v2 [50] 的方式,ViT-Large [8] 在 Objects365 [41] 和 COCO [28] 数据集上进行了预训练。
StreamPETR 使用 AdamW [33] 优化器进行训练,batch size为 16。base learning rate设置为 4×10⁻⁴,并采用cosine annealing policy。训练期间仅使用关键帧,推理时也是如此。所有实验均未采用 CBGS [59] 策略。我们的实现主要基于 Focal-PETR [44],该方法引入了辅助2D监督。训练 24 个 epoch 的模型用于消融研究,而与其他方法比较时则训练 60 个 epochs。特别是,ViT-L [8] 仅训练 24 个 epochs 以防止过拟合。对于图像和 BEV 数据增强,我们采用了与 PETR [18, 30] 相同的方法。在训练序列中,我们随机跳过 1 帧以进行时间数据增强 [27]。
表 1. nuScenes 验证集上的对比结果。* 表示受益于透视图预训练。‡ 表示使用了 300 个随机初始化查询和 128 个传播查询。† 表示使用了未来帧的离线方法。FPS在 RTX3090上使用 fp32 测量。
表 2. nuScenes 测试集上的对比结果。TTA 表示测试时增强(Test Time Augmentation)。
表 3. nuScenes 测试集上的3D目标跟踪对比结果。
表 4. Waymo 验证集上的对比结果。* 表示在测试时保存间隔设置为 5。‡ 表示保存间隔
设置为 1。

5.3 主要结果
nuScenes 数据集.我们在 nuScenes 验证集和测试集上将提出的 StreamPETR 与之前的基于视觉的sota 3D检测器进行了比较。如表 1 所示,当采用 ResNet101 backbone并使用 nuImages 预训练时,StreamPETR 在 mAP、NDS、mASE 和 mAOE 指标上表现出色。与单帧baseline Focal-PETR 相比,StreamPETR 的 mAP 提升了 11.4%,NDS 提升了 13.1%。StreamPETR 的 mATE 比 Focal-PETR 低 10.9%,这表明我们以目标为中心的时间建模能够提高定位的准确性。在采用 ResNet50 backbone且图像分辨率为 256×704 时,StreamPETR 的性能超过了当前最先进的方法(SOLOFusion),mAP 高出 0.5%,NDS 高出 0.6%。当我们减少查询数量并应用 nuImages 预训练时,我们的方法在 mAP 和 NDS 上分别具有 2.3% 和 1.6% 的优势。同时,StreamPETR 的推理速度比 SOLOFusion 快 1.8 倍。
在测试集上进行比较时(见表 2),采用较小的 V2-99 backbone,StreamPETR 的性能超过了使用 ConvNeXt-B backbone的 SOLOFusion,mAP 高出 1.0%,NDS 高出 1.7%。将backbone升级为 ViT-Large [8] 后,StreamPETR 实现了 62.0% 的 mAP、67.6% 的 NDS 和 25.8% 的 mAOE。值得注意的是,这是首个online多视角方法,其性能与基于激光雷达的 CenterPoint 相当。对于3D多目标跟踪任务,我们将 CenterPoint [53] 的多目标跟踪简单扩展到多视角3D设置中。由于出色的检测和速度估计性能,StreamPETR 在表 3 中显著超过了 ByteTrackv2 [58],AMOTA 指标高出令人印象深刻的 8.9%。此外,StreamPETR 在 AMOTA 指标上超过了 CenterPoint [53],并在召回率方面表现出更大的优势。
Waymo Open 数据集。在这一部分中,我们在 Waymo 验证集上提供了实验结果,如表 4 所示。我们的模型训练了 24 个 epoch,Memory Queue的保存间隔设置为 5。可以看出,与密集 BEV 方法(例如 BEVFormer++ [26] 和 MV-FCOS3D++ [45])相比,我们的方法在官方评估指标上表现出色。Waymo Open 数据集的评估范围比 nuScenes 更大,我们的以目标为中心的建模方法在定位能力和纵向预测方面仍然显示出明显的优势。我们还重新实现了 PETR-DN 和 PETRv2(所有查询均采用去噪 [22])作为baseline模型。StreamPETR 的性能超过了单帧 PETR-DN,mAPL 提高了 4.1%,mAP 提高了 5.1%,mAP-H 提高了 5.5%。Waymo Open 数据集仅覆盖了部分水平视场角,而以目标为中心的时间建模仍然带来了显著的改进。在测试期间,我们采用检查点并将保存间隔 调整为 1,StreamPETR 的性能略有下降,这证明了其对传感器频率的适应性。
表 5. 长期融合的训练帧数。W 表示在滑动窗口中进行测试,V 表示在线视频中进行测试。
表 6. 运动感知层归一化的消融研究。MC 表示显式运动补偿(Explicit Motion Compensation)。LN 表示层归一化(Layer Normalization)。
5.4 消融研究与分析
训练序列长度的影响。StreamPETR 在局部滑动窗口中进行训练,并在online流视频中进行测试。为了分析训练和测试之间的一致性问题,我们进行了不同数量训练帧的实验,结果如表 5 所示。随着训练帧数的增加,StreamPETR 的性能持续提升,滑动窗口和在线视频之间的性能差距明显缩小。值得注意的是,当训练帧数增加到 8 时,视频测试(40.2% mAP,50.5% NDS)的性能超过了滑动窗口(39.6% mAP,50.1% NDS),这证明了我们的方法具有构建长期时间依赖关系的良好潜力。扩展到 12 帧带来的性能提升有限,因此我们为了实验效率将模型训练为 8 帧。
运动感知层归一化的效果。我们在表 6 中比较了用于解耦自车和移动目标的不同设计。结果表明,采用显式运动补偿(MC)时性能并未提升。我们认为显式方法可能导致训练初期的误差传播。运动感知层归一化(MLN)隐式地对自车和移动目标的运动进行编码和解耦。具体来说,仅隐式编码自车姿态即可实现显著改进,其中 mAP 提高了 2.0%,NDS 提高了 1.8%。此外,对相对时间偏移 Δt 和目标速度 v 进行编码可以进一步提升性能。mAP 和 NDS 分别提高了 0.4%,这表明动态属性对目标查询之间的时间交互具有有益的影响。
长期融合的帧数。在表 7 中,我们分析了Memory Queue中用于长期融合的帧数对性能的影响。随着Memory Queue中帧数的增加,mAP 和 NDS 指标有所提升,并在达到 2 帧(大约 1 秒)时趋于饱和。由于 StreamPETR 中的目标查询是递归传播和更新的,即使没有大容量的Memory Queue,我们的方法仍然能够构建长期的时空依赖关系。由于增加Memory Queue带来的计算成本可以忽略不计,我们使用 4 帧来缓解遗忘问题,并获得更稳定的结果。
透视图与目标为中心的对比。StreamPETR 通过稀疏目标查询之间的交互实现高效的时间建模。另一种解决方案是通过透视图记忆来构建时间交互 [31]。如表 8 所示,基于查询的时间建模在速度和精度方面都优于基于透视图的方法。将查询和透视图记忆相结合并没有进一步提升性能,这表明全局查询交互的时间传播足以实现领先的性能。此外,将当前目标查询与上一帧的查询拼接可以提高 0.7% 的 mAP 和 0.9% 的 NDS。
对动态目标的分析。在这一部分中,我们详细分析了 StreamPETR 在感知静态和动态目标方面的表现。为了公平比较,所有模型均训练了 24 个 epoch,且未使用 CBGS [59],并在 nuScenes [1] 验证集上进行评估。即使在时间建模的情况下,动态目标的检测性能仍然落后于静态目标。与密集 BEV 方法 [23, 17] 相比,StreamPETR 在静态和移动目标上都达到了有希望的性能。这证明了以目标为中心的时间建模的优势,它具有全局的时间和空间感受野。通过隐式编码运动信息,StreamPETR 的性能可以进一步提升。

5.5 失败案例
我们在图 6 中展示了具有挑战性的场景的检测结果。StreamPETR 在 30 米范围内的拥挤目标上表现出色。然而,我们的方法在远处目标上存在许多误检(False Positives)。这是camera-based方法的常见现象。在复杂的城市场景中,远处目标的重复预测是可以容忍的,并且对整体性能的影响相对较小。
6. 结论
在本文中,我们提出了StreamPETR,这是一个高效的长序列3D目标检测框架。与以往工作不同,我们的方法探索了一种以目标为中心的范式,通过目标查询逐帧传播时间信息。此外,我们引入了运动感知层归一化来融入运动信息。StreamPETR在引入可忽略的存储和计算成本的同时,实现了显著的性能提升。它是首个online多视角方法,其性能与lidar-based的方法相当。我们希望StreamPETR能够为社区在长序列建模方面提供一些新的见解。
A. 附录
A.1 算法流程
我们提出的传播Transformer的工作流程如算法1所示,分为四个阶段:
(1) 运动补偿模块接收Memory Queue中的信息(包括相对时间间隔 Δt、上下文嵌入 、目标中心
、速度 v 和自车姿态矩阵 E)。Memory Queue中的目标三维中心
根据自车姿态 Ego 显式对齐到当前帧。然后,通过单个MLP层
从对齐后的中心生成目标查询的位置编码。随后,应用运动感知层归一化(MLN)将运动信息 M 编码到历史查询中。
(2) 目标查询的生成主要基于可学习的查询嵌入 和从上一帧 t−1 获得的传播查询嵌入
。
(3) 传播Transformer的时空交互部分包含 L 层堆叠的混合attention(Hybrid_Attn)和cross attention(Cross_Attn)。在每一层中,混合attention执行当前查询[,
]和历史查询
之间的交互,而cross attention执行当前查询和图像标记 [
,
] 之间的交互。
是PETR [30] 中提出的3D位置编码。
(4) 经过逐层细化后,通过3D Head( Head)生成预测。然后根据分类分数选择top-K的前景目标,并将所选目标的信息推入Memory Queue X。
A.2 附加细节
StreamPETR的定性结果以视频形式提供。
以下是复现结果的更多细节。首先,我们分离了前6帧的梯度,并仅计算最后2帧的梯度和loss,这有助于加速收敛。我们还采用了Flash Attention [6] 进一步节省GPU内存,如表9所示。此外,我们遵循PETRv2 [31] 的方法进行了查询去噪 [22]。在测推理速度时,我们关闭了Flash Attention。
A.3 方法的扩展性
为了验证我们方法的扩展性,我们在另一个基于稀疏查询的模型DETR3D [47] 上进行了实验。我们使用ResNet101-DCN作为backbone,未添加额外的数据增强和CBGS [59]。表10中的结果显示,Stream-DETR3D在mAP和NDS上分别带来了4.9%和6.8%的提升,而推理速度几乎没有受到影响。与PETR范式相比,DETR3D的提升相对较小。一个可能的原因是DETR3D采用的局部空间attention限制了性能。