Abstract
单目3D目标检测是自动驾驶和计算机视觉领域中的一个挑战性任务。通常,以前的研究使用手动标注的3D框标签,这种标注过程成本高昂。然而,本文提出一个有趣且反直觉的发现:在单目3D检测中,精确和细致标注的标签可能并不是必要的。使用随机扰动的粗略标签,检测器可以达到与使用真实标签非常接近的精度。我们深入探讨了这一潜在机制,并实证发现:在标签的准确性方面,3D位置部分比其他部分更为重要。
基于上述结论,并考虑到精确的LiDAR 3D测量,我们提出了一个简单而有效的框架,称为LiDAR点云引导的单目3D目标检测(LPCG)。这个框架能够减少标注成本或在不增加额外标注成本的情况下显著提升检测精度。具体来说,它从未标注的LiDAR点云中生成伪标签。由于LiDAR在3D空间中的准确测量,这些伪标签可以在单目3D检测器的训练中替代手动标注的标签,因为它们的3D位置信息是精确的。LPCG可以应用到任何单目3D检测器中,充分利用自动驾驶系统中的大量未标注数据。
结果表明,在KITTI基准测试中,我们在单目3D和鸟瞰图(BEV)检测中均以显著优势排名第一。在Waymo基准测试中,我们的方法使用10%的标注数据即可达到与基准检测器使用100%标注数据相当的精度。代码已在GitHub上发布。
Introduction
3D目标检测在许多应用中起着关键作用,例如自动驾驶。它使汽车能够以3D视角感知世界,避免与道路上的其他物体碰撞。目前,通常使用LiDAR(光探测和测距)设备来实现这一目标,然而LiDAR的主要缺点是价格高昂和工作范围有限。相比之下,单目相机作为一种替代方案,广泛可用且价格低廉,因此单目方法在工业界和学术界都很受欢迎。
据我们所知,大多数基于单目相机的前期研究都使用了精确标注的3D框标签。然而,基于LiDAR点云的标注过程耗时且成本高昂。本文实证发现,在单目3D检测中,完美手动标注的3D框标签并不是必要的。我们通过在一定范围内随机扰动手动标注的标签,发现使用扰动标签和完美标签训练的检测器表现非常接近。这一发现是反直觉的。
为了探索其中的潜在机制,我们将3D框标签根据其物理特性(包括物体的3D位置、方向和尺寸)划分为不同组,并分别扰动每组标签。我们在图1中展示了实验结果。结果表明,精确的位置信息在单目3D检测中起着最重要的作用,并且主导了检测性能,而其他组标签的准确性并不像通常认为的那样重要。这背后的原因在于单目图像的病态性质,这使得恢复3D位置变得困难,这是性能的瓶颈。
关键发现:
- 小范围扰动(5%)对性能影响不大,扰动后的标签与完美标签的性能非常接近。
- 位置信息的准确性对性能的影响远远超过其他信息。当位置标签的扰动范围达到10%、20%、40%时,检测性能显著下降。
单目图像3D框手动标注的不可行性:
与其他经典的计算机视觉任务不同,从单目图像中手动标注3D框是不现实的。这是因为在相机投影过程中深度信息丢失了。实际上,这也是为什么3D位置信息标签在单目3D检测中是最重要且最难处理的部分。LiDAR点云提供了关键的3D测量,在标注过程中不可或缺。通常,标注人员会在LiDAR点云上标注3D框。
在自动驾驶系统的数据收集过程中,会收集大量连续的片段。一般来说,为了节省高昂的标注成本,通常只标注收集片段中的一些关键帧用于训练网络,例如KITTI数据集。因此,大量包含宝贵3D信息的LiDAR点云未被标注。
LPCG框架
受3D位置信息标签需求和LiDAR在3D空间中精确测量的启发,我们提出了一个通用且直观的框架,称为LPCG(LiDAR点云引导的单目3D目标检测)。具体来说,我们使用未标注的LiDAR点云生成伪标签,将未标注的数据转化为单目3D检测器的训练数据。这些伪标签虽然不如手动标注的标签精确,但由于LiDAR 3D测量的准确性,它们足够用于训练单目3D检测器。
LPCG的两种工作模式
我们进一步提出了LPCG的两种工作模式:高精度模式和低成本模式,根据标注成本生成不同质量的伪标签。
-
高精度模式:
- 需要少量标注数据来训练一个基于LiDAR的检测器,然后使用训练好的检测器在其他未标注数据上生成高质量的伪标签。这种方式可以大幅提升单目3D检测器的精度。
-
低成本模式:
- 提出一种启发式方法,在不需要任何3D框标注的情况下生成伪标签。这些伪标签直接从RoI(感兴趣区域)LiDAR点云中获得,通过点聚类和最小包围框估计。这种方式称为低成本模式。
无论是高精度模式还是低成本模式,LPCG都可以插入到任何单目3D检测器中。
基于上述两种模式(高精度模式和低成本模式),我们可以充分利用LiDAR点云,使单目3D检测器在大规模训练集上学习所需目标,同时避免架构修改和额外的标注成本。通过应用高精度模式,我们显著提升了之前最先进方法的3D和BEV(鸟瞰图)平均精度(AP)。
Related Work
基于图像的单目 3D 物体检测
- M3D-RPN:在行空间中使用不同的卷积核,可以在特定深度范围内探索不同的特征,并通过2D-3D框的一致性来改进3D估计。
- RTM3D:预测透视关键点以及物体的尺寸、方向和位置的初始猜测,这些关键点被进一步用于通过求解约束优化问题来优化初始猜测。
- 近年来,许多基于图像的方法利用了深度估计嵌入、可微NMS和几何特性,取得了巨大成功。
- 另一个相关工作引入了一种新的自动标注策略,建议使用课程学习和SDFs(有符号距离函数)的可微渲染,但其流程较为复杂。
基于深度图的单目3D物体检测
虽然单目方法发展迅速,但与基于LiDAR的方法相比,仍存在较大性能差距。一些早期工作认为数据表示选择不当是主要原因之一,提出使用转换后的基于图像的深度图。他们首先将LiDAR点云投影到图像平面上,形成深度图标签来训练深度估计器。
Pseudo-LiDAR:
- 通过使用估计的深度图将图像转换为点云,然后在点云上进行3D检测。与之前的基于图像的方法相比,展示了有希望的结果。
- 受到这一点的启发,许多后来的方法也利用现成的深度估计进行3D检测,并获得性能提升。
CaDDN:
- 最近,CaDDN通过使用预测的分类深度分布将上下文特征投影到3D空间,将密集深度估计集成到单目3D检测中。
与之前的基于深度图的方法相比,我们旨在探索利用LiDAR点云生成伪标签以提高单目3D检测器性能的潜力。
LiDAR Guided Monocular 3D Detection
High Accuracy Mode
为了充分利用现有的3D框标注,如图2所示,我们首先使用LiDAR点云和相关的3D框标注从头开始训练一个基于LiDAR的3D检测器。预训练的基于LiDAR的3D检测器随后用于推断其他未标注LiDAR点云上的3D框。这些结果被视为伪标签,用于训练单目3D检测器。我们将伪标签与手动标注的完美标签进行了比较。由于精确的3D位置测量,从基于LiDAR的3D检测器预测的伪标签非常准确,可以直接用于训练单目3D检测器。我们在算法1中总结了大纲。
算法1:LPCG高精度模式的大纲
输入
- 标注数据A:包含RGB图像和相关的LiDAR点云。
- 未标注数据B:包含RGB图像和相关的LiDAR点云。
输出
- 训练良好的单目3D检测模型Mmono。
步骤
- Mlidar:在标注数据({Adata, Alabel})上训练一个监督的基于LiDAR的3D检测模型。
- {Bpseudo−label}:在未标注数据(Bdata)上进行预测,得到伪标签:Mlidar(Bdata)。
- C:合并训练数据:{Adata ∪ Bdata, Alabel ∪ Bpseudo−label}。
- Mmono:在新数据集({Cdata, Clabel})上训练一个监督的基于单目的模型。
- 返回训练好的单目3D检测模型Mmono。
Low Cost Mode
-
2D实例分割:
- 首先,在RGB图像上使用现成的2D实例分割模型(如Mask R-CNN)进行分割。该模型能够识别图像中的不同物体,并生成每个物体的2D边界框和掩码。
- 通过这一步,得到了每个物体的2D框和掩码估计。
-
构建相机视锥体:
- 利用从2D实例分割模型中获得的2D框和掩码,构建相机视锥体(camera frustum)。视锥体是从相机位置出发,通过2D边界框向空间中延伸的一种三维体积,用于定义相机能看到的区域。
- 对于每个物体,从LiDAR点云中选择位于视锥体内的点(即感兴趣区域RoI点)。这样就能找到与每个2D框对应的三维点。
-
过滤无关点:
- 由于视锥体内的LiDAR点不仅包含目标物体的点,还可能包含背景点或被遮挡的点,因此需要进一步过滤。
- 使用DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法根据点的密度进行聚类。DBSCAN能够将距离较近的点聚集成簇,并将孤立的点视为噪声。
- 通过这种方式,可以将视锥体内的点云分成不同的组。然后选择包含最多点的簇,认为它是与目标物体对应的点。
-
最小3D边界框:
- 为了简化求解3D边界框的问题,将选定的点投影到鸟瞰图(bird’s-eye view)上。这减少了求解的参数数量,因为物体的高度(h)和y坐标(在相机坐标系下)可以轻松获得。
- 在鸟瞰图上,利用物体点的凸包(convex hull)来确定物体的最小边界框(BEV框)。凸包是包含所有点的最小凸多边形。
- 通过旋转卡尺法(rotating calipers),可以从凸包中找到最小的边界框。
- 最后,通过计算点在y轴上的最大空间偏移来确定物体的高度h,并通过点的y坐标平均值来计算中心坐标y。
- 使用一个简单的规则限制物体尺寸,以去除异常值。
算法2:单目方法的总体训练流程
该算法总结了利用伪标签训练单目3D检测器的流程。
- 输入:标注数据A(包含RGB图像和相关的LiDAR点云),未标注数据B(包含RGB图像和相关的LiDAR点云)。
- 输出:训练良好的单目3D检测模型Mmono。
- 训练LiDAR 3D检测模型:在标注数据A上训练一个基于LiDAR的3D检测模型(Mlidar)。
- 生成伪标签:使用训练好的Mlidar在未标注数据B上进行预测,生成伪标签(Bpseudo−label)。
- 合并数据:将标注数据A和生成的伪标签数据B结合,生成新的训练数据集C。
- 训练单目3D检测模型:在新的训练数据集C上训练一个基于单目的3D检测模型(Mmono)。
- 返回模型:返回训练好的单目3D检测模型(Mmono)。
这种方法通过利用LiDAR点云的精确3D测量,生成的伪标签足够准确,可直接用于训练单目3D检测器,同时显著降低了手动标注成本。这种方法的关键在于,LiDAR点云提供了丰富而精确的3D测量,可以有效地指导单目3D检测模型的训练。