面向工业现场的3D点云滤波方法
2024-12-06期治博陈嘉仑王珍郑彤于重重
摘 要:三维点云语义分割是目前人工智能领域中研究的重点问题,在自动驾驶、环境感知机器人和工业自动化等领域中广泛应用。针对激光雷达扫描数据的特点,本文根据经典的二次导向滤波方法并针对激光雷达扫描数据的特点提出三维导向滤波算法,其作用是改进三维点云数据,能够有效滤除无用噪声并保留点云中的局部轮廓信息。以公开的SemanticKITTI数据集为基础,分析滤波效果,证明本文方法的有效性。
关键词:三维点云;语义分割;激光雷达;三维导向滤波
中图分类号:TM 732" " " " " 文献标志码:A
激光雷达可在光线不足、纹理特征少的场景中探测物体的三维信息,其优点是测距范围大。目前,基于激光雷达的三维场景重建在工业界、自动驾驶领域得到了广泛关注。采用激光雷达雷达测得的点云数据具有稀疏、无序等特点,与二维图像相比,处理难度更大,有效提升点云数据质量可为后续研究提供基础。
该领域已有一系列研究成果。例如,JENKE P等[1]将统计学与点云滤波算法相结合。KALOGERAKIS E等[2]提出一种稳健的统计模型框架。张芳菲等[3]采用构造KD树的方法使点云数据有序化,并削弱噪声。戴士杰等[4]提出三维散乱点云平滑去噪算法,针对散乱点云去除噪声。AVRON H等[5]提出采用L1正则化来恢复点的法线场。CHEN H等[6]设计了一个带有图形约束的低秩矩阵恢复模型,以保留各种几何特征。上述研究适用于受小噪声影响的点云,但是在高噪声情况下可能产生过度平滑或锐化现象。RAKOTOSAONA M J[7]提出基于卷积架构的滤波方法,其在图像去噪方面具有优势,但是在局部法线估计阶段效果不佳。
1 点云数据滤波
1.1 三维空间中的导向滤波
经典的导向滤波是一种具有特征保持能力的高效平衡算子,其具有兼顾抑噪性能和保留局部纹理信息的能力。在二维平面中,导向滤波算法的处理过程为对引导图像进行线性变换后,输出窗口图像。针对二维图像与三维点云数据在空间位置信息上的表达差异,借鉴二维图像导向滤波思路,可以设计三维点云空间的导向滤波处理,将其称为导向点云滤波。本文主要研究了三维点云数据的处理方法,所以以导向点云滤波方法为基础进行改进。与其他基于三维点云强度信息滤波的算法不同,三维导向滤波是根据三维点云数据的位置信息进行滤波的,能够有效防止局部细节丢失与噪声干扰,具有滤波效果好、算法运行时间短等优点。
三维点云导向滤波基于点云数据的局部邻域计算,因此,需要确定点云中的每个点的邻域。设3D点云,多个点云数据pi如公式(1)所示。
P={pi∈R3} " " "(1)
式中:P为点云集合;i为点云序号;R3为3D空间。
构造一个KD树结构来表示点云和邻域N(pi),KD树又称为K维空间搜索树,它是在二叉树的基础上的一种数据结构,外表与二叉搜索树相近。利用KD树可以进行多维空间数据的邻域搜索并存储关键数据,其邻域如公式(2)所示。
N(pi)={Pi,j∈P} " "(2)
式中:Pi,j为点Pi领域里的第j个邻域点。
对每一点Pi均进行K邻域搜索。给定1个KD树和1个节点,在不同的搜索路径中查找有最小欧式距离节点的路径,从而确定该搜索路径为当前路径,重复以上过程直至在该路径中不存在距离更近的数据点为止。
在点云导向滤波中,每组邻域数据集都可以计算1个该邻域质心点,如公式(3)所示。
(3)
式中:Pi,j为点Pi邻域里的第j个邻域点;为Pi邻域中的质心;|N(Pi)|为N(Pi)的基数。如果计算Pi所有的邻域点,滤波后的输出点云就可以通过局部线性模型拟合邻域中的导引点云N(Pi)。在N(Pi)中对Pi,j进行线性变换,可以产生相应的输出点,如公式(4)所示。
=aiPi,j+bi (4)
式中:为去噪后得到的点云数据,ai和bi为第i组线性模型调节因子,可最小化公式(5)中的代价函数J(ai,bi)来确定。对N(pi)代价函数取最小值来求解调节因子,计算过程如公式(5)所示。
(5)
式中:ε为控制滤波效果的1个因子,公式(4)和公式(5)结合可以消去bi,然后展开累加项,如公式(6)所示。
(6)
可进一步推导bi的表达式,如公式(7)所示。
bi=-ai (7)
对所有点云的每个邻域中的每个点进行线性变换,并求取线性模型。
1.2 二次导向滤波算法
经过导向滤波处理后,虽然点云数据中的噪声得到明显抑制,但是还有残留。为了进一步增强噪声去除效果,本文提出二次导向滤波算法,流程如图1所示。首先,对原始带噪声的点云数据构造KD树。其次,进行K邻域搜索,将所有点云数据的噪声点分成多个不同的邻域。求取每个邻域的质心,并以邻域质心为引导数据,计算该邻域的线性调节因子,对该邻域的点云数据进行初次导向滤波。处理后的点云数据中仍存在噪声。最后,将其作为二次导向滤波处理的引导数据。分别对原始数据与引导数据进行K邻域搜索,计算相应的线性调节因子,完成对原始点云的二次导向滤波。第一次和第二次导向滤波的差别是搜索半径参数。为了获取点云数据中的结构信息,当进行第一次导向滤波时设置的搜索半径较大;为了获得点云数据中的细节信息,当进行第二次导向滤波时设置的搜索半径较小。
从图1可知,在第一次导向滤波的基础上,将第一次导向滤波的输出作为第二次导向滤波的引导点云数据,N()为该点集。输入的原始点云数据仍然为Pi,j,二次导向滤波输出的点云数据为 qi,j。可以进一步推导,如公式(8)~公式(10)所示。
(8)
(9)
qi,j=ai'Pi,j+bi' (10)
式中:ai'、bi'为二次导向滤波的第i组线性模型调节因子;为N()的质心,ξ为<1的正数。
本文提出的方法能够保持点云数据的去噪效果并保留轮廓信息,为了评价方法的性能,选择信噪比(SNR)作为评价指标,其定义如公式(11)所示。
(11)
式中:S1、S2分别为处理后的点云数据与处理前的点云数据;pi、qi分别为相应数据集中点的坐标。
在数学统计中,均方误差(Mean Square Error, MSE)体现了估计量与被估计量的差异程度,由于该定义简洁实用,因此通常利用MSE来评价二维或三维空间数据处理前后的效果,如公式(12)所示。
(12)
式中:N为原始点云的总数。
2 试验与分析
2.1 激光雷达点云数据与试验环境
激光雷达测量具有距离长、受光线影响小的特点,其可以重建煤矿井下三维场景,为煤炭安全开采提供保障。为了分析实际场景中遮挡点、误差点、测量随机误差点等噪声点对点云数据处理的进一步影响,本文对点云数据的滤波方法进行研究。从煤矿井下采集数据难度较大,因此,本文以公开激光雷达点云数据集的数据为基础,验证所提出点云滤波方法的有效性和可靠性。本文所使用的公开数据集为SemanticKITTI。2019年,德国波恩大学的研究小组开发了该数据集,其是在 KITTI Vision数据集的基础上推出的1个基于汽车激光雷达的大型户外场景数据集显示了内城交通、住宅区以及德国卡尔斯鲁厄市
周围的高速公路场景和乡村道路。该数据集包括22个序列(每次扫描有105个点),将序列00~10定为训练集,将11~21定为测试集,分别提供了23 201个用于训练的完整3D扫描数据和20 351个用于测试的扫描数据,这使其成为公开可用的最大数据集。该数据集包括28个类别,其中6个类别为移动或非移动属性。具体来说,数据集中不区分骑车人和车辆,而是将车辆和人标记为骑自行车的人或骑摩托车的人,因此最后综合定义为22类。
本文使用的是实验室自主搭建的服务器,使用GPU加速,在PyTorch的框架下,基于上文CARLA平台中虚拟环境点云采集的数据进行试验。实验室自主搭建服务器具体配置为Ubuntu18.04、Anaconda3、Python3.7、Intel i7-6700K和NVIDIA GeForce GTX 2080 Ti,试验环境见表1。
2.2 三维导向滤波处理效果评价
算法改进前后的滤波效果对比如图2所示。从图2可以明显看出,利用三维导向滤波算法处理噪声后,能够保留原始点云模型的轮廓特征与局部纹理信息。由于在单次滤波过程中,所有邻域点对中心点的影响程度相同,因此在边缘区域仍然存在噪声,如图2(a)所示。经过本文提出的改进算法处理后的噪声点云模型整体细节完整,同时有效剔除了边缘区域的噪声数据。
利用经过本文改进的三维导向滤波算法,处理基于上文CARLA平台中的虚拟环境点云采集的数据,滤波前效果如图3(a)所示,经过二次点云导向滤波后效果如图3(b)所示。由于数据是在虚拟环境中采集的,避免了在现实环境中的大气杂质等,因此激光雷达扫描采集的数据噪声较少。三维导向滤波后效果没有明显变化,从图3(b)可以看出处理了建筑物和道路周围的杂乱点,有效防止局部细节丢失与噪声干扰,为后续点云语义分割打下了坚实基础。
为了进一步分析本文算法的点云滤波效果,本文将使用SNR和MSR 2个参数信息来验证本文改进后的算法优于其他经典滤波算法。SNR越大,滤波后的点云模型边缘效果越好;MSR越小,滤波后的点云模型边缘效果越好。大场景点云滤波结果客观评价参数见表2,与单次导向滤波相比,二次导向滤波信噪比显著提升,均方误差显著下降,说明经过二次滤波后,点云模型采样效果较好。
3 结论
本文针对激光雷达点云数据带有噪声的特点,提出了改进的二次导向滤波算法。在试验过程中,以公开的SemanticKITTI数据集数据为基础,分析滤波效果,从定性和定量2个角度证明,与使用经典导向滤波的方法相比,二次导向滤波方法处理点云数据的效果明显提升。综上所述,在对激光雷达点云数据进行预处理方面,本文提出的改进的二次导向滤波方法效果更好。
参考文献
[1]JENKE P,WAND M,BOKELOH M, et al.Bayesian point cloud"reconstruction[J].Computer Graphics Forum, 2006,25(3):379-388.
[2]KALOGERAKIS E, NOWROUZEZAHRAI D, SIMARI P,"et al. Extracting lines of curvature from noisy point clouds[J].Computer-Aided Design,2009, 41(4):282-292.
[3]张芳菲,梁玉斌,王佳.基于近邻搜索的激光点云数据孤立噪点滤波研究[J]. 测绘工程,2018,27(11):32-36.
[4]戴士杰,任永潮,张慧博.各向异性扩散滤波的三维散乱点云平滑去噪算法[J].计算机辅助设计与图形学学报,2018,30(10):7.
[5]AVRON H, SHARF A, CHEN G, et al.1-Sparse reconstruction"of sharp point set surfaces[J].ACM Transactions on Graphics,2020,26(11):3255-3270.
[6]CHEN H,WEI M,SUN Y,et al.Multi-Patch collaborative point"cloud denoising via Low-Rank recovery with graph constraint[J].IEEE Transactions on Visualization and Computer Graphics,2020,26(11):3255-3270.
[7]RAKOTOSAONA M J,LA BARBERA V,GUERRERO P,et al. PointCleanNet: learning to denoise and remove outliers from dense
point clouds[J].Computer Graphics Forum,2020,39(1):185-203.