一种改进的自适应阈值分块曲面滤波方法

2021-08-11 04:23欧海军冯腾飞沈月千
科学技术与工程 2021年18期
关键词:分块曲面高程

欧海军, 冯腾飞, 沈月千, 张 坚

(1.广州市城市规划勘测设计研究院, 广州 510053; 2.同济大学测绘与地理信息学院, 上海 200092;3.河海大学地球科学与工程学院, 南京 211100)

机载激光雷达系统(light detection and ranging, LiDAR)是一种以飞机为载体的集激光测距、全球定位系统(GPS)和惯性导航系统(INS)三种技术优点于一体的系统,通过三种技术的结合,能够精准地测定激光束落在激光脚点的三维空间坐标,从而获得地物的三维坐标点云数据[1]。但与其他数据类型不同,由于LiDAR点云数据分布反映着地物表面的空间变化,具有数据量大且分布较为离散等特点,因此对点云进行后续处理前,必须率先进行三维点云数据滤波,以便实现更快速、高效的点云分类及地物提取[2]。

滤波算法性能的提升及其在不同地形的适用性一直备受中外学者的关注。Sithole等[3]提出了基于地形坡度的滤波算法,该算法通过对比目标点与其临近点间的高差值与给定阈值之间的大小关系,判断目标点是否为地面点,但该方法地形坡度阈值设置为30%,并不适用于起伏较大的区域;Kraus等[4]提出了迭代最小二乘线性内插的滤波算法,利用原始点云与最小二乘内插的拟合高程求差,并根据差值是否服从正态分布来判断待定点是否为非地面点,但该算法只适用于地形起伏不大的机载点云区域,对于地形复杂的区域,拟合平面会随着地面的起伏变化而变化,进而造成较差的滤波效果,且数据插值固有的误差会增加滤波过程的不确定性;Lindenmayer等[5]提出了基于图像处理方式的数学形态学滤波算法,该方法在滤波区域选择一个固定大小的窗口,并利用窗口中其他点与预先运用数学形态运算找到的最低点求差,通过与设定阈值的比较进行判断,若差值小于阈值则为地面点,该方法也采用了固定阈值的方式,增加了滤波困难;张小红[6]和刘经南等[7]均基于激光脚点在一定程度上能够反映地形表面的空间起伏变化这一原理提出了移动曲面拟合滤波算法,该方法利用曲面拟合的高程与实际点云数据的高差与固定的阈值比较,从而判别地面点,但该方法不仅需要寻找种子区域,还采用了固定阈值,对滤波效果造成较大影响。此外,李鹏程等[8]基于高于地面3 m的点为非地面点,采用区块索引机制将整个点云区域分成很多区块,提出基于距离图像的分块曲面滤波方法,该方法很大程度上依赖于区块大小的确定,而区块的确定需要人工干预,大大增加了工作量。

对比现有的LiDAR点云数据滤波方法可知大部分方法存在一定的共同点及局限性。首先,一些算法需要在滤波之前对数据进行插值处理,以此来减少存储空间,提高运算速度,但在数据内插的过程中会破坏点云数据本身存在的内在性质以及点云之间的邻近关系,最终使得滤波的效果并不佳[9-12];其次,部分算法需要选择含地面点的种子区域,但选取方法缺乏科学的验证,可能会造成由于种子区域选取不当带来的滤波精度损失;此外,绝大部分的滤波都需要设定滤波阈值,但固定且单一的阈值使算法很大程度上不能自适应地形的变化,造成较差的滤波效果。基于上述分析,提出一种改进的自适应阈值分块滤波算法。一方面,对原始点云进行不断的分块,降低计算时内存的占用空间,加快算法的计算速度;另一方面,对分块点云进行既定坡度平面拟合,对超出自适应滤波阈值的点进行分类,并不断进行计算,最终达到地面点与非地面点分离的效果。

1 算法原理

1.1 点云去噪

点云数据在获取的过程中会产生噪声,这些噪声会严重干扰点云滤波的过程,甚至可能造成点云数据滤波的失败。因此点云滤波之前,必须对点云数据进行去噪处理。为了更好地得到无噪声数据,采用“两步走”的方式进行去噪,首先利用高斯滤波对点云进行处理:根据点云中所有点的距离应构成高斯分布这一特性,计算每个点与其最邻近k个点的平均距离,并取其平均值与方差作为参考值,进而根据“3倍中误差准则”[13]剔除异常点。此外,由于试验数据为无序点云,高斯滤波去噪可能存在剔除空洞,因此利用K-D(K-dimensional)树去噪的方式进行二次去噪:对已经进行粗去噪的点云数据构建K-D树,并随机取点求平均高差d,删除所有大于2d的点,实现点云去噪,为点云滤波提供更精确的基础点云数据。

1.2 传统分块曲面滤波算法

在传统分块曲面滤波算法中,通常将原始点云分块后,对每一块点云进行滤波,从而分离地面点与非地面点,其基本步骤及尚存问题分析[14-15]如下。

(1)建立区块索引机制。分块曲面滤波算法利用建立区块索引的方式对离散的点云数据进行组织,使离散点云可以有效的进行索引定位和处理。

(2)利用距离图像确定分块数。根据一定的重采样间距将离散点云数据组织为规则格网数据,每个格网中点云的高程均值为该网格的高程信息数据,并对所得数据进行归化处理,生成距离图像,结合图像中最大建筑物的跨度来确定区块的高度与宽度,从而确定分块数,但是相对于海量的点云数据,该操作效率非常低。

(3)点云滤波。对上面所建立的所有区块进行曲面拟合,选取块内一定数量的高程点作为曲面拟合初点进行曲面拟合,并计算块内其他点云高程与拟合高程的差值,使其与固定阈值作比较,如果小于或等于给定的阈值,则判定该点为地面点,否则为非地面点。这样固定阈值的方式不仅不适用于所有的区块,而且容易造成误分现象。

1.3 改进的自适应阈值分块曲面滤波算法

传统的分块曲面滤波算法利用区块索引的方式进行组织,其分块的方式取决于离散点云所生成的灰度图像,与大部分滤波算法类似,一般根据经验来选择阈值,比较常用的是3 m或者5 m,但在实际中,固定的阈值往往使滤波结果出现不同程度的点云错分现象(滤波算法误差),从而造成点云滤波的两类错误增加,不利于点云的后续处理。同时人工选取图像最大建筑物跨度也加大了工作量。因此,通过考虑分块面积以及块域内最大高程差两个阈值影响因素建立自适应阈值模型,提出了一种改进的自适应阈值分块曲面滤波算法,其详细过程如下。

Step1建立虚拟网格。由于曲面拟合至少需要6个点位数据,而每次选取的点位均为块内最低高程点位,因此将离散点云区域分割成6块,且以包含点云的最小矩形窗口为初始窗口。

Step2自动选取种子点云。在分块完成之后,获取每块3个最低的点位并取平均值,降低每块去噪过程中造成的影响,利用所获得的点位作为拟合曲面的初始种子点,避免人工选取种子区域。

Step3地面点的获取。利用所选种子点位进行曲面拟合,分别计算每个点位高程与拟合曲面高程的差值,差值小于自适应阈值的点即为地面点,否则为非地面点。其中自适应阈值的确定如下。

在改进算法实现过程中,随着分块次数的增加,分块面积也随之不断的缩小,因此滤波阈值应具有以下特点:

(1)面积越大,阈值越大,当面积增大的某种程度时,阈值不再随面积增大而变化。

(2)阈值随着面积的递减而渐趋稳定,当面积减小到一定的值时,阈值不再变化。根据上述特点,建立阈值与块域面积的函数关系,利用控制变量法,对多块点云进行反复试验,直到达到滤波效果的最优,并利用最小二乘方法,拟合建立所记录阈值与对应块域面积的函数关系。

(3)尽管上述函数在整体上表现最优,但当块域起伏较大时,滤波的效果并不佳,因此除了面积这一因素之外,还需考虑与对应面积中的地形起伏,而最大高程差能够体现出地形起伏的特点,且每块点云数据中最大高程差也很大程度上反映了分块点云的空间状态。因此基于上述分析建立了顾及块域面积以及块域内最大高差两个因素的自适应阈值模型,经过点云数据初步修正和实验验证,得到自适应阈值与两因素的关系式为

y=0.076 1s2-0.355 1s+0.228 2Δhmax+

2.727 9

(1)

式(1)中:y为两种因素影响下的阈值;s为分块面积;Δhmax为区块中高差最大值。

Step4重复Step 1—Step 3,迭代滤波直到没有新的地面点产生。

由于点云块域随着算法的进行,分块区域内点云数目不断减小,且块数也在不断减小,当块数小于6时,不满足曲面拟合条件,迭代终止。算法的主要流程如图1所示。

图1 改进滤波算法流程图

2 实验结果与分析

采用具有不同特性的三组机载激光雷达点云影像作为实验数据,如图2所示,试验区1包括植被、道路、建筑物(主要以厂房为主)以及建筑物附属设施,整个区域包含195 990个点云数据,区域内最大高差约为20.27 m;试验区2地势较为平缓,包含复杂低矮的建筑物,建筑物较多,且植被较少,区域内最大高差约为30 m,包含162 426个离散点云;试验区3包含较多植被、新盖的楼盘以及较高古塔,区域内最大高差为40 m,包含174 417个离散点云。分别利用传统分块曲面滤波及自适应阈值分块曲面滤波对三个试验区点云影像进行处理,通过国际摄影测量与遥感协会(ISPRS)的评价体系验证本文改进算法的可行性及优越性。该评价体系包括两类误差及总体误差指标,其中第Ⅰ类误差定义为将地面点误分为非地面点的比例;第Ⅱ类误差则是将非地面点误分为地面点的比例;总体错误率即所有的类别错分点占总点数比例,错误率越低代表整体滤波效果越好。具体如表1所示,第Ⅰ类误差:b/e×100%;第Ⅱ类误差:c/f×100%;总误差:(b+c)/n×100%。

图2 原始点云影像

表1 误分率的定义

对上述实验数据进行去噪,再分别利用传统算法以及改进算法进行滤波,得到结果如图3所示,其中图3(a)和3(b)、图3(e)和3(f)为传统算法和本文改进算法对原始点云进行滤波得到的非地面点云对比图,图3(c)和图3(d)为地面点云对比图。就传统方法滤波结果而言,分别存在地面点错分为非地面点[图3(c)红圈所示]以及非地面点错分为地面点[图3(a)和图3(e)红圈所示]的现象。而对于改进算法的滤波结果,可以明显看出,图3(b)和图3(d)中的第II类错误已基本消除,图3(f)中第I类错误也明显减小,三块点云的错分现象均得到了极大的改善,表明改进算法既能很好地适应不同地形,也解决了阈值选择问题对滤波带来的精度损失,滤波效果明显优于传统算法。

图3 传统算法与改进算法滤波效果对比

进一步利用误差公式对传统分块滤波结果以及改进滤波结果进行定量评价,结果如表2和表3所示。由表2可知,I类误差多于II类误差,说明传统算法更加侧重于降低II类误差。其中试验区1和试验区2的I类误差都较II类误差大,说明传统算法在低矮建筑物较多的区域存在过滤现象,容易将地面点错分为低矮建筑物。从表3可知,I类误差明显低于II类误差,说明本文算法能很好地适应不同的地形,具有较强的鲁棒性。此外,对比表2和表3中三类误差,可以看出改进算法的滤波精度明显提高。试验区2的I类误差幅度最大,说明改进算法更适用于建筑物较多、植被较少的地势。与传统分块滤波算法相比,I类误差值降低幅值较大,说明改进算法有更强的适应性。通过对II类误差的对比分析,改进算法相比于传统分块滤波算法II类误差最大降低了3.34%,最小降低0.15%。总误差最大降低了4.73%,最小降低了0.41%,说明了改进算法比传统分块曲面滤波有更高的精度。

表2 传统滤波算法误差评价

表3 改进滤波算法误差评价

综上所述,无论是在低矮建筑区,还是在复杂多植被的城区,改进算法都能够显著减低I类误差和II类误差,验证了改进算法的适用性以及有效性。

3 结论

利用网格法对点云进行逐级分块,并以曲面拟合的方式自动获取块域种子点,同时顾及分块面积及块域内最大高程差两个阈值影响因素建立了自适应阈值模型,从而提出一种改进的自适应阈值分块曲面滤波算法,很好地满足了机载LiDAR点云滤波的要求。实验结果表明改进算法在滤波时能够实现更有效的阈值选择,且滤波精度较传统方法有明显提高。但对于阈值的影响因素还需进一步研究,以期实现更高精度的自适应阈值模型。

猜你喜欢
分块曲面高程
面向量化分块压缩感知的区域层次化预测编码
场景高程对任意构型双基SAR成像的影响
钢结构工程分块滑移安装施工方法探讨
海南省北门江中下游流域面积高程积分的应用
8848.86m珠峰新高程
一种面向不等尺寸分块海量数据集的并行体绘制算法
分块矩阵初等变换的妙用
参数方程曲面积分的计算
参数方程曲面积分的计算
第二型曲面积分的中值定理