受仪器测量误差、物体反射、遮挡、光照及环境变化等因素的影响,三维激光扫描获取的初始点云数据模型中往往含有大量噪声点。噪声点的数量越多,密度越大,对点云质量的影响就越大,因此需要采取合适的去噪算法将其加以删除。
为了在去噪的同时有效保持点云的几何特征信息,进一步提高点云去噪的精度和速度,本章提出了一种特征保持的点云去噪算法。首先计算点云中的点及其邻域点的张量投票矩阵,并计算该矩阵的特征值和特征向量;然后利用各向异性滤波方程对点云进行光顺处理,实现点云初始粗去噪;最后计算点云的曲率特征,根据曲率进一步删除点云中的噪声点,并通过计算点云的熵对算法进行定量评价。
对于点云 P ={ p i }, i =1,2,…, N P , N P 表示点云 P 中点的数目。点云 P 上任意一点 p i 都可以表示为一个3×3的对称半正定矩阵。假设 N k ( p i )为点 p i 的 k 个邻域点集,那么点 p i 及其邻域点集 N k ( p i )的张量投票矩阵 T 为 [1]
式中, I 3 是一个3×3的单位矩阵; ν k 为采样点 p i 与其邻域点 p ij 连线的方向向量, j =1,2,…, k ; 。
在此通过建立张量投票矩阵 T 和点云中点的几何特征关系来实现点云初始粗去噪。假设 λ 1 , λ 2 , λ 3 表示张量投票矩阵 T 的3个特征值,并且满足 λ 1 ≥ λ 2 ≥ λ 3 , e 1 , e 2 , e 3 表示3个特征值 λ 1 , λ 2 , λ 3 对应的特征向量。那么,由点的几何特征和张量投票矩阵特征值的分布关系可知:当 λ 1 ≥ λ 2 ≈ λ 3 ≈0时,点 p i 为点云中的点;当 λ 1 ≈ λ 2 ≥ λ 3 ≈0时,点 p i 为点云边界上的点;当 λ 1 ≈ λ 2 ≈ λ 3 ≥0时,点 p i 为点云上的角点或孤立点。
基于张量投票和点的几何特征关系,该点云初始粗去噪算法的基本步骤描述如下:
(1)对于噪声点云 P ={ p i },首先利用K-D树算法搜索点 p i 的 k 个最近邻域点集 N k ( p i )。
(2)利用式(2.1)计算点 p i 及其最近邻域点集 N k ( p i )的张量投票矩阵 T ,并求解 T 的特征值 λ 1 , λ 2 , λ 3 和特征向量 e 1 , e 2 , e 3 。
(3)根据 λ 1 , λ 2 , λ 3 和 e 1 , e 2 , e 3 构造扩散张量矩阵 D , D 定义为
式中, D ij ,1≤ i , j ≤3,定义为
式(2.3)中,参数 μ 1 , μ 2 , μ 3 定义为
(4)基于扩散张量 D ,利用各向异性扩散方程 [2] 对点云进行循环滤波去噪,直到滤波次数的值大于给定阈值时为止。各向异性滤波方程的定义式为
式中, J p 是点云的结构张量,表示点云的局部信息特征; D 是扩散张量,其特征值代表点云在3个主特征方向上的扩散速率; I 0 ( x , y , z )是初始输入的点云数据。
从基于张量投票的点云初始粗去噪算法可见,结构张量可以保留点云的局部信息特征,尤其是点云的尖锐几何特征,能有效剔除点云中的大尺度噪声(距离主体点云较远的噪声)和部分混杂在主体点云中的小尺度噪声,从而实现点云的初始粗去噪。接下来,采用基于曲率特征的去噪算法进一步去除混在主体点云中的其余噪声。
在对点云进行进一步精去噪时,主要是去除点云主体中混杂的小尺度噪声,在此通过提取曲率几何特征来实现点云小尺度噪声的精去噪。点云的曲率能够较好地反映点云的表面特征,它可以通过在离散点集拓扑结构的基础上进行曲面拟合计算得到。这里通过搜索点云中各离散点的 k 邻域点来建立点云的拓扑结构,可以有效提高空间分布不均匀的海量离散点集的空间搜索效率。
假设经过对点云 P 进行初始粗去噪后,得到的点云数据模型为 , i =1,2,…, N P ′ 。其中, p i ′ 表示点云 P ′ 中的任意一点; N P ′ 表示点云 P ′ 中点的数目; 表示采用K-D树算法搜索的点云 P ′ 中的任意一点 的 k 邻域点集。那么就可以计算 曲率、法向量等几何信息。
本节采用移动最小二乘法 [3-4] 计算点 的法向量。假设点 处的切平面方程为 ax + by + cz + d =0, a 2 + b 2 + c 2 =1,那么点 的法向量为 n i =[ a , b , c ] T 。利用点 到切平面的距离,构建 的 k 邻域点集 的观测方程为
式中, 。其中,( x i , y i , z i )是点 的坐标;( x i , j , y i , j , z i , j )是点 的 k 个邻域点的坐标, j =1,2,…, k ; d i ,0 是点 到切平面的距离; d i ,1 , d i ,2 ,…, d i , k 表示点 的 k 个邻域点各自到切平面的距离。
假设 表示点 的 k 邻域点集 中的任意一点,利用高斯函数计算点 到切平面的距离为 ,则点 的权值 w i , j 为
式中, h 是距离常数。
建立如下约束准则,即
由式(2.10)约束准则可得
式中, 。
由式(2.11)可求得 Y ,从而得到 a 、 b 、 c 、 d 的值。再根据点 的法向量 n i =[ a , b , c ] T ,可求得点 的曲率 C i 为
式中, 表示点 的第 k 个邻域点的法向量。
由于点云表面不同点的曲率各不相同,结合以上点云中点的曲率和法向量的计算方法,基于曲率特征的点云精去噪算法的步骤具体描述如下:
(1)对于点云 P ′ ,采用移动最小二乘法计算其上任意一点 的法向量 n i 。
(2)遍历点云中每个点 ,并根据点 及其 k 个邻域点的法向量用式(2.12)计算曲率。
(3)判断每个点的曲率,若曲率大于给定阈值 ε ,则判断该点为噪声点,需将该点删除。
通过上述步骤即可实现点云噪声的最终精删除。
为了描述去噪算法对点云特征的保持程度,这里采用信息熵理论 [5] 对点云去噪结果进行定量评价。信息熵理论可以描述去噪后点云的特征信息,点云中某点的熵越大,表明该点的信息量越大,细节表现越精确。定义某点的信息熵 H i 为
式中, 和 分别表示点 和点 的曲率概率分布,其中, C i 表示点 的曲率, C j 表示点 的邻域点 的曲率。
由此可以计算点云 P ′ 的熵 H 为
通常,点云熵 H 越大,对应点所包含的特征信息量就越大,对点云的细节表现就越精确。
在公共点云数据模型去噪实验中,采用Bunny和Dragon点云数据模型,通过对模型进行加噪来验证本章介绍的去噪算法,加噪的公共点云数据模型如图2.1所示。
图2.1 待去噪公共点云数据模型
对于图2.1的公共点云数据模型,采用本章提出的特征保持的点云去噪算法进行去噪,首先采用基于张量投票的去噪算法进行初始粗去噪,粗去噪结果如图2.2所示;然后采用基于曲率的去噪算法进行精去噪,最终去噪结果如图2.3所示。实验中,参数 k 的值取16,具体取值跟点云类型和密度等有一定关系,密度越大,取值越小,通常建议取值8~28。
图2.2 本章算法对公共点云数据模型的粗去噪结果
图2.3 本章算法对公共点云数据模型的精去噪结果
从图2.2和图2.3的去噪结果可见,基于张量投票的去噪算法可以有效剔除公共点云中的大尺度噪声和部分小尺度噪声,实现点云的初始粗去噪,而基于曲率的去噪算法可以对点云中的小尺度噪声进行精去噪。同时,本章算法可以较好地保留公共点云数据模型的原始几何特征,是一种有效的点云去噪算法。
为了进一步验证本章去噪算法的性能,对图2.1所示的公共点云数据模型再分别采用基于扩散滤波的去噪算法 [6] 、基于移动稳健主成分分析(Moving Robust Principal Components Analysis,MRPCA)的去噪算法 [7] 和自适应各向异性去噪算法 [8] 进行去噪,去噪结果如图2.4~图2.6和表2.1所示。
图2.4 基于扩散滤波的去噪算法对公共点云数据模型的去噪结果
图2.5 基于MRPCA的去噪算法对公共点云数据模型的去噪结果
图2.6 自适应各向异性去噪算法对公共点云数据模型的去噪结果
表2.1 不同算法对公共点云数据模型的去噪结果
续表
从图2.3~图2.6的去噪结果可见,本章算法在对点云数据模型去噪的同时能够更好地保留原始细节特征,可见本章算法具有更高的可行性。从表2.1算法的运行参数可见,本章算法的误差最小、耗时最短,而且熵较基于扩散滤波的去噪算法、基于MRPCA的去噪算法和自适应各向异性去噪算法的都要大,因此本章算法是一种更加精确快速的点云数据模型去噪算法。
在文物点云数据模型去噪实验中,采用5个含噪声的陶质文物碎块的点云数据模型来验证本章算法,如图2.7所示。利用本章提出的特征保持的点云去噪算法,首先采用基于张量投票的去噪算法对文物碎块的点云数据模型进行初始粗去噪,粗去噪结果如图2.8所示;然后基于粗去噪的结果,采用基于曲率的去噪算法进行精去噪,最终去噪结果如图2.9所示。实验中,参数 k 的值取16。
图2.7 待去噪的文物点云数据模型
图2.8 本章算法对文物点云数据模型的初始粗去噪结果
图2.9 本章算法对文物点云数据模型的精去噪结果
从图2.8和图2.9的去噪结果可见,基于张量投票的去噪算法可以有效剔除公共点云数据模型中的大尺度噪声和部分小尺度噪声,实现点云的初始粗去噪。而基于曲率的去噪算法可以对点云中的小尺度噪声进行精剔除。同时,本章去噪算法在对文物点云数据模型去噪的同时,能够较好地保留模型的原始几何特征信息,是一种有效的文物点云数据模型去噪算法。
为了进一步验证本章提出的点云去噪算法的性能,对图2.7所示的文物碎块点云数据模型再分别采用基于扩散滤波的去噪算法、基于MRPCA的去噪算法和自适应各向异性去噪算法分别进行去噪,去噪结果如图2.10~图2.12和表2.2所示。
图2.10 基于扩散滤波的去噪算法对文物点云数据模型的去噪结果
图2.11 基于MRPCA的去噪算法对文物点云数据模型的去噪结果
图2.12 自适应各向异性去噪算法对文物点云数据模型的去噪结果
表2.2 不同算法对文物点云数据模型的去噪结果
续表
从图2.9~图2.12的去噪结果可见,本章算法在对点云数据模型去噪的同时能够更好地保留原始细节特征,可见本章算法具有更高的可行性。从表2.2的算法运行参数同样可见,本章算法的去噪平均误差最低、耗时最短,而且熵较基于扩散滤波的去噪算法、基于MRPCA的去噪算法和自适应各向异性去噪算法的都要大,包含的特征信息量更大,对点云的细节表现更加精确。因此,本章算法是一种精度高、速度快,且能有效保持点云几何特征信息的有效点云数据模型去噪算法。
点云去噪是点云预处理的一个重要环节,有效的点云去噪算法应该在去噪的同时还能够保持原始点云数据的几何特征信息,并且算法具有较低的复杂度和较高的执行效率。本章提出了一种层次化的点云去噪算法,首先采用基于张量投票的去噪算法对点云进行初始粗去噪,然后采用基于曲率特征的去噪算法对点云进行精去噪,该算法对公共点云数据模型和文物点云数据模型均具有良好的去噪效果,是一种有效的点云去噪算法。
[1]戴士杰,任永潮,张慧博.各向异性扩散滤波的三维散乱点云平滑去噪算法[J].计算机辅助设计与图形学学报,2018,30(10):1843-1849.
[2]李鹏,邹杨,姚正安.四阶各向异性扩散方程在图像放大中的应用[J].中国图象图形学报,2013,18(10):1261-1269.
[3]GHONEI A Y. A smoothed particle hydrodynamic-sphase field method with radial basis functions and moving least squares for meshfree simulation of dendritic solidification [J].Applied Mathematical Modelling,2020,77(2):1704-1741.
[4]邓吉,李健,封皓,等.不连续相位跳变点的三维深度分割[J].光学精密工程,2019,27(11):2459-2466.
[5]武剑洁.基于点的散乱点云处理技术的研究[D].武汉:华中科技大学,2004.
[6]ZHANG Y, LU X Q. A three-dimensional diffusion filtering model establishment and analysis for point cloud intensity noise[J].Journal of Computing and Information Science in Engeering,2017,17(1):10-31.
[7]MATTEI E, CASTRODAD A. Point cloud denoising via moving RPCA[J].Computer Graphics Forum,2017,36(8):123-137.
[8]XU Z, FOI A. Anisotropic denoising of 3D point clouds by aggregation of multiple surface-adaptive estimates[J].IEEE transactions on visualization and computer graphics,2019,99(12):1-10.