Abstract

基于多摄像头的3D目标检测在过去几年中取得了显著进展。然而,我们观察到在某些情况下(例如远处区域),流行的2D目标检测器比最先进的3D检测器更可靠。在本文中,为了提高基于查询的3D目标检测器的性能,我们提出了一种新颖的查询生成方法,称为QAF2D,该方法从2D检测结果推断3D查询锚点。通过将图像中物体的2D边界框与深度、偏航角和尺寸候选点关联,提升为一组3D锚点。然后,通过将每个3D锚点在图像中的投影与相应的2D框进行比较,验证每个3D锚点的有效性,仅保留有效锚点并用来构建查询。与每个查询关联的2D边界框的类别信息也被用来匹配预测框与用于集合损失的真实框。通过添加少量提示参数,实现了3D检测器和2D检测器之间的图像特征提取骨干共享。我们将QAF2D集成到三种流行的基于查询的3D目标检测器中,并在nuScenes数据集上进行了全面评估。QAF2D在nuScenes验证子集上带来的最大提升为2.3% NDS和2.7% mAP。代码下载: github.com/nullmax-vis…

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_目标检测

Introduction

3D目标检测是自动驾驶技术中的关键组成部分,它通过分析多视角摄像头捕获的图像来实现对车辆周围环境的深度感知。与传统的基于激光雷达的方法相比,基于摄像头的系统具有成本效益高、易于部署等优势。然而,由于摄像头数据缺乏直接的深度信息,同时远距离小目标的尺寸问题,使得3D目标检测面临一系列挑战。

近年来,受到2D目标检测领域中基于查询(query-based)方法取得的显著成就的启发,研究者开始探索将类似的策略应用于3D目标检测。例如,DETR3D通过将一组稀疏的3D目标查询映射到2D图像上,实现了图像特征的有效聚合;PETR则利用3D点来构建查询,以实现与3D位置感知的图像特征的交互;SparseBEV通过在鸟瞰视角(BEV)空间中初始化稀疏查询,来采样多视角图像特征;StreamPETR则是基于PETR的改进,通过查询传播来实现时间信息的建模;BEVFormer在构建BEV特征图之后,采用了基于Deformable DETR的3D检测头来进一步提升性能。

尽管这些方法在3D目标检测领域取得了显著的性能提升,但在实际应用中,我们仍然可以观察到一些情况,即某些在2D检测中表现出色的检测器,在3D检测中却遇到了困难。这表明,尽管基于查询的方法在2D目标检测中取得了成功,但将其扩展到3D领域仍需要解决一些特定的技术挑战,如深度信息的准确估计、小目标的检测精度提升,以及多视角数据的有效融合等。未来的研究需要进一步探索如何优化这些方法,以克服现有问题,实现更准确、更可靠的3D目标检测。

Method

如下图所示,我们首先将Ft(image features)输入到2D检测分支以获得2D边界框。3D锚生成器为每个2D边界框生成一组3D锚点,利用其相应摄像头的内外参数及其类别信息。然后,基于查询的3D检测器将Ft和生成的3D锚点作为输入,以预测3D边界框。我们分两个阶段训练网络。

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_目标检测_02

一、3D查询锚点生成

给定图像I的2D检测边界框其中bi=(xi, yi, wi, hi)表示一个边界框及其中心坐标、宽度和高度,gi是其类别信息,我们将bi中的每个采样点与3D尺寸、深度和偏航角候选点关联,并生成一组3D查询锚点。该过程如图2右侧所示。

1、3D锚点中心候选点。由于对象中心在图像平面上的投影总是在包含整个对象的最小未旋转矩形内,给定一个2D边界框bi=(xi, yi, wi, hi),我们首先按如下方式采样一组2D对象中心。

2、3D锚点尺寸候选点。由于不同类别的3D对象尺寸差异很大,而同一类别对象尺寸的变化通常较小,我们基于其类别gi选择一个边界框bi的3D尺寸候选点。对于每个类别g,我们通过遍历训练数据中所有类别g的对象,并选择最大值和最小值来确定其宽度范围(wming, wmaxg)、高度范围(hming, hmaxg)和长度范围(lming, lmaxg)。基于上述范围,我们构建了宽度、高度和长度的集合.

3、生成3D查询锚点。给定2D边界框b的3D中心候选点集合C3D、尺寸候选点集合Sg和偏航角候选点集合Θ,我们通过三者的笛卡尔积生成初始的3D锚点集合。

4、翻滚角
5、产生 3D anchor根据二维边界框 ( b ) 的类别 ( g ),我们利用其三维中心候选集 、尺寸候选集 和偏航角候选集,通过三个候选集的笛卡尔积生成初始的三维锚点集。

二、可视化提示(visual prompts)的两阶段优化

1、训练3D检测分支: 对于训练,我们并不是使用2D检测分支的输出,而是将真实的3D边界框投影到图像上,以获得2D边界框。然后,使用提出的3D查询锚生成方法来生成3D查询锚,这些查询锚将作为基于查询的3D目标检测器(基于StreamPETR ,SparseBEV或BEVFormer )解码器的输入。为了利用2D边界框的类别信息,在计算基于查询的3D检测器的集合到集合损失[27]时,查询的预测3D边界框仅与与查询对应的2D框具有相同类别的真实框匹配。更具体地说,我们将预测边界框集Bˆ和真实边界框集B分别划分为{Bˆg}Gg=1和{Bg}Gg=1,其中G是类别的数量。给定一对集合(Bˆg, Bg),Bˆg中的框通过[27]中的匈牙利算法与Bg中的框匹配,且成本矩阵基于预测的真实类别概率和预测与真实3D边界框之间的L1损失计算。

2、使用视觉提示训练2D检测分支: 在第1阶段用3D检测任务训练图像特征骨干网后,骨干网被冻结,2D检测分支使用与3D检测器相同的图像特征。为了使图像特征适应2D检测任务,我们在特征图上中设计的视觉提示。值得注意的是,[1]将提示添加到输入图像中,而我们将提示添加到特征图中。我们采用填充提示设计。更具体地说,给定一个大小为C × H × W的特征图,其中C、H和W分别是通道数、高度和宽度。在特征图的顶部和底部分别添加两个大小为C × (τ × H) × W的提示补丁。在特征图的左右两侧分别添加另外两个大小为C × (H − 2τ × H) × (τ × W)的提示补丁。

三、集成到基于查询的3D检测器中

我们通过用从2D边界框推断出的3D查询锚替换随机初始化的锚(或可学习查询)来将我们的方法集成到三种选择的基于查询的3D目标检测器(StreamPETR ,SparseBEV ,BEVFormer )中。

StreamPETR:建立在基于查询的 3D 物体检测器 PETR 之上。为了有效利用时间信息,它维护了一个历史对象查询的内存队列。当前帧的查询由内存队列中选择的查询和新添加的查询组成。新查询依赖于一组以 0 到 1 之间均匀分布初始化的可学习 3D 锚点。我们通过简单地用从 2D 边界框推断的锚点 {(xi, yi, zi, wi, li, hi, sin θi, cos θi)} 替换原始可学习 3D 锚点来集成提出的 3D 查询锚。

SparseBEV:除了采用稀疏查询,SparseBEV 移除了查询与图像特征之间的密集全局注意力 [23],并提出了一种自适应时空采样方法来聚合图像特征。SparseBEV 定义了一组可学习的查询,每个查询表示一个物体的平移、尺寸、旋转和速度。为了集成我们的 3D 查询锚,我们用从 2D 检测结果生成的 {(xi, yi, zi, wi, li, hi, sin θi, cos θi)} 替换了可学习查询。

BEVFormer:通过预定义的 BEV 查询与多相机图像特征之间的空间交叉注意力构建 BEV 特征,这些特征用作修改后的 Deformable DETR 的输入进行 3D 物体检测。为了应用 3D 查询锚,我们设计了基于 DAB-Deformable-DETR [21] 的 3D 检测头,并将 (x, y, h, w) 形式的可学习动态锚替换为 (x, y, z, w, l, h, sin θ, cos θ) 形式的 3D 查询锚,解码器预测 3D 边界框和速度而不是 2D 边界框。

Experiments

在研究中,团队利用nuScenes数据集进行实验,该数据集包含1000个20秒的多模态视频,每0.5秒一个关键帧,分为训练、验证和测试集,共计140万3D边界框标注。采用多种评估指标,包括mAP及各类误差,汇总为NDS。

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_锚点_03

使用PyTorch实现的方法显示,集成QAF2D后的基本检测器性能提升了1.5% NDS和1.8% mAP。对于StreamPETR及其增强版本,QAF2D分别提高了0.6% NDS和1.5% mAP,以及1.2% NDS和1.5% mAP。SparseBEV和BEVFormer也因QAF2D而有性能提升。

在nuScenes测试集上,StreamPETR-QAF2D与最先进方法对比,OAF2D使得StreamPETR额外提升0.6% NDS和1.6% mAP。QAF2D的性能优势在于它能从2D检测结果推断更优的3D框,减少漏检,改善网络优化和预测准确性。

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_锚点_04

消融研究

我们在 nuScenes 验证集上进行了消融研究,并使用 BEVFormer [18] 作为基本检测器。

1、对不同 2D 检测器的泛化: 为了研究 QAF2D 对不同 2D 检测器的泛化能力,除了默认的 2D 检测器 DAB-DETR [21],我们还将 QAF2D 与流行的 Faster-RCNN [31] 结合,并应用于 BEVFormer [18]。表 4 的结果显示,DAB-DETR 和 Faster-RCNN 的性能非常接近,这表明提出的 QAF2D 对 2D 检测器的选择不敏感。由于 DAB-DETR 的结果稍好,我们使用 DAB-DETR 作为默认的 2D 检测器来提供 2D 检测框。这种不敏感性应该是因为 QAF2D 不需要非常精确的 2D 框,只要 2D 检测器不漏检,QAF2D 可以使用粗略的 2D 框生成比随机锚更有意义的 3D 查询锚。

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_3D_05

2、额外随机 3D 查询锚的影响: 我们还将一组额外的随机初始化 3D 查询锚与 QAF2D 生成的锚结合,探索其影响。随机 3D 查询锚的数量是 900,这是 BEVFormer-small 使用的查询数量。结果如表 5 所示,额外的随机锚可以带来改进。但由于 0.1% NDS 和 0.4% mAP 的改进较小,我们在默认设置中不使用额外的随机锚。

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_目标检测_06

3、特征共享的视觉提示效果: 为了研究在骨干网的特征图上添加少量提示参数对特征共享的影响,我们训练了一个单独的 2D 检测器,该检测器具有自己的图像特征提取骨干网(称为“无共享”)。我们还训练了另一个 2D 检测器,该检测器直接使用由 3D 检测器训练的骨干网的图像特征,仅微调 2D 检测头(称为“无提示共享”)。从表 6 的结果可以看出,“无共享”和“无提示共享”分别作为性能的上限和下限。参数 τ 控制第 3.3 节“阶段 2”中的提示参数数量。我们将 τ 从 0.1 变到 0.5,以研究其选择如何影响性能。表 6 的结果表明,所有 τ 的选择都可以缩小“无共享”和“无提示共享”之间的差距,τ = 0.2 是最佳值。使用 τ = 0.2,“无共享”和“无提示共享”之间的 NDS 差距从 0.6% 缩小到 0.1%,mAP 差距从 1.0% 缩小到 0.5%。

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_锚点_07

4、可视化结果: 在图 3 中显示了 StreamPETR-8DQuery 和 StreamPETR-QAF2D 之间的视觉比较。我们在多相机图像中绘制 3D 检测框及其在 BEV 空间中的投影。给出了三个典型的 QAF2D 帮助的案例。案例 1 显示 QAF2D 可以消除假阳性(图 3 (a) 的左上图中紫色椭圆中的蓝色框)并使真阳性更准确(请参见 BEV 中预测与真实情况的对齐)。案例 2 证明当物体远离时,QAF2D 的预测也更准确。案例 3 显示当物体较小且难以与背景区分时,QAF2D 可以帮助缓解漏检。

Nullmax纽劢发布QAF2D:利用2D检测引导查询3D anchor来增强BEV远距离目标检测_锚点_08

总结:

1、创新的3D查询锚点生成:提出了一种从2D边界框生成3D查询锚点的方法,利用2D检测器的高可靠性来增强3D检测性能。
2、特征提取骨干共享:实现了3D和2D检测器之间图像特征提取骨干的共享,通过视觉提示提升了整体检测效率。采用了分两个阶段的网络训练策略,有效优化了模型性能。
3、跨模型性能提升:将QAF2D集成到三种不同的3D目标检测器中,在nuScenes数据集上均实现了性能提升。所提出的方法在多个检测器上一致的性能提升,证明了其有效性和良好的泛化性。

引用CVPR2024文章:Enhancing 3D Object Detection with 2D Detection-Guided Query Anchors

欢迎关注我的公众号auto_driver_ai(Ai fighting), 第一时间获取更新内容。