LIDAR感知任务
使用LIDAR的感知任务可以分为两种:
- 低层次感知:仅检测障碍物。
- 高层次感知:对障碍分类,是目标识别。
检测到障碍物后,得到其位置,方向,尺寸等信息,一般用bbox或多边形来描述障碍物。
障碍物检测
Pipeline
- 如果是多传感器,需要对Lidar的点云 (pc) 做时间同步,并对多个传感器进行联合标定。
- 由于Lidar采样的 pc 数据量大,噪声也多,因此需要对 pc 进行预处理,以实现减少冗余数据和噪声的目的。
- 输入的 pc 的每个 frame 中,都包含大量地面点,但是地面点不需要被检测。因此要分割出地面 pc。这步是整个流程中的重点。
- 采用无监督聚类算法为地面障碍物进行聚类,会得到多个 cluster,每个 cluster 代表一个障碍物。
- 为每个 cluster 进行bbox拟合,计算障碍物的 L/W/H 和中心点等属性。
- 使用 Kalman Filter (KF) 为障碍物进行跟踪。
预处理
预处理的目的:
- 点云数据密度不规则,需要平滑。
- 遮挡等问题需要进行离群点去除。
- 点云数据量大,下采样以减少数据量。
- 去除Lidar噪声数据。
滤波方法
- 直通滤波:获取 ROI 的 pc 数据。
- 体素网络:平滑点云密度。
- 统计滤波:统计滤波,剔除离群的散点。
ROI区域
一般指路面和路口等可行驶区域。可以使用高精地图或路沿检测的方法。
Lidar可以检测马路边缘,拟合三次曲线方程,从而剔除道路以外的点。下面三种方法可以结合使用:
- 栅格化后根据网格内点云的高度差判断路沿点
- 对同一条扫描线上的点集,计算曲率变化,从而判断路沿点
- 根据点云法向量的变化,求取路沿点
地面分割传统方法
基于栅格
将 pc 投影到栅格,按照扫描线遍历栅格,根据栅格内的密度、平均高度、高度方差、最大高度差和直方图等信息进行聚类分析,判断对应的栅格是障碍物or地面。
栅格划分的本质是将非结构化且稀疏的 pc 进行结构化和信息压缩处理。栅格大小的选择会直接影响到分割准确率。
基于分类器
在栅格法的基础上,为消除使用单一特征的局限,可以使用基于分类器的方法,即提取更多特征(如局部法向量),使用分类器进行训练,根据其提取的特征分类判断地面点和非地面点。不过这种方法耗时依然过长。
基于地面建模
采用 Plane Fitting 、 Line Extraction 和 高斯过程回归 (Gaussian Process Regression ,GPR) 等方法。
基于相邻点和局部特征
主要是依靠 pc 临近点和局部几何特征之间的关系,从而对周围地形进行分类。
方法有基于面元 mesh 进行区域生长 (实时性差),以及基于通道和范围图像的方法,判断地面点集。
基于高阶推理
- 马尔可夫随机场 MRF:MRF 模型可视为一个无向图,其中 Node 代表随机变量,Edge 代表 Node Pair 之间所需的局部影响。在Lidar数据中,pc 的点就是图的 Node,而 Edge 可以用高度值来建模。不过该算法实时性较差。
- 条件随机场 CRF:CRF 是 MRF 的一个子集。通过一个特定的观测链来标记 Node 序列,能提高捕捉 Node 之间长距离依赖关系的能力。该算法具有一定的实时性(作者说的)?
地面分割深度学习方法
直接法
在 pc 上直接进行 3D CNN 进行物体检测。由于 pc 稀疏,并且 3D CNN 需要在3个维度上进行运算,导致检测和定位非常耗时。方法有 3D FCN 和 Vote3Deep
投影法
将 pc 投影到某个平面上,比如 鸟瞰图 (BEV) 或者 前视图 (FV)。然后进行特征提取和检测。BEV 表示车辆等大型目标效果较好,但是对行人等检测效果较差。
深度学习网络
针对 pc 的特点,使用特定的网络结构,比如 PointNet 、VoxelNet、GndNet 等。这些网络可以从 pc 中高效地学习有效的几何空间表征。
障碍物聚类
欧式聚类
点与点之间的距离在一定阈值内就认为这些点属于一个类别。
密度聚类
从某个核心点出发,不断向密度可达的区域扩张,从而得到一个包含核心点和边界点的最大化区域,区域中任意两点密度相连。
超体聚类
类似于特殊的区域增长算法,其目的并不是分割出特定物体,而是对点云实施过分割,将场景点云化成很多小块,并研究每个小块之间的关系。但是由于点云不存在邻接关系,聚类之前必须以八叉树对点云进行划分,获得不同点团之间的邻接关系,如面邻接,线邻接,点邻接。
BBox拟合
三种拟合方法:
- 外接矩形:针对一个凸多边形的顶点,求出外接该多边形且面积最小的矩形。
- 最小外接框:带旋转角的最小外接矩形。
- 点云凸包:包含所有点的最小凸集。
跟踪
跟踪是指基于障碍物外接框的轮廓特征,对连续两帧的障碍物信息进行数据关联,估计运动物体的运动状态,包括运动方向、速度大小、加速度、角速度、运动轨迹等信息。
参考文章
[1] 张银, et al. "三维激光雷达在无人车环境感知中的应用研究." Laser & Optoelectronics Progress 56.13 (2019): 130001.
[2] https://zhuanlan.zhihu.com/p/349107169
[3] Gomes, Tiago, et al. "A survey on ground segmentation methods for automotive LiDAR sensors." Sensors 23.2 (2023): 601.