【技术实现步骤摘要】
一种基于骨架的三维点云模型分割方法
本专利技术属于三维图像
,具体涉及一种基于骨架的三维点云模型分割方法。该方法适用于对已有的三维点云模型进行语义分割。
技术介绍
随着三维扫描获取技术的快速发展,点云数据处理研究已成为数字几何处理研究发展过程中的研究热点。三维模型分割,是把完整的三维模型根据人类语义上的不同,分割为子部分的过程。三维模型的分割是研究和应用过程中非常重要的环节,并且成为近年来计算机辅助设计和图形学研究的热点。对于三维点云模型,其语义分割过程就是对模型上的数据点进行分析并计算,找出其中的特征点,并以特征点为分割依据,对三维模型原始数据进行分割。对于现有三维模型分割方法存在对模型细微特征不敏感、时间代价高以及扫描获取到的点云数据量大的问题,本专利技术先对原始数据进行骨架提取,然后通过骨架分割以达到分割三维模型的目的。
技术实现思路
为了解决现有三维模型分割方法存在对模型细微特征不敏感、时间代价高的缺点,本专利技术提出了一种基于骨架的三维点云模型分割方法。为解决上述技术问题,本专利技术采用的技术方案为:一种基于骨架的三维点云模型分割方法,所述三维点云模型 ...
【技术保护点】
1.一种基于骨架的三维点云模型分割方法,其特征在于,所述三维点云模型分割方法步骤如下:步骤1,对输入的三维模型数据source进行面片重组,并通过泰森多边形极点计算内侧骨架,然后使用迭代网格收缩算法提取薄骨骨架结构,得到骨架数据skeleton;步骤2,在骨架数据skeleton中,计算每个骨架点的K近邻点,并置骨架点的标记位skeleton_flag为0,并计算任意两个K邻域点与当前骨架点形成的向量的夹角angle,并与夹角的阈值angle_flag进行比较,若angle>angle_flag或者angle
【技术特征摘要】
1.一种基于骨架的三维点云模型分割方法,其特征在于,所述三维点云模型分割方法步骤如下:步骤1,对输入的三维模型数据source进行面片重组,并通过泰森多边形极点计算内侧骨架,然后使用迭代网格收缩算法提取薄骨骨架结构,得到骨架数据skeleton;步骤2,在骨架数据skeleton中,计算每个骨架点的K近邻点,并置骨架点的标记位skeleton_flag为0,并计算任意两个K邻域点与当前骨架点形成的向量的夹角angle,并与夹角的阈值angle_flag进行比较,若angle>angle_flag或者angle<π-angle_flag,则置该骨架点的标记位near_flag_p为-1,否则near_flag_p为1,然后将点所有邻域点的标记位相加作为点p的标记位skeleton_flag的值;循环计算骨架点标记位的过程,直到全部骨架点的标记位计算结束,选择骨架点标记位skeleton_flag>0的点作为候选关键点,并存储到队列L;步骤3,由于步骤2中的得到的候选关键点存在聚集的情况,通过在候选关键点集合中进行关键点区域生长,得到聚集在同一个区域的关键点的集合cluster_part_key_temp,然后把这些关键点围成的区域看作多边形,通过质心公式计算多边形的质心,接下来分别求这个区域内的候选关键点到质心的距离,最后得到距离局部区域质心最近的候选关键点作为实际关键点,循环关键点优化过程完成关键点优化,并把实际关键点存入数组cluster_part_key中;步骤4,弹出关键点队列L中的第一点,以该点作为种子点进行区域生长,寻找满足同一分区条件的点,将其增加到同一个点集中,直到区域无法生长,集合作为第一个聚类;循环上述区域生长过程,直到关键点队列中全部关键点均作为种子点生长完成,最终形成n个点集cluster_list1…cluster_listn;步骤5,对于步骤4中得到的n个点集,通过计算两个分割区域的相似性把点集cluster_listk(k∈[1,n])与其相邻点集进行合并,得到n’个新的点集cluster_list1…cluster_listn’;步骤6,根据cluster_list1…cluster_listn’中的点与原始三维模型数据的关系,把cluster_list1…cluster_listn’中的数据点与原始点进行映射,其得到的不同区域就是三维模型分割的最终结果。2.根据权利要求1所述的基于骨架的三维点云模型分割方法,其特征在于,所述步骤2中,在骨架数据skeleton中,计算每个骨架点的K近邻点,并置骨架点的标记位skeleton_flag为0,并计算任意两个K邻域点与当前骨架点形成的向量的夹角angle,并与夹角的阈值angle_flag进行比较,若angle>angle_flag或者angle<π-angle_flag,则置该骨架点的标记位near_flag_p为-1,否则near_flag_p为1,然后将点所有邻域点的标记位相加作为点p的标记位skeleton_flag的值。循环执行上述过程,直到全部骨架点计算结束,选择骨架点标记位skeleton_flag>0的点作为候选关键点,并存储到队列L,由步骤2.1至步骤2.6实现:步骤2.1,设置骨架数据点标记位和向量夹角的阈值,分别记为skeleton_flag和angle_flag,并置skeleton_flag为0;步骤2.2,以骨架数据任意点p为中心,利用k-近邻算法计算离p最近的K个邻域点,记为near(p),并为邻域点设置标记位near_flag_p(i,j),且置为0;步骤2.3,使用p点的邻域点坐标减去p点坐标形成K个方向向量n1,n2…nk;步骤2.4,利用公式(1)计算点p邻域内任意两个方向向量n1,n2…nk的夹角angle,并与设置的角度阈值angle_flag进行比较,如公式(2)所示,若满足1angle≤angle_flag∪angle≥π-angle_flag,则设置该角度对应的标记位near_flag_p(i,j)为1,否则置标记位near_flag_p(i,j)为-1;这里i≠j;步骤2.5,通过步骤2.4求出的邻域点的标记位的值,根据公式(3)计算骨架点的标记信息,并置当前点的标记位skeleton_flag为相应值:步骤2.6,通过步骤2.1至步骤2.5,求出的每个点标记位skeleton_flag的值,然后选择skeleton_flag>0的点作为候选关键点,并存放在队列L中。3.根据权利要求2所述的基于骨架的基于骨架的三维点云模型分割方法,其特征在于,所述步骤3中,由于步骤2中的得到的候选关...
【专利技术属性】
技术研发人员:韩慧妍,高天一,韩燮,吕金泽,潘文,苏明辉,曹山海,
申请(专利权)人:中北大学,
类型:发明
国别省市:山西,14
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。