基于等级划分的复杂点云骨架提取方法及系统

文档序号:25485688发布日期:2021-06-15 21:47阅读:134来源:国知局
基于等级划分的复杂点云骨架提取方法及系统

本发明涉及计算机领域,具体涉及一种基于等级划分的复杂点云骨架提取方法及系统。



背景技术:

点云是包含物体表面形状信息的三维离散点集合,被广泛应用于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,更新划分阈值,划分剩余分支;

每完成一次分支等级划分,更新划分阈值,将余下的分支中符合分支等级划分函数和当前划分阈值的所有分支划分到下一等级分支集合中,直到所有单分支完成分级,最终得到划分等级后的分支集合其中第一级分支为t0,最后一级分支为t|l|。

该方法的一种优选方案:所述步骤s3包括如下步骤:

s3-1,计算初始骨架线分支集合中的任意单分支的长度其中,为初始骨架线分支集合,k为初始骨架线分支数量,表示分支上的骨架点,表示分支骨架点在分支中的下一个骨架点,m'为骨架线分支中骨架点的序号,m'k是骨架线分支的骨架点集合;

s3-2,计算任意两个分支之间的距离其中,ψα,ψω分别为分支两端点到分支上的最近距离,分别表示分支的首尾两个端点,表示分支上的骨架点;

s3-3,令分支等级划分集合找到初始骨架线分支集合中的最长的单分支令分支集合完成初始划分;

s3-4,对于后续的分支按如下方式划分:

其中表示分支的等级划分函数值,ω1、ω2均为权重值,且ω1+ω2=1,θ是快速衰减平滑函数,h为定义局部范围的半径长度,表示离分支距离度量最近,且已经被划分到集合tl-1的分支,δl为等级划分函数阈值,l=1,2,3...,每一轮划分,遍历所有未划分等级的分支每完成一轮划分后更新t=t∪tl,若更新δl+1=ωδl,ω∈[0,1),直到即所有的分支都完成了等级划分,得到中所有分支的等级划分。

这能快速的对所有的分支进行等级划分。

该方法的一种优选方案:对初始骨架线进行连通修补时,从下级分支向上级分支逆序依次进行修补,直到修补到第0级分支,每完成两个等级分支的修补后,将修补后生成的连通分支划分到所述两个等级中的上级分支集合中,最后得到完整的骨架线的分支集合。

该方法的一种优选方案:对初始骨架线进行连通修补时,找到断裂位置两个分支的对应连接骨架点进行连接,其中一个分支的连接骨架点的筛选公式为:

需要连通的一个分支cb的连接骨架点其中,为需要连通的另一个分支,dp(cb)表示连通分支cb的端点集合,fp(cb)表示连通分支cb的分叉点集合,γ(x)表示以连通分支cb上的端点x作为连通修补端点时,整个连通分支cb的分叉角信息;

为连通分支cb到分支之间的距离,其中,ψ'α,ψ'ω分别为连通分支cb两端点到分支上的最近距离,分别表示连通分支cb的首尾两个端点,表示分支上的骨架点;dα表示连通的分支中除掉端点x的其他端点,υ(dβ)表示端点dβ在连通分支cb上黎曼距离最近的分叉点;

另一个分支的连接骨架点的筛选公式为:

骨架点x*对应的在连通分支上的连接骨架点其中,δγ=γ(x*)-γ(x)表示骨架点x*尝试与连通分支上的骨架点x修补后新旧连通分支的平均分叉角变化量,ω1,ω2为常数权重;

将骨架点x*与对应连接骨架点x**连接后,形成新的连通分支合并到两个等级中的上级分支集合中;

重复上述过程,直到连接到第0级分支,得到完整的骨架线的分支集合

针对由单个分支组成的连通分支时,选取距离上一级分支中较近的端点,作为修补的端点;针对由多个分支组成的连通分支,通过计算平均分叉角信息确定修补端点,因此这不仅适用于由单个分支组成的连通分支,也适用由多个分支组成的连通分支。

本申请还提出了一种复杂点云骨架提取系统,该系统包括处理器、存储器、通信接口和通信总线,所述处理器、存储器和通信接口通过所述通信总线完成相互间的通信,所述存储器用存放至少一可执行指令,所述可执行指令使所述处理器执行上述复杂点云骨架提取方法对应的操作。

本发明的有益效果是:本发明能快速从结构复杂的点云中有效提取出较为完整连通的骨架线,且尽可能保证骨架线的拓扑正确性,对点云的缺失、噪声不敏感,有较好的鲁棒性,保证了骨架线的准确性,利用分级划分尽可能保证骨架的完整性,特别适用于血管、植物等的骨架提取。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是本方法的流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

如图1所示,本发明提供了一种基于等级划分的复杂点云骨架提取方法,包括以下步骤:

s1,对无序原始点云进行归一化处理,并对点云进行重采样得到采样点。

具体的,针对初始点云采用轴对齐包围盒(axis-alignedboundingbox,aabb)进行归一化,计算轴对齐包围盒中心cbb=((xmax+xmin)/2,(ymax+ymin)/2,(zmax+zmin)/2)及包围盒的三个边长ax=xmax-xmin,ay=ymax-ymin,az=zmax-zmin和包围盒对角线长度dbb,移动输入点云,使得点云包围盒的中心位置和坐标系原点重合,再缩放点云使得包围盒最长边长max{ax,ay,az}的值为2,至此输入点云的任意点的x,y,z坐标应落在区间[-1,1]之间,得到归一化后的点云完成无序原始点云的归一化后,采用wlop(weightedlocallyoptimalprojection)对归一化后的无序点云进行重采样,i'为归一化后的无序点云集合,采样点集为j为采样点集合。

s2,对归一化后的点云提取初始骨架线,得到初始骨架线分支集合。

具体地,该步骤包括以下步骤:

s2-1,根据采样点sj局部范围内的线性程度,将所有采样点收缩到骨架点位置得到

本实施例具体实施时,输入一个经过归一化后的无序点云和采样点s={sj}j∈j,通过s'=argmins∑j∈j∑i'∈i'||sj-p'i'|θ(||sj-p'i'||)+r(s)计算获得未去重的初始骨架点其中,||sj-p'i'||θ(||sj-p'i'||)表示将sj,p'i'两点的欧式距离代入快速衰减平滑函数中,限定局部中心的半径范围,h为局部范围的半径长度,通常取dbb为包围盒的对角线长度,|i'|为归一化后的点云p'中点的数量;防止所有的采样点收缩到同一位置,其中{μj}j∈j是采样点s的平衡常数,可根据具体情况手动设置,σj表示采样点sj局部范围内的线性程度;将采样点移动到骨架点位置。

σj的计算方法为:首先使用下列带权公式计算采样点sj的带权协方差矩阵cj=∑j'∈j\{j}θ(||sj-sj'||)(sj-sj')t(sj-sj');求得协方差矩阵cj的特征值为对应特征向量为线性程度σj越接近于1,表示采样点sj的分布越接近于一条直线。

s2-2,去除重复骨架点,同一位置仅保留一个骨架点,得到初始骨架点集合

s2-3,对初始骨架点{s”j'}计算局部范围内骨架点s”j'的线性程度具体计算方法参考上述σj的计算方法,此处不再赘述,根据线性程度σj'寻找局部范围内主方向最明确的骨架点作为起始骨架点,线性程度σj'值越大,主方向越明确,依次连接符合要求的骨架点,将连接的骨架点按顺序存放,直到无法找到符合要求的骨架点,得到一条无分叉的单一分支

本实施例具体实施时,计算得到的局部范围内骨架点s″j′的线性程度σj'用于连接骨架点,如果σj'大于线性程度设定阈值,如0.9,表示在骨架点s″j′在一定邻域内呈线性分布,将其标记为可选骨架点,找到最大σj'对应的初始骨架点,将其作为骨架分支的起点,选择连接k近邻居,连接k近邻居中近满足且未被连接的骨架点,在分叉位置或者边缘位置无法满足上述条件的,停止连接骨架点,将已经连接好的骨架点所产生的单分支放入集合

s2-4,对剩下的骨架点重新计算主方向,重复步骤s2-3,直到包含所有骨架点,最终得到骨架线分支集合

s3,对初始骨架线分支集合进行等级划分。

步骤s3具体为:

首先找到初始骨架线分支集合中的最长的单分支,并标记为第0级分支,划分到集合t0;然后找到余下分支中符合分支等级划分函数和划分阈值的所有分支,划分到分支集合t1,更新划分阈值,划分剩余分支;每完成一次分支等级划分,更新划分阈值,将余下的分支中符合分支等级划分函数和当前划分阈值的所有分支划分到下一等级分支集合中,直到所有单分支完成分级,最终得到划分等级后的分支集合其中第一级分支为t0,最后一级分支为t|l|。

本实施例中,具体实施时,

s3-1,计算初始骨架线分支集合中的任意单分支的长度其中,为初始骨架线分支集合,k为初始骨架线分支数量,表示分支上的骨架点,表示分支骨架点在分支中的下一个骨架点,m'为骨架线分支中骨架点的序号,m'k是骨架线分支的骨架点集合。

s3-2,计算任意两个分支之间的距离其中,ψα,ψω分别为分支两端点到分支上的最近距离,分别表示分支的首尾两个端点,表示分支上的骨架点。

s3-3,初始情况下,令分支等级划分集合找到初始骨架线分支集合中的最长的单分支令分支集合t=t∪t0,完成初始划分。

s3-4,对于后续的分支按如下方式划分:

其中表示分支的等级划分函数值,ω1、ω2均为权重值,且ω1+ω2=1,θ是快速衰减平滑函数,h为定义局部范围的半径长度,表示分支距离度量最近,且已经被划分到集合tl-1的分支,δl为等级划分函数阈值,l=1,2,3...每一轮划分,遍历所有未划分等级的分支每完成一轮划分后更新t=t∪tl,若更新δl+1=ωδl,ω∈[0,1),直到即所有的分支都完成了等级划分,得到中所有分支的等级划分。

等级划分函数,考虑到待划分等级分支和已划分等级分支的分支长度比,和的距离度量,如果两个分支的分支长度比越接近1,且从的距离度量越小,表示原本之间越有可能是连通的。分支等级划分的最终目的是为了确定分支的修补顺序,保证复杂分叉位置的修补效果更好。

s4,对初始骨架线进行连通修补,修补顺序根据步骤s3中的等级划分结果逆序修补。

具体的,对初始骨架线进行连通修补时,从下级分支向上级分支逆序依次进行修补,直到修补到第0级分支,每完成两个等级分支的修补后,将修补后生成的连通分支划分到所述两个等级中的上级分支集合中,即每完成从l级到l-1级分支的修补,将修补后生成的连通分支划分到l-1级分支集合,最后得到完整的骨架线的分支集合。

对初始骨架线进行连通修补时,找到断裂位置的两个分支的对应连接骨架点进行连接,其中一个分支的连接骨架点的筛选公式为:需要连通的一个分支cb的连接骨架点该公式表达的意思为:遍历连通分支cb上所有的顶点,并将其作为x代入方程中,然后选取方程取值最小时的顶点x作为连通分支cb的连接骨架点x*。其中,为需要连通的另一个分支,dp(cb)表示连通分支cb的端点集合,fp(cb)表示连通分支cb的分叉点集合,γ(x)表示以连通分支cb上的端点x作为连通修补端点时,整个连通分支cb的分叉角信息。

为连通分支cb到分支之间的距离,其中,ψ'α,ψ'ω分别为连通分支cb两端点到分支上的最近距离,分别表示连通分支cb的首尾两个端点,表示分支上的骨架点;dα表示连通的分支中除掉端点x的其他端点,υ(dβ)表示端点dβ在连通分支cb上黎曼距离最近的分叉点。

另一个分支的连接骨架点的筛选公式为:骨架点x*对应的在连通分支上的连接骨架点该公式表达的意思为:依次把连通分支上所有的顶点作为x代入公式中,然后选取方程取值最小时的顶点x作为连通分支的连接骨架点x**。其中,δγ=γ(x*)-γ(x)表示骨架点x*尝试与连通分支上的骨架点x修补后新旧连通分支的平均分叉角变化量,ω1,ω2为常数权重。

将骨架点x*与对应连接骨架点x**连接后,形成新的连通分支合并到两个等级中的上级分支集合中。

重复上述过程,直到连接到第0级分支,得到完整的骨架线的分支集合

该方法针对由单个分支组成的连通分支时,选取距离上一级分支中较近的端点,作为修补的端点;针对由多个分支组成的连通分支,通过计算平均分叉角信息确定修补端点,因此不仅适用于由单个分支组成的连通分支,也适用由多个分支组成的连通分支。

s5,对修补后的骨架线的连接位置拟合曲线,并改善补全位置的平滑性,完成云骨架提取。

本实施例中,采用但不限于cardinal样条函数来拟合连接位置的曲线,来解决平滑性不足,骨架点数量较少的问题,最后得到平滑后的骨架线。

针对初始补全后的骨架线假设补全位置上有xl-1,xl,xl+1,xl+2四个顺次连接的骨架点,xl是通过计算连通分支平均分叉角信息筛选出的骨架点,xl+1是计算出的对应连接的骨架点,基于以上四个骨架点的信息在xl,xl+1之间进行插值,插值方程如下:

其中参数δ=(1-ζc)/2.0,ζc为松紧系数,用于控制插值曲线的松紧程度,当ζc取值越小,插值曲线越松弛,弯曲程度越大,当ζc取值越大,插值曲线越紧绷,弯曲程度越小,实验中取ζc=-0.5。参数u取值范围为[0,1],用于控制插值点的个数,当要插值3个点时,可分别设置u=0.25,u=0.5,u=0.75。在实验过程中,平滑位置的xl+2可能存在多个可选骨架点,选取最符合骨架线走向的骨架点为xl+2。插值点的个数取决于相邻两个骨架点的平均距离ε和边长|xlxl+1|,插值个数为(|xlxl+1|/ε)+1。

在补全位置完成插值后,得到算法的最后输出平滑后的骨架线

本申请还提出了一种复杂点云骨架提取系统的实施例,该系统包括处理器、存储器、通信接口和通信总线,所述处理器、存储器和通信接口通过所述通信总线完成相互间的通信,所述存储器用存放至少一可执行指令,所述可执行指令使所述处理器执行上述复杂点云骨架提取方法对应的操作。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。

在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1