一种基于曲率判别的点云去噪与精简算法*

2022-02-11 08:40张匡宇
南方农机 2022年3期
关键词:精简邻域曲率

张匡宇 , 田 庆

(陕西铁路工程职业技术学院,陕西 渭南 714000)

0 引言

在地面三维激光扫描仪采集数据时,受扫描对象的表面反射、实测环境等的影响,采集得到的点云包含一小部分噪声,噪声点混杂在目标物体表面点云中,从而导致被测物体细节特征丢失[1-3]。另外,通常扫描点云密度大,这些数据会造成处理效率低下。由于以上原因,需要对点云数据进行去噪和精简处理,从而提高模型精度和数据处理效率。

在三维激光点云去噪方面,国内外学者进行了广泛的研究,Fleishman等[4]提出局部邻域格网顶点法线向量滤波的去噪算法,先计算法向量,再由法向量值决定去噪强度,该算法有较好的平滑效果,但运算效率较低;苏志勋等[5]提出了一种基于法向修正的点云平滑算法,此算法适用于少量噪声点的情况,但当模型中噪声点较多时,法向量修正的偏差会影响点云平滑效果;曹爽等[6]将改进的移动最小二乘法去噪扩展到三维空间,由邻域点之间的相关系数计算权值向量,由向量判别平曲,从而去除噪声,该方法具有较好的鲁棒性;王金志等[7]针对点云噪声在尺寸上的特点,将其分为大尺寸噪声和小尺寸噪声,大尺寸噪声采用统计滤波的方法去除,小尺寸噪声则采用双边滤波的方法进行平滑。

在三维激光点云精简方面,相关的研究有:Martin等[8]提出,将全部点云映射到一网格平面,将点云均匀分配到其中,此时可将原始数据替换为网格中值点,但在进行精简的过程中,并没有分析点云特征,会导致部分细节特征丢失;袁小翠等[9]以高斯映射为依据实现点云聚类,把所有聚类划分为平坦区域、非平坦区域,再多次细划非平坦区域,由聚类中心点代替聚类所有点;张雨禾等[10]提出基于泊松分布进行点云精简,先判断每个点云在等距离上的法向量,再根据法向量的变化得出因子检测曲率的大小,对不同的曲率平面差别进行精简。

常见点云算法中,点云去噪与精简分开进行,运算量大。课题组提出一种基于曲率判别的点云去噪与精简统一的算法,首先估算点云的法向量,依据曲率对点云进行分类,对不同区域采用不同的去噪方法,然后依据曲率对点云进行不均匀精简,达到较高精简率的同时保留点云细节信息。

1 点云几何信息估算

1.1 点云数据法向量的估算

主成分分析法(Principal Components Analysis,PCA)估算点云的法向量如下:设P为所有点云数据的集合,P={P1,P2,…,Pn},其中点云总数为n,任一点Pi的K邻域的点集合为:Pk={Pk1,Pk2,…,Pkk},G表示邻域点云的重心,那么:

点Pi的协方差矩阵C定义为:

协方差矩阵C是一个对称的半正定矩阵,求解下面方程:

可以得到协方差矩阵C的三个特征值λ1,λ2,λ3,以及三个特征值所对应的三个特征向量α1,α2,α3。假设大小λ1<λ2<λ3,那么λ1为最小特征值,λ1所对应的特征向量α1就是点Pi的K邻域模拟的点云虚拟平面的法向量。

在Matlab中采用PCA计算出的点云向量如图1所示:(a)为整体点云中每个点与所对应法向量;(b)为图(a)圈中的放大图。一个个点组成点云,点向外的小箭头是各个点拟合平面的法向量。整体上看,图中各点的法向量方向和点所在邻域平面基本呈垂直状态,说明PCA对于点云法向量的估计有较好的效果。

图1 点云向量示意图

1.2 基于平均曲率的点云特征分类

为了有效进行后续的去噪与精简算法,同时达到较好的特征保留效果,需要先将三维点云划分为平缓区域和特征区域。课题组采用基于点云平均曲率的方法对三维点云数据进行邻域划分。假设任意点Qi处的平均曲率为Hi,则定义采样点在k近邻域内的局部特征权值如式(4)所示:

其中H为采样点邻域内的平均曲率:

根据点云的实际情况,首先设定阈值M,若任意点Q处的局部特征权值小于设定阈值M,则判定该点位于平缓区域;如果若任意点Q处的局部特征权值大于设定阈值M,则判定该点位于特征区域。

2 点云去噪与精简

2.1 平坦区域的点云去噪

对于平滑区域,曲率变化较小,采用一种基于采样点到近邻点平均距离的统计滤波算法,可以去除远离该区域的离散点。统计滤波算法统计点云数据中任一被查询点在其邻域内所有点集之间的距离并处理,设三维点云数据模型中的任意一点记为,i=1,2,3,…,n(n为点云总数)。P的K邻域内任意点 ,j=1,2,3,…,K(K为邻域内点云数),Pi到Pj的距离为Sj,则:

认为得到的结果满足正态分布,均值以及标准差分别为S和σ,Pi到其邻域每个点的平均距离S为:

邻域距离的标准差σ为:

正态分布形状由均值S和标准差σ决定,定义S+σ小于标准范围的点为有效点,平均距离在标准范围之外的点可被定义为离散点,并从数据集中删除。

2.2 特征区域的点云去噪

拉普拉斯滤波法是一种优秀的点云去噪算法,其原理是对三维点云的每一个点采用Laplace算子,Laplace算子定义如下所示:

设Pi为点云中任意一个待处理点:

对上式积分后,模型曲面中存在的小的变化特征、邻点云噪声数据就会快速发散到该点的邻域中,通过这种方法来提高模型曲面平整度。显式欧拉积分法表达式:

采用该方法处理每一个点云数据,使其逐步移动到邻域的质心处:

其中,Qj为Pi的第j个邻域点,λ为较小的正数,点云滤波中wj为邻近点至点Pi的距离的倒数。采样点进行若干次迭代后,使高频采样点逐渐向其邻域范围内扩散,从而消除噪声。

2.3 点云不均匀精简

课题组采用不均匀网格法进行点云精简,其思想是在点云平缓区域采用步长较大的网格,在点云数据起伏较大或是特征明显的地方将网格再次细分,采用步长较小的网格,每个网格只保留中心点,在特征区域会保留更多的点云,以描绘点云的细节,在平缓区域可以实现较高的精简率。由于已经将点云划分成了平缓区域和特征区域,只需要在平缓区域和特征区域用不同步长网格进行精简即可。

3 实验与结果分析

为了验证本算法,对兔子点云模型进行实验。首先,在原始点云中加入少量的白噪声,得到带有噪声点的待处理点云,再运行算法,得到去噪精简后的点云数据,如图2所示。图2(a)为原始兔子点云数,图2(b)为去噪精简运算后的点云,可以很直观地看到点云数量的减少,说明有较好的精简效果。为了更客观地说明点云的去噪效果,利用Geomagic软件对原始点云和去噪精简后的点云分别进行封装,得到点云立体模型,由软件可以计算出两个立体模型之间的偏差。从表1的数据可以看出,课题组所用的方法误差较小,很好地保持了原模型的特征,既避免产生过度光滑导致模型失真,又较好地去除了噪声点云。

图2 点云对比

表1 点云模型偏差与精简效果

4 结论

课题组提出一种基于曲率判别的点云去噪与精简统一的算法。首先通过主成分分析法估算点云的法向量,由此对点云进行分类;然后对于曲率较小的平滑区域采用统计滤波算法处理,对于曲率较大的特征区域采用拉普拉斯滤波法进行滤波;最后依据曲率对点云进行不均匀精简,曲率较小的平滑区精简率较高,曲率较大的特征区精简率较低,达到较高精简率的同时保留点云细节信息。对兔子点云模型用算法进行实验,结果表明:课题组提出的算法有较好的去噪效果,点云误差较小,精简效果良好。

猜你喜欢
精简邻域曲率
基于混合变邻域的自动化滴灌轮灌分组算法
一类具有消失χ 曲率的(α,β)-度量∗
儿童青少年散瞳前后眼压及角膜曲率的变化
含例邻域逻辑的萨奎斯特对应理论
基于区域分割的多视角点云精简算法
面向复杂曲率变化的智能车路径跟踪控制
很美,很暖,很享受 Unison Research(优力声) MAX Mini书架音箱 Simply Italy精简意大利真空管合并放大器
尖锐特征曲面点云模型各向异性邻域搜索
一种面向应用的流量监测精简架构设计
不同曲率牛顿环条纹干涉级次的选取