【3D目标检测】Enhancing 3D Object Detection with 2D Detection-Guided Query Anchors

论文链接:Enhancing 3D Object Detection with 2D Detection-Guided Query Anchors

代码链接:暂无

作者:Haoxuanye Ji,Pengpeng Liang,Erkang Cheng

发表单位:郑州大学、Nullmax

会议/期刊:CVPR2024

一、研究背景

实验动机:

利用摄像头捕获的多视图图像进行 3D 物体检测在自动驾驶系统中发挥着重要作用,与基于 LIDAR 的方法相比,基于摄像头的方法具有部署成本低的优点。尽管在过去几年中取得了显着的进展,但由于缺乏深度信息和小物体尺寸,基于多相机的3D物体检测仍然是一项具有挑战性的任务。

作者发现在某些情况下(例如远距离区域),流行的2D对象检测器比最先进的3D检测器更为可靠。为了提升基于查询的3D对象检测器的性能,论文提出了一种新的查询生成方法QAF2D。此方法的核心思想是利用2D检测的高可靠性来辅助3D检测,以提高后者的性能。

论文贡献:

(1)提出从2D边界框生成3D查询锚,以便可以直接使用更可靠的2D检测器的结果来提高3D检测性能;

(2)通过视觉提示在3D和2D检测器之间共享图像特征提取主干,以提高效率,并成功分为两个阶段训练网络;

(3)所提出的QAF2D集成到三个基于查询的3D对象检测器中时,在nuScenes数据集上实现了一致的性能改进。

将QAF2D集成到StreamPETR(baseline)。从左往右,自上而下,第一张是原图、第二张是真实框、第三张是随机生成的锚框、第四张是由baseline生成的随机锚框、第五张是由QAF2D生成的锚点、第六张是结合QAF2D的baseline生成结果

二、整体框架

QAF2D结合3D检测模型的整体框架

论文提出了一种名为 QAF2D 的方法,从 2D 检测边界框生成 3D 查询锚点,以提高基于查询的 3D 对象检测器的性能。

因为对象的 3D 中心的投影位于 2D 框内,所以首先对 2D 框内的一组投影中心进行均匀采样,对于每个中心,将其与深度、3D 大小和偏航角候选相关联以生成 3D 锚点。再根据目标框的类别,为每个检测到的 2D 框选择相应的 3D 尺寸。然后,将初始集中的每个3D锚点投影回2D图像,计算投影框与相应正确2D框之间的IoU,并且仅使用IoU大于阈值的锚点来构造3D查询。

整体框架采用2阶段训练网络:

(1)多相机图像输入到特征提取主干(ResNet或VovNet)提取特征;

(2)再输入给2D检测分支得到2D边界框;

(3)由3D锚点生成器位每个2D边界框生成一组3D锚点以及参数(相机内外参+类别信息);

(4)随后通过基于查询的3D检测器将2D图像特征以及生成的3D锚点作为输入来预测3D边界框。

三、核心方法

3.1 3D Query Anchor Generation

通过2D检测器可以对图像生成对应的2D检测边界框B=\left\{ \left( b_{i}, g_{i} \right) \right\}_{i=1}^{N} ,这里的N是在图像中检测到的2D边界框的数量,其中b_{i}=(x_{i}, y_{i}, w_{i}, h_{i})b_{i}表示第i个检测到的2D边界框,其中四个元素代表边界框中心坐标、宽度和高度,g_{i} 代表和 b_{i}关联的类别信息,用于确定每个边界框内的采样点应该与哪些3D尺寸、深度和偏航角候选相关联。

对于3D anchor center candidates(3D锚中心候选者),由于一个物体的3D中心在图像平面上的投影,总是会位于包含该物体全部的最小未旋转矩形内。因此,对2D边界框b_{i}=(x_{i}, y_{i}, w_{i}, h_{i}) 内均匀采样一组2D中心点:

C_{2D}=\left\{ \left( x_{s}, y_{s} | x_{s} = x_{min}+s_{x} \times i_{x}, y_{s} = y_{min}+s_{y} \times i_{y}; i_{x}, i_{y} \in Z_{\geq0}, x_{s}\leq x_{max}, y_{s}\leq y_{max} \right) \right\}

s代表步长,x = \lfloor x_{i} \pm w_{i} \div 2 \rfloor ,y同理,以及预设定深度候选集合 D=\left\{ d_{0}, ... ,d_{N_{D}-1} \right\},并将 C_{2D}中的每个点与深度候选关联起来(用笛卡尔积),得到:

接着将 C'2D每个点转换到3D坐标系,获得3D对象中心集 C_{3D}=\left\{ (x_{e}, y_{e}, z_{e}) \right\},是利用相机内参K和外参R进行变换得到的:

对于3D anchor size candidates(3D 锚点尺寸候选),由于不同类别的 3D 对象尺寸可能相差很大,而同一类别的对象尺寸变化通常很小,因此根据其类别 的 3D 尺寸候选。对于类别g,遍历该类别的所有对象决定其宽度、高度和宽度范围(w_{g}^{min}, w_{g}^{max}) (h_{g}^{min}, h_{g}^{max}) (l_{g}^{min}, l_{g}^{max}) ,得到构造宽度、高度和长度的集合如下:

通过上面3个集合就得到了生成g类的3D对象大小候选结合 :

对于Yaw angle candidates(偏航角候选),通过在 中以间隔 均匀采样来构造偏航角候选集合:

对于Generating 3D query anchors(生成3D查询锚点),给定2D边界框b关于每个类g的3D中心候选集 、尺寸候选集 、偏航角候选集 ,通过3个候选集的笛卡尔积生成初始的3D锚点集,也就是:

然后计算它和b之间的IoU,仅保留大于阈值u的 ,最终的查询锚点集:

3.2 Two-stage Optimization with Visual Prompts

为了使 2D 检测分支(DAB-DETR用作默认的 2D 检测器)能够与 3D 检测分支共享图像特征提取主干,而不影响 3D 检测器的性能,作者分两个阶段训练网络视觉prompt添加到2D检测分支。

第一阶段:训练 3D 检测分支。对于训练过程,不使用 2D 检测分支的输出,而是将真实 3D 边界框投影到图像上以获得 2D 边界框。然后,使用所提出的 3D 查询锚点生成方法来生成 3D 查询锚点,这些锚点用作基于查询的 3D 对象检测器的解码器的输入;

为了利用 2D 边界框的类别信息,在计算集合到集合(预测的边界框集合和真实的边界框)的损失时,每个预测的3D边界框只与具有相同类别的真实边界框进行匹配。这里用到了匈牙利算法,每一对类别相同的边界框集合计算。具体损失利用了成本矩阵,基于每个预测的边界框属于真实类别的概率以及预测的3D边界框和真实边界框之间的 L1损失来计算的。L1损失是预测和真实边界框之间差异的绝对值之和,它可以捕捉到位置和大小的差异。

第二阶段:使用视觉提示训练 2D 检测分支。在第一阶段完成后,3D检测分支已经被训练好了,这时候特征提取网络的权重被冻结。现在,2D检测分支需要使用这些已训练好的图像特征提取器的权重,来进行2D目标检测。因为图像特征提取器是为3D检测任务训练的,直接用于2D检测可能不是最优的。为了解决这个问题,引入了视觉提示。视觉提示(visual prompts)是一组训练参数,它们被添加到特征图中,帮助网络适应新的2D检测任务。这些视觉提示可以看作是在特征提取网络和2D检测头之间的一个可调节的桥梁,允许2D检测头更好地使用由3D任务训练得到的特征。

在第二阶段,只有视觉提示和2D检测头的参数会被更新,其他的网络部分保持不变。这允许模型在保持先前在3D任务中学到的特征的同时,通过微调视觉提示来优化2D检测性能。

第一阶段就是直接backbone输出到3D Detection;第二阶段就是backbone输出到2D Detection

视觉Prompt:类似padding设计;给定C*W*H的特征图,将2个C*(a*H)*W的patch加入特征图的顶部和底部。对于2D检测分支的训练,仅更新a和2D检测器的head,其中a是可以调整的超参数。

作者参考的是Exploring Visual Prompts for Adapting Large-Scale Models这篇论文的做法

3.3 Integrating into Query-based 3D Detectors

在基于查询的3D检测器中,查询(queries)是一组学习到的向量,用于在特征空间中“搜索”或“查询”对象的存在和位置。这些检测器通常使用Transformer架构,它包含一个编码器(encoder)和一个解码器(decoder)。编码器负责提取图像的特征,而解码器使用查询来解码这些特征,并预测3D边界框。

  • 替换查询: 在现有的基于查询的3D检测器中,QAF2D方法首先替换原有的查询初始化策略。使用从2D检测结果生成的3D锚点作为新的查询向量。

  • 解码器输入: 这些新生成的查询向量作为解码器的输入,解码器负责将这些查询转换为最终的3D边界框预测。

  • 训练: 在训练过程中,这些新的查询锚点会随着模型的其他部分一起被优化,以更好地匹配3D对象的真实位置。

作者演示了3种模型的集成方法:

1. StreamPETR:

  • StreamPETR 是一种使用历史查询和实时查询相结合的3D检测方法。

  • QAF2D生成的3D锚点取代了StreamPETR中原来随机生成或学习到的查询点。

  • 这些基于QAF2D的3D锚点直接用作解码器的输入,为3D对象检测任务提供初始的空间位置信息

2. SparseBEV:

  • SparseBEV利用稀疏表示和自适应采样技术来提高性能。

  • QAF2D提供的3D锚点可以替换SparseBEV中的查询点,使得检测器更好地定位3D空间中的物体。

3. BEVFormer:

  • BEVFormer构建鸟瞰视图(BEV)特征来检测3D对象。

  • 将QAF2D生成的锚点作为BEV特征构建过程的一部分,可以改善3D对象的检测精度。

四、实验结果

nuScenes 验证集结果

nuScene 测试结果

组件时间消耗和速度比较

不同 2D 探测器的比较。DAB3D是作者自己涉及的一个DAB-Deformable-DETR的3D检测头,因为原本的BEVFormer是进行2D检测的,预测属性不包括3D信息

额外随机锚点 (RA) 的影响

视觉提示中超参数的影响

左侧为多机位图像的结果,右侧为鸟瞰图的相应结果。StreamPETR-8DQuery 失败但其 QAF2D 增强版本成功的三个典型案例是带有数字的紫色椭圆

五、结论和局限性

在本文中,提出从 2D 框生成 3D 查询锚,以便可以使用更可靠的 2D 检测结果来提高 3D 检测器的性能。为了在 2D 和 3D 探测器之间共享图像特征主干,同时保持 3D 探测器的性能不受影响,设计了一种带有视觉提示的两阶段优化方法。将所提出的方法集成到三个基于查询的 3D 对象检测器中,并在 nuScenes 数据集上进行了全面的实验以验证其有效性。

该方法的局限性在于 3D 检测结果取决于 2D 检测器的质量(尽管对此不敏感)。如果 2D 检测器错过了一个物体,基于查询的 3D 检测器应该很难恢复错过的物体。同时,以直接的方式将所提出的方法生成的 3D 锚点与随机锚点相结合并不会产生显着的改进。作者将在未来的工作中研究如何实现两种锚点之间的协同作用。

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值