0.这篇文章干了啥?
这篇文章主要解决了单目3D检测和基于点云的3D检测之间的平衡问题。传统的单目3D检测方法通常使用图像数据,但在处理复杂的3D环境时存在准确性和鲁棒性不足的问题。而基于点云的3D检测方法可以提供更准确的3D信息,但受到高分辨率LiDAR成本昂贵的限制。
为了解决这一问题,作者提出了一种混合方法,利用了单目和点云数据的优势,但只使用了极少量的3D点。具体来说,他们使用了仅有的512个点(KITTI数据集中完整LiDAR帧的1%),结合了图像和点云数据,重建了完整的3D点云。这种重建方法利用了Transformer架构和点云重建网络,可以在不需要高成本和高分辨率LiDAR的情况下实现高质量的3D重建。
通过这种方法,他们成功地提高了3D对象检测的准确性和性能。在KITTI数据集上的实验证明,与传统的单目方法相比,他们的方法在3D检测任务中取得了更好的性能。这种方法的创新性在于通过使用极少量的3D点和图像数据,成功地提高了3D对象检测的准确性和鲁棒性,同时避免了使用昂贵的高分辨率LiDAR设备。
下面一起来阅读一下这项工作~
1. 论文信息
论文题目:Sparse Points to Dense Clouds: Enhancing 3D Detection with Limited LiDAR Data
作者:Aakash Kumar, Chen Chen等
作者机构:Center for Research in Computer Vision, University of Central Florida等
论文链接:https://arxiv.org/pdf/2404.06715.pdf
项目主页:https://bravocharlie-ai.github.io/Sparce_to_Dense/
2. 摘要
3D检测是一项关键任务,使机器能够在三维空间中识别和定位物体。它在多个领域中都有广泛的应用,包括自动驾驶、机器人技术和增强现实。单目3D检测具有吸引力,因为它只需要一个摄像头,但是它缺乏真实世界应用所需的精度和鲁棒性。另一方面,高分辨率激光雷达可能昂贵,并且在高交通量情况下可能导致干扰问题,因为它们具有主动传输功能。我们提出了一种平衡方法,结合了单目和基于点云的3D检测的优点。我们的方法仅需要少量3D点,可以从低成本、低分辨率传感器中获得。具体来说,我们仅使用512个点,这仅占KITTI数据集中完整激光雷达帧的1%。我们的方法从这些有限的3D信息和单个图像中重建完整的3D点云。重建的3D点云和相应的图像可以被任何多模式现成的3D物体检测器使用。通过使用提出的网络架构与现成的多模式3D检测器,与最先进的单目检测方法相比,3D检测的准确性提高了20%,与基线多模式方法相比,在KITTI和JackRabbot数据集上提高了6%到9%。
3. 效果展示
图3:与使用512个查询点生成的点云预测相比,地面真实点云(LiDAR)。每个查询点生成32个点。我们显示查询点,增加了点的大小以提高可见性。
三维检测的定性结果。
4. 主要贡献
-
提出了一种新颖的平衡方法,将单目和基于点云的3D检测结合起来。
-
提出了一种使用单个图像和非常少量3D点进行点云重建的新颖基于变换器的架构。
-
所提出的方法可以与分辨率不同的3D传感器集成,例如,展示了每场景256到512个点的结果。
-
与单目方法相比,在流行的3D检测基准上,实现了显著更高的平均精度(mAP)。
5. 基本原理是啥?
这篇文章主要介绍了一种利用单目图像和少量3D点生成对应场景的密集点云的方法。文章的基本原理如下:
问题定义:给定一幅图像和少量3D点作为输入,目标是生成与图像对应的场景的密集点云。这些输入的3D点可以来自低分辨率和低成本的传感器。
图像处理:首先,将图像分成小块(patch),每个小块通过特征提取器转换为一个256维特征向量。这些向量作为变压器编码器的令牌。同时,将少量3D点输入解码器,以执行跨图像令牌的交叉注意力,如图2所示。这导致每个查询点产生一个256维令牌,由变压器解码器生成。然后,将这些令牌传递给一个神经网络:PC生成器。PC生成器将每个解码器令牌转换为对应于输入查询的点集,从而允许重建与输入图像对应的密集点云。
网络架构:
-
特征提取器:使用VGG-net进行特征提取,并应用修改后的skip pooling将特征从不同级别传递到顶部。这种特征提取器从单个补丁中收集低级和高级特征。图像编码器:使用变压器编码器通过所有特征进行自注意力,以捕获图像的全局上下文。这有助于模型学习图像的全局特征,从而提高了模型识别深度和物体尺寸的能力。
-
解码器:变压器解码器在编码器的学习表示和点查询嵌入之间执行自注意力和交叉注意力,以生成输出。解码器学习到对应于查询点的输入图像特定区域,从而生成输出点云。
损失函数:使用Chamfer距离损失来进行点云重建。Chamfer距离损失衡量了重建点云与地面实况点云之间的距离。
点云降采样:为了模拟低分辨率LiDAR系统的数据特性,对原始数据进行了降采样处理,选择性地利用了来自64个探测器中的8个的数据,并引入了人工噪声。
现成探测器:使用了三种预先存在的探测器,它们是MVX-Net、EPNet++和SFD,这些方法结合了图像和点云数据进行处理,以提高3D物体检测的性能。
6. 实验结果
这篇文章主要介绍了作者们提出的一种用于3D目标检测的新方法,通过结合图像和少量的3D点云数据,实现了在不需要完整高分辨率LiDAR数据的情况下,提高了检测准确性的目的。以下是实验的详细内容:
实验数据集:
-
使用了KITTI 3D目标检测数据集,包含大量高分辨率图像、激光扫描和其他传感器数据,用于各种计算机视觉任务,包括目标检测、3D目标检测和深度估计。该数据集包含7,481张训练图像和7,518张测试图像,以及对应的点云数据,涵盖了从农村地区到高速公路的中等城市的场景。
-
还使用了JackRabbot数据集,该数据集是使用一种社交移动机器人配备各种传感器(包括LiDAR传感器、360度柱状立体RGB相机、360度球形RGB-D相机以及GPS和IMU传感器)收集的,用于在各种室内外环境中进行数据收集。
-
JackRabbot数据集包含有关行人的标注,具有180万个从LiDAR传感器导出的3D定向边界框标注,以及各种摄像机的RGB图像中的240万个2D边界框标注。此外,还包括了2D和3D边界框之间以及随时间的身份链接。
实现细节:
-
-
使用标准的nn.MultiHeadAttention模块实现了Transformer模型。
-
-
解码器也有4层,紧随编码器架构,每层使用8个头的多头注意力。
-
在解码器中,使用Fourier位置编码来编码XYZ坐标。
-
对模型中的所有自注意力和MLP层应用了0.1的dropout。但是,解码器的dropout率为0.3。
-
使用AdamW优化器进行模型优化,并应用余弦学习率调度来将学习率衰减到10的负6次方。
-
另外,为了防止梯度爆炸问题,对梯度进行了L2范数为0.1的梯度裁剪。
结果和讨论:
-
作者的方法只需要最少的3D信息,仅使用512个3D点和一张图像进行3D检测。注意,512个点仅占KITTI数据集中完整LiDAR帧的1%。
-
他们的方法涉及从图像和少量3D点重建完整的3D点云,然后使用现成的检测器进行3D目标检测。这使他们能够利用图像和点云数据的优势,同时减少高分辨率3D数据获取和处理的挑战。
-
实验结果表明,将作者的方法与MVX-Net等多模态检测器结合使用,可以显著提高检测性能。例如,作者的方法与MVX-Net结合使用,在easy、medium和difficult类别中分别实现了42.61、26.14和24.18的AP 3D分数,以及54.12、38.43和34.61的BEV分数,与基线MVX-Net相比有明显的改进。
消融研究:
-
进行了消融研究,评估了查询点数和邻域点数的不同配置对3D检测性能的影响。
-
结果显示,增加查询点数和邻域点数通常会导致更高的AP分数,但在一定阈值后增加邻域点数可能会引入噪声或冗余,从而降低检测准确性。
总的来说,这项研究提出了一种有效的方法,通过结合图像和少量3D点云数据,实现了在3D目标检测中提高准确性的目标。该方法在KITTI和JackRabbot数据集上取得了良好的性能,显示出在减少数据复杂性和成本的情况下实现高精度3D目标检测的潜力。
7. 总结 & 未来工作
单目3D检测缺乏实际应用所需的准确性和鲁棒性,而高分辨率3D扫描仪价格昂贵。我们提出了一种混合方法,通过仅使用极少量的3D点结合单目和基于点云的3D检测的优势。使用低至512个点(即在KITTI数据集中完整LiDAR帧的1%)和一张图像,我们的方法重建了一个完整的3D点云,可以用来提高现有3D检测器的性能。