APP下载

顾及地物邻域特征的LiDAR点云布料模拟滤波优化

2023-03-02宋晨洋高德涵庞家颖吴欣怡

激光与红外 2023年1期
关键词:布料高程滤波

宋晨洋,王 强,高德涵,庞家颖,吴欣怡,张 虎

(天津师范大学地理与环境科学学院,天津 300387)

1 引 言

激光雷达(Light Detection And Ranging,LiDAR)具有分辨率高、抗干扰能力强、探测范围广等特点,能够快速提取三维点云数据,因此被广泛应用于机载数据采集和车载驾驶中。点云滤波算法在自动驾驶数据的处理中起到非常重要的作用[1]。通过对LiDAR点云的地面点和非地面点进行分类,为回避障碍物、车辆避让以及保护行人等提供保障。当前主要的点云滤波算法有基于曲率的滤波算法、基于坡度拟合的滤波算法、基于渐进加密三角网的滤波算法[2-4]。该类算法主要基于点云数据的几何特征,通过简单计算以及设置阈值的方法实现滤波的效果,但传统几何算法原理简单,迭代运算高,耗时严重且忽略了地面的整体连续性。

2016年,张吴明等提出布料模拟滤波(Cloth Simulation Filter,CSF)算法[5],从物理模型角度出发,通过“质点-弹簧”模型模拟轻质布料下落并依附在反转点云上的状态,实现对地面点云的拟合以及点云滤波。布料模拟的结果受硬度参数及阈值参数影响,对于多元化地形,统一的硬度参数无法实现各种区域的最佳拟合效果。

在此基础上,出现了一系列基于传统滤波算法的CSF改进算法,以实现CSF算法在一定程度上的对多元地形的自适应。例如:基于高程归一化的布料模拟滤波算法[6],对LiDAR点云进行高程归一化处理,使点云的形态贴近于平地地形后进行CSF,以求达到最好的效果。又如:虚拟格网分类支持下的密集匹配点云布料模拟滤波[7],根据对地形的判别,选择不同的布料模拟参数,以实现CSF算法对全部地形最大程度的适应。这些革新都是对CSF之前的处理进行改进,并不能改善CSF本身带来的缺陷。CSF受限于距离阈值h,h是一个用来判别地面点及非地面点的距离参数。当点云与布料网格中模拟粒子的距离小于h时,该点被划分为地面点,反之被划分为非地面点,导致滤波分离后的地面点云在h阈值范围内总会存在被错误分为地面点的非地面点云。

据此,本文提出一种针对CSF这一缺陷的自动优化方法。在CSF算法的基础上,对其进行LiDAR点云分割、高程归一化以及第三势差滤波处理,以提升滤波精度和效果。

2 布料模拟滤波

布料模拟又称布料模型,是用在计算机图形学中用于模拟布料状态的一种模型,由具有质量的且彼此相互连接的粒子组成的网格模型。粒子具有质量但没有形状,两个粒子之间遵循“胡克定律”,这种关系使粒子与粒子彼此建立了“质点-弹簧”模型。CSF基于此模型[5],在点云反转后,仅考虑重力和结点间相互作用力的状态下,模拟轻质布料下落并依附在反转后的点云面上的一种算法。通过适当调整布料的硬度,在柔软度适当的情况下,布料依附地面点云而不粘连地面点云上的地物点,就可以将这块布料视为对地面点云的拟合,布料的形状即为该处点云的数字高程模型。基本原理如图1所示。

图1 布料模拟滤波示意图

3 布料模拟滤波优化方法

本文算法基于上述CSF的结果,进行如下步骤完成对CSF结果的优化。首先,在CSF算法的基础上,通过空间邻域连通区域标记法[8],实现对非地面点云类别的组件分割,获得一系列组件化的点云子集,针对每一个组件,为其划定一定缓冲区域,这些区域内所对应的地面点云就是需要精准优化的部分。其次,对该区域内的点云进行平面拟合,利用坡度坡向进而实现点云的高程归一化,得到各点云与地面点云平面的相对高程。最后,利用第三势差对高程归一化后的点云进行滤除,以达到对残余非地面点自适应滤除处理的效果,从而优化了CSF算法因距离阈值参数导致的误差与缺陷。算法流程如图2所示。

图2 本文滤波优化算法流程图

3.1 空间连通区域标记地物分离

考虑到CSF算法的点云残留问题只出现在有地物的区域,而不是整个测区的地面点云都存在这样的问题,因此可以只提取出含有地物的特定区域。对CSF算法结果的非地面点云进行点云聚类划分,将这些点云子集所对应的地面点云进行优化处理。本文利用空间邻域连通区域标记法,将点云划分为若干个不同组件,针对每一个组件向外设定一个缓冲区域,以这样的区域所对应的地面点云作为优化方法处理的对象。通过多次RANSAC随机拟合,选取法向量与水平地面垂直并且面积最大的平面作为该组件点云的拟合平面,平面具有坡向与坡度等信息。分类后的LiDAR点云效果如图3 所示。

图3 点云组件分割结果图

3.2 地物邻域坐标归一化

为了更好地实现基于第三势差滤波算法的优化,对点云进行坐标归一化处理,使每个组件的地面点云构成的平面坡向为0,坡度为0,即平面与水平地面平行。该过程可以看作是三维物体的空间变换,通过对三维点云进行两次关于旋转矩阵的变换运算实现,原理如图4所示,(a)代表点云以Z轴为旋转轴,逆时针旋转至坡向在XOY面上的投影与Y轴正方向同向的过程,(b)代表点云以内部一点为旋转点,在YOZ面上旋转至坡度为0的过程。

图4 高程归一化过程

基本步骤如下:

1)输入点云,建立点云存储容器Kpoint{PointXYZposition,intlable},遍历点云将各点的坐标信息存储在position中,记lable为1。

2)遍历容器中点云,对每个点云的坐标实现点云坡向归零,使用如下公式:

(1)

3)遍历容器中点云,对每个点云的坐标实现点云坡度归零,使用如下公式:

(2)

其中,θ为拟合平面的坡向值;α为拟合平面的坡度值;(x,y,z)为点云初始的坐标;(x′,y″,z′)为点云邻域坐标归一化后的结果,即为后续第三势差滤波处理提供输入。

如图5所示,按高程字段对点云进行颜色渲染,高程值由高到低表现为由浅灰色到深灰色的变化。高程归一化后的点云高程频率直方图只有一个最大波峰[9],说明该点云数据的地面点云高程基本相同,点云平面与水平面相平行。

图5 高程归一化前后的点云及频率分布直方图

3.3 第三势差辅助下的局部点云自动改正

第三势差[10]可用于检测地面点云平整度,对局部的点云进行自适应更正,公式如下:

(3)

其中,k为第三势差数值;N为点云总数;hi为第i点的高程;σ为样本标准差;μ为样本均值。样本的标准差与均值的计算公式分别如下所示:

(4)

(5)

一般认为,k>0时,地面上突出地物点云较多;k<0时,凹陷的地面点云较多;k值越靠近0,说明当前的地面点云高程分布越均匀。

根据LiDAR点云的地形情况设置k0,作为判定有无非地面点的依据。当k的绝对值大于k0时,滤除高程最高的点,并修改lable值为2,不断迭代算法直到k的绝对值小于等于k0,完成非地面点的滤除。

4 实验与分析

实验数据分别来自NPM3D官方网站的城市实况LiDAR点云数据集,Large-Scale Point Cloud Classification Benchmark网站的三维点云和部分城市街道点云,如图6所示。这些点云以城市道路实况为主,在三组数据中选取含有房屋、车辆、树木的区域作为测试数据。三组数据的部分LiDAR点云如图所示。本文利用CloudCompare软件平台对数据进行简单预处理,通过Visaul studio C++和PCL库,对经过CSF处理后的地面点云进行滤波优化处理。

图6 部分实验数据的LiDAR点云

4.1 实验过程及结果

首先对测试数据整体进行CSF算法处理。接下来对上述处理结果进行自动优化处理。

对CSF算法处理结果中的非地面点云进行地物分离。从每组数据集中选取其中1~2个具有代表性并且地物点云完整的点云子集作为测试样本,其中包含房屋、车辆、树木等,对数据进行编号,如表1所示。

表1 测试样本信息

由于不同参数的选择,存在点云组件中不只含有一个地物的情况。又因缓冲区的划定,可能导致处理范围内加入新的点云组件,实现对局部复杂区域的复合精准处理,如Sample21,Sample31,Sample51。

对样本数据进行地物邻域坐标归一化处理以及第三势差辅助下的局部点云改正处理,完成对CSF算法的自动优化处理。深灰色点云部分代表地面点云类别,浅灰色点云部分代表非地面点云类别。 UrbanⅠ和 UrbanⅡ的k0值设定为0.0005,UrbanⅢ的k0值设定为0.1。UrbanⅠ(如图7所示)样本在CSF算法中没有被滤除的车轮底部,以及贴近地面的地物如树根和灯杆底部,通过本文算法的处理基本被滤除,并且非地面点云部分被补充完整。UrbanⅡ样本的房屋底部、树根、围墙底部优化效果良好(如图8所示)。UrbanⅢ(如图9所示)样本残留在地面点云中的房屋底部点云基本可以滤除,车轮部分被较好提取出来。

图7 UrbanⅠ分类结果对比图

图8 UrbanⅡ分类结果及细节对比

图9 Urban Ⅲ分类结果及细节对比

4.2 实验分析与讨论

为验证本文优化算法的准确性,对结果进行定量分析,借鉴混淆矩阵对分类结果进行评判。如表2所示,a和d分别代表被正确分类的地面LiDAR点云数量和非地面点云数量,c和b分别代表两种类型的错分点云数量。将误差分为两类,命名为Ⅰ类误差和Ⅱ类误差。Ⅰ类误差代表被错误归类为非地面点云的地面点云的误差,Ⅱ类误差代表被错误分为地面点云的非地面点云的误差。e和f分别代表在CSF基础上进行滤波优化处理得到的地面点总数和非地面点总数。g和h分别代表真实点云中的地面点与非地面点的总数,n为点云的总数。对两类误差和总误差的计算[11]为:

表2 对误差结果的定义

Ⅰ类误差=b/(a+b)=b/g

Ⅱ类误差=c/(c+d)=c/h

总误差=(b+c)/(a+b+c+d)

=(b+c)/(g+h)

对本算法和CSF算法的结果数据进行分类精度的评判。CSF算法采用的参数如下:布料硬度类型选择flat,DEM网格大小为2 m,迭代次数为500次,距离阈值为0.5 m。误差结果如表3所示,表中总误差对比如图10所示。

表3 两种算法滤波结果误差对比

图10 各个样本经两种滤波算法后的总误差对比图

从上述结果对比图可以看出,在经过本文优化算法处理后的结果分类效果显著,能解决91 %的CSF算法缺陷问题。由于CSF算法的Ⅰ类误差反映的是地面点云被误分为非地面点云的程度,不是导致CSF缺陷的主要因素。本文算法和CSF算法相比,虽然同时存在Ⅰ类误差和Ⅱ类误差,但是降低了Ⅱ类误差和总误差。或者说,本文算法的设计目的就是用于改善CSF算法中普遍存在缺陷的Ⅱ类误差。个别分类误差体现为部分地面点云被分类至非地面点云类别,如Sample71车体前方的地面点云变为浅灰色。主要原因是这部分点云的地形与该区域内拟合出的平均地形差异较大,没有实现本身的高程归一化。因此,在分类时因不满足平均地形的条件而被误认为是非地面点。

5 总 结

布料模拟滤波算法的结果普遍存在缺陷,不能实现非地面点云与地面点云的彻底分离。本文提出的顾及地物邻域特征的LiDAR点云布料模拟滤波自动优化方法,利用空间连通区域标记与第三势差滤波,以点云分块的方式实现对布料模拟滤波算法结果的精准优化,有效改善了布料模拟滤波算法结果。后续将考虑引入深度学习技术,获得更高精度的滤波效果。

猜你喜欢

布料高程滤波
用布料拼图形
8848.86m珠峰新高程
烧结机布料器的改进优化
GPS高程拟合算法比较与分析
按约定付账
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
SDCORS高程代替等级水准测量的研究
回归支持向量机在区域高程异常拟合中的应用
高炉重量布料准确度的提高