原论文:《A comprehensive survey of LIDAR-based 3D object detection methods with deep learning for autonomous driving》
引言
自动驾驶汽车的感知系统是复杂的,涉及到多种传感器和技术。其中,摄像头和LiDAR是两种主要的传感器,它们为自动驾驶汽车提供关于周围环境的信息。摄像头提供的是高上下文的二维图像数据,而LiDAR则提供三维空间的点云数据,这些数据具有高精度和高分辨率,且不受光照条件的限制。
在自动驾驶的应用中,不仅要在二维图像中检测目标,还要在三维空间中识别目标的类别,如汽车、行人和自行车。深度学习技术的发展、自动驾驶数据集的可用性以及价格合理的LiDAR传感器共同推进了3D目标检测任务。
针对3D目标检测的研究已经相当丰富,许多研究侧重于自动驾驶中目标检测、语义分割以及使用多模态深度学习网络。这篇综述文章的贡献在于:
-
引入了一个通用操作流程,为比较不同检测器提供了结构化的分类方法,凸显了各检测器之间的相似性和差异性。
-
提供了一个详细的最新3D目标检测器列表,并重点描述了每种检测器的优缺点以及它们在操作流程中的特殊之处,确保了检测结果的效率和有效性。
-
文章最终总结了一些在未来新3D目标检测器设计中应该采用或避免的关键特征。
背景
激光雷达(LiDAR)和点云数据是自动驾驶技术中的关键组成部分,提供了精准的三维环境信息,这对于车辆的感知、导航和决策十分重要。以下是对背景部分提供的信息的概括:
2.1 激光雷达和点云
LiDAR工作原理
- 基于测量激光束的飞行时间(ToF)来计算距离,即光速乘以ToF。
LiDAR类型
- 机械式LiDAR:最常见的类型,特别是在自动驾驶应用中。通过在水平方向上旋转,并在垂直方向上配备多个激光发射器,实现360度的视野。
点云数据
- 由LiDAR生成的数据集合,通常表现为四维向量:3D坐标[x,y,z]和激光反射强度r。在某些情况下,可能包含第五维——激光脉冲的伸长率e。
坐标计算
- 使用距离d、偏航角φ和每个激光发射器的俯仰角ω来计算每个点的3D坐标。
2.2 3D BBox 编码
三维边界框(3D BBox)
- 用于在3D空间中定义目标的位置、大小和方向。
- 适配目标尺寸和方向,即使目标部分遮挡或截断也能调整以表示完整目标的大小。
- 在自动驾驶的上下文中,由于假设所有物体都位于地面上,因此主要预测偏航角。
3D BBox编码
- 由目标的3D中心坐标[x,y,z]、尺寸[l,w,h]和偏航方向θ来编码。
这种方法使得自动驾驶系统能够准确识别并定位周围环境中的对象,理解它们的尺寸和方向,从而做出更加安全和有效的驾驶决策。
操作流程
1 LiDAR SDR模块的五种表达形式:
-
基于点的(Point-based):直接在原始点云上操作,保持数据的高精度。通常需要复杂的点云处理算法来提取特征。
-
基于体素的(Voxel-based):将点云空间划分为规则的3D网格(体素),并在每个非空体素中统计点云特征。它牺牲了一些精度以换取结构化的数据表示。
-
基于支柱特征的(Pillar-based):类似于体素化方法,但仅在垂直方向上划分网格。这种方法更适合于处理地面车辆,因为它们在垂直方向上的变化不大。
-
基于投影的(Projection-based):将3D点云投影到2D平面(例如鸟瞰图或前视图),转换为结构化的图片格式,再使用传统的2D图像处理方法。
-
基于图的(Graph-based):将点云表示为图,其中点作为节点,点之的关系(如距离或其他几何关系)作为边。这种方法适合捕捉点与点之间复杂的空间关系。
有些检测器架构会同时使用两种表达形式来利用各自优势,这被称为双重表达类别。
3.2 特征提取模块主要有两类技术和架构:3D Backbone Networks(3DBN)和2D Backbone Networks(2DBN)。
3.2.1 3D Backbone Networks(3DBN):
- 3DBN包括三个不同的组,分别是3D卷积神经网络(3D CNN)、PointNet/PointNet++网络和图神经网络(GNN)。
- 3D CNN适用于处理体素化点云等结构化的3D空间数据。由于3D卷积的计算负担大,研究者们设计了3D稀疏卷积(3D SpConv)和3D子流形稀疏卷积(3D Sub-SpConv)网络来加速计算。
- PointNet/PointNet++适用于从点云中提取特征,通过分割形式提取每个点的语义分割分数和全局上下文特征。
- GNN利用图神经网络通过沿边缘聚合特征来学习每个节点的特征。
3.2.2 2D Backbone Networks(2DBN):
- 2DBN是一种应用于2D空间的结构化数据(如BEV和FV距离图像)的全连接卷积网络(FCN),用于提取高维特征图。
- 2DBN包括FPN(特征金字塔网络)、U-Net、ResNet和VGG等不同架构。
- 2DBN的构建块通常包括2D卷积层、Batch Normalization和Relu。有些情况下也会使用2D Deformable Convolutions或2D Dilated Convolutions。
- 2D转置卷积用于上采样特征图。
不同的2DBN架构适用于不同的输入和输出特征图数量,例如FPN适合用于BEV架构,用于提取BEV特征图。而2DBN的选择也会受到LiDAR SDR形式的影响,例如将点云投影到BEV中后只能使用2DBN进行特征提取。
这些特征提取技术在3D目标检测中起到关键作用,能够从LiDAR数据中提取丰富的高维特征,为后续的目标检测提供输入。
3.3 核心目标检测模块是处理从特征提取模块中获取的高维特征的关键模块,它以3D BBox的形式提供目标类别、位置和大小的分类置信度分数和回归值。该模块分为两个阶段:检测器网络和预测细化。
3.3.1 检测器网络:
- 检测器网络有两种主要方法:基于锚点(Anchor-based)和无锚点(Anchor-free)。
- 基于锚点的检测器网络使用多个预定义大小的锚点来搜索高维特征图,输出目标的分类分数和位置回归值。
- 无锚点的检测器网络不使用预定义的锚点,而是利用来自特征提取模块的二进制标签信息来识别目标点或区域,然后对每个点或区域进行目标预测,包括类别分数和3D BBox。
- 基于锚点的网络包括RPN(Region Proposal Network)等架构,而基于无锚点的网络包括一些扩展自2D锚点无关目标检测器的方法。
3.3.2 预测细化:
- 预测细化是二阶段检测器的一个步骤,用于对检测器网络输出的3D BBox候选框进行采样和特征提取,以提高分类分数和细化位置、大小和方向的预测。
- 预测细化分为在3D空间和2D空间中运行的方法。
- 在3D空间中运行的预测细化可进一步分为基于点的、基于图形的和基于体素的方法。基于点的方法采样3D BBox候选框中的点,并通过PointNet或PointNet++架构进行特征提取。基于图形的方法包括R-GCN和C-GCN模块,用于提取局部和全局特征。基于体素的方法则将3D BBox候选框表示为体素,并应用体素化卷积等操作进行特征提取。
- 在2D空间中运行的预测细化方法通常是基于FCN架构,通过对BEV特征图进行进一步处理来提取细化的特征。
通过检测器网络和预测细化,核心目标检测模块能够提取目标的关键信息并生成准确的目标检测结果
数据集和评估指标
-
KITTI 数据集:由卡尔斯鲁厄理工学院和芝加哥丰田技术学院创建的数据集,包含图像、360度点云数据和定位数据。主要用于3D和BEV目标检测任务,使用mAP作为评估指标。
-
nuScenes 数据集:由nuTonomy创建的数据集,包含来自LiDAR、相机和雷达传感器的数据。数据集具有丰富的场景和天气条件,用于自动驾驶应用。评估指标包括NDS和mAP。
-
Waymo 开放数据集:是Waymo推出的最新的自动驾驶数据集,包含LiDAR和相机数据。数据集具有多样性,覆盖了不同城市和时间段的场景。评估指标包括3D和2D mAP。
这些数据集具有不同的属性和标注方式,但都包含了LiDAR数据和3D BBox标签。评估指标主要使用mAP来衡量目标检测的性能,但也引入了其他指标如AOS、NDS、ATE等来更全面地评估算法的准确性和鲁棒性。
这些数据集为基于LiDAR的3D目标检测器的训练和评估提供了大量的资源,可以帮助研究人员和工程师改进和比较不同的目标检测算法。
讨论
-
不同类型的目标检测器在性能和效率方面存在差异。基于体素的目标检测器具有较好的性能和较低的推理时间,但在遥远或被遮挡的情况下可能不够准确。基于柱状体的目标检测器在KITTI数据集上表现较好,但在nuScenes和Waymo数据集上的性能相对较差。投影到BEV或FV的目标检测器性能相对较低,而基于点云的和基于图的目标检测器具有一定的潜力。
-
不同的目标检测器使用不同的操作流程和架构。基于体素的目标检测器通常使用VFE模块提取特征,然后将数据转换为BEV并使用2DBN进行检测。基于柱状体的目标检测器使用点云的基于点的网络提取特征,并构建BEV特征图进行检测。投影到BEV或FV的目标检测器使用手工制作的特征构建BEV或FV特征图,并使用传统的2D目标检测架构进行检测。基于点云的和基于图的目标检测器使用PointNet++等网络提取特征,并通过3DBN或图神经网络进行检测。
-
目标检测器在不同数据集上的性能表现不同。基于体素的目标检测器在KITTI数据集上表现较好,Pillar-based方法在KITTI数据集中的“简单”和“中等”类别上表现良好,但在nuScenes和Waymo数据集上的性能相对较差。Point-based目标检测器在KITTI数据集中的“汽车”类别上表现良好,但推理时间较长。
-
注意力机制可以提高目标检测器的性能。使用局部或全局的自注意或注意力机制,可以提高3D目标检测器的整体性能。