本发明涉及计算机领域,具体涉及一种基于等级划分的复杂点云骨架提取方法及系统。
背景技术:
点云是包含物体表面形状信息的三维离散点集合,被广泛应用于cad/cam、虚拟现实、计算机视觉、目标识别等多种领域,点云骨架线是三维点云模型的一维表示方式[1],可用于表示模型形状拓扑信息,制作计算机动画,辅助点云表面重建,辅助点云配准等,也可用于提高模型的存储和计算效率,因此从三维点云数据中提取出高质量的骨架线具有较高的研究价值。
提取骨架线的方法有多种:tagliasacchi等提出了基于柱状点云,利用旋转不变性提取骨架的方法rosa(rotationalsymmetryaxis),解决了柱状点云大量缺失情况下准确提取骨架的问题,但是rosa提取骨架依赖于点云法线,在分叉位置由于点云法线方向不明确,需要对分叉位置进行再收缩,形成分叉骨架点,且rosa对噪声敏感,无法在输入点云存在噪声的情况下准确提取出骨架;huang等提出了基于迭代收缩的骨架提取方法l1-medial,很好地解决了骨架线提取对噪声敏感的问题,能够在输入点云存在噪声的情况下,找到准确的骨架点,形成骨架线,l1-medial提取骨架注重单个骨架分支的准确性,忽略了骨架分支之间的关系,提取的骨架分支之间存在断点;mei等提出的l1-mst(l1-minimumspanningtree)在l1-medial的基础上解决了骨架线断裂的问题,先使用l1-medial提取出初始断裂的骨架线,使用最小生成树补全断裂骨架线,补全之后的骨架存在修补端点位置不准确,修补后的骨架不符合原始点云形状的问题;song等提出了一种结合距离场(distancefield)和l1-medial提取骨架的方法,相比较于原有的l1-medial,在点云完整情况下能够更加准确地提取出骨架,缺陷是不适用于点云缺失和点云密度较低的情况;zhou等提出的基于k近邻居收缩点云提取骨架的方法,使用k近邻居将点云快速收缩至骨架位置,再从点云中采样出骨架点,进而得到骨架线。基于k近邻居收缩点云的方法解决了在含有噪声和点云缺失情况下快速提取骨架线的问题,但是存在无法准确提取出点云凹陷处骨架以及分叉位置收缩不完全的问题;demir等,yang等,liu等,atienza等采用深度学习的方法提取骨架线,但是主要针对的是从2d图像中提取骨架线,并不适用于无序的3d点云骨架提取。
技术实现要素:
为了克服上述现有技术中存在的缺陷,本发明的目的是提供一种基于等级划分的复杂点云骨架提取方法及系统。
为了实现本发明的上述目的,本发明提供了一种基于等级划分的复杂点云骨架提取方法,包括以下步骤:
s1,对无序原始点云进行归一化处理,得到归一化后的无序点云,并对其进行重采样得到采样点;
s2,将所有采样点收缩到骨架点位置,对归一化后的点云基于骨架点提取初始骨架线,得到初始骨架线分支集合;
s3,对初始骨架线分支集合进行等级划分;
s4,对初始骨架线进行连通修补,修补顺序根据步骤s3中的等级划分结果逆序修补;
s5,对修补后的骨架线的连接位置拟合曲线,并改善补全位置的平滑性,完成云骨架提取。
该方法能快速从结构复杂的点云中有效提取出较为完整连通的骨架线,保证了骨架线的准确性,利用分级划分尽可能保证了骨架的完整性。
该方法的一种优选方案:步骤s3具体为:首先找到初始骨架线分支集合中的最长的单分支,并标记为第0级分支,划分到集合t0;然后找到余下分支中符合分支等级划分函数和划分阈值的所有分支,划分到分支集合t1,更新划分阈值,划分剩余分支;
每完成一次分支等级划分,更新划分阈值,将余下的分支中符合分支等级划分函数和当前划分阈值的所有分支划分到下一等级分支集合中,直到所有单分支完成分级,最终得到划分等级后的分支集合
该方法的一种优选方案:所述步骤s3包括如下步骤:
s3-1,计算初始骨架线分支集合中的任意单分支
s3-2,计算任意两个分支
s3-3,令分支等级划分集合
s3-4,对于后续的分支
这能快速的对所有的分支进行等级划分。
该方法的一种优选方案:对初始骨架线进行连通修补时,从下级分支向上级分支逆序依次进行修补,直到修补到第0级分支,每完成两个等级分支的修补后,将修补后生成的连通分支划分到所述两个等级中的上级分支集合中,最后得到完整的骨架线的分支集合。
该方法的一种优选方案:对初始骨架线进行连通修补时,找到断裂位置两个分支的对应连接骨架点进行连接,其中一个分支的连接骨架点的筛选公式为:
需要连通的一个分支cb的连接骨架点
另一个分支的连接骨架点的筛选公式为:
骨架点x*对应的在连通分支
将骨架点x*与对应连接骨架点x**连接后,形成新的连通分支合并到两个等级中的上级分支集合中;
重复上述过程,直到连接到第0级分支,得到完整的骨架线的分支集合
针对由单个分支组成的连通分支时,选取距离上一级分支中较近的端点,作为修补的端点;针对由多个分支组成的连通分支,通过计算平均分叉角信息确定修补端点,因此这不仅适用于由单个分支组成的连通分支,也适用由多个分支组成的连通分支。
本申请还提出了一种复杂点云骨架提取系统,该系统包括处理器、存储器、通信接口和通信总线,所述处理器、存储器和通信接口通过所述通信总线完成相互间的通信,所述存储器用存放至少一可执行指令,所述可执行指令使所述处理器执行上述复杂点云骨架提取方法对应的操作。
本发明的有益效果是:本发明能快速从结构复杂的点云中有效提取出较为完整连通的骨架线,且尽可能保证骨架线的拓扑正确性,对点云的缺失、噪声不敏感,有较好的鲁棒性,保证了骨架线的准确性,利用分级划分尽可能保证骨架的完整性,特别适用于血管、植物等的骨架提取。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本方法的流程图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
如图1所示,本发明提供了一种基于等级划分的复杂点云骨架提取方法,包括以下步骤:
s1,对无序原始点云进行归一化处理,并对点云进行重采样得到采样点。
具体的,针对初始点云
s2,对归一化后的点云提取初始骨架线,得到初始骨架线分支集合。
具体地,该步骤包括以下步骤:
s2-1,根据采样点sj局部范围内的线性程度,将所有采样点
本实施例具体实施时,输入一个经过归一化后的无序点云
σj的计算方法为:首先使用下列带权公式计算采样点sj的带权协方差矩阵cj=∑j'∈j\{j}θ(||sj-sj'||)(sj-sj')t(sj-sj');求得协方差矩阵cj的特征值为
s2-2,去除重复骨架点,同一位置仅保留一个骨架点,得到初始骨架点集合
s2-3,对初始骨架点{s”j'}计算局部范围内骨架点s”j'的线性程度
本实施例具体实施时,计算得到的局部范围内骨架点s″j′的线性程度σj'用于连接骨架点,如果σj'大于线性程度设定阈值,如0.9,表示在骨架点s″j′在一定邻域内呈线性分布,将其标记为可选骨架点,找到最大σj'对应的初始骨架点,将其作为骨架分支的起点,选择连接k近邻居,连接k近邻居中近满足
s2-4,对剩下的骨架点重新计算主方向,重复步骤s2-3,直到包含所有骨架点,最终得到骨架线分支集合
s3,对初始骨架线分支集合进行等级划分。
步骤s3具体为:
首先找到初始骨架线分支集合中的最长的单分支,并标记为第0级分支,划分到集合t0;然后找到余下分支中符合分支等级划分函数和划分阈值的所有分支,划分到分支集合t1,更新划分阈值,划分剩余分支;每完成一次分支等级划分,更新划分阈值,将余下的分支中符合分支等级划分函数和当前划分阈值的所有分支划分到下一等级分支集合中,直到所有单分支完成分级,最终得到划分等级后的分支集合
本实施例中,具体实施时,
s3-1,计算初始骨架线分支集合中的任意单分支
s3-2,计算任意两个分支
s3-3,初始情况下,令分支等级划分集合
s3-4,对于后续的分支
等级划分函数,考虑到待划分等级分支
s4,对初始骨架线进行连通修补,修补顺序根据步骤s3中的等级划分结果逆序修补。
具体的,对初始骨架线进行连通修补时,从下级分支向上级分支逆序依次进行修补,直到修补到第0级分支,每完成两个等级分支的修补后,将修补后生成的连通分支划分到所述两个等级中的上级分支集合中,即每完成从l级到l-1级分支的修补,将修补后生成的连通分支划分到l-1级分支集合,最后得到完整的骨架线的分支集合。
对初始骨架线进行连通修补时,找到断裂位置的两个分支的对应连接骨架点进行连接,其中一个分支的连接骨架点的筛选公式为:需要连通的一个分支cb的连接骨架点
另一个分支的连接骨架点的筛选公式为:骨架点x*对应的在连通分支
将骨架点x*与对应连接骨架点x**连接后,形成新的连通分支合并到两个等级中的上级分支集合中。
重复上述过程,直到连接到第0级分支,得到完整的骨架线的分支集合
该方法针对由单个分支组成的连通分支时,选取距离上一级分支中较近的端点,作为修补的端点;针对由多个分支组成的连通分支,通过计算平均分叉角信息确定修补端点,因此不仅适用于由单个分支组成的连通分支,也适用由多个分支组成的连通分支。
s5,对修补后的骨架线的连接位置拟合曲线,并改善补全位置的平滑性,完成云骨架提取。
本实施例中,采用但不限于cardinal样条函数来拟合连接位置的曲线,来解决平滑性不足,骨架点数量较少的问题,最后得到平滑后的骨架线。
针对初始补全后的骨架线
在补全位置完成插值后,得到算法的最后输出平滑后的骨架线
本申请还提出了一种复杂点云骨架提取系统的实施例,该系统包括处理器、存储器、通信接口和通信总线,所述处理器、存储器和通信接口通过所述通信总线完成相互间的通信,所述存储器用存放至少一可执行指令,所述可执行指令使所述处理器执行上述复杂点云骨架提取方法对应的操作。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。
在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。