一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种点云骨架提取方法及计算机存储介质与流程

2022-02-19 07:35:39 来源:中国专利 TAG:


1.本发明涉及计算机领域,具体涉及一种点云骨架提取方法及计算机存储介质。


背景技术:

2.近年来,随着三维激光扫描技术的发展,获取三维点云的成本不断下降,点云数据变得越来越易获得。其在一定程度上克服了传统人工数据采集方法繁琐、速度慢、效率低等局限性。但由于某些物体自身的遮挡、扫描设备的系统误差以及扫描时带入的随机误差等原因,获取到的点云往往存在较多的数据缺失且具有密度不均以及噪声点的特征。为减轻点云质量对最终结果造成的不利影响,许多研究人员开始选择提取点云模型的骨架进行科学研究。这是因为骨架是三维模型关键特征的抽象表示,最能反应三维模型的形状、结构以及各个点之间的拓扑连接,并且利用骨架还可以进行数据的填补以及点云模型的增强。由于骨架可以较为完整的保留物体的拓扑结构同时抛弃一些多余的信息,其有助于对物体的形状理解、形状处理以及形状分析。目前,从物体的三维点云中提取的骨架在游戏开发、自然场景模拟、城市景观开发、动画动漫、数字导航、医学影像显示、测绘以及农业研究等领域都有着广泛应用。
3.然而现有的点云骨架提取算法要么无法很好的适用于具有大量数据缺失,密度不均且包含噪声点的点云数据,要么就是能够解决上述问题但无法在拓扑结构较为复杂的点云上提取出拓扑结构正确以及几何细节较为完整的骨架。


技术实现要素:

4.为了克服上述现有技术中存在的缺陷,本发明的目的是提供一种点云骨架提取方法及计算机存储介质。
5.为了实现本发明的上述目的,本发明提供了一种点云骨架提取方法,包括以下步骤:
6.对原始扫描的点云进行预处理;
7.基于预处理后的点云利用各点的邻域信息更新每个点的位置,使各点不断向点云内部的中轴线移动,以此获取骨架化点云;
8.根据所述骨架化点云生成点云骨架线。
9.该点云骨架提取方法的优选方案,获取骨架化点云的步骤为:
10.为点云构建k最近欧式邻居图g,于所述k最近欧式邻居图g上计算该图中其它点到点p
i
的最短路径,将这些最短路径按长度依次排序,选取最短路径长度最小的前k'个点作为该点p
i
的最短路径邻居点,得到点p
i
的邻域信息,k'≥k,以此得到点云中每个点的邻域信息,k和k'为正整数;
11.利用点云中各点的邻域信息对各点的位置进行更新使其向点云内部移动,点云中各点向点云内部每移动一次后对k'值进行迭代更新,基于迭代更新的k'值获得各点新的最短路径邻居点,对各点的位置进行再次更新使其向点云内部移动,直至迭代结束,得到骨架
化点云。
12.该优选方案可以为点寻找到充分的邻居点且该点与其邻居点都尽可能地分布在同一个部位上,避免了后续出现错误骨架的结果。
13.优选的,位移公式为:δd为点p
i
的位移向量,代表点p
i
的k'个最短路径邻居点,x是指位移向量。
14.该优选方案求取了点p
i
指向其邻居点的向量集合t的中值,使其到该集合中所有向量的距离和最小,从而减少该点p
i
在位移方向上移动的距离,在不改变原有位移整体方向趋势的情况下,避免了点在后期位移的跨度过大,跃过点云内部的中轴线的问题。
15.该点云骨架提取方法的优选方案:构建协方差矩阵p
i
和p'
j
都是行向量,n'(p
i
)是点p
i
在k最近欧式邻居图g上半径为r的圆形区域内的邻居点集合;
16.求解协方差矩阵m
i
得到三个特征值以及分别对应第一主方向、第二主方向和法线方向,其中第一主方向为点p
i
的主方向向量
17.去掉点p
i
的位移向量在其主方向上的位移分量,得到p
i
的位移向量:
18.对点云中的所有点迭代应用该公式使其向点云内部移动。
19.该优选方案削减了点云中的点p
i
在其主方向上的偏移分量,避免了移动后的点云偏离原有的拓扑结构,能在较大程度上得到点云的骨架结构,避免了部分骨架结构的缺失。
20.该点云骨架提取方法的优选方案:设置阈值τ,点p
i
的阈值当点p
i
的τ
i
值大于阈值设定值时则固定该点不再移动。
21.该点云骨架提取方法的优选方案:利用点p
i
自身的邻域信息以确定该点对应的k'值,k'的更新公式为:
22.其中和分别是点p
i
第n次和第n 1次更新其位置时对应的k'值,n为正整数,是所有点的阈值τ的平均值。
23.该优选方案利用点自身的邻域信息以确定该点对应的k'值,能自动适配不同粗细部位的点云,从而在保证了骨架拓扑结构大体正确的同时还可尽可能捕获到更多的细节信息。
24.该点云骨架提取方法的优选方案:若在指定迭代次数m以内,固定点的比率达到了比率设定值,则停止迭代过程;
25.反之若固定点的比率没有达到比率设定值,则直接为还未固定的点寻找k'
pi,m
个最近欧式邻居点,利用欧式邻居点的信息来对各未固定点的位置进行更新使其向点云内部移动,直至固定点的比率达到了比率设定值,得到骨架化点云。
26.采用这样的方法不仅能从拓扑复杂性高的物体中提取出拓扑结构正确且几何细节较为完整的骨架点云,也能加速拓扑复杂性低但是粗细跨度较大的物体的骨架点云的提取,具有更好的鲁棒性和泛化性。
27.该点云骨架提取方法的优选方案:构建点云的k最近欧式邻居图g时,根据物体最细部位的点云选取k值以构建k最近欧式邻居图g。当物体的粗细变化跨度较大时,该优选方案能保留下较细部位的骨架,避免了较细部位的骨架结构的缺失。
28.该点云骨架提取方法的优选方案:生成骨架线时,首先计算一个包围骨架化点云的最小立方体,将该立方体划分成多个大小相同的子立方体,如果存在包含的点的数量小于点数预设值的子立方体,则丢弃该子立方体中的点,对于剩下的每个子立方体计算其包含点集的中心作为骨架点,将骨架点连接,完成点云骨架线的提取。
29.本发明还提出了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述的点云骨架提取方法对应的操作。
30.本发明的有益效果是:该发明考虑了物体不同粗细部位的骨架获取,在保留物体正确拓扑结构的情况下可以尽可能多的保留几何细节,使得提取的点云骨架更为完整;同时,本技术还解决了提取粗细跨度变化较大的点云骨架的问题,能较为快速且完整的获取骨架。
31.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
32.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
33.图1是本方法的流程示意图;
34.图2是参考邻居点信息确定的源点大致位移方向示意图;
35.图3是点云骨架化示意图。
具体实施方式
36.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
37.在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
38.如图1所示,本发明提供了一种点云骨架提取方法的实施例。该实施例主要步骤包括数据预处理、骨架化点云的获取及骨架线的生成。
39.首先是数据的预处理。由于原始扫描的点云往往存在较多的噪声且具有数据量大、密度不均等问题,因此需要对其进行降采样和均匀化。设输入的点云为n是点的数量,本实施例优选但不限于采用基于密度加权的局部最优投影算子(wlop)对点云进行降采样、去噪和均匀化处理,得到最终的点云n’是预处理后点的数量。
40.对于骨架化点云的获取,本实施例主要是基于预处理后的点云利用各点的邻域信息更新每个点的位置,使各点不断向点云内部的中轴线移动,获取骨架化点云。
41.具体地讲,
42.为点云构建k最近欧式邻居图g,在构建k最近欧式邻居图g时选取合适的k值,这里可根据点云实际分布情况人为设定,合适是指不会使得一个点的邻居点出现在另一个部位。于该k最近欧式邻居图g上计算该图中其它点到点p
i
的最短路径,将这些最短路径按长度依次排序,选取最短路径长度最小的前k'个点作为该点p
i
的最短路径邻居点,得到点p
i
的邻域信息,k'≥k,k和k'均为正整数,k'的初始值可预先设定,比如k'的初始值=k a,a为正整数,例如2。本实施例中,寻找最短路径优选但不限于使用dijkstra算法来实现。
43.确定好如何获取各点的邻域信息后,就可以利用邻域信息对点的位置进行更新使其向点云内部移动。
44.点云中各点向点云内部每移动一次后对k'值进行迭代更新,基于迭代更新的k'值获得各点新的最短路径邻居点,对各点的位置进行再次更新使其向点云内部移动,直至迭代结束,得到骨架化点云。
45.本实施例提出了每个点p
i
的位移公式:δd为点p
i
的位移向量,代表点p
i
的k'个最短路径邻居点,x是指位移向量。δd就是使得整个公式取得最小值的那个x。
46.由点p
i
指向其邻居点的向量集合t在一定程度上指示了其位移方向和位移大小,并且该方向整体趋势更倾向于指向点云内部,如图2所示,图中间的点代表源点,周边的点代表其邻居点,虚线代表其大致的一个位移方向。在不改变原有位移整体方向趋势的情况下,为避免该点在后期位移的跨度过大,跃过点云内部的中轴线,本实施例求取了向量集合t的中值,使其到该集合中所有向量的距离和最小,从而减少该点在位移方向上移动的距离。
47.虽然对所有点应用上述位移公式可以使点云向内部移动,但是移动后的点云可能会偏离原有的拓扑结构,甚至聚集成一簇。例如,考虑一个圆柱体的表面点云,我们只希望点云沿着水平方向朝内部移动,而不希望点云在竖直方向(主方向)也移动,因为这会导致上方点云向下移动,下方点云向上移动,从而缺失部分骨架结构。
48.因此,为避免移动后的点云可能会偏离原有的拓扑结构,甚至聚集成一簇,本实施例定义了一个控制向量c(p
i
),以削减点云中的每个点p
i
在其主方向上的偏移分量,而在这之前需要首先确定点p
i
的主方向。
49.为确定点p
i
的主方向,本实施例构建协方差矩阵本实施例中,协方差矩阵m
i
为3
×
3协方差矩阵,利用主成分分析法(pca)来确定,p
i
和p'
j
都是行向量,n'(p
i
)是点p
i
在k最近欧式邻居图g上半径为r的圆形区域内的邻居点集合,r根据点云具体情况而定。
50.采用现有方法求解协方差矩阵m
i
得到三个特征值以及分别对应第一主方向、第二主方向和法线方向,其中,第一主方向为点p
i
的主方向向量
51.定义控制向量其实质是点p
i
的位移向量在其主方向上的位移分量,去掉该分量的影响后即可控制点取消在其主方向上的移动;
52.添加该控制向量后得到的p
i
的位移向量:
53.对点云中的所有点迭代应用该公式使其向点云内部移动。
54.但考虑到物体通常各个部位的粗细程度不同,相比于较粗部位,其较细部位的点云会更快移动至中轴线附近。因此,对于已经移动到中轴线附近的点,需要固定其位置,无需再令其参与后续的迭代过程。而上文求得的三个特征值它们分别代表了各自对应主方向上点分布的密集程度。这三个值越接近则代表点p
i
邻域中的点越分散,反之,若远大于和则说明点p
i
邻域中的点集中分布在同一方向,这在一定程度上反映了点p
i
已经移动至中轴线附近。
55.因此为了确定哪些点已经移至了中轴线附近,本实施例中设置阈值τ,点p
i
的阈值当点p
i
的τ
i
值大于阈值设定值时则固定该点不再移动。本实施例中当τ
i
>0.98时则固定点p
i
,使其后续不再发生移动。
56.此外,针对物体不同的粗细部位,还存在一个最短路径邻居点k'的取值问题。较小的k'值有助于捕获细小部位的骨架,避免选取较大k'值时其邻居点出现在另一个部位,从而导致该部位的骨架与另一部位合并从而消失。但较小的k'值难以指导较粗部位的点云正确移动。因此,本实施例利用点自身的邻域信息以确定该点对应的k'值,使其自动适配不同粗细部位的点云,从而在保证骨架拓扑结构大体正确的同时尽可能捕获更多的细节信息。k'的更新方式如下:其中和分
别是点p
i
第n次和第n 1次更新其位置时对应的k'值,是所有点的阈值τ的平均值。随着该点位置的不断更新,其会不断靠近点云的中轴线附近,那么它对应的τ
i
值也就会逐渐增大,直到该点固定。相应地,其对应k'值的变换也就应该逐渐放缓,直到后续几乎无需再改变。在这期间,为避免k'值的变化过快,上式中加入了一个高斯函数以使其变化更加平滑,即公式中的
57.在各点向点云内部移动的过程中,若在指定迭代次数m以内,固定点的比率达到了比率设定值,则停止迭代过程。所有点移动一次记为一次迭代,已固定的点不参与迭代。m为正整数,本实施例中,比率设定值优选但不限于为90%。
58.反之若固定点的比率没有达到比率设定值,则直接为还未固定的点寻找个最近欧式邻居点,利用欧式邻居点的信息来对各未固定点的位置进行更新。的计算方法为:令n=m

1,利用上述的计算公式来计算得到,从而可计算得到未固定点的k'值和位移向量,只是邻居点不再是最短路径邻居点而是最近欧式邻居点。当固定点的比率达到了比率设定值,结束整个过程,得到骨架化点云,如图3所示。
59.本实施例可以从粗细过渡平滑的物体点云中得到几何细节较为完整的初始骨架点云,但是对于粗细变化跨度较大的点云模型,该方式会受到一定的限制。这是因为在寻找点的k'个最短路径邻居时,本实施例是在构建的k最近欧式邻居图g上进行的。当物体的粗细变化跨度较大时,为保留较细部位的骨架,需要选取较小的k值以避免骨架的合并。但在该图上为较粗部位的点寻找k'个最短路径邻居时,其邻居点很可能只分布在该点所在部位的同一侧。而点的邻居点对于计算该点的位移向量是十分重要的,若邻居点只分布在一侧,会使得该点移动得很缓慢,需要更加庞大的k'值或者更多次的移动才能完成。
60.因此,为了适用粗细变化跨度较大的点云模型,本技术提出了上述实施例的优选方案,根据物体最细部位的点云选取合适的k值以构建k最近欧式邻居图g,接着再在图g上根据上述计算k'值的方法求取每个点对应的k'值并寻找到其相应的最短路径邻居点,然后利用每个点的这些最短路径邻居点根据上述计算位移向量的方式获取点的移动方向和距离从而移动点的位置。当点的τ
i
值大于0.98时则固定该点不再移动。若在指定迭代次数m以内,固定点的比率达到了90%,则停止迭代过程。反之若没有达到,则证明该点云粗细跨度较大。此时,直接为还未固定的点p
i
寻找个最近欧式邻居点,利用欧式邻居点的信息来移动点的位置。同样地,利用上述相同的公式来计算未固定点的k'值和位移向量,只是邻居点不再是最短路径邻居点而是最近欧式邻居点。当固定点的比率达到90%时,结束整个过程,得到骨架化点云。
61.采用上述方法对点云进行移动后,点云会汇聚在中轴线附近,形成骨架点云。此时还不是最终的骨架线,需要对骨架点云进一步的处理以获取骨架线。
62.首先需对骨架点云进行降采样处理,计算一个包围骨架化点云的最小立方体,接着将该立方体划分成多个子立方体。如果某个子立方体中包含的点的数量小于点数预设值,如3,则丢弃该子立方体中的点。对于剩下的每个子立方体,计算其包含点集的中心作为骨架点。计算完成后便可以得到该物体的所有骨架点,对于骨架点的连接目前已有现有的
方法,可以根据实际情况进行选择。至此,便可以完成点云模型骨架线的提取。
63.本发明还提出了一种计算机存储介质的实施例,该存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述的点云骨架提取方法对应的操作。
64.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
65.尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献