基于VG-DBSCAN算法的大场景散乱点云去噪 下载: 1294次
1 引言
城市道路环境以其复杂、多变、规模大等特点成为当前自动驾驶领域研究的热点和难点[1-5]。在城市三维环境下,多线激光雷达(LiDAR)扫描通常会得到密度不均匀的点云数据集,并且传感器的局限性、采集设备的固有噪声、场景中物体表面的反射特性等会不可避免地使点云数据产生大量的离群点。噪声点的存在会严重影响后续点云的特征提取和特征匹配。因此,有必要对原始点云进行滤波操作,以获得适合进一步处理的精确点云。Fleishman等[6]对双边滤波进行改进,并拓展到三维网格模型上,提出针对网格降噪的双边滤波算法,该算法通过对影响域和空间域赋予不同的权值函数来进行各向异性的去噪,具有良好的降噪效果,且能够保持点模型的几何特征,但不能很好地对离群点加以处理,易削去模型中最尖锐的部分。聂建辉等[7]在分析点云离群点数据产生的原因后引入数据挖掘分类算法,将离群点分为远离群点和近离群点两类,并采用基于三维区域增长的方法识别远离群点,使用基于曲面变化度的局部离群系数方法识别近离群点,该算法可以有效识别离群点数据并进行去噪。李仁忠等[8]提出一种基于方法库的点云模型去噪与精简算法,依据噪声点到模型主体的距离,利用统计滤波结合半径滤波去除大尺度噪声。苏本跃等[9]用
鉴于上述算法的局限性,本文提出了一种针对大规模散乱点云的去噪算法。该算法首先对三维LiDAR点云进行体素栅格划分,然后确定核心点、搜索栅格邻域、划分每个栅格的簇类,最终将目标点云聚类,使目标点云与离群点云分离,从而达到滤除离群噪点的目的。该算法在去除离群噪点和冗余信息、降低点云数量规模的同时还能保留点云的特征信息,不损坏点云的细节信息,提高了后续点云匹配的精确度,且缩短了匹配耗时。
2 基于密度的带噪声数据空间聚类算法
基于密度的带噪声数据空间聚类算法(DBSCAN)是第一个基于密度的聚类算法,由Ester等[10]于1996年提出。该算法将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在存在噪声的数据中发现任意形状的聚类。该算法的显著优点是聚类速度快,且能有效处理噪声点。
DBSCAN算法的核心思想总结如下:
该算法有两个参数,即Eps和MinPts,其中Eps表示目标数据点搜索邻域的半径,MinPts表示最小邻域点数。在
3 基于体素栅格的快速密度聚类算法
密度聚类算法可以通过选择合适的阈值将目标点云与离群点分离,达到去除离群点的目的。在大规模散乱点云数据的处理中,由于噪声的数目、分布均未知,所以DBSCAN算法能够较好地应用在此类问题中。但是在DBSCAN算法和基于相对密度的聚类方法中,每个对象点必须与数据集中众多的其他对象点进行比较。为了降低执行时间成本,本研究对DBSCAN算法进行了改进,提出了一种基于体素栅格的快速密度聚类(VG-DBSCAN)算法,利用该算法对点云进行滤除离群噪点的处理。
VG-DBSCAN算法将三维点云数据按照维度划分为以体素栅格为单元的多个相邻的区间,创建一个由栅格单元组成的集合,以此来大幅减小每个对象在数据空间中邻域的搜索范围,只要考察当前对象的空间相邻栅格单元就能实现其邻域的搜索,快速发现各个聚类。VG-DBSCAN算法的具体步骤如下。
步骤1:划分体素栅格。如
图 2. 划分三维体素栅格。(a)三维体素栅格;(b)体素单元格
Fig. 2. Dividing a three-dimensional voxel grid. (a) Three-dimensional voxel grid; (b) voxel cell
意义在于如果栅格内的点数大于MinPts,则能够直接将所有这些包含于该体素栅格单元的点标记为核心点。因为体素栅格内任意两点在栅格内的最大距离不大于Eps,所以如果体素栅格内有大于MinPts数量的数据点,那么单元格内任意点的Eps邻域至少包含MinPts个点。
在构建栅格之前,首先需要确定6个值,即三维点云数据
步骤2:确定核心点。该步骤将遍历所有的非空体素栅格。要查找栅格内的所有核心点,首先必须检查该单元格内的点数是否大于MinPts。如果是,则将所有这些点标记为核心点;如果不是,则必须检查该单元格内的每个点,并确定它是否为核心点。要确定点
步骤3:合并簇。如果两个不同单元中的两个核心点之间的距离小于等于Eps,则这两个点属于同一个簇。举个简单的例子,如
步骤4:确定边界点和离群噪点。这是VG-DBSCAN算法的最后一步,这一步通过遍历所有非核心点来完成。如果在
通过上述4个步骤可以快速聚类目标点云,使其与离群噪点分离,滤除被标记为离群噪点的数据点即达到了点云去噪的目的。
4 实验结果与分析
为了验证所提算法的正确性和有效性,采用Velodyne HDL-64E型64线LiDAR采集城市复杂动态环境下的三维点云数据,并将其作为研究对象。实验平台为Intel(R) Core(TM) i7-6700 CPU@3.40 GHz,16 GB随机存取存储器(RAM),Unbuntu 16.04操作系统,Qt Creator5.7开发环境,开发语言为C++。首先,选取连续1000帧经过地面分割处理的点云数据,这些点云中均含有大量的动静态障碍物,如机动车、非机动车、行人等,同时含有大量的离群点。然后,通过所提算法对点云进行滤除离群噪点处理,并与开源点云库PCL·1.8.1dev中具有代表性的统计滤波去噪算法和半径滤波去噪算法进行对比,实验结果如
图 6. 统计滤波去噪算法的结果。(a) MeanK=10; (b) MeanK=30; (c) MeanK=50
Fig. 6. Results using statistical outlier removal algorithm.(a) MeanK=10; (b) MeanK=30; (c) MeanK=50
图 7. 半径滤波去噪算法的结果。 (a) MinNeighbors=5; (b) MinNeighbors=10; (c) MinNeighbors=15
Fig. 7. Results using radius outlier removal algorithm. (a) MinNeighbors=5; (b) MinNeighbors=10; (c) MinNeighbors=15
图 8. VG-DBSCAN算法的去噪结果。(a) Eps=1, MinPts=10; (b) Eps=1, MinPts=15; (c) Eps=1, MinPts=20
Fig. 8. Denoising results using VG-DBSCAN algorithm. (a) Eps=1, MinPts=10; (b) Eps=1, MinPts=15; (c) Eps=1, MinPts=20
图 9. VG-DBSCAN算法去噪的局部效果。(a)去噪前;(b)去噪后
Fig. 9. Local denoising results using VG-DBSCAN algorithm. (a) Before denoising; (b) after denoising
表 1. 3种算法的去噪结果
Table 1. Denosing results using three algorithms
|
为了验证所提算法对点云帧间匹配的改善效果,使用开源库PCL·1.8.1dev中的匹配算法——广义迭代最近点(GICP)算法对点云去噪处理前后的帧间匹配进行了对比实验。实验结果如
图 10. 去噪后点云帧间的匹配结果。(a)匹配前;(b)匹配后
Fig. 10. Point-cloud-matching results after denoising. (a) Before matching; (b) after matching
表 2. 去噪处理前后点云的匹配结果
Table 2. Point-cloud-matching results before and after denoising
|
5 结论
提出了一种应用于城市复杂环境下散乱三维LiDAR点云的去噪算法——VG-DBSCAN算法。该算法采用点云三维体素栅格划分的形式对传统DBSCAN算法进行改进,将点云囊括进每个栅格中,创建一个由栅格单元组成的集合,以此来大幅减小每个对象在数据空间中邻域的搜索范围,实现点云的快速目标聚类,达到分离出离群噪点的目的。通过与点云处理开源库中具有代表性的统计滤波和半径滤波算法进行对比,证明了所提算法能够在保证点云三维几何特征的同时实时处理点云数据,而且可以有效识别并滤除点云中的离群噪点,在点云去噪、简化以及耗时方面均优于现有的典型算法。之后,采用该算法对帧间匹配前两帧点云进行去噪处理,实验结果证明了所提算法可以显著提高匹配的准确度并减少匹配耗时。综上,所提点云去噪算法可以实时为点云帧间匹配提供更优质的点云数据。
[1] UeharaK, SaitoH, HaraK. Line-based SLAM considering directional distribution of line features in an urban environment[C]. International Conference on Computer Vision Theory and Applications, 2017, 6: 255- 264.
[2] 韩栋斌, 徐友春, 王任栋, 等. 基于多对点云匹配的三维激光雷达外参数标定[J]. 激光与光电子学进展, 2018, 55(2): 022803.
[3] 陈贵宾, 高振海, 何磊. 车载三维激光雷达外参数的分步自动标定算法[J]. 中国激光, 2017, 44(10): 1010004.
[4] Kim JU, Kang HB. LiDAR based 3D object detection using CCD information[C]. IEEE Third International Conference on Multimedia Big Data, California, 2017: 1701- 1750.
[5] 熊风光, 霍旺, 韩燮, 等. 三维点云中关键点误匹配剔除方法[J]. 光学学报, 2018, 38(2): 0210003.
[6] Fleishman S, Drori I, Cohen-Or D. Bilateral mesh denoising[J]. ACM Transactions on Graphics, 2003, 22(3): 950-953.
[7] 聂建辉, 胡英, 马孜. 散乱点云离群点的分类识别算法[J]. 计算机辅助设计与图形学学报, 2011, 23(9): 1526-1532.
[8] 李仁忠, 杨曼, 冉媛, 等. 基于方法库的点云去噪与精简算法[J]. 激光与光电子学进展, 2018, 55(1): 011008.
[9] 苏本跃, 马金宇, 彭玉升, 等. 基于K-means聚类的RGBD点云去噪和精简算法[J]. 系统仿真学报, 2016, 28(10): 2329-2334.
[10] EsterM, Kriegel HP, XuX. A density-based algorithm for discovering clusters a density-based algorithm for discovering clusters in large spatial databases with noise[C]. International Conference on Knowledge Discovery and Data Mining, Oregon, 1996: 226- 231.
Article Outline
赵凯, 徐友春, 李永乐, 王任栋. 基于VG-DBSCAN算法的大场景散乱点云去噪[J]. 光学学报, 2018, 38(10): 1028001. Kai Zhao, Youchun Xu, Yongle Li, Rendong Wang. Large-Scale Scattered Point-Cloud Denoising Based on VG-DBSCAN Algorithm[J]. Acta Optica Sinica, 2018, 38(10): 1028001.