基于点云内骨架的分割算法 下载: 1390次
1 引言
三维点云分割一般根据三维点云信息的空间特征、几何特征或纹理特征等对其进行区分,使得同一片区域内的点具有相同的属性,分割后的结果可用于识别和分类等[1]。受点云数据规模较大、采样密度不均匀以及点云数据几何结构不清晰等因素的影响,点云分割具有一定的挑战性。比较有效的分割方法是联合点云内部骨架和外部特征点进行分割。
对于三维点云的骨架提取,目前常用的方法有:1)对称轴分析法。该方法由Blum[2]提出,以视觉特征为基础,通过处理点云的中轴信息来提取骨架。该方法多用于处理多边形模型或参数曲线曲面模型,使用此方法能够获取精确度较高的骨架。对于复杂的动植物模型,该方法的计算比较复杂,精度较低,很难在实际应用中实现[3]。2)基于拉普拉斯(Laplace)收缩的三维点云骨架提取方法。该方法由Cao等[4]提出,其先对点云进行Laplace算子收缩,从外围向内部迭代收缩从而提取出骨架。这种方法容易在局部点云上出现过收缩。此外,该方法的准确性很大程度上依赖于如何设定Laplace算子的参数,Laplace算子参数的细小偏差都将导致点云的分割结果达不到预期要求。3)基于数学结构上的分析方法。这类方法中比较典型的有Reeb图法和Voronoi图法。Reeb图法是由Shinagawa等[5]提出的,该方法利用输入数据点上的标量函数,对数据边缘点与点之间的关系进行映射,构造出一种数学结构关系图。Dey等[6]则是利用Voronoi图的特性对点云进行骨架提取,但是在处理一些有噪声的点云数据时Voronoi图法的效果一般。4)基于
一些研究团队对骨架分割进行了积极探索。Zhan等[8]提出一种基于颜色的点云分割方法。该方法是一种依据色度相似性和空间接近性的分割方法,具有一定的局限性。Wang等[9]提出了一种基于聚类的分割方法。该方法首先将输入点云的正态线映射到高斯球上,然后使用平移聚类算法将其划分为组,最后基于欧氏聚类算法处理数据。该方法能够分割出建筑物、树木、路灯和其他物体,其主要是用于处理大型城市建筑物数据。Rabbani等[10]提出了一种使用平滑约束度分割点云的方法。该方法使用局部表面法线和点连接,使用
2 算法流程图
本文算法的基本思路是:首先利用
3 点云骨架提取
3.1 点云随机下采样
通过随机下采样把采样点收缩为骨架点,从而生成骨架点。一般来说,采样点越多,稳健性越好,但是计算量也越大。实验发现采样点过多或过少对结果的影响均不大,这里采样点的数量设置为总数的10%。对于采样点的位置,可以通过洗牌算法来选定采样点的位置。
为直观展示洗牌算法的步骤,以
表 1. 洗牌算法
Table 1. Fisher-Yates algorithm
|
3.2 采样点收缩形成骨架
得到一系列采样点后利用
1)条件正则化
给出一系列乱序的点集
式中:
当(1)式中的能量梯度为0时,代入
式中:
在(2)式中,根据线性代数可得到关于
接下来,通过设置参数的取值即可完成条件正则化。
2) 迭代收缩骨架
给定邻域大小
3) 基于密度的加权
对于一些点云密度不均匀的数据,局部中心往往会偏向于密度较高的区域,导致输出的点云骨架点的位置在切面方向上发生位移,因此需要对密度进行加权。
将输入的点云集中的每个点
将其代入到(3)式中,即可得到
通过第一项中的加权局部密度可以有效地减小密度不均匀区域对收缩结果的影响。此外,局部点的密度由函数
4) 再次定义中心位置
在正常条件下,生成的
4 对骨架点进行分割
4.1 点云体素化
将输入点云体素化,利用八叉树算法覆盖输入点云[13],如
体素化确定了在
4.2 点云特征估计
研究人员除了可从三维激光扫描仪中获取一些诸如几何坐标[17]、RGB颜色信息等,还可从点云数据的分布中获取一些有价值的信息,例如围绕中心的各个方向的数据以及每个主方向上数据点的方差。在三维点云中,通常把最小的方差对应的方向称为平面法向量的近似值。本研究所使用的区域增长算法主要是利用法向量的特征进行信息处理,这些信息都根据体素中的点进行计算。利用基于主成分分析(PCA)算法对以上法向量特征进行分析。
4.3 区域增长
利用基于八叉树的区域增长算法逐步将有相似特征的体素分组,在分组的过程中会产生一些体素簇,每一个体素簇都代表着平滑表面的一个部分。利用八叉树进行区域增长有以下3点好处:1)先对点云进行体素化,减少了后续进行区域增长的工作量;2)相邻体素点涉及到的邻域算法有助于减少对原始点云数据的
1) 输入原始点云集,将整个点云按照每个点的曲率进行排序,搜索出曲率最小的点,并将其添加为种子点。
2) 搜寻种子点邻域的点,若邻域内某一点的法向量与种子点的法向量的差值小于一定的范围,则计算该点的曲率。若该点的曲率小于设定的阈值,则该点属于当前的部分。
3) 从原始点云中去除已经通过第二步测试后的点。
4) 根据点云中点的数量设置最小点云簇(分割出的最小数量)和最大点云簇(分割出的最大数量)。
5) 重复以上步骤,原始点云将会被分割成满足以上最小和最大点云簇的部分。对每个部分进行染色,使用不同颜色对不同部分加以区分。
6) 当剩余点的数量小于设置的最小点云簇时,停止分割。
5 实验结果及分析
实验所用计算机的CPU为Intel Core i5-7300HQ,CPU的主频为2.50 GHz,电脑内存为8 GB,操作系统为Windows10 64位。实验所用软件为Visual Studio 2013 Visual C++ 控制台应用程序,开源库为OpenGL,开源点云库为PCL1.8.0。首先利用
图 3. 树枝(有叶)模型。(a)原数据;(b)骨架点;(c)结果
Fig. 3. Tree (with leaf) model. (a) Raw data; (b) skeleton point; (c) result
图 4. 树枝(无叶)模型。(a)原数据;(b)骨架点;(c)分割结果
Fig. 4. Tree (without leaf) model. (a) Raw data; (b) skeleton point; (c) result
图 5. 字母模型。(a)原数据;(b)骨架点;(c)分割结果
Fig. 5. Alphabet model. (a) Raw data; (b) skeleton point; (c) result
图 6. 人体模型。(a)原数据;(b)骨架点;(c)分割结果
Fig. 6. People model. (a) Raw data; (b) skeleton point; (c) result
图 7. 珊瑚模型。(a)原数据;(b)骨架点;(c)分割结果
Fig. 7. Coral model. (a) Raw data; (b) skeleton point; (c) result
图 8. 动物模型。(a)原数据;(b)骨架点;(c)分割结果
Fig. 8. Animal model. (a) Raw data; (b) skeleton point; (c) result
从分割层面来讲,
表 2. 算法的运行时间
Table 2. Running time of algorithm
|
此外,将本文算法与传统的Laplace收缩方法进行对比,结果如
图 9. 骨架点提取对比实验。(a)(d)原始数据;(b)(e)本文算法;(c)(f)拉普拉斯算法
Fig. 9. Comparative experiment of skeleton point extraction. (a)(d) Raw data; (b)(e) our method; (c)(f) Laplacian method
6 结论
针对三维点云内骨架分割计算量大,且已有的方法存在一定的局限性的问题,提出一种针对点云内骨架的分割方法。利用
[1] ReniersD, TeleaA. Skeleton-based hierarchical shape segmentation[C]∥IEEE International Conference on Shape Modeling and Applications 2007 (SMI'07), June 13-15, 2007, Lyon, France. New York: IEEE, 2007: 9855063.
[3] 李涛. 代数边界曲线的中轴计算及其相关问题[D]. 杭州: 浙江工业大学, 2011: 4- 6.
LiT. Medial axis computation for algebraic curves and related issues[D]. Hangzhou: Zhejiang University of Technology, 2011: 4- 6.
[4] Cao JJ, TagliasacchiA, OlsonM, et al. Point cloud skeletons via Laplacian based contraction[C]∥2010 Shape Modeling International Conference, June 21-23, 2010, Aix-en-Provence, France. New York: IEEE, 2010: 187- 197.
[8] Zhan QM, Liang YB, Xiao Y H. Color-based segmentation of point clouds[J]. Laser Scanning, 2009, XXXVIII: 248- 252.
[10] Rabbani T, Vosselman G. Segmentation of point clouds using smoothness constraints[J]. ISPRS Commission V Symposium: Image Engineering and Vision Metrology, 2006, 35: 248-253.
[11] Wang WY, YuR, Huang QG, et al. SGPN: similarity group proposal network for 3D point cloud instance segmentation[C]∥2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition, June 18-23, 2018, Salt Lake City, UT, USA. New York: IEEE, 2018: 2569- 2578.
[13] 张坤, 乔世权, 周万珍. 基于三维形状匹配的点云分割[J]. 激光与光电子学进展, 2018, 55(12): 121011.
[15] PulliK, DuchampT, HoppeH, et al. Robust meshes from multiple range maps[C]∥Proceedings. International Conference on Recent Advances in 3-D Digital Imaging and Modeling (Cat. No.97TB100134), May 12-15, 1997, Ottawa, Ont., Canada. New York: IEEE, 1997: 205- 211.
[16] Wang JN, Oliveira MM, XieH, et al. Surface reconstruction using oriented charges[C]∥International 2005 Computer Graphics, June 22-24, 2005, Stony Brook, NY, USA. New York: IEEE, 2005: 122- 128.
[17] 邓博文, 王召巴, 金永, 等. 基于形态学梯度的激光扫描点云特征提取方法[J]. 激光与光电子学进展, 2018, 55(5): 051203.
[18] 李仁忠, 刘阳阳, 杨曼, 等. 基于改进的区域生长三维点云分割[J]. 激光与光电子学进展, 2018, 55(5): 051502.
Article Outline
李仁忠, 刘哲闻, 刘阳阳. 基于点云内骨架的分割算法[J]. 激光与光电子学进展, 2019, 56(22): 221102. Renzhong Li, Zhewen Liu, Yangyang Liu. Segmentation Algorithm Based on Point Cloud Skeleton[J]. Laser & Optoelectronics Progress, 2019, 56(22): 221102.