LIDAR 感知任务

使用 LIDAR 的感知任务可以分为两种:

  • 低层次感知:检测障碍物,得到障碍物位置、范围和运动状态。
  • 高层次感知:在检测基础上进行障碍物分类或目标识别。

检测到障碍物后,可以得到其位置、方向、尺寸等信息,一般用 bbox 或多边形来描述障碍物。

障碍物检测

Pipeline

  1. 如果是多传感器系统,需要对 LiDAR 点云做时间同步,并对多个传感器进行联合标定。
  2. 由于 LiDAR 采样的 pc 数据量大,噪声也多,因此需要对 pc 进行预处理,以减少冗余数据和噪声。
  3. 输入 pc 的每个 frame 中都包含大量地面点,但地面点通常不是需要检测的障碍物。因此要分割出地面 pc,这一步是整个流程中的重点。
LiDAR obstacle detection pipeline
  1. 采用无监督聚类算法对非地面障碍物点进行聚类,会得到多个 cluster,每个 cluster 通常代表一个障碍物。
  2. 为每个 cluster 进行 bbox 拟合,计算障碍物的 L / W / H、中心点等属性。
  3. 使用 Kalman Filter(KF)等方法对障碍物进行跟踪。

预处理

预处理的目的:

  • 点云数据密度不规则,需要平滑。
  • 遮挡等问题可能产生离群点,需要进行离群点去除。
  • 点云数据量大,需要下采样以减少数据量。
  • 去除 LiDAR 噪声数据。

滤波方法

  • 直通滤波:获取 ROI 范围内的 pc 数据。
  • 体素网格:平滑点云密度,并降低点云数量。
  • 统计滤波:剔除离群散点。

ROI 区域

ROI 区域一般指路面、路口等可行驶区域。可以使用高精地图、路沿检测或可行驶区域估计等方法约束 ROI。

LiDAR 可以检测马路边缘,从而剔除道路以外的点。下面三种方法可以结合使用:

  1. 栅格化后,根据网格内点云的高度差判断路沿点。
  2. 对同一条扫描线上的点集计算曲率变化,从而判断路沿点。
  3. 根据点云法向量变化求取路沿点。

地面分割传统方法

基于栅格

将 pc 投影到栅格中,按照扫描线遍历栅格,根据栅格内的密度、平均高度、高度方差、最大高度差和直方图等信息进行分析,判断对应栅格是障碍物还是地面。

栅格划分的本质,是将非结构化且稀疏的 pc 进行结构化和信息压缩处理。栅格大小的选择会直接影响分割准确率。

基于栅格

基于分类器

在栅格法基础上,为消除使用单一特征的局限,可以使用基于分类器的方法。即提取更多特征,例如局部法向量、高度差、密度等,然后使用分类器进行训练,根据特征分类判断地面点和非地面点。不过这种方法耗时依然较长。

基于地面建模

采用 Plane Fitting、Line Extraction 和高斯过程回归(Gaussian Process Regression,GPR)等方法,对地面进行建模,再将不符合地面模型的点划分为非地面点。

基于相邻点和局部特征

这类方法主要依靠 pc 邻近点和局部几何特征之间的关系,对周围地形进行分类。

方法包括基于面元 mesh 的区域生长,以及基于通道和范围图像的方法。这类方法可以判断地面点集,但部分方法实时性较差。

基于高阶推理

  • 马尔可夫随机场 MRF:MRF 模型可视为一个无向图,其中 Node 代表随机变量,Edge 代表 Node Pair 之间的局部关系。在 LiDAR 数据中,pc 的点可以作为图的 Node,而 Edge 可以用高度值或邻接关系来建模。不过该算法实时性较差。
  • 条件随机场 CRF:CRF 是与 MRF 相关的判别式无向图模型。它可以通过观测信息和节点关系共同建模地面/非地面标签,但计算复杂度和实时性取决于具体实现。

点云深度学习方法

点云深度学习方法

直接法

直接法在 pc 上直接进行 3D CNN 或点云网络处理。由于 pc 稀疏,并且 3D CNN 需要在 3 个维度上进行运算,检测和定位通常比较耗时。代表方法包括 3D FCN 和 Vote3Deep。

投影法

投影法将 pc 投影到某个平面上,比如鸟瞰图(BEV)或前视图(FV),然后进行特征提取和检测。BEV 对车辆等大型目标表示效果较好,但对行人等小目标的检测效果可能受分辨率和遮挡影响。

深度学习网络

针对 pc 的特点,可以使用特定网络结构,比如 PointNet、VoxelNet、GndNet 等。这些网络可以从 pc 中学习有效的几何空间表征。

LIDAR 深度学习网络

障碍物聚类

欧式聚类

点与点之间的距离在一定阈值内,就认为这些点属于同一个类别。

密度聚类

从某个核心点出发,不断向密度可达的区域扩张,从而得到一个包含核心点和边界点的最大化区域,区域中任意两点密度相连。

超体聚类

超体聚类类似特殊的区域增长算法,其目的并不是直接分割出特定物体,而是对点云进行过分割,将场景点云划分成很多小块,并研究每个小块之间的关系。由于点云本身不存在天然的规则邻接关系,聚类之前通常需要通过八叉树等结构对点云进行划分,获得不同点团之间的邻接关系,例如面邻接、线邻接、点邻接。

BBox 拟合

常见拟合方法有三种:

  • Axis-aligned bbox:轴对齐包围盒,不带旋转角,计算简单,但对倾斜目标不够紧凑。
  • Oriented bbox:带旋转角的有向包围盒,可以更贴合车辆等具有方向的障碍物。
  • Convex hull:点云凸包,表示包含所有点的最小凸集,可以描述更自由的障碍物轮廓。
BBox 拟合

跟踪

跟踪是指基于障碍物外接框的轮廓特征、位置特征和运动特征,对连续两帧或多帧的障碍物信息进行数据关联,估计运动物体的运动状态,包括运动方向、速度大小、加速度、角速度、运动轨迹等信息。


参考文章

[1] 三维激光雷达在无人车环境感知中的应用研究

[2] 激光雷达障碍物检测综述

[3] A Survey on Ground Segmentation Methods for Automotive LiDAR Sensors