CN114419276A - 基于最优传输和聚类的曲线骨架提取方法 - Google Patents

基于最优传输和聚类的曲线骨架提取方法 Download PDF

Info

Publication number
CN114419276A
CN114419276A CN202210057969.7A CN202210057969A CN114419276A CN 114419276 A CN114419276 A CN 114419276A CN 202210057969 A CN202210057969 A CN 202210057969A CN 114419276 A CN114419276 A CN 114419276A
Authority
CN
China
Prior art keywords
points
point
skeleton
clustering
sampling
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210057969.7A
Other languages
English (en)
Other versions
CN114419276B (zh
Inventor
王佳栋
陈中贵
曹娟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen University
Original Assignee
Xiamen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xiamen University filed Critical Xiamen University
Priority to CN202210057969.7A priority Critical patent/CN114419276B/zh
Publication of CN114419276A publication Critical patent/CN114419276A/zh
Application granted granted Critical
Publication of CN114419276B publication Critical patent/CN114419276B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

基于最优传输和聚类的曲线骨架提取方法,涉及三维图像处理领域。旨在为点云模型处理提供分析和帮助,包括步骤:S1、输入三维点云模型并进行缩放,对点云进行下采样,设定相关参数;S2、利用最优传输得到原始点云模型和采样点云模型的分配方案,并更新采样点云模型的坐标;S3、将采样点视作聚类中心,调整聚类;S4、根据聚类的邻接关系确定采样点的连接关系;S5、对采样点进行特征检测,识别出骨架点;S6、选取部分非骨架点为种子点,将非种子点和种子点进行合并;S7、重复步骤S2‑S6,直至模型的所有点都是骨架点;S8、优化端点位置,对偏离中心的边进行插点操作。利用最优传输和聚类的方法,可保留点云模型的细小特征。

Description

基于最优传输和聚类的曲线骨架提取方法
技术领域
本发明涉及三维图像处理领域,尤其是涉及一种基于最优传输和聚类的曲线骨架提取方法。
背景技术
计算机图形学是计算机学科的一个重要分支,它的发展伴随着数学、微电子、软件工程等学科的发展,受到动画制作、工业设计、游戏制作、医疗模型等需求的驱动,具有重大的现实意义。网格、点云等数据存储方式蕴藏大量的信息,但是它们无法直接描述一个模型的拓扑结构和特征,曲线骨架作为一种简单的数据结构,是对模型整体的特征描述。骨架可以提取模型的拓扑结构和特征,进行形状分割、行为识别、模型补全、蒙皮动画等等。
现有的点云骨架提取方法主要分成几类:1、拓扑驱动方法,常见的有Reeb图法,该方法根据定义的函数f确定点云模型中所有点的值,并将值归一化到区间[0,1],将区间[0,1]平均分成若干子区间,然后根据顶点的函数值划分到对应的子区间中,同时根据顶点之间的连接关系,将各子区间中的顶点组合成相应的子连通分量,并记录各子连通分量之间的邻接关系,最后为每个子连通分量计算一个代表子顶点。2、种是Voronoi图法,该方法利用Voronoi图计算得到模型的中轴,对中轴的简化得到骨架。3、收缩法,该方法利用收缩的方式将点云往模型中间收缩,随着收缩的进行,模型不同粗细的分支会收缩到十分细长的结构,再对点云模型进行简化得到骨架。4、体素细化方法,从外到内删除模型的体素,直到没有可以删除的体素为止,最后得到模型的骨架。
拓扑驱动法的抗噪能力较弱,Voronoi图法对于三维点云形成Delaunay三角化的消耗较大,收缩法往往会丢失模型的小尺度分支,体素细化法只考虑模型的局部信息,会导致连通性出现问题。本发明为解决上述问题,提出具有一定的抗噪能力,并且能够保留模型的细小分支的方法。
发明内容
本发明的目的在于针对现有曲线骨架提取方法对模型细节的丢失等问题,提供可以对输入的三维点云模型提取出一维的点线结构,同时保留原始点云模型细小特征的一种基于最优传输和聚类的曲线骨架提取方法。
本发明包括以下步骤:
1)输入三维点云模型并进行缩放,对点云进行下采样,设置相关参数;
2)利用最优传输得到原始点云模型和采样点云模型的分配方案,使用不动点法更新采样点云模型的坐标,重复执行最优传输计算分配方案和不动点法更新采样点坐标,直至收敛;
3)对最优传输得到的初始聚类结果进行优化,将采样点视作聚类中心,通过聚类之间的重新分配调整聚类大小和位置;
4)根据聚类的邻接关系确定采样点的连接关系;
5)通过特征检测,将采样点标记为骨架点或非骨架点;
6)选取部分非骨架点为种子点,将非种子点和种子点进行合并,以减少聚类个数;
7)重复步骤2)~6),直至模型的所有点都是骨架点;
8)优化端点位置,对偏离中心的边进行插点操作。
在步骤1)中,所述相关参数包括KNN的大小、棱锥角的阈值等;KNN的大小可为16、棱锥角的阈值可为0.43;
所述输入三维点云模型并进行缩放,输入的是三维的点云数据,要求点云模型本身存在合理的骨架;将模型等比例缩放,使得模型AABB(axis-aligned bounding box)的对角线长度为1;预处理原始点云的KNN,为使得KNN在模型分支处更加准确,取K2=K/2,先进行一次小范围的KNN,随后用KNN形成一个连通图,在连通图上使用Dijkstra算法找到最近的K个点;对于每一个原始点,计算该点到其KNN的距离,将距离的中位数的倒数作为该原始点的质量,最后将原始点的质量归一化;
所述对点云进行下采样,可对原始点云进行采样可以直接应用随机采样,设置采样点云的每一个点质量相等,且质量之和为1。
所述采样点云的大小可为原始点云的8%~15%。
在步骤2)中,为达到聚类的效果,默认每一个原始点都将它的质量完全传输给某一个采样点;随后使用不动点法迭代更新采样点的坐标,重复执行最优传输计算分配方案和不动点法更新采样点坐标,直至收敛。
在步骤3)中,所述对最优传输得到的初始聚类结果进行优化,可将采样点视作聚类中心,尝试将聚类中的一个点移动到相邻聚类中,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中;聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新,之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。
在步骤4)中,所述根据聚类的邻接关系确定采样点的连接关系,可从聚类的信息出发,根据两个聚类对应原始点云的邻接关系判断聚类中心的连接关系,连接关系是为形成一个连通图,方便后续的特征检测以及边的缩塌。
在步骤5)中,所述对采样点进行特征检测,识别出骨架点,可先对采样点进行主成分分析,考察多个变量间相关性,利用协方差矩阵的特征值来描述采样点的分散程度;随后计算每一个采样点的棱锥角、最大角和最小角和面积权重,根据这些特征识别骨架点。
在步骤6)中,所述选取部分非骨架点为种子点,将非种子点和种子点进行合并的具体步骤可为:
(1)将与骨架点直接相连的点设置为种子点,种子点和非种子点只会从非骨架点中选取;对于采样点形成的图:若某个三角形有且仅有两个点是非种子点,且第三个点是非骨架点,那么直接将这两个种子点合并;若某个三角形三个顶点都是种子点,那么选择长度差异最短的两条边保留,将第三条边进行缩塌;反复执行该操作,直至没有边可以缩塌;此时还可能出现一个骨架点连着两个种子点的情况,若某个种子点的连边只有种子点或者骨架点,那么将它跟骨架点合并;对于每个三角形需要选择一个种子点,按照非种子点度的大小来进行选择;聚类的合并不应该过分激进,所以种子点个数需要占非骨架点个数的70%~80%,若此时种子点个数不足,直接对剩余的非种子点随机采样直至满足条件;
(2)将采样点云进行聚类操作,尝试将聚类中的一个非种子点移动到相邻聚类中,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中;聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新,之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。
(3)完成采样点的聚类操作后,将非种子点与对应的种子点进行合并。
在步骤7)中,所述直至模型的所有点都是骨架点,此时得到的结果就是一个保留细节特征的、粗糙的曲线骨架,已经描述原始点云模型的拓扑结构,但仍旧需要进行一个后处理。
在步骤8)中,所述优化端点位置,对偏离中心的边进行插点操作,需要对端点的位置进行优化,使其代表的聚类细节更加合理;尝试将聚类B中的一个点移动到相邻聚类A中,并且聚类A的中心是骨架图的端点,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中,聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新。
在一些分支处,可能会存在聚类过度合并的情况,导致连边偏离模型的中心,因此需要进行插点操作。
以下给出本发明的原理说明:
T1、本发明利用最优传输来生成一个曲线骨架,点云服从离散概率分布,利用最优传输可以得到两个离散概率分布的联合概率分布,在点云上就是两个点云模型的传输关系。从另一个角度看,最优传输也给出当前两个点云的最优聚类关系,通过聚类间的重新分配得到更优的聚类结果。通过聚类间的合并减少聚类个数,最终形成一个曲线骨架。
T2、关于如何给定点云的离散概率分布,本发明对于原始点云设计争对疏密程度的离散概率分布,对于采样点云采用离散均匀分布,通过聚类间的合并和重新分配,自适应地产生后续的概率分布。
T3、关于如何对聚类进行重新分配,本发明基于wasserstein distance设计一个点云上的非线性能量函数,减少离群点对聚类结果的影响。通过减少能量函数的方式优化聚类的分配,使得聚类有一个良好的分配。
T4、为最终能得到曲线骨架,需要减少聚类的个数,本发明通过聚类间的合并来实现。本发明对聚类进行特征检测,选择一部分种子点,通过将非种子点与种子点进行合并达到减少聚类个数的目的。
与现有技术相比,本发明具有以下突出的优点:
1、现有技术无法提取模型的细小分支,本发明使用端点检测技术,固定模型的端点,尽可能地保留模型的细小分支。
2、本发明使用特征检测技术,识别出模型的骨架点,将骨架点与非骨架点分开处理,使得模型不同尺度的部分之间互不影响。
3、本发明使用更少的点提取良好的曲线骨架,使得骨架更加简洁。同时本发明也支持骨架点的细化,支持骨架点之间新骨架点的插入。
附图说明
图1为输入的原始点云(白色)跟采样得到的采样点云(黑色),采样点个数大约为原始点云的10%。
图2为原始点云的KNN图。
图3为图1进行最优传输后,更新采样点坐标的结果。
图4为采样点作为聚类中心调整聚类的示意图。其中,(a)为调成聚类前;(b)调成聚类后。
图5为在图4基础上根据聚类的邻接关系确定采样点的连接关系。
图6为在图5基础上特征点的检测以及种子点的设定。其中,大黑点为骨架点、小黑点为种子点和小白点为非种子点。
图7为非种子点与种子点的合并。
图8为粗糙的曲线骨架,已经描述原始点云模型的拓扑结构。
图9为对端点进行优化、插点操作,其中小黑点为插入的点。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下实施例将结合附图对本发明作进一步的说明。在对本实施例进行详细描述之前,需要指出的是,本实施例所演示的一种基于最优传输和聚类的曲线骨架提取方法,是一种自动方式,用户仅需手动设置少量的算法参数即可。关于部分参数的设置,为获取尽量好的结果,建议原始点云模型的点个数不少于5000,采样点的个数不宜过小,会导致细节的丢失,也不宜过大,会导致计算速度较慢。
本发明包括以下步骤:
S1、输入三维点云模型并进行缩放,对点云进行下采样,设定相关参数,如KNN的大小、棱锥角的阈值等;
S2、利用最优传输得到原始点云模型和采样点云模型的分配方案,使用不动点法更新采样点云模型的坐标,重复执行最优传输计算分配方案和不动点法更新采样点坐标,直至收敛;
S3、将采样点视作聚类中心,通过聚类之间的重新分配调整聚类大小和位置;
S4、根据聚类的邻接关系确定采样点的连接关系;
S5、对采样点进行特征检测,识别出骨架点。通过该操作将采样点分成骨架点与非骨架点,在下一轮迭代中,S2中的最优传输只会在骨架点与骨架点之间、非骨架点与非骨架点之间进行,使得模型不同尺度的部分之间互不影响。;
S6、选取部分非骨架点为种子点,将非种子点和种子点进行合并,从而达到减少聚类个数的目的;
S7、重复步骤S2-S6,直至模型的所有点都是骨架点;
S8、优化端点位置,对偏离中心的边进行插点操作;
在S1中,输入的是三维的点云数据,要求点云模型本身存在合理的骨架。将模型等比例缩放,使得模型的AABB(axis-aligned bounding box)的对角线长度为1,记原始点云模型的点集为I。预处理点集I的KNN,通常情况下,取K=16。为使得KNN在模型分支处更加准确,取K2=K/2,先进行一次小范围的KNN,随后用KNN形成一个连通图,在连通图上使用Dijkstra算法找到最近的K个点,记原始点j的KNN为集合KNNj。对于每一个原始点j,记KNNj中的中位数为原始点s,将点j和点s的距离的倒数作为点j的质量,最后将原始点的质量归一化。采样点云的大小一般为原始点云的8%~15%,通常取10%。可以直接应用随机采样,利用其它更加均匀的采样方法可以使得最优传输的结果更加准确、速度更加快。记采样点云模型的点集为J,设置采样点云的每一个点质量相等,且质量之和为1。
在S2中,定义能量函数:
Figure BDA0003477170850000061
利用最优传输得到原始点云模型和采样点云模型的分配方案,公式如下:
Figure BDA0003477170850000062
满足νj=∑iTij,μi=∑jTij
其中,xi代表第i个采样点;yj代表第j个原始点;Tij为传输计划,表示xi从yj处接收到的质量;||xi-yj||2是xi与yj欧式距离的平方;h为一个常数,通常取10,它使得距离更加平滑,降低远点对结果的影响;νj是yj的质量,μi是xi的质量。为达到聚类的效果,默认每一个原始点都将它的质量完全传输给某一个采样点。具体操作是,对于每一个j∈J,遍历Tij找出其中的最大值Tsj,进行如下修改:
Figure BDA0003477170850000063
修改完所有的分配方案后,根据分配方案更新所有采样点的质量。
更新采样点云模型的坐标,公式如下:
Figure BDA0003477170850000064
根据不动点法,可以求得采样点坐标的更新公式为:
Figure BDA0003477170850000065
使用不动点法迭代更新采样点的坐标。
重复最优传输计算分配方案和不动点法更新采样点坐标,直至公式(1)中的能量函数E的变化小于0.1%。
在S3中,将采样点视作聚类中心,对最优传输得到的初始聚类结果进行优化。首先定义原始点云聚类OPCC(original point cloud clustering):
Figure BDA0003477170850000066
Figure BDA0003477170850000071
j2∈OPCCs,
Figure BDA0003477170850000072
那么尝试将j1从聚类OPCCi重新分配到聚类OPCCs。具体地说,将j1从聚类OPCCi重新分配到聚类OPCCs,根据公式(5)重新计算这两个聚类的中心位置,再计算公式(1)中的能量函数E是否减少。若能量函数E减少,则将j1从聚类OPCCi重新分配到聚类OPCCs,否则不进行重新分配。聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新。之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。
在S4中,记sizei表示集合OPCCi的大小,counti表示OPCCi中通过KNN与OPCCs存在相邻关系的点的个数。若xi和xs的满足以下条件就将它们相连:
(1)当xi质量较小,xs质量较大,xs质量大于xi三倍时,counti>0.08×sizei,counts>0.01×sizes
(2)若xi和xs质量都较大,则
Figure BDA0003477170850000073
否则需要满足counti>0.05×sizei,counts>0.05×sizes;记xi的边集为Edgei,Edgei的大小为ni
在S5中,先对采样点进行主成分分析,这是考察多个变量间相关性一种多元统计方法,最经典的做法就是借助协方差矩阵。利用协方差矩阵的特征值来描述采样点的分散程度:
Figure BDA0003477170850000074
其中,Si是xi的聚类和xi一邻域的聚类的并集。Ci是一个3×3的矩阵,计算协方差矩阵的三个特征值
Figure BDA0003477170850000075
Figure BDA0003477170850000076
代表数据在方向上的分布程度,值越大代表数据越集中分布在一个方向上。
计算每一个采样点的棱锥角、最大角和最小角和面积权重,具体定义如下:
Figure BDA0003477170850000077
maxAnglei=max(angle(s,i,p)),s∈Edgei,p∈Edgei,p>s, (9)
minAnglei=min(angle(s,i,p)),s∈Edgei,p∈Edgei,p>s, (10)
对于
Figure BDA0003477170850000078
若采样点xi满足以下条件的任何一条,就将其设置为骨架点:
1、xi不在任何一个三角形上
2、pyramidAnglei>τpyramidAnglei<0.01
3、minAnglei>τminAngle,maxAnglei>τmaxAnglei<0.01
4、Vi>τeigenValue,minAnglei>τminAnglei<0.01
其中,τpyramidAngle为棱锥角的阈值,阈值越大保留的细节特征就越少,阈值越小保留的细节特征就越多,过大的阈值会导致细节的丢失,过小的阈值会引入错误的分支,本发明取值范围为[0.4,0.5],通常取0.43;τminAngle为最小角的阈值,通常取-0.1;τmaxAngle为最大角的阈值,通常取0.65;τeigenValue为分布度量值阈值,取值范围为[0.6,0.8],通常取0.7。通过该操作将采样点分成骨架点与非骨架点,在下一轮迭代中,S2中的最优传输只会在骨架点与骨架点之间、非骨架点与非骨架点之间进行,使得模型不同尺度的部分之间互不影响。
在S6中,首先将与骨架点直接相连的点设置为种子点(种子点和非种子点只会从非骨架点中选取)。对于采样点形成的图:若某个三角形有且仅有两个点是非种子点,且第三个点是非骨架点,那么直接将这两个种子点合并;若某个三角形三个顶点都是种子点,那么选择长度差异最短的两条边保留,将第三条边进行缩塌。反复执行该操作,直至没有边可以缩塌。此时还可能出现一个骨架点连着两个种子点的情况,若某个种子点的连边只有种子点或者骨架点,那么将它跟骨架点合并。对于每个三角形需要选择一个种子点,按照非种子点度的大小来进行选择。聚类的合并不应该过分激进,所以种子点个数需要占非骨架点个数的70%-80%,若此时种子点个数不足,直接对剩余的非种子点随机采样直至满足条件。记种子点集合为S,非种子点集合为NS。
将采样点云也进行聚类操作,定义采样点聚类SPCC(sample point cloudclustering)。初始化每个聚类仅仅包含种子点本身,即
Figure BDA0003477170850000081
随后将每个非种子点加入到最近的种子点聚类中。
Figure BDA0003477170850000084
xb∈SPCCq,xa∈NS,xb∈NS,xp∈Edgeq,那么尝试将xa从聚类SPCCp重新分配到聚类SPCCq。具体地说,将xa从聚类SPCCp重新分配到聚类SPCCq,根据公式(5)重新计算这两个聚类的中心位置,再计算公式(1)中的能量函数E是否减少。若能量函数E减少,则将xa从聚类SPCCp重新分配到聚类SPCCq,否则不进行重新分配。聚类的重新分配并不是立即生效的,而是遍历完所有非种子点后同时更新。之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。
完成采样点的聚类操作后,将非种子点跟对应的种子点进行合并。
在S7中,重复步骤S2-S6,直至模型的所有点都是骨架点。此时得到的结果就是一个保留细节特征的、粗糙的曲线骨架,已经描述原始点云模型的拓扑结构,但仍旧需要进行一个后处理。
在S8中,若Edgei=1,那么称xi为模型的端点。需要对端点的位置进行优化,使其代表的聚类细节更加合理。若
Figure BDA0003477170850000082
j2∈OPCCs,
Figure BDA0003477170850000083
Edges=1,那么尝试将j1从聚类OPCCi重新分配到聚类OPCCs。具体地说,将j1从聚类OPCCi重新分配到聚类OPCCs,根据公式(5)重新计算这两个聚类的中心位置,再计算公式(1)中的能量函数E是否减少。若能量函数E减少,则将j1从聚类OPCCi重新分配到聚类OPCCs,否则不进行重新分配。为防止端点的聚类范围过大,若μs*20>μi,那么即使能量函数E减少,也不进行重新分配。聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新。
在一些分支处,可能会存在聚类过度合并的情况,导致连边偏离模型的中心,因此需要进行插点操作。对于存在连边的两个采样点xi和xs
Figure BDA0003477170850000091
Figure BDA0003477170850000092
计算A1和A2中的点构成的图的连通分量数,若连通分量数大于1,那么执行插点操作。计算xi和xs的相交部分,将其分配给新插入的点xp
以下结合附图进行具体实施例说明。
本发明实施例包括以下步骤:
S1、输入点云、进行缩放和采样、设定算法参数
输入原始点云模型并进行缩放,将模型等比例缩放,使得模型的AABB(axis-aligned bounding box)的对角线长度为1。预处理原始点云的KNN,取K=16,如图2所示。根据KNN计算原始点的质量并归一化。采样点云的大小为原始点云的10%,直接应用随机采样,设置采样点云的每一个点质量相等,且质量之和为1。原始点云和采样点云如图1所示,白色是原始点云,黑色是采样点云。
S2、利用最优传输得到分配方案,并更新采样点的坐标。
根据最优传输公式(2),可以得到新的分配方案,为达到聚类的效果,默认每一个原始点都将它的质量完全传输给某一个采样点。再根据不动点法更新采样点的坐标。重复最优传输计算分配方案和不动点法更新采样点坐标,直至公式(1)中的能量函数E的变化小于0.1%。迭代更新后的结果如图3所示。
S3、对最优传输得到的初始聚类结果进行优化。
对最优传输得到的初始聚类结果进行优化。将采样点视作聚类中心,尝试将聚类中的一个点移动到相邻聚类中,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中。聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新。之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。图4(a)是调整聚类前的结果,图4(b)是调整聚类后的结果。
S4、根据两个聚类对应原始点云的邻接关系判断聚类中心的连接关系。
若xi和xs的满足以下条件就将它们相连:
1、当xi质量较小,xs质量较大,xs质量大于xi三倍时,counti>0.08×sizei,counts>0.01×sizes
2、当xi和xs质量都较大时,
Figure BDA0003477170850000101
3、否则需要满足counti>0.05×sizei,counts>0.05×sizes
图5是在图4(b)的基础上进行连边的结果。
S5、对采样点进行特征检测,识别出骨架点。
先对采样点进行主成分分析,这是考察多个变量间相关性一种多元统计方法,最经典的做法就是借助协方差矩阵。利用公式(7)的协方差矩阵的特征值来描述采样点的分散程度。
计算协方差矩阵的三个特征值
Figure BDA0003477170850000102
Figure BDA0003477170850000103
代表数据在方向上的分布程度,值越大代表数据越集中分布在一个方向上。
计算每一个采样点的棱锥角、最大角和最小角和面积权重,具体定义如下:
Figure BDA0003477170850000104
maxAnglei=max(angle(s,i,p)),s∈Edgei,p∈Edgei,p>s, (9)
minAnglei=min(angle(s,i,p)),s∈Edgei,p∈Edgei,p>s, (10)
对于
Figure BDA0003477170850000105
若采样点xi满足以下条件的任何一条,就将其设置为骨架点:
1、xi不在任何一个三角形上
2、pyramidAnglei>τpyramidAnglei<0.01
3、minAnglei>τminAngle,maxAnglei>τmaxAnglei<0.01
4、Vi>τeigenValue,minAnglei>τminAnglei<0.01
设置τpyramidAngle=0.43,τminAngle=-0.1,τmaxAngle=0.65,τeigenValue=0.7。图6中的大黑点就是识别得到的骨架点。通过该操作将采样点分成骨架点与非骨架点,在下一轮迭代中,步骤S2中的最优传输只会在骨架点与骨架点之间、非骨架点与非骨架点之间进行,使得模型不同尺度的部分之间互不影响。
S6、种子点的选取与合并。
首先将与骨架点直接相连的点设置为种子点(种子点和非种子点只会从非骨架点中选取)。对于采样点形成的图:若某个三角形有且仅有两个点是非种子点,且第三个点是非骨架点,那么直接将这两个种子点合并;若某个三角形三个顶点都是种子点,那么选择长度差异最短的两条边保留,将第三条边进行缩塌。反复执行该操作,直至没有边可以缩塌。此时还可能出现一个骨架点连着两个种子点的情况,若某个种子点的连边只有种子点或者骨架点,那么将它跟骨架点合并。对于每个三角形需要选择一个种子点,按照非种子点度的大小来进行选择。种子点个数需要占非骨架点个数的75%,若此时种子点个数不足,直接对剩余的非种子点随机采样直至满足条件。
将采样点云也进行聚类操作。尝试将聚类中的一个非种子点移动到相邻聚类中,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中。聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新。之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。
完成采样点的聚类操作后,将非种子点跟对应的种子点进行合并。图6的小黑点是种子点,小白点是非种子点。图7是在聚类重新分配后将非种子点与种子点合并后的结果。
S7、重复步骤S2-S6,直至模型的所有点都是骨架点。
图8为经过步骤S2~S6的多次重复后的结果,保留原始点云模型的细节特征。虽然已经描述原始点云模型的拓扑结构,但是结果比较粗糙,仍旧需要进行一个后处理。
S8、优化端点位置,对偏离中心的边进行插点操作。
需要对端点的位置进行优化,使其代表的聚类细节更加合理。尝试将聚类中的一个点移动到相邻聚类中,要求这个相邻聚类的中心是骨架图的端点。计算结果是否更优,若结果更优,则将该点移动到新的聚类当中。聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新。之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。
在一些分支处,可能会存在聚类过度合并的情况,导致连边偏离模型的中心,因此需要进行插点操作。对于存在连边的两个采样点xi和xs,根据公式(11)计算得到A1、公式(12)计算得到A2。计算A1和A2中的点构成的图的连通分量数,若连通分量数大于1,那么执行插点操作。计算xi和xs的相交部分,将其分配给新插入的点xp。图9是图8通过端点位置的优化与插点操作后的结果,其中小黑点就是插入的点。

Claims (10)

1.基于最优传输和聚类的曲线骨架提取方法,其特征在于包括以下步骤:
1)输入三维点云模型并进行缩放,对点云进行下采样,设定相关参数;
2)利用最优传输得到原始点云模型和采样点云模型的分配方案,使用不动点法更新采样点云模型的坐标,重复执行最优传输计算分配方案和不动点法更新采样点坐标,直至收敛;
3)对最优传输得到的初始聚类结果进行优化,将采样点视作聚类中心,通过聚类之间的重新分配调整聚类大小和位置;
4)根据聚类的邻接关系确定采样点的连接关系;
5)通过特征检测,将采样点标记为骨架点或非骨架点;
6)选取部分非骨架点为种子点,将非种子点和种子点进行合并,以减少聚类个数;
7)重复步骤2)~6),直至模型的所有点都是骨架点;
8)优化端点位置,对偏离中心的边进行插点操作。
2.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤1)中,所述相关参数包括KNN的大小、棱锥角的阈值。
3.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤1)中,所述输入三维点云模型并进行缩放,输入的是三维的点云数据,要求点云模型本身存在合理的骨架;将模型等比例缩放,使得模型AABB的对角线长度为1;预处理原始点云的KNN,为使得KNN在模型分支处更加准确,取K2=K/2,先进行一次小范围的KNN,随后用KNN形成一个连通图,在连通图上使用Dijkstra算法找到最近的K个点;对于每一个原始点,计算该点到其KNN的距离,将距离的中位数的倒数作为该原始点的质量,最后将原始点的质量归一化;
所述对点云进行下采样,是对原始点云直接应用随机采样,设置采样点云的每一个点质量相等,且质量之和为1;所述采样点云的大小为原始点云的8%~15%。
4.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤2)中,为达到聚类的效果,默认每一个原始点都将它的质量完全传输给某一个采样点;随后使用不动点法迭代更新采样点的坐标,重复执行最优传输计算分配方案和不动点法更新采样点坐标,直至收敛。
5.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤3)中,所述对最优传输得到的初始聚类结果进行优化,是将采样点视作聚类中心,尝试将聚类中的一个点移动到相邻聚类中,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中;聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新,之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配。
6.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤4)中,所述根据聚类的邻接关系确定采样点的连接关系,是从聚类的信息出发,根据两个聚类对应原始点云的邻接关系判断聚类中心的连接关系,连接关系是为形成一个连通图,方便后续的特征检测以及边的缩塌。
7.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤5)中,所述通过特征检测,将采样点标记为骨架点或非骨架点,是先对采样点进行主成分分析,考察多个变量间相关性,利用协方差矩阵的特征值来描述采样点的分散程度;随后计算每一个采样点的棱锥角、最大角和最小角和面积权重,根据这些特征识别骨架点。
8.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤6)中,所述选取部分非骨架点为种子点,将非种子点和种子点进行合并的具体步骤为:
(1)将与骨架点直接相连的点设置为种子点,种子点和非种子点只会从非骨架点中选取;对于采样点形成的图:若某个三角形有且仅有两个点是非种子点,且第三个点是非骨架点,那么直接将这两个种子点合并;若某个三角形三个顶点都是种子点,那么选择长度差异最短的两条边保留,将第三条边进行缩塌;反复执行该操作,直至没有边可以缩塌;此时还可能出现一个骨架点连着两个种子点的情况,若某个种子点的连边只有种子点或者骨架点,那么将它跟骨架点合并;对于每个三角形需要选择一个种子点,按照非种子点度的大小来进行选择;聚类的合并不应该过分激进,所以种子点个数需要占非骨架点个数的70%~80%,若此时种子点个数不足,直接对剩余的非种子点随机采样直至满足条件;
(2)将采样点云进行聚类操作,尝试将聚类中的一个非种子点移动到相邻聚类中,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中;聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新,之后开始新的一轮遍历更新,直至某一轮中没有发生重新分配;
(3)完成采样点的聚类操作后,将非种子点与对应的种子点进行合并。
9.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤7)中,所述直至模型的所有点都是骨架点,此时得到的结果就是一个保留细节特征的、粗糙的曲线骨架,已经描述原始点云模型的拓扑结构,但仍旧需要进行一个后处理。
10.如权利要求1所述基于最优传输和聚类的曲线骨架提取方法,其特征在于在步骤8)中,所述优化端点位置,对偏离中心的边进行插点操作,需要对端点的位置进行优化,使其代表的聚类细节更加合理;尝试将聚类B中的一个点移动到相邻聚类A中,并且聚类A的中心是骨架图的端点,计算结果是否更优,若结果更优,则将该点移动到新的聚类当中,聚类的重新分配并不是立即生效的,而是遍历完所有原始点后同时更新;在一些分支处,存在聚类过度合并的情况,会导致连边偏离模型的中心,需要进行插点操作。
CN202210057969.7A 2022-01-19 2022-01-19 基于最优传输和聚类的曲线骨架提取方法 Active CN114419276B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210057969.7A CN114419276B (zh) 2022-01-19 2022-01-19 基于最优传输和聚类的曲线骨架提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210057969.7A CN114419276B (zh) 2022-01-19 2022-01-19 基于最优传输和聚类的曲线骨架提取方法

Publications (2)

Publication Number Publication Date
CN114419276A true CN114419276A (zh) 2022-04-29
CN114419276B CN114419276B (zh) 2024-05-03

Family

ID=81274014

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210057969.7A Active CN114419276B (zh) 2022-01-19 2022-01-19 基于最优传输和聚类的曲线骨架提取方法

Country Status (1)

Country Link
CN (1) CN114419276B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390552B1 (en) * 2013-05-23 2016-07-12 Shenzhen Institutes Of Advanced Technology Chinese Academy Of Sciences Method and device for extracting skeleton from point cloud
CN106780458A (zh) * 2016-12-09 2017-05-31 重庆邮电大学 一种点云骨架提取方法及装置
CN107644201A (zh) * 2017-08-31 2018-01-30 成都通甲优博科技有限责任公司 一种基于随机森林的骨架线提取方法及其装置
CN110110802A (zh) * 2019-05-14 2019-08-09 南京林业大学 基于高阶条件随机场的机载激光点云分类方法
CN111681274A (zh) * 2020-08-11 2020-09-18 成都艾尔帕思科技有限公司 基于深度相机点云数据的3d人体骨骼识别和提取方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390552B1 (en) * 2013-05-23 2016-07-12 Shenzhen Institutes Of Advanced Technology Chinese Academy Of Sciences Method and device for extracting skeleton from point cloud
CN106780458A (zh) * 2016-12-09 2017-05-31 重庆邮电大学 一种点云骨架提取方法及装置
CN107644201A (zh) * 2017-08-31 2018-01-30 成都通甲优博科技有限责任公司 一种基于随机森林的骨架线提取方法及其装置
CN110110802A (zh) * 2019-05-14 2019-08-09 南京林业大学 基于高阶条件随机场的机载激光点云分类方法
CN111681274A (zh) * 2020-08-11 2020-09-18 成都艾尔帕思科技有限公司 基于深度相机点云数据的3d人体骨骼识别和提取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王佳栋: "保特征的点云骨架提取算法", 图学学报, vol. 44, no. 1, 28 February 2023 (2023-02-28) *

Also Published As

Publication number Publication date
CN114419276B (zh) 2024-05-03

Similar Documents

Publication Publication Date Title
CN107146280B (zh) 一种基于切分的点云建筑物重建方法
CN108830931B (zh) 一种基于动态网格k邻域搜索的激光点云精简方法
CN108038906B (zh) 一种基于图像的三维四边形网格模型重建方法
CN109740227B (zh) 基于特征识别的微型复杂零件建模方法
CN109325993B (zh) 一种基于类八叉树索引的显著性特征强化采样方法
US20140125663A1 (en) 3d model shape analysis method based on perception information
CN112347550B (zh) 耦合式室内三维语义建图及建模方法
CN110599506B (zh) 一种复杂异形曲面机器人三维测量的点云分割方法
CN112396160A (zh) 基于图神经网络的交易欺诈检测方法及系统
CN101082988A (zh) 自动的深度图像配准方法
CN110222642A (zh) 一种基于全局图聚类的平面建筑构件点云轮廓提取方法
CN111681300B (zh) 轮廓素描线组成的目标区域获取方法
CN111161267A (zh) 一种三维点云模型的分割方法
CN117132630A (zh) 一种基于二阶空间兼容性度量的点云配准方法
CN112802089B (zh) 一种基于分叉数量自动估计的点云骨架线提取方法及系统
CN113409332B (zh) 一种基于三维点云的建筑物平面分割方法
US20210402599A1 (en) Mobile Robot Control Apparatus For Three Dimensional Modeling, Three Dimensional Modeling System Having the Same And Method Of Three Dimensional Modeling Using The Same
CN114419276B (zh) 基于最优传输和聚类的曲线骨架提取方法
CN111968089A (zh) 一种基于最大内切球机制的l1中值骨架提取方法
CN107356968B (zh) 基于crease的三维水平集断层曲面自动提取方法
CN112767462B (zh) 基于脊谷特征与深度特征描述符的点云单点对齐方法
CN115496936A (zh) 一种基于图像切割和残差结构的蔬菜识别方法
CN111986223B (zh) 一种基于能量函数的室外点云场景中树木提取方法
JP7316771B2 (ja) 学習装置、パラメータの作成方法、ニューラルネットワーク及びこれを用いた情報処理装置
CN112967333A (zh) 基于等级划分的复杂点云骨架提取方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant