APP下载

基于车载激光雷达点云数据的预处理研究

2024-03-08韩松魁于正林

关键词:布料激光雷达形态学

韩松魁,于正林

(长春理工大学 机电工程学院,长春 130022)

车载激光雷达系统在通过激光扫描仪采集过数据之后,将数据存储为LAS 格式或ASCII 格式[1]。LAS 已成为雷达数据的标准工业格式,提供一种开放式的可与不同商业硬件软件交互输出的一种格式标准,但存储较为复杂。ASCII 格式前置部分为文件头,提供辅助信息,后置部分记录点的三维坐标和强度值等。由于存在遮挡以及车载激光点云自身的特性,直接对车载激光雷达点云进行点云分类、点云分割、点云可视化、三维重建等显然是不可能且不合理的,因此在完成后续点云高阶操作时应先进行点云数据的预处理工作[2]。车载激光雷达点云数据的预处理包含激光雷达点云数据降采样、点云除噪、点云数据滤波以及点云配准等[3]。车载激光雷达点云数据的预处理是完成后续复杂点云操作的基础。基于车载激光雷达点云的街区分布特点以及车载激光雷达点云的特性,将基于机载激光雷达数据的布料模拟滤波方法应用在车载激光雷达数据中,并与数字形态学和坡度值滤波算法进行对比和误差分析,来验证此想法的优越性,最终使街道、树木、指示牌等点云信息与地面更好的分离。

1 点云数据预处理

1.1 点云下采样

由于车载激光雷达系统获取的点云数据十分庞大,且信息点十分密集,不利于点云数据的存储和处理,为了使对点云数据处理更便捷,就需要对这些点云数据进行降采样也称“下采样”[4]。点云降采样是在降低点云数据规模的同时又不丢点云数据的特征信息。点云降采样通常采用体素下采样、随机下采样和均匀下采样等。体素下采样是对原始点云数据创建一个三维的体素栅格,把点云装进体素网格内,通过每个网格内代表点的选取也出现了不同的体素下采样方法。图1 为原始树木点云数据,对原始点云数据进行降采样处理,图2 为体素下采样,图3为随机下采样,很明显减少了原始点云数量,但点云分布不均是随机下采样的缺点,图4 为均匀下采样,弥补了分布不均的情况,也极大地保留了原始点云的特征信息。

图1 原始点云

图2 体素下采样点云

图3 随机下采样点云

图4 均匀下采样点云

1.2 点云数据除噪

由于受到数据采集平台、周围环境和被测物体表面性质等因素的影响,点云模型中的点不可避免的存在噪声。而车载激光雷达数据采集过程中由于车的运动、视野遮挡和障碍物等因素的影响会使点云模型中不可避免的存在离群点。而这些噪声点和离群点会严重影响点云的局部特征计算精度,从而影响后续点云配准、点云分割、点云特征提取和三维重建等点云处理操作[5]。因此需要对噪声点和离群点进行剔除,常见的去噪操作主要由Statistical Outlier Removal滤波器和Radius Outlier Removal 滤波器等实现。

Statistical Outlier Removal 滤波器主要用于剔除离群点。激光扫描过程中通常会产生密度分布不均的点云,测量过程中由于误差也可能产生稀疏的离群点。Statistical Outlier Removal 滤波器的本质是通过统计输入点云区域内点的分布密度来判定是否属于离群点。如果某区域内的点云密度小于一定的密度阈值,则被判定为离群点,将其剔除。Radius Outlier Removal 滤波器主要是以半径为判别依据,能够剔除一些没有达到足够邻域点数量的点云。设置邻域点阈值为M,依次以当前点为中心,构建D为点云半径的球体。通过设置半径D和邻域点阈值M,计算当前球体中点的数量,数量小于M则将此点剔除,数量大于等于M则将此点保留。此算法比Statistical Outlier Removal 算法更为便捷,但需要手动输入半径D以及邻域点阈值M。

1.3 点云滤波

由于车载激光雷达系统起步略晚于机载激光雷达系统,因此机载激光雷达点云数据滤波的研究也以机载激光雷达点云滤波为参考。三维点云数据的滤波操作与二维图像数据滤波不同,二维图像的滤波是消除图像中的噪声与提取边缘特征信息。机载点云数据滤波是通过滤波操作区分出地面点和非地面点。车载激光雷达点云数据由于车载激光雷达扫描仪的特性,点云密度会比机载高很多。而由于扫描方式以及扫描角度等因素,车载激光雷达点云数据滤波在机载点云滤波的基础上,应完成地面点云、建筑物立面点云和其他地物点云的区分操作。目前常用的滤波算法有基于形态学的滤波算法、基于坡度值的滤波算法、基于不规则三角网的滤波算法、基于移动曲面滤波算法、基于分割段滤波算法、基于扫描线滤波算法和基于布料模拟(CSF)点云滤波算法等[6-7]。本文在基于车载激光雷达街景点云分布特点的基础上,提出将机载点云布料模拟滤波算法应用在街景场景下,对其他地物和地面点云进行分类,并与基于坡度值的滤波算法相对比,验证此想法的合理性。

1.3.1 数字形态学滤波

数字形态学算法其中涉及膨胀和腐蚀操作、闭合运算与开运算。前两种操作主要是为了对图形中指定物体进行大小和尺寸的编辑。腐蚀操作和膨胀操作是用来控制指定区域内的像素灰度的最小和最大数值。这两种操作大致可以分为闭运算和开运算两种运算,闭运算是先膨胀操作,再腐蚀操作,开运算与之相反。数字形态学点云滤波的核心是设定窗口的大小与尺寸,若窗口尺寸设定过小,则会导致大部分地面以及尺寸较大的地物或建筑物被当做地面点保留,如果窗口尺寸设置过大则会导致大量地面点被当做非地面进行过滤,从而导致地面点云数据缺失,因此窗口大小的设置对数字形态学滤波算法至关重要,该算法的过程为:

(1)建立最低点。对整体点云数据进行分析与处理,构建一个规则化的格网,并选取每个格网中数据的最低点,建立为地面点。

(2)腐蚀运算。选取一个点作为滤波的中心点,提取窗口内高程值最小的数值为腐蚀后的数值。

(3)膨胀运算。将每一个规则化的格网遍历,重复步骤(1)~步骤(2)两个过程,膨胀后的数值就是窗口内高程值最高的数值。

(4)分离操作。进行开运算,将开运算后结果的高程值与运算前的高程值相对比,若高于此阈值,则判定为非地面点,改变窗口尺寸与大小,直至遍历所有点云。

1.3.2 坡度值滤波

基于坡度值的点云滤波,用坡度差值信息将非地面点和地面点加以区分[8]。随后在2001 年,Sithole[9]对基于坡度值滤波加以改进,提出一种自适应坡度滤波计算方法。在此前提出理论的基础上,Sithole 等人[10]于2005 年提出了基于扫描线来计算坡度和斜率的方法,为学者们研究坡度滤波算法提供了强大的理论基础。

基于坡度值的点云滤波算法是通过计算坡度差值来分离地面点和非地面点,从而为地物点云提取奠定基础。该算法的关键在于利用坡度之间的差值来检测扫描线剖面内的相邻点间分布关系。起始点为每条扫描线上左起第一个点,依次对扫描线内所有点进行处理,将扫描线分割为许多小线段。相邻两点组成的小线段坡度值μ的计算公式为:

其中:

式中,(Xn,Yn,Zn)和(Xn-1,Yn-1,Zn-1)为相邻两点的三维坐标,因此可得出相邻两点坡度值的公式为:

通过上述公式即可求出两点间的坡度值,因此对原始点云进行坡度值滤波操作时,还需根据不同的地形特征选择不同邻域大小与坡度阈值,来分离出地面与非地面点。对于坡度阈值较大的地形应设置较小的邻域尺度和较大的坡度阈值,对于地形变化较为平缓的区域应设置较小的坡度和较大的邻域,在保证其余参数不变的情况下实现坡度阈值和邻域尺度自适应的坡度滤波将会有效地提高坡度滤波的准确度。

1.3.3 布料模拟滤波

传统滤波算法大多以点云高程值以及坡度等因素来对地面点云数据与非地面点云数据加以区分,而基于布料模拟点云滤波算法(Cloth Simulation Filtering,CSF)则是以一个全新的角度来对点云数据进行滤波[11]。该算法采用3D 计算机中的布料图形模拟算法,为一种简单的模拟物理过程。将一块布料放在一个地形上面,然后这块布由于重力的作用开始下降,假设该布料足够柔软可以贴附在地形表面上,最终成型的布料将被制作成数字表面模型(Digital Surface Model,DSM),如果先将地形颠倒,并定义布料的刚度,那么最终的布料形状就是数字地面模型。图5 为基于布料模拟滤波过程图,下方蓝色图形为原始测量值,对其进行翻转,上方为翻转后的点云,红色的虚线代表布料,可以反映地形的起伏情况。

图5 布料模拟滤波算法模拟图

布料模拟算法是计算机图形学中的一个方向,在进行模拟过程中可参考Mass-Spring 模型去解决和分析问题。将布料分割为具有相同大小且质量相等的质点,质点间的连线组成了粒子格网,每个质点都可以储存位置信息、速度信息和力等信息,该格网模型如图6 所示。网格上每个点没有大小,但被指定为恒定质量,质点之间的连线被称为“虚拟弹簧”,粒子在三维空间中的位置确定了布料的位置和形状。质点之间的运动遵循牛顿第二定律,位置和力之间的关系如下:

图6 格网模型图

式中,X为粒子在时间为t时的位置;Fext(X,t)代表外力,由质子运动方向上受到障碍物产生的碰撞力和重力决定;Fint(X,t)代表粒子在X位置且时间为t时内联产生的内力。由于随着时间的变化,内力与外力均发生改变,所以对其进行数值积分来实现传统的布料模拟。

为将布料模拟算法应用在点云数据滤波中,对传统布料模拟算法进行了一些修改。首先将粒子的运动方向定为垂直方向,因此可以通过粒子和地形的高度值相比较来实现碰撞检测。然后当粒子落在地面时,即“正确位置”,则设置此粒子为不可移动粒子。具体过程如图7 所示,图7(a)为初始状态,假设布料放在已翻转点云上方,黑色点为翻转后点云待测表面,红色点为可移动粒子;图7(b)为过程中计算重力影响下粒子所发生的位移,所以粒子可能会出现在黑色点下方,粉色点代表可移动粒子的旧位置;图7(c)过程检查可移动粒子是否到达地面点位置,若到达则设置为不可移动粒子,用黄色粒子表示;图7(d)过程考虑到内部驱动力的作用,对现有可移动粒子根据临近粒子间的力来产生新的位移。

图7 布料模拟滤波算法流程图

综上所述,布料模拟滤波算法的主要步骤为:

(1)使用一些第三方软件(如cloudcompare)自动或手动处理离群值。

(2)将原始车载激光雷达点云数据进行反转。

(3)初始化网格。根据定义的网格分辨率确定粒子数,布的初始位置通常设置在最高点的上方。

(4)将所有的点和网格粒子投影到同一个水平面上,并在这个平面上找到每个网格粒子的对应点,记为“CP”。然后记录投影前的高度,记为“IHV”。

(5)对于每个网格粒子,计算该粒子受重力影响移动时的位置,并将该高度与IHV 进行比较。如果粒子高度小于或等于IHV,则将该粒子放置在IHV 高度处,设置为“不可移动”。

(6)对于每个网格质点,计算受内力影响的位移。

(7)重复步骤(5)~步骤(6),直至所有粒子的最大高度变化足够小或超过指定的迭代次数时,停止模拟操作。

(8)计算激光雷达点云与格网粒子间的高度差异。

(9)区分地面点与非地面点。如果激光雷达点云与模拟粒子间的距离小于或等于预先设置的阈值时,则将此类点归为地面点。如果大于预先设定的阈值,则将此类点判定为非地面点。

由于布料模拟算法是基于机载激光雷达数据对建筑物顶面以及地面点滤波操作的,虽对建筑物立面点云与地面点云滤波操作处理不是很理想,但对于地面与非建筑物的其他地物等进行布料模拟滤波操作效果十分显著。

2 实验结果与分析

基于以上算法的原理,现对原始车载激光雷达点云数据(图8)进行滤波实验,图9、图10 和图11 分别为基于形态学点云滤波、基于坡度值滤波和基于布料模拟点云数据滤波结果。

图8 截取后街景点云

图9 基于形态学的街景点云滤波

图10 基于坡度值滤波

图11 基于布料模拟滤波

由实验结果很明显看出,基于坡度值滤波在图10 中红框圈中部分,局部坡度值变换较为平缓时,基于坡度值滤波并没有把地面点与树木根部进行有效分开,因此不适合对其他地物与地面点进行分类,反而对建筑物立面进行滤波操作有良好效果。经手工筛选后,此街景中地面点为95 359 个,非地面点为83 494 个,将基于形态学滤波与布料模拟滤波相比较。基于形态学滤波交叉表如表1 所示。

表1 数字形态学滤波交叉表

由表1 以及图10 可以明显看出,基于形态学滤波的Ⅱ类误差较大,较为明显的把非地面点判定为地面点。

基于布料模拟滤波的交叉表如表2 所示。

表2 布料模拟滤波交叉表

由表2 可以看出布料模拟滤波算法比数字形态学滤波算法的Ⅱ类误差小很多,虽然Ⅰ类误差要比数字形态学误差大,但Ⅱ类误差是将非地面点误认为地面点,影响点云滤波后归一化的结果,而且布料模拟滤波要比形态学滤波参数设置更简单一些,因此布料模拟滤波算法要优于其余两种算法。

故采用布料模拟滤波算法对原始街景点云数据进行滤波,通过布料模拟数据滤波将原始车载激光雷达街景点云分为车载激光雷达地面点云和车载激光雷达地物点云,如图12 和图13所示。

图12 布料模拟滤波后地物点云

图13 布料模拟滤波后地面点云

3 结论

(1)以真实采集的车载激光雷达街景点云数据为研究对象,将基于机载的布料模拟滤波算法应用于车载激光雷达点云数据上,由滤波结果对比可知,Ⅱ类误差远小于形态学与坡度值滤波算法,更有利于滤波后点云归一化,因此证明了本文所提出算法的适用性与合理性。

(2)统计实验数据,总结为表格展现,布料模拟算法的两类误差率均控制在10%以内,说明在该场景下,布料模拟滤波具有较高的精度。

(3)从点云滤波的参数设置上以及所花时间上来看,布料模拟滤波要更优于前两种算法,尤其是形态学滤波的参数设置较为麻烦。

猜你喜欢

布料激光雷达形态学
手持激光雷达应用解决方案
用布料拼图形
法雷奥第二代SCALA?激光雷达
烧结机布料器的改进优化
基于激光雷达通信的地面特征识别技术
基于激光雷达的多旋翼无人机室内定位与避障研究
医学微观形态学在教学改革中的应用分析
按约定付账
数学形态学滤波器在转子失衡识别中的应用
高炉重量布料准确度的提高