基于向量场和等值面的改进泊松重建算法 下载: 1470次
1 引言
三维点云重建技术在医疗可视化、无人驾驶、测绘和工业自动化等领域得到了广泛应用[1-3]。泊松重建算法是基于隐函数的曲面重建[4],相比于其他算法,该算法结合了全局和局部方法的优点,允许对局部基函数划分层次结构,将其重建投射成为泊松空间问题。该算法输入点云及法向量,点云数据的预处理影响重建结果的精度,而整个算法是基于估计模型的表面指示函数和等值面的提取进行的,指示函数的梯度集合由点集的法向量确定,因此法向量的估计精度和等值面的提取算法对表面重建效果有重大影响。
近年来,国内外学者在泊松重建方面作了大量研究。Bolitho等[5]基于多网格域分解实现泊松重建算法并行化,使用分布式内存在不影响精度的情况下,提供9倍加速。Kazhdan等[6]提出一种屏蔽的泊松表面重建算法,对输入的点云数据进行插值约束,利用多重网格算法求解,能够保持系统的稀疏点结构不发生改变。Estellers等[7]提出一种更具鲁棒性的泊松曲面重建算法,利用Huber惩罚代替最小二乘保真项,求解表面指示函数时引入凸函数最小化问题,在非均匀采样和有噪点的情况下仍能重建出较好的结果。袁小翠等[8]提出一种邻域法向迭代估计法,采用主成分分析(PCA)法估计和加权邻域法向之和来确定法向,该方法能够较准确地估计法向和保留曲面的尖锐特征。张小兵等[9]提出一种基于数字全息与虚拟制造相结合的地貌测量和模型重建方法,采用平面拟合结合随机霍夫变换法估计法向量,最后基于筛选的泊松曲面重建和曲面分割完成密封平面地貌的表面重建,但不适用于复杂曲面模型。李青等[10]提出一种基于移动广义三棱柱(GTP)的等值面提取算法,根据提取非空的GTP来生成等值面,利用移动GTP(MGTP)算法对等值点的个数进行对比,通过剖分法有效地消除拓扑二义性。王明等[11]将移动立方体(MC)算法与移动四面体(MT)算法进行了对比和分析,通过5个不同的代数曲面实验得到MC算法精度较高,MT算法效率较高。
传统泊松重建算法误连接点云孔洞区域及法线方向不一致的问题并没有很好解决,基于上述研究基础及存在的问题,本文提出一种基于向量场和等值面的改进泊松重建算法。先利用统计滤波器对点云数据进行去噪,为点云的配准提供均匀的采样点,再利用加权PCA结合移动最小二乘(MLS)法对点云法向量进行计算并优化测量误差,利用OpenMP加速法线估计,最后利用改进的DC(Dual Contouring)算法提取等值面来消除曲面孔洞和误连接曲面特征的问题,实现点云的表面重建。经过实验验证,该算法有效地解决了传统泊松重建算法的法线方向不一致和孔洞误连接区域的问题,提高了重建曲面的精准度且减少了重建时间。
2 改进算法原理
改进的泊松重建算法流程如
图 1. 改进的泊松表面重建算法流程
Fig. 1. Flow chart of improved Poisson surface reconstruction algorithm
2.1 点云滤波
对点云数据进行采样时,由于传感器的精度、获取人员的视线和光照等因素,掺杂着一些噪声点或离群点,造成重建的结果产生伪表面,因此使用统计滤波器移除输入点云集的测量噪声点,其思想是对每个点的邻域进行统计分析,计算其与邻域点的平均距离。经多次实验发现,邻域点个数K取50,标准差倍数为1时,滤波效果最佳。假设得到的平均距离满足正态分布,根据其均值和方差定义一个距离阈值,若某个点到邻域点的平均距离大于该距离阈值,则视为噪点并去除。点云滤波算法的具体步骤如下。
1) 计算点云集S={pi,i=1,2,…,n}中每个点pi到所有K邻域点的平均距离di。
2) 计算di的平均值μ和标准差σ,表达式为
3)根据μ和σ设定距离阈值z=μ+ασ,其中α为标准差倍数,依次将每个点的di与z相比,大于阈值的点被标记为离群点或噪声点,并将其移除。
2.2 法向量方向估计
泊松重建算法建立在已有法向量信息的三维点云模型的基础上,根据高斯散度理论,表面法向量的向量场等于指示函数的梯度,因此对于向量场的估计和计算对后续重建精度有很大影响。计算每个点pi的K邻域中的加权最小二乘平面,并将平面的法向作为真实曲面法向的估计,再从点pi的邻域中构造一个加权协方差矩阵。
法线估计算法的具体步骤如下。
1) 使用KD树搜索最近邻,得到点云P的最近邻元素pm,m=1,2,…,k,k为邻域点个数。
2) 依次计算每个点pi的最近邻全部元素的质心坐标
3) 计算点云P与其最近邻元素构造的协方差矩阵C,加入权值
式中:pi为点pi的坐标向量;λj为C的第j个特征值;vj为第j个特征向量;ϕi表达式为
式中:vi为pi到某个邻近点的距离。
4)对得到的法向量进行方向一致性处理。假设已知视点vp,对所有ni法线定向只需要使其一致朝向视点方向,满足方程ni·(vp-pi)>0,则法线ni满足方向一致性,若不满足方程,则法向量取反方向。
2.3 法向量计算
通过2.2节的方法可得到加权协方差矩阵的特征向量,其列向量用来存储法线位置,法线与邻域点拟合的最优平面正交,通过MLS法优化误差函数[14],从而求得更加精确的法向量。误差函数ε定义为
式中:<·>为向量的点乘运算;‖·‖为向量的模;n0为拟合平面的法向量估计,并进行归一化,即‖n‖=1;D为原始点到拟合平面的距离;qj为点pi或邻域点在局部基准面上的投影点;w为减函数,随距离增加而减少,通常取高斯形式,即
式中:h为平滑参数。
综合2.1~2.2节的方法,具体算法步骤如下。
1) 将权值参数引入误差函数,则定义为
式中:(<n,pi>-D)2为拟合平面的误差。
2) 将问题转化为求解误差函数中的最小值,求得n和D,目标函数T和约束条件可表示为
式中:R为实数集。
3) 最小化公式可重新写成双线性形式[15]。加权协方差矩阵B=[bkl],则
4) 计算B的最小特征值对应的特征向量,求得n和D。法向量拟合结构如
2.4 改进的DC算法
传统泊松重建利用MC算法提取等值面会出现模型二义性和表面特征问题,体素中面上的一条对角线上的两端点值大于等值面的极限值,另一条对角线上的两端点值小于等值面的极限值,即为二义性问题,如
图 4. MC算法二义性的结果。(a)两种形式;(b)四种结果
Fig. 4. Results of ambiguity of MC algorithm. (a) Two forms, (b) four results
图 5. 不同算法的结构示意图。(a) MC算法;(b)改进的DC算法
Fig. 5. Structure diagram of different algorithms. (a) MC algorithm; (b) improved DC algorithm
改进的DC算法具体步骤如下。
1) 在相交点外定义一个顶点坐标,顶点位于二次误差函数的最小值处,二次误差函数定义为
式中:mi为交点;ni为交点位置的法向量;x为点云三维坐标。
2) 定义n×3矩阵A的行向量为相交点的法向量ni,n×1矩阵B的行向量为ni·mi,故二次误差函数可写为E(x)=(Ax-B)T(Ax-B),扩展开为E(x)=xTATAx-2xTATB+BTB,其中ATA为3×3对称矩阵,ATB为3×1矩阵,BTB为单标量,最小值
3) 基于QR(R为上三角矩阵)分解的方法计算一个正交矩阵Q,其作为给定旋转序列,使得Q与(A B)的乘积满足
式中:
4) 将4×4矩阵初始化为0矩阵来形成QR分解的结果,对于体素中符号更改的每个边,将边上交点和法向描述的平面方程附加到矩阵底部,并在5×4矩阵上执行给定旋转,使其成为上三角形的形式。
5) 根据ATA=
6) 选取体素与等值面相交的一边,计算周围四个体素单元的顶点,将其连接成四边形面片,当质量点c在体素外,则舍去此等值面。
3 实验分析与讨论
实验的运行环境:Inter(R)Core(TM)i7-8750,CPU为2.2 GHz,显卡为GTX1060,运行内存8 GB。使用Visual Stduio 2017开发工具结合PCL(Point Cloud Library)[16]1.8.1库函数进行实验。采用已有的rabbit、table和horse等模型[17]作为实验对象,将运用改进算法的点云去噪、法线定向结果和表面重建结果与传统泊松重建算法、贪婪投影三角化算法和文献[ 18]重建算法进行对比,验证所提算法的有效性和可行性。
在传统泊松重建算法中加入点云数据预处理过程,先通过改进算法对table模型的点云数据进行去噪处理,K值分别取30、50和70进行比较,得到处理前后的效果和点云数量的对比,如
表 1. 不同点云去噪前后的点云数量对比
Table 1. Comparison of number of point clouds before and after denoising of different point clouds
|
表 2. 不同点云数据的重建时间对比
Table 2. Comparison of reconstruction time for different point cloud data
|
图 6. 所提算法的滤波效果对比。(a)原始点云数据;(b) K=30;(c) K=50;(d) K=70
Fig. 6. Comparison of filtering effect of the proposed algorithm. (a) Original point cloud dataset; (b) K=30; (c) K=50; (d) K=70
表 4. 四种算法重建模型精度
Table 4. Reconstructed model accuracy of four algorithms
|
表 3. 四种算法重建模型的面片数量
Table 3. Patch number of the reconstructed model of four algorithms
|
图 7. 法线估计可视化。 (a)(e)(i)预处理后点云;(b)(f)(j)两种传统算法的法线估计;(c)(g)(k)文献[ 18]的法线估计;(d)(h)(l)改进算法的法线估计
Fig. 7. Visualization of normal estimation. (a) (e)(i) Point cloud after preprocessing; (b)(f)(j) normal estimation of two traditional algorithms; (c)(g)(k) normal estimation of Ref. [18]; (d)(h)(l) normal estimation of improved algorithm
为了进一步体现改进算法的性能,对比了四种算法的不同点云重建时间并分析四种算法的时间复杂度,如
使用四种重建算法分别对不同点云数据进行三维模型重建实验,可得到四种算法实现的三维表面模型,如
图 9. 四种算法的表面重建比较。 (a)(e)传统泊松算法重建;(b)(f)文献[ 18]算法重建;(c)(g)贪婪投影三角化算法重建;(d)(h)改进算法重建
Fig. 9. Comparison of surface reconstruction with four algorithms. (a)(e) Reconstruction of traditional Poisson algorithm; (b)(f) reconstruction of algorithm in Ref. [18]; (c)(g) reconstruction of greedy projection triangulation algorithm; (d)(h) reconstruction of improved algorithm in this paper
图 10. 改进算法的不同点云数据表面重建。 (a) Table模型重建;(b) pig模型重建;(c) horse模型重建
Fig. 10. Improved algorithm for surface reconstruction of different point cloud data. (a) Table model reconstruction; (b) pig model reconstruction; (c) horse model reconstruction
利用两个定量分析精度评价指标,即精度和完整度,对四种重建算法的模型结果进行定量精度评价。利用迭代最近点(ICP)算法计算网格模型的精确性,运用MeshLab工具显示面片数量并计算重建模型的完整性,考虑原始点云数据的不完整性,所以评价时会滤除4%的最近邻的异常值,如
4 结论
提出一种基于向量场和等值面的改进泊松表面重建算法,实现了更加精准和高效率的表面重建。改进算法利用统计滤波器对采样的点云数据进行去噪处理,同时采用加权PCA结合MLS法进行法线估计并利用OpenMP加速法线估计,与传统泊松算法相比,提出的算法可较好地解决法线估计方向不一致问题。此外,利用改进DC算法代替MC算法,多生成一个顶点以连接成四边形面片提取等值面并舍去冗余等值面。实验结果表明,与传统泊松重建算法相比,改进算法有效地去除点云噪声点,提高法线估计方向一致性,并有效地去除模型中可能存在的孔洞和伪封闭曲面,提高重建曲面的准确度且减少了20%的重建时间,并展示了较好的鲁棒性和通用性;与贪婪投影三角化算法相比,改进算法虽然重建时间加长,但孔洞现象大大减少,提高了重建模型的精度。但该算法中法线估计需多次调试后才能确定合适参数,并且重建的时间复杂度并没有很好改善,因此,如何自适应法线估计和提高重建精度的同时降低时间复杂度是今后的研究方向。
[1] 刘同海, 滕光辉, 张盛南, 等. 基于点云数据的猪体曲面三维重建与应用[J]. 农业机械学报, 2014, 45(6): 291-295.
Liu T H, Teng G H, Zhang S N, et al. Reconstruction and application of 3D pig body model based on point cloud data[J]. Transactions of the Chinese Society for Agricultural Machinery, 2014, 45(6): 291-295.
[2] WiemannT, MitschkeI, MockA, et al. Surface reconstruction from arbitrarily large point clouds[C]∥2018 Second IEEE International Conference on Robotic Computing (IRC), January 31-February 2, 2018, Laguna Hills, CA. New York: IEEE, 2018: 278- 281.
[3] 孟志义, 钱林. 基于点云数据的文物精细建模[J]. 测绘通报, 2011( 12): 40- 43.
Meng ZY, QianL. Cultural relics fine modeling based on point clouds[J]. Bulletin of Surveying and Mapping, 2011( 12): 40- 43.
[4] KazhdanM, BolithoM, HoppeH. Poisson surface reconstruction[C]∥Proceedings of the fourth Eurographics symposium on Geometry processing, June 26-28, 2006, Cagliari, Sardinia, Italy. New York: ACM, 2006: 61- 70.
[5] BolithoM, KazhdanM, BurnsR, et al. Parallel Poisson surface reconstruction[M] ∥Bebis G, Boyle R, Parvin B, et al. Advances in visual computing. Lecture notes in computer scienc. Heidelberg: Springer, 2009, 5875: 678- 689.
[6] Kazhdan M, Hoppe H. Screened Poisson surface reconstruction[J]. ACM Transactions on Graphics, 2013, 32(3): 29.
[7] EstellersV, ScottM, TewK, et al. Robust Poisson surface reconstruction[M] ∥Aujol J F, Nikolova M, Papadakis N. Scale space and variational methods in computer vision. Lecture notes in computer science. Cham: Springer, 2015, 9087: 525- 537.
[8] 袁小翠, 吴禄慎, 陈华伟. 尖锐特征曲面散乱点云法向估计[J]. 光学精密工程, 2016, 34(10): 2581-2588.
Yuan X C, Wu L S, Chen H W. Normal estimation of scattered point cloud with sharp feature[J]. Optics and Precision Engineering, 2016, 34(10): 2581-2588.
[9] 张小兵, 刘海江. 基于数字全息的密封平面表面形貌测量及其模型重建[J]. 光学学报, 2018, 38(9): 0912001.
[10] 李青, 李青元, 刘孝璐, 等. 基于移动广义三棱柱的等值面提取算法[J]. 测绘与空间地理信息, 2018, 41(10): 86-89.
Li Q, Li Q Y, Liu X L, et al. Isosurface extraction based on marching generalized three prism[J]. Geomatics & Spatial Information Technology, 2018, 41(10): 86-89.
[11] 王明, 冯结青, 杨贲. 移动立方体算法与移动四面体算法的对比与评估[J]. 计算机辅助设计与图形学学报, 2014, 26(12): 2099-2106.
Wang M, Feng J Q, Yang B. Comparison and evaluation of marching cubes and marching tetrahedra[J]. Journal of Computer-Aided Design & Computer Graphics, 2014, 26(12): 2099-2106.
[12] Ju T, Losasso F, Schaefer S, et al. Dual contouring of hermite data[J]. ACM Transactions on Graphics (TOG), 2002, 21(3): 339-346.
[13] Marton ZC, Rusu RB, BeetzM. On fast surface reconstruction methods for large and noisy point clouds[C]∥2009 IEEE International Conference on Robotics and Automation, May 12-17, 2009, Kobe. New York: IEEE, 2009: 3218- 3223.
[14] OhS, Park HD, Jo Y D. Automatic extraction of rock joints from laser scanned data by moving least squares method and fuzzy K-means clustering[J]. ISPRS-International Archives of the Photogrammetry, RemoteSensing and Spatial InformationSciences, 2012, XXXVIII-5/W12: 243- 246.
[15] Alexa M, Adamson A. Interpolatory point set surfaces: convexity and Hermite data[J]. ACM Transactions on Graphics, 2009, 28(2): 20.
[16] Rusu RB, CousinsS. 3D is here: point cloud library (PCL)[C]∥2011 IEEE International Conference on Robotics and Automation, May 9-13, 2011, Shanghai, China. New York: IEEE, 2011: 12315963.
[17] 庞正雅, 周志峰, 王立端, 等. 一种改进的点云数据三维重建算法[J]. 激光与光电子学进展, 2020, 57(2): 021102.
[18] 黄矿裕, 唐昀超, 邹湘军, 等. 基于改进法线方向的泊松曲面重构算法[J]. 激光与光电子学进展, 2019, 56(14): 141005.
高锋, 周虹, 黄超. 基于向量场和等值面的改进泊松重建算法[J]. 激光与光电子学进展, 2020, 57(10): 101016. Feng Gao, Hong Zhou, Chao Huang. Improved Poisson Reconstruction Algorithm Based on Vector Field and Isosurface[J]. Laser & Optoelectronics Progress, 2020, 57(10): 101016.