空间栅格动态划分的点云精简方法 下载: 903次
1 引言
随着三维扫描技术的不断发展,三维测量技术已广泛应用于人机交互、虚拟现实(VR)与增强现实(AR) 游戏、机器人等领域。现有的三维扫描仪虽然可以轻松获取海量点云数据,但是其中包含大量冗余数据点。过密的数据不仅会制约计算机处理的速度,而且会影响曲面的光顺性[1-3]。因此在保留模型特征的前提下,有必要对点云进行精简。
国内外许多学者对点云精简开展了相关研究。Martin等[4]提出均匀网格法,将点云分配至均匀网格中,以网格中的中值点代替该网格内所有点,该算法未考虑特征点,易丢失模型的细节特征。Lee等[5]提出一种非均匀网格精简法,根据均匀网格内点云法矢偏差值对网格进一步细分,将点云数据分为特征区域和非特征区域,特征区域保留更多点,非特征区域保留少数点。Chen等[6]提出基于三角网格的点云精简算法,对扫描的点云数据进行三角化处理,利用向量加权算法对冗余的三角网络进行判定并删除。Pauly等[7]根据曲面变化程度分别提出了顶点聚类法和迭代精简法,顶点聚类法运行速度快,但平均误差较大,迭代法误差小,但采样率不好控制。Weir等[8]提出包围盒法,将点云模型包含在一个立体包围盒中,对包围盒不断均匀细分,取细小包围盒的中心点代替该包围盒的所有数据,该算法原理简单、易于实现,对均匀分布点云数据的精简效果良好,但包围盒的尺寸大小由人为设定,中心点由计算而非原始点云数据获得,且人为区分模型的特征和非特征区,易造成细节特征的丢失。周煜等[9]将八叉树空间分割方法和平均曲率法相结合应用于点云精简,将点云模型压入空间六面体包围盒内,设定平均曲率阈值,根据包围盒内点云数据平均曲率大小判定是否进一步细分,当平均曲率大于阈值时,细分包围盒,反之则保留立方体内曲率值最接近平均曲率的点,并删除其他数据点。张雨禾等[10]提出一种基于泊松分布的点云简化算法,将单位距离上法向变化作为局部检测算子,根据曲面弯曲程度选择不同的简化策略。刘迎等[11]根据所有点云的微分信息,将点云数据分为平面数据和非平面数据,对平面数据进行边界提取,对非平面数据根据曲面弯曲度不同进行不同程度的精简。文献[
1]提出了一种保特征的点云精简算法,根据点云的微分信息进行
当前主流精简算法是通过点云微分信息将点云数据划分为特征区和非特征区,或平面区和非平面区[12-14],针对不同区域采取不同精简策略,以在实现精简的同时较好地保留模型细节特征。但对于高密度的点云可能无法准确计算其微分信息,且点云微分信息值与
2 动态空间划分
如
2.1 空间栅格初划分
设点云数据
设定初始栅格划分间距
式中
点云模块被初划分为
式中「·⌉表示向上取整。
2.2 栅格动态细分
将平整度定义为栅格内点云到拟合平面的最大距离,其大小决定是否对该栅格进一步细分。由于拟合平面的状况将直接影响到栅格划分情况,为了提高算法的抗噪能力,减少粗大误差数据点对平面拟合的影响,首先利用RANSAC法剔除异常点(明显远离拟合平面的点)[20],再利用最小二乘法进行平面拟合,这样可保证绝大多数点云参与拟合,确保平整度计算的正确性。
具体细分方法如下。
步骤1 RANSAC平面拟合。任选一个含有点云数据的初始栅格,使用RANSAC和整体最小二乘法求得该栅格内点云的拟合平面。
1) 在栅格内任选非共线的3点,可计算该三点的拟合平面方程为
2) 计算栅格内其他各点到上述平面的距离
3) 取阈值
4) 一般重复以上步骤3~4次,即可以获得足够多的有效数据,至此RANSAC算法结束,随后可以利用最小二乘法对有效数据进行平面拟合,求解拟合的平面方程
步骤2 平整度计算及细分判断。计算栅格内各点到最终拟合平面的距离
if
if
} else {∥说明此栅格并非最小间距栅格,栅格内的数据起伏变化较大,含丰富特征信息,对栅格进一步细分为8个子栅格并分别编码,具体编码方式参考八叉树编码,累加细分次数
else{∥此条件说明栅格内数据平整度较好,栅格数据基本处于同一平面内,停止细分,并对该栅格编码。}
重复操作步骤 1、步骤 2,直到所有初始栅格全部处理完毕。
3 特征点提取保护
经动态栅格划分后,点云的特征丰富区域被划分至细小栅格内,平坦区域划分至相对较大间距的栅格内。点云精简的原则是尽可能保证模型的细微特征,为此对细小栅格内点云特征点进行提取及保护。
模型的特征点多在凹凸处,即在该区域内相邻点云的法向夹角和曲面曲率较大,文献[
7]以曲面变化度
式中{
由(3)式可知
为提高特征点识别的准确性和稳定性,在综合上述文献思路的基础上,本文方法将曲面变化度和邻域法向量夹角信息相结合共同确定特征点,即
式中
4 精简策略
本文方法点云精简基本思想为针对不同间距栅格区域采取不同的精简策略。在特征丰富区域内强制保留特征点并随机采样其余点,平坦区域根据栅格间距的大小和栅格内点云的密度信息选择不同采样率的随机采样法。由于经动态栅格划分后,细小栅格的位置区域是丰富特征区域,因此特征点的识别无需计算所有点的微分信息即可确定,这样能快速完成点云精简同时保留模型的细微特征。
假设原始点云点数为
间距大的栅格区域由于平坦性较好,可采用较低的随机采样率,而间距相对较小的栅格采用较大采样率采样方法,其中
5 算法的分析与改进
考虑到动态划分的随机性,可能会出现模型的边界正好处于两个大栅格之间的情况,此时按上述计算方法将无法检测到该特征边界。为避免此种错误,对所有大栅格取距离栅格中心点最近点云的法向量作为栅格法向量,计算相邻栅格法向量夹角,如果大于一定阈值
6 实验实例及分析
6.1 有效性验证
为了验证本文方法的有效性,选取bunny模型,采用C++语言在VS2010平台上实现精简,并且调用OpenGL库函数显示点云,具体精简结果如
图 3. 精简结果。(a)精简35.98%;(b)精简65.23%;(c)精简78.12%;(d)精简85.41%
Fig. 3. Simplification results. (a) Reduced by 35.98%; (b) reduced by 65.23%; (c) reduced by 78.12%; (d) reduced by 85.41%
原始bunny模型有34863个数据点,检测特征点数为5642,为了避免在高精简率情况下非特征区域出现过精简现象(精简后出现空白区域),在精简率为65.23%和78.12%时,设参数
为了进一步验证本文方法精简效率,将本文方法与Geomagic内经典的点云精简方法进行比较,其中包括随机采样法、栅格法和曲率精简法,分别对shell模型进行不同程度的精简,如
图 4. 随机采样法精简结果。(a)精简50%;(b)精简75%;(c)精简87.5%;(d)精简93.75%
Fig. 4. Simplification results of random sampling method. (a) Reduced by 50%; (b) reduced by 75%; (c) reduced by 87.5%; (d) reduced by 93.75%
图 5. 栅格法精简结果。(a)精简51.2%;(b)精简75.1%;(c)精简87.43%;(d)精简93.66%
Fig. 5. Simplification results of grid method. (a) Reduced by 51.2%; (b) reduced by 75.1%; (c) reduced by 87.43%; (d) reduced by 93.66%
图 6. 曲率精简法结果。(a)精简50%;(b)精简75%;(c)精简87.5%;(d)精简93.75%
Fig. 6. Simplification results of curvature method. (a) Reduced by 50%; (b) reduced by 75%; (c) reduced by 87.5%; (d) reduced by 93.75%
图 7. 本文方法精简结果。(a)精简51.5%;(b)精简75.08%;(c)精简87.53%;(d)精简93.73%
Fig. 7. Simplification results of proposed method. (a) Reduced by 51.5%; (b) reduced by 75.08%; (c) reduced by 87.53%; (d) reduced by 93.73%
由精简结果可知,随着精简率的提高,精简后模型的细微特征变模糊。特别是随机采样法和栅格法,当精简到87%左右时,模型的细节特征丢失严重,曲率精简法在高精简率情况下,平坦区域出现过精简现象,如
为更客观地评估精简质量,引入文献[
23]的评估方法,求精简后shell模型与原始模型的最大误差
图 8. 精简误差比较。(a)最大误差;(b)平均误差
Fig. 8. Simplified error comparison. (a) Maximum error; (b) average error
最大误差和平均误差随着精简率的提高而增大,本文方法精简后产生的最大误差相对平缓。在采样率为1∶16(精简率93.75%)时,本文方法产生的最大误差为1.502 mm,远小于其他三种方法。
6.2 算法性能分析
为了分析算法的抗噪声能力,在bunny模型的基础上分别添加了不同强度的高斯噪声并精简,计算精简75%后模型和原始模型的偏差值,以该偏差值作为衡量算法抗噪声干扰能力的指标,如
表 1. 不同方法精简的平均偏差距离
Table 1. Average deviation distance simplified by different methods
|
当模型添加30 dB高斯噪声时,随机采样法、栅格法和曲率精简法精简后模型与原模型的偏差急剧增加。由于随机采样和栅格法本身就不具备抗噪声能力,当噪声强度较大时,精简后所留的点有可能是噪声点,因而偏差增加;曲率精简法由于噪声强度的增加,曲率计算的准确性降低,继而使得模型的偏差增大。相比其他三种方法,本文方法产生的模型偏差相对较平缓,具有较好的抗干扰能力,在35 dB高斯噪声的影响下,本文方法产生的平均偏差为1.82×10-4 mm,分别为随机采样法和栅格法的40%及曲率精简法的50%。
7 结论
提出了一种动态栅格划分的点云精简方法,通过以栅格内部点云数据平整度为细分条件实行动态细分,将平坦区域压入间距较大的栅格内,特征丰富区域划分为细小栅格,查询细小栅格位置确定特征区域。针对特征点的提取,提出了一种综合曲面变化度和法向量夹角的点云特征提取方法,为提高特征点提取的准确性,引入了点云距离的高斯调节函数以降低远距离点对判断的权重,最后分析了精简的策略和算法的不足及改进。通过bunny模型的精简实验验证本文方法的有效性,通过与Geomagic内集成的三种经典的点云精简方法对比可见,本文方法能在精简率93.73%时较好地保持模型细节特征并且避免孔洞区域的出现,精简后模型的最大偏差为1.502 mm,远小于其他三种方法。对比不同强度的噪声模型的精简效果可见,本文方法精简后的模型偏差相对较平缓。当高斯噪声为35 dB时,本文方法产生的平均偏差为1.82×10-4 mm,分别为随机采样法和栅格法的40%、曲率精简法的50%,表明本文方法的抗噪能力和稳健性优于其他三种方法。
[1] 袁小翠, 吴禄慎, 陈华伟. 特征保持点云数据精简[J]. 光学精密工程, 2015, 23(9): 2666-2676.
袁小翠, 吴禄慎, 陈华伟. 特征保持点云数据精简[J]. 光学精密工程, 2015, 23(9): 2666-2676.
[2] 陈璋雯, 达飞鹏. 基于模糊熵迭代的三维点云精简算法[J]. 光学学报, 2013, 33(8): 0815001.
陈璋雯, 达飞鹏. 基于模糊熵迭代的三维点云精简算法[J]. 光学学报, 2013, 33(8): 0815001.
[3] 姚顽强, 郑俊良, 陈鹏, 等. 八叉树索引的三维点云数据压缩算法[J]. 测绘科学, 2016, 41(7): 18-22.
姚顽强, 郑俊良, 陈鹏, 等. 八叉树索引的三维点云数据压缩算法[J]. 测绘科学, 2016, 41(7): 18-22.
Yao Wanqiang, Zheng Junliang, Chen Peng, et al. An octree-based mesh simplification algorithms for 3-dimension cloud data[J]. Science of Surveying and Mapping, 2016, 41(7): 18-22.
[4] Martin RR, Stroud IA, Marshall AD. Data reduction for reverse engineering[C]. Proceedings of the 7th conference on Information Geometers, Limited, 1997: 85- 100.
Martin RR, Stroud IA, Marshall AD. Data reduction for reverse engineering[C]. Proceedings of the 7th conference on Information Geometers, Limited, 1997: 85- 100.
[7] PaulyM, GrossM, Kobbelt LP. Efficient simplification of point-sampled surfaces[C]. Proceedings of the IEEE Conference on Visualization, 2002: 163- 170.
PaulyM, GrossM, Kobbelt LP. Efficient simplification of point-sampled surfaces[C]. Proceedings of the IEEE Conference on Visualization, 2002: 163- 170.
[9] 周煜, 张万兵, 杜发荣, 等. 散乱点云数据的曲率精简算法[J]. 北京理工大学学报, 2010, 30(7): 785-789.
周煜, 张万兵, 杜发荣, 等. 散乱点云数据的曲率精简算法[J]. 北京理工大学学报, 2010, 30(7): 785-789.
Zhou Yu, Zhang Wanbing, Du Farong, et al. Algorithm for reduction of scattered point cloud data based on curvature[J]. Transactions of Beijing Institute of Technology, 2010, 30(7): 785-789.
[10] 张雨禾, 耿国华, 魏潇然, 等. 保留几何特征的散乱点云简化算法[J]. 计算机辅助设计与图形学学报, 2016, 28(9): 1420-1427.
张雨禾, 耿国华, 魏潇然, 等. 保留几何特征的散乱点云简化算法[J]. 计算机辅助设计与图形学学报, 2016, 28(9): 1420-1427.
Zhang Yuhe, Geng Guohua, Wei Xiaoran, et al. Point clouds simplification with geometric feature reservation[J]. Journal of Computer-Aided Design and Computer Graphics, 2016, 28(9): 1420-1427.
[11] 刘迎, 王朝阳, 高楠, 等. 特征提取的点云自适应精简[J]. 光学精密工程, 2017, 25(1): 245-254.
刘迎, 王朝阳, 高楠, 等. 特征提取的点云自适应精简[J]. 光学精密工程, 2017, 25(1): 245-254.
[13] 王丽辉, 袁保宗. 三维散乱点云模型的特征点检测[J]. 信号处理, 2011, 27(6): 932-938.
王丽辉, 袁保宗. 三维散乱点云模型的特征点检测[J]. 信号处理, 2011, 27(6): 932-938.
Wang Lihui, Yuan Baozong. Feature point detection for 3D scattered point cloud model[J]. Sigal Processing, 2011, 27(6): 932-938.
[14] ChenY, YueL. A method for dynamic simplification of massive point cloud[C]. IEEE International Conference on Industrial Technology (ICIT), 2016: 1690- 1693.
ChenY, YueL. A method for dynamic simplification of massive point cloud[C]. IEEE International Conference on Industrial Technology (ICIT), 2016: 1690- 1693.
[15] 朱煜, 康宝生, 李洪安, 等. 32(2): 521-523+544[J]. . 一种改进的点云数据精简方法. 计算机应用, 2012.
朱煜, 康宝生, 李洪安, 等. 32(2): 521-523+544[J]. . 一种改进的点云数据精简方法. 计算机应用, 2012.
ZhuYu, KangBaosheng, LiHongan, et al. Improved algorithm for point cloud data simplification[J]. Journal of Computer Applications, 2012, 32(2): 521-523+544.
ZhuYu, KangBaosheng, LiHongan, et al. Improved algorithm for point cloud data simplification[J]. Journal of Computer Applications, 2012, 32(2): 521-523+544.
[16] Lee PF, Huang CP. The DSO feature based point cloud simplification[C]. IEEE Eighth International Conference on Computer Graphics, Imaging and Visualization, 2011: 1- 6.
Lee PF, Huang CP. The DSO feature based point cloud simplification[C]. IEEE Eighth International Conference on Computer Graphics, Imaging and Visualization, 2011: 1- 6.
[17] SchnabelR, KleinR. Octree-based point-cloud compression[C]. Eurographics/IEEE Vgtc Conference on Point-Based Graphics, 2006: 111- 121.
SchnabelR, KleinR. Octree-based point-cloud compression[C]. Eurographics/IEEE Vgtc Conference on Point-Based Graphics, 2006: 111- 121.
[18] HuangM, YangF, ZhangJ, et al. Point cloud data simplification using movable mesh generation[J]. Metallurgical & Mining Industry, 2015( 9): 230- 237.
HuangM, YangF, ZhangJ, et al. Point cloud data simplification using movable mesh generation[J]. Metallurgical & Mining Industry, 2015( 9): 230- 237.
[19] 朱俊锋, 胡翔云, 张祖勋, 等. 多尺度点云噪声检测的密度分析法[J]. 测绘学报, 2015, 44(3): 282-291.
朱俊锋, 胡翔云, 张祖勋, 等. 多尺度点云噪声检测的密度分析法[J]. 测绘学报, 2015, 44(3): 282-291.
Zhu Junfeng, Hu Xiangyun, Zhang Zuxun, et al. Hierarchical outlier detection for point cloud data using a density analysis method[J]. Acta Geodaetica et Cartographica Sinica, 2015, 44(3): 282-291.
[20] 雷玉珍, 李中伟, 钟凯, 等. 基于随机抽样一致算法的误匹配标志点校正方法[J]. 光学学报, 2013, 33(3): 0315002.
雷玉珍, 李中伟, 钟凯, 等. 基于随机抽样一致算法的误匹配标志点校正方法[J]. 光学学报, 2013, 33(3): 0315002.
[21] 陈龙, 蔡勇, 张建生, 等. 基于多判别参数混合方法的散乱点云特征提取[J]. 计算机应用研究, 2017, 34(9): 2867-2870.
陈龙, 蔡勇, 张建生, 等. 基于多判别参数混合方法的散乱点云特征提取[J]. 计算机应用研究, 2017, 34(9): 2867-2870.
Chen Long, Cai Yong, Zhang Jiansheng, et al. Feature point extraction of scattered point cloud based on multiple parameters hybridization method[J]. Application Research of Computers, 2017, 34(9): 2867-2870.
Chen Long, Cai Yong, Zhang Jiansheng, et al. Feature point extraction of scattered point cloud based on multiple parameters hybridization method[J]. Application Research of Computers, 2017, 34(9): 2867-2870.
[23] Shi B Q, Liang J, Liu Q. Adaptive simplification of point cloud using k-means clustering[J]. Computer-Aided Design, 2011, 43(8): 910-922.
Shi B Q, Liang J, Liu Q. Adaptive simplification of point cloud using k-means clustering[J]. Computer-Aided Design, 2011, 43(8): 910-922.
Article Outline
傅思勇, 吴禄慎, 陈华伟. 空间栅格动态划分的点云精简方法[J]. 光学学报, 2017, 37(11): 1115007. Siyong Fu, Lushen Wu, Huawei Chen. Point Cloud Simplification Method Based on Space Grid Dynamic Partitioning[J]. Acta Optica Sinica, 2017, 37(11): 1115007.