一种车载LiDAR 地面点云分割方法

2022-05-08 07:15陈有辉蒋祖坚廖尉华覃高峰
现代工业经济和信息化 2022年3期
关键词:三角网面片体素

张 韬,陈有辉,蒋祖坚,廖尉华,覃高峰

(上汽通用五菱汽车股份有限公司,广西 柳州 545007)

引言

车载激光扫描测量在近年来不断发展,并被用于需要获取高精度的三维点云信息的众多场景中,适合高效准确的获取障碍物和建筑物信息,因此也被应用于厂区的无人物流车上进行环境感知。

点云数据的处理,能有效减少车载系统的计算压力,地面点云的分割能有效降低目标的误识别和控制模块的误制动。地面点云分割的方法通常是基于几何特性、基于机器学习或基于深度学习,但是机器学习和深度学习需要有效获得较多数量的、多场景下的、较为精确的训练数据集,且考虑到车载系统的较低算力和所需的实时性,所以本文使用了点云打在地面与物体上时存在较为明显且不同的几何特征来进行滤波。

1 分割方法

本文提出的地面点云分割方法主要分为体素网格降采样、法向量粗分割[1]和TIN 渐进加密方法三个部分。首先对车载激光雷达获取的原始点云,进行栅格化处理,减少点云的数量;然后依靠点云打在地面和物体上时的法向量的差异,对地面点云进行初步的滤波;最后根据三角面片与各点的角度和距离对错选的点进一步分割,最终得到将地面点剔除的障碍物点云集合。

1.1 体素网格降采样

车载激光雷达采集的点云数据,会比较密集且复杂,影响后续的点云分割效率,采用体素网格进行滤波,可以保留点云的几何结构,同时实现大幅度减少电云数量的目的,最终如图1 所示,采用各个体素的重心近似表示体素内的所有点,减轻后续计算负荷。

图1 点云栅格化

体素网格降采样的具体操作如下:

1)由点云数据集,计算三个坐标轴上的最大值和最小值;

2)使用最大值和最小值计算最小的包围盒边长lx、ly、lz,计算公式如式(1)所示:

3)定义体素栅格的边长side,将三个坐标轴均等划分,分别为p、q、m 份,即栅格的总个数为sum,计算公式如式(2)、式(3)所示:

4)给栅格编号,记为i、j、k,编号得到计算如式(4)所示:

5)精简点云数据,计算栅格的重心,栅格内所有的点都以该点表示;如果重心点不存在,则使用离重心最近的点,计算重心如式(5)所示:

式中:n 为体素小栅格中的数据点个数,Pp为数据点的坐标。

1.2 法向量粗分割

点云打在地面与物体上时,会存在较为明显且不同的几何特征,而且根据几何特征实现地面点云分割计算量相对较小,适合于车载系统。

单独的点无法构成平面,也没法求取它的法向量,需要设置邻域并选择附近的点计算[2]。太小的邻域包含的点少,受噪声点影响严重;太大的邻域会将本不在同一平面的点包含在内,影响平面的拟合;因此需要选择适当的邻域求取法向量,具体步骤如下:

1)对于任意一点Pi,求邻域中该点与其他任意点Pj的距离,距离公式为式(6):

2)取出距离Pi最近的两个点Pj、Pk,且三点不能共线;

3)根据式(7)计算三点拟合得到的局部平面的法向量,a 和b 表示向量;

4)根据式(8)单位化Pi点的法向量:

5)设置角度阈值,如果法向量与(0,0,1)或(0,0,-1)的角度差小于阈值,则该点为地面点。

1.3 TIN 渐进加密方法

使用法向量能够简单且快速的分割一些平面,但是也会将人行道和车顶等法向量为(0,0,1)或(0,0,-1)的物体选为地面点,因此需要使用TIN 渐进加密方法对地面点云再分割。

传统TIN 渐进加密方法[3]的主要思路是选择种子点构建一个初始的稀疏的三角面片,随后将剩余的点不断加入考虑是否要更新三角面片来进行加密。主要分为剔除相差、选择种子点构建初始TIN 和迭代加密三个部分,根据如图2 所示的流程图,依次执行以下步骤。

图2 TIN 渐进加密方法流程图

1.3.1 剔除相差

经过体素网格降采样的车载LiDAR 获取的点云信息包含粗差,影响滤波效果。三角网对于位置低的粗差点的捕捉十分敏锐,会将位置最低的点选为种子点,加入最开始构建的TIN 中,将地面点误识别为障碍物点,影响激光雷达点云数据对地形信息的保留。

1.3.2 选择种子点构建初始TIN

根据点云数据的边界,确定右下角和左上角的点坐标,从而确定数据区域的长length 和宽width;由设置的最大障碍物尺寸size,将整个平面分成nrow行ncol列的方格网,计算方格网的行数nrow和列数ncol,计算公式如式(9)所示:

选择每个格网中4 个角和z 值最小的点作为种子点,4 个角的点的高程等于离他们最近的种子点的高程。通过创建初始三角网,将点云分为种子点集和备选点集。

1.3.3 迭代加密

对剩余的备选点进行判断,迭代刷新TIN,获取更准确的三角网,直到达到最大迭代次数或备选点为0。

1)计算备选点Pa所处的三角面片和该点在三角面片中的位置;

2)计算Pa和三角面片的角度θa和距离da,如果θa和距离da都小于相应设置的阈值,则将Pa确定为地面点;否则,进入步骤3)

3)计算三角面片的倾斜角度,如果角度小于阈值,则进入步骤4);

4)根据Pa的坐标和三角面片的顶点Pc,计算Pa的镜像点Pb的坐标,计算公式如式(10)所示:

5)计算Pb和三角面片间的角度θb和间隔db,假如θb和db都小于各自的阈值,则Pb为地面点,进入步骤6);反之则该Pa确定为非地面点,回到步骤1),重复步骤;

6)将确定为地面点的点加到三角网中,更新迭代三角网,回到步骤1),重复步骤,直到达到最大迭代次数或备选点为0。

2 实验分析

2.1 实验数据

本文实验数据由无人物流车上的Velodyne 16线激光雷达提供,应用该车载激光雷达扫描厂区内无人物流线路,获得包括道路、行人、围栏、路灯、建筑物和成品车等在内的点云信息。为验证本文方法的有效性,将采集得到的点云数据回灌到算法模型中,并使用点云PCL 库自制的GUI 实现点云的可视化。

2.2 实验结果

利用自主开发的C++程序实现本文算法,对采集到的点云数据进行地面点云分割,使用C++程序和pcl 库及vtk 库构建的GUI 实现点云数据的可视化。如图3 所示,实验场景为厂内无人物流路线的其中一段上坡路段,路旁有围栏,道中坡上摆放了一个锥桶;如图4 所示展示了激光雷达点云打到障碍物与地面上的反射点,可以看到能清晰的识别围栏和锥桶,但锥桶周围存在大量地面点;经过地面点云分割后,如图5 所示,成功将地面点剔除,虽然也将锥桶底部的少量点云剔除,但保留了锥桶的形状,地面分割较为成功。

图3 地面点云分割实验场景

图4 地面点云分割前的点云

图5 地面点云分割后的点云

3 结语

本文设计了一种适合于车载激光雷达点云数据的地面点云分割方法,在栅格化降采样的基础上,联合使用了法向量判别和不规则三角网渐进加密的办法,完成了地面点云的分割过滤。

实车道路采集的点云数据回灌表明,该办法能较好地实现地面点云剔除的目标,且保证了障碍物点云数据的精度,保留了障碍物的形状特征,同时计算量不大,较好地适配车载系统的需求。

猜你喜欢
三角网面片体素
瘦体素决定肥瘦
Dividing cubes算法在数控仿真中的应用
三维模型有向三角面片链码压缩方法
结合Delaunay三角网的自适应多尺度图像重叠域配准方法
初次来压期间不同顶板对工作面片帮影响研究
基于体素格尺度不变特征变换的快速点云配准方法
针对路面建模的Delaunay三角网格分治算法
甜面片里的人生
青海尕面片
采用传统测量技术进行复杂立交桥工程测量的方法和措施