结合统计滤波与密度聚类的矿山地面点云提取算法 下载: 749次
1 引言
随着三维激光扫描技术的快速发展,地面三维建模的效率和精度越来越高。实际工程中,点云数据量十分庞大,在数据的采集过程中不可避免地存在着很多噪声点,点云噪声的性质和种类随点云采集环境的变化而变化。噪声会极大地影响地面三维建模的精度,因此,需要采取合适的算法对不同场景下的噪声进行剔除。
点云目标提取作为近年来的一大研究热点,国内外专家提出了较多的算法和理论[1-14],采用提取算法的前提是剔除非研究对象点云,即滤波。这些滤波算法大致可分为4类:基于形态学,基于聚类密度,基于曲面拟合,基于统计特征。王竞雪等[15]提出结合形态学滤波和不规则三角网(TIN)的滤波算法,解决了传统TIN的滤波精度对初始种子点选取的依赖问题;邢承滨等[16]提出基于形态学滤波的等值线生成法,可直观地确定滤波算法中的关键参数阈值;赵明波等[17]提出一种渐进多尺度数学形态学滤波算法,通过改进形态开运算处理大面积空白区域。文献[ 15-17]方法归类于第一类,此类方法较难解决阈值的自适应问题。牛晓静等[18]提出自适应聚类和滤波融合的方法对点云进行去噪平滑处理;苏本跃等[19]基于K-means聚类对RGBD点云进行外部噪声去噪和精简,可保留点云的原始特征;张巧英等[20]将密度聚类算法应用于连续分布点云去噪中,极大限度地保留了原始点云的特征;田青华等[21]运用改进的欧氏聚类的散乱工件点云分割方法解决了场景分割困难的问题。文献[ 18-21]方法归类于第二类,但该方法邻域搜索普遍耗时较长。冯东恒等[22]提出用共面法向量特征去除离群面的RANSAC算法,用于去除近地表噪声和散点噪声;林万誉等[23]提出基于最小截取二乘法的分段拟合的滤波算法,该算法适用于多曲面三维点云;赵凯等[24]提出基于体素栅格的快速密度聚类算法用于实时处理点云。文献[ 22-24]方法都归类于第三类,更适用于小范围、表面连续的数据。李明磊等[25]提出的孤点的加权平均距离去除法降低了对远距离离散点的误判;李仁忠等[26]提出一种基于方法库的点云模型去噪与精简算法。文献[ 25-26]方法都归类于第四类。
三维激光扫描仪是以固定角度分辨率进行等角扫描的,周围地物、地貌的空间分布不同导致距离扫描仪越远的点云越稀疏、密度越不均匀[27]。因此,不能简单依靠一种方法进行目标提取。本文采用大型矿山点云数据,其具有扫描范围大、点云数据多、噪声明显、地形地貌不规则等特性。为有效剔除该场景下的非地面点数据并提高运算效率,提出一种结合统计滤波与密度聚类的矿山地面点云提取算法。该算法从与聚类算法相似的特征空间入手,通过分析不同近邻点特征空间,找出最优近邻点数,最后通过对特征空间进行提取并求交得到地面点集,在保证地面点提取精度的前提下加快了运算速度。
2 原理与方法
本文基于三维激光扫描仪RIEGL VZ-1000收集的德兴铜矿点云数据,研究矿山地面点云的提取算法,该数据的角度分辨率为0.0005°,100 m的扫描精度为5 mm,
2.1 噪声空间分布特征
本文算法主要研究的是矿山地面点的提取,首先根据非研究对象的空间分布特性对矿山点云模型中的该对象作尺度定义,本文将矿山点云模型中的非研究对象分为大尺度孤立点、中尺度径向分布点及小尺度障碍物噪声点。这三种对象在矿山点云中表现尤为明显,严重影响地表点云提取精度与后期精确地表建模,因此,剔除这三类对象的精度及效率对地面点云提取的研究具有重大作用及意义。
图 2. 噪声的空间分布。(a)平面点云图; (b)邻点的距离图
Fig. 2. Spatial distribution of noise. (a) Plane point cloud map; (b) distance map of neighbor points
总的来说,大尺度孤立点的统计特征表现为极差、方差等统计特征远大于其他噪声;中尺度径向分布点的统计特征表现为邻域点距离呈现规律增长,及斜率的变化基本稳定;小尺度障碍物噪声点的统计特征表现为斜率具有间断变化,且其变化率相对稳定。
2.2 KD-tree索引与统计特征
本算法基于统计滤波算法的统计描述和密度聚类算法的空间描述。统计滤波的统计描述是基于KD-tree的k近邻点搜索,即给定查询点及邻域点个数k,就能从数据集中找到距离该点最近的k个数据,再由近邻点的统计特征变化确定截断阈值,找出噪声点并剔除。
本文借鉴这种高效率的搜索算法对传统算法进行改进,统计滤波只是单一地使用一种或两种特征值进行特征空间分析,从滤波效果来看,其有一定的噪声剔除能力,但是缺乏效率与准确性,因此本算法需要在减少运算次数的同时,提高非研究对象的剔除精度,并分析和挖掘统计数据的规律。
为了有效识别非研究对象,并表明近邻点的空间特征,根据文献[
28-30]中的相关理论知识,建立统计特征量均值(mean)、方差(variance)、斜率(slope)、极值(range)、能量(energy)。k个近邻点距离的集合为{dij,i≤N0,i∈N+,j≤k,j∈N+},其中N0为总的搜索点个数,dij为第i个搜索点到第j个近邻点的距离;同时,
对以上特征取不同的近邻点个数时,所反映的特征信息是不同的,近邻点个数太少或太多,都会增加错分率。为了能够高效地分析出不同场景下最少错分率的近邻点个数,可先建立一个较多近邻点的KD-tree索引,避免因重复建树而导致效率降低,例如:对本文的510519个点,当近邻点个数k=100时,先储存510519×100的距离矩阵,当近邻点个数选择k=40时,直接调用即可,不需要重复建树。
2.3 二维特征密度聚类算法
以上对统计特征的分析是对目前传统统计方法的优化与改进,但也只是基础分析与应用。基于相同属性地物具有相同或相似的特征空间分布的原理,首要分析非研究对象的特征空间,并以此确定划分阈值。同时,为了更加细致地分析近邻点的统计特征变化情况,并以此剔除非研究对象点,本文结合统计滤波和二维特征密度聚类提出一种矿山地面点的提取算法。所提算法流程图如
本文算法在KD-Tree的创建中,仅进行一次建树,计算量为n2;在统计特征值描述上,因为特征统计量增加为5个,计算量为5n;在空间聚类上,需遍历特征向量组的密度空间进行噪声剔除,再结合交并差提取地面点,这一步均只使用索引ID进行处理,计算量为3n;因此,可定义本文算法的算法复杂度为o(n2),从理论上讲本文算法所需的运行时间更短。
在统计描述中,从KD-tree索引的建立、距离矩阵的查询以及统计特征的计算上,已经对算法的效率进行了优化,节约了运算时间;在空间描述和特征密度计算上,本文对5个基础特征:均值、方差、斜率、极值、能量,分别建立10个一一对应的二维密度特征空间,特征向量组为均值-斜率、均值-方差、均值-极值、均值-能量、斜率-方差、斜率-极值、斜率-能量、方差-极值、方差-能量、极值-能量,依次标号为(1), (2), (3),…,(10)。
根据密度空间的离散情况,可保留不同倍数中误差δ的有效数据作为所需的研究对象,其中2δ、3δ的有效数据比例约为95.44%和99.74%,由此可计算出各密度空间的截断阈值ωi,并对这10种二维特征密度聚类后的结果取交集Qj,Qj即为有效研究对象,可表示为
式中:N+为正整数;i为特征向量组的标号;j为第j个近邻点;Ti为各特征向量组的密度;Dij为Ti中小于阈值ωi的有效点云;Qj为各特征向量组剔除非研究对象后的有效地面点的并集。 最后,计算非研究对象点的剔除效率是否最高,是即可输出,否则重新选择近邻点个数k。
该算法中,均使用索引ID号进行交并差处理,因此,在计算中仅进行两层遍历,且只针对ID号进行索引,最后根据ID号返回确定真实坐标值。
3 实验结果与分析
3.1 特征密度空间分析
点云去噪的首要目标是对10个二维特征密度空间进行分析,分析各组特征向量之间的非研究对象的剔除能力,分析结果如
图 4. 邻域10个点的特征密度分布
Fig. 4. Characteristic density distributions of 10 points in neighborhood
图 5. 邻域20个点的特征密度分布
Fig. 5. Characteristic density distributions of 20 points in neighborhood
如
根据
如
如
图 6. 邻域30个点的特征密度分布
Fig. 6. Characteristic density distributions of 30 points in neighborhood
如
算法实验结果如
综上所述,本文算法在地面点的提取上是有效的,邻域点个数的增加对提取的效果有一定的影响。为了能定量定性分析该算法的优劣性,本文将从以下4点进行阐明: 1)不同邻域点及向量组的拟合斜率差变化情况;2)不同邻域点及向量组的拟合精度;3)不同邻域点及向量组联合去噪后的地面点个数;4)均方差等误差曲线的走势。
图 7. 邻域40个点的特征密度分布
Fig. 7. Characteristic density distributions of 40 points in neighborhood
图 8. 提取效果。(a)原始云点;(b) 10个邻域点;(c) 20个邻域点;(d) 30个邻域点;(e) 40个邻域点
Fig. 8. Extracted results. (a) Original point cloud; (b) 10 neighbor points; (c) 20 neighbor points; (d) 30 neighbor points; (e) 40 neighbor points
图 9. 实验结果及精度。(a)斜率差的变化;(b)精度差的变化;(c)地面点云个数;(d)误差曲线
Fig. 9. Experimental results and accuracy. (a) Trend of slope difference; (b) trend of accuracy difference; (c) number of ground point clouds; (d) error curves
为了验证本文算法的有效性,采用国际摄影测量与遥感(ISPRS)的总错分误差标准,将有效地面点错误分为噪声点的数量和将噪声点错误分为有效地面点的数量之和占总和点云的比例为
式中:a为有效点数量;b为噪声点数量;c为将有效地面点错误分为噪声点的数量;d为将噪声点错误分为有效地面点的数量,本实验已知有效点个数为493049个。
表 1. 不同邻域点个数下的提取结果
Table 1. Extraction results under different numbers of neighbor points
|
3.2 提取算法验证
为验证本文算法的提取精度与效率,使用基于方法库的点云模型。由于文献[
26]中未曾提及各方法的具体参数,本文先用控制变量法研究半径滤波、统计滤波和体素栅格滤波法在不同参数下的去噪效果。原始数据扫描角为0.02°,实验结果如
图 10. 半径滤波、体素滤波及统计滤波提取效果
Fig. 10. Extraction results of radius filter, voxel filter, and statistical filter
表 2. 其他算法提取结果
Table 2. Extraction results of other algorithms
|
由
由于双边滤波对低频数据的过滤效果较好,但是耗时较长。经比较,确定方法库中各方法对应的参数:统计滤波中选择近邻点个数为36;双边滤波中滤波器边长为0.5 m,标准偏差为[1.0,0.1];体素滤波中滤波器边长为0.1 m;半径滤波中滤波半径为0.8 m,近邻点数为4。基于该方法库对矿山点云数据进行处理,提取得到地面点云493522个,方差为0.0196,极差为3.9511,整体误差为0.0062,耗时374.5536 s。实验结果如
图 11. 基于方法库的提取效果。(a)去噪正面效果;(b)去噪侧面效果
Fig. 11. Extraction results based on Method-Library. (a) After denoising in front view; (b) after denoising in side view
综上,本文算法的时间效率明显优于半径滤波、体素滤波、统计滤波及方法库去噪模型,且在地面点的提取上效率较高,相比其他算法而言,对非目标对象的误判率更低。为验证本文算法的普适性,选用一期扫描参数与原实验数据相似的更大面积的点云数据,并沿用上文中遍历得到的最优近邻点个数36进行地面点提取,得到提取效果如
图 12. 对大面积点云的提取效果。(a)原图正面;(b)去噪后正面;(c)原图侧面;(d)去噪后侧面
Fig. 12. Extraction results of large-area point cloud. (a) Before denoising in front view; (b) after denoising in front view; (c) before denoising in side view; (d) after denoising in side view
4 结论
本文提出了一种结合统计滤波与密度聚类的矿山地面点云提取算法,利用KD-tree搜索近邻点并计算其统计特征,同时结合二维特征密度空间的分布特性对密度空间进行聚类并提取地面点云。以VZ-1000地面三维激光扫描仪获取的大型矿山数据为研究对象,实现对大型矿山地面点云的提取。对KD-tree在不同近邻点个数下的地面点提取精度与效率进行研究,分析表明当近邻点个数为36时,算法总误差最小。此外选用另一期矿山点云数据对算法的普适性进行验证。综合分析考虑10组特征向量组的提取结果,同时进行求交集处理以提高有效点云的精度,通过对传统算法的研究可知,统计滤波的提取效果较好,但精度仍低于本文算法,且耗时约为本文算法的7倍。本文算法原理简单,易于实现,且能快速、精确地提取有效地面点云,具有一定的实用价值。但所提算法仍存在不足之处,主要表现为凹陷处边缘、大型障碍物的阴影边缘等位置的点云较为稀疏,容易造成错误划分,还需进一步深入研究,希望通过自适应调整统计特征值的权重解决该问题。
[1] 惠振阳, 程朋根, 官云兰, 等. 机载LiDAR点云滤波综述[J]. 激光与光电子学进展, 2018, 55(6): 060001.
[2] 赵京东, 杨凤华, 郭英新. 散乱点云去噪与简化的统一算法[J]. 计算机应用, 2017, 37(10): 2879-2883.
Zhao J D, Yang F H, Guo Y X. Unified algorithm for scattered point cloud denoising and simplification[J]. Journal of Computer Applications, 2017, 37(10): 2879-2883.
[3] 袁华, 庞建铿, 莫建文. 基于噪声分类的双边滤波点云去噪算法[J]. 计算机应用, 2015, 35(8): 2305-2310.
Yuan H, Pang J K, Mo J W. Denoising algorithm for bilateral filtered point cloud based on noise classification[J]. Journal of Computer Applications, 2015, 35(8): 2305-2310.
[4] 邓文君, 叶景杨, 张铁. 面向机器人磨抛的激光点云获取及去噪算法[J]. 光学学报, 2016, 36(8): 0814002.
[5] 李鹏飞, 吴海娥, 景军锋, 等. 点云模型的噪声分类去噪算法[J]. 计算机工程与应用, 2016, 52(20): 188-192.
Li P F, Wu H E, Jing J F, et al. Noise classification denoising algorithm for point cloud model[J]. Computer Engineering and Applications, 2016, 52(20): 188-192.
[6] 林洪彬, 付德敏, 王银腾. 基于参数自适应各向异性高斯核的散乱点云保特征去噪[J]. 计算机集成制造系统, 2017, 23(12): 2583-2592.
Lin H B, Fu D M, Wang Y T. Feature preserving denoising of scattered point cloud based on parametric adaptive and anisotropic Gaussian kernel[J]. Computer Integrated Manufacturing Systems, 2017, 23(12): 2583-2592.
[7] 许龙, 黄翔, 李根. 一种基于模糊C均值和均值滤波的点云去噪算法[J]. 机械制造与自动化, 2016, 45(4): 5-7, 23.
Xu L, Huang X, Li G. Point clouds de-noise algorithm based on fuzzy C-means and mean filter[J]. Machine Building & Automation, 2016, 45(4): 5-7, 23.
[8] 吕娅, 万程辉. 三维激光扫描地形点云的分层去噪方法[J]. 测绘科学技术学报, 2014, 31(5): 501-504.
Lü Y, Wan C H. A denoising method by layering for terrain point cloud from 3D laser scanner[J]. Journal of Geomatics Science and Technology, 2014, 31(5): 501-504.
[9] 陈凯, 张达, 张元生. 采空区三维激光扫描点云数据处理方法[J]. 光学学报, 2013, 33(8): 0812003.
[10] 惠振阳, 胡友健. 基于LiDAR数字高程模型构建的数学形态学滤波方法综述[J]. 激光与光电子学进展, 2016, 53(8): 080001.
[11] Chen LZ, Feng BH. Denoising algorithm for bilateral filtered point cloud based on variance threshold[C]∥2018 3rd International Conference on Materials Science, Machinery and Energy Engineering(MSMEE 2018), June 29, 2018, Taiyuan, Shanxi, China. [S.l.: s.n.], 2018.
[12] TaubinG. A signal processing approach to fair surface design[C]∥Proceedings of the 22nd annual conference on Computer graphics and interactive techniques - SIGGRAPH'95, August 6-11, 1995, Los Angeles, CA, USA. New York: ACM, 1995: 351- 358.
[13] Jones T R, Durand F, Desbrun M. Non-iterative, feature-preserving mesh smoothing[J]. ACM Transactions on Graphics, 2003, 22(3): 943-949.
[14] Fleishman S, Drori I, Cohen-Or D. Bilateral mesh denoising[J]. ACM Transactions on Graphics, 2003, 22(3): 950-953.
[15] 王竞雪, 张雪洋, 洪绍轩, 等. 结合形态学和TIN三角网的机载LiDAR点云滤波算法[J]. 测绘科学, 2019, 44(5): 151-156, 183.
Wang J X, Zhang X Y, Hong S X, et al. Aerial LiDAR point cloud filtering algorithm combining mathematical morphology and TIN[J]. Science of Surveying and Mapping, 2019, 44(5): 151-156, 183.
[16] 邢承滨, 邓兴升, 徐康. 形态学滤波关键参数阈值的等值线确定方法[J]. 激光与光电子学进展, 2019, 56(16): 162802.
[17] 赵明波, 何峻, 田军生, 等. 基于改进的渐进多尺度数学形态学的激光雷达数据滤波方法[J]. 光学学报, 2013, 33(3): 0328001.
[18] 牛晓静, 王美丽, 何东健. 一种聚类与滤波融合的点云去噪平滑方法[J]. 计算机应用与软件, 2016, 33(10): 148-152.
Niu X J, Wang M L, He D J. A point cloud denoising and smoothing method based on fusion of clustering and filtering[J]. Computer Applications and Software, 2016, 33(10): 148-152.
[19] 苏本跃, 马金宇, 彭玉升, 等. 基于K-means聚类的RGBD点云去噪和精简算法[J]. 系统仿真学报, 2016, 28(10): 2329-2334, 2341.
Su B Y, Ma J Y, Peng Y S, et al. Algorithm for RGBD point cloud denoising and simplification based on K-means clustering[J]. Journal of System Simulation, 2016, 28(10): 2329-2334, 2341.
[20] 张巧英, 陈浩, 朱爽. 9(6): 101-104, Ⅳ-Ⅴ[J]. . 密度聚类算法在连续分布点云去噪中的应用. 地理空间信息, 2011.
Zhang Q Y, Chen H. 9(6): 101-104, Ⅳ-Ⅴ[J]. Zhu S. Application of density-based clustering algorithms in noise removing of continuous distributed point clouds. Geospatial Information, 2011.
[21] 田青华, 白瑞林, 李杜. 基于改进欧氏聚类的散乱工件点云分割[J]. 激光与光电子学进展, 2017, 54(12): 121503.
[22] 冯东恒, 石波, 卢秀山, 等. 一种顾及水下地形特点的多波束点云去噪算法[J]. 测绘科学技术学报, 2017, 34(4): 364-369.
Feng D H, Shi B, Lu X S, et al. A multi-beam point cloud denoising algorithm considering underwater topographic features[J]. Journal of Geomatics Science and Technology, 2017, 34(4): 364-369.
[23] 林万誉, 周思跃, 袁政鹏. 基于最小截取二乘法的点云数据去噪方法研究[J]. 计量与测试技术, 2016, 43(12): 60-62.
Lin W Y, Zhou S Y, Yuan Z P. Research on the method for denoising of point cloud based on least trimmed squares[J]. Metrology & Measurement Technique, 2016, 43(12): 60-62.
[24] 赵凯, 徐友春, 李永乐, 等. 基于VG-DBSCAN算法的大场景散乱点云去噪[J]. 光学学报, 2018, 38(10): 1028001.
[25] 李明磊, 李广云, 宗文鹏. 激光扫描点云准确快速去噪方法[J]. 测绘通报, 2015( 12): 27- 29.
Li ML, Li GY, Zong WP. Accurate and fast denoising method of laser-scanned point clouds[J]. Bulletin of Surveying and Mapping, 2015( 12): 27- 29.
[26] 李仁忠, 杨曼, 冉媛, 等. 基于方法库的点云去噪与精简算法[J]. 激光与光电子学进展, 2018, 55(1): 011008.
[27] 陈世超, 戴华阳, 王成, 等. 激光扫描数据的密集噪声剔除方法[J]. 激光与光电子学进展, 2019, 56(6): 062801.
[28] 赵宇明, 熊惠霖, 周越, 等. 模式识别[M]. 上海: 上海交通大学出版社, 2013.
Zhao YM, Xiong HL, ZhouY, et al.Pattern recognition[M]. Shanghai: Shanghai Jiaotong University Press, 2013.
[29] 张瑜, 牟晓云. 统计学原理与应用[M]. 南京: 东南大学出版社, 2014.
ZhangY, Mou XY. The principle and application of statistics[M]. Nanjing: Southeast University Press, 2014.
[30] 郭浩, 苏伟, 朱德海, 等. 点云库PCL从入门到精通[M]. 北京: 机械工业出版社, 2019.
GuoH, SuW, Zhu DH, et al.Point cloud library PCL from entry to proficient[M]. Beijing: Chinese Machine Press, 2019.
Article Outline
杨鹏, 刘德儿, 刘靖钰, 张荷苑. 结合统计滤波与密度聚类的矿山地面点云提取算法[J]. 激光与光电子学进展, 2020, 57(2): 021107. Yang Peng, Liu Deer, Liu Jingyu, Zhang Heyuan. Mine Ground Point Cloud Extraction Algorithm Based on Statistical Filtering and Density Clustering[J]. Laser & Optoelectronics Progress, 2020, 57(2): 021107.