一种三维模型的骨架提取方法及装置的制作方法

文档序号:6597495阅读:227来源:国知局
专利名称:一种三维模型的骨架提取方法及装置的制作方法
技术领域
本发明涉及三维图像处理领域,具体地是涉及一种三维模型的骨架提取方法及装置。
背景技术
随着图像处理技术的迅速发展,越来越多的图像处理算法在理论和实践上都取得 了巨大突破。三维模型在认知心理学、医疗、勘探、模型识别、动画制作等领域都有非常广泛 的应用,因此对于三维模型的识别和处理是图像处理领域的重要研究课题之一。三维模型 的骨架包含了丰富的拓扑信息,因此在模型识别以及动画制作中起到了很重要的作用。
目前,许多的数学方法已经提出并应用到三维模型的骨架提取中,例如medial axis、 shock graphs、 reeb graph with morse theory等等。其中,medialaxis算法主要 利用的是三维模型内切球的中心的轨迹,三维模型的骨架提取过程如图1所示,reeb gr即h with morse theory算法主要利用的是三维模型的特殊点处的等势性将三维模型划分成为 若干个部分,这些特殊点主要指的是凸点、凹点或者鞍点等,然后根据各部分之间的结构得 到一个如图2所示的拓扑图。 尽管这些数学方法很新颖且各具优点,但它们对三维模型表面细小的噪音非常敏
感,从而导致最终提取出的骨架具有复杂的结构,这种复杂的结构不仅干扰了对三维模型
的认知和识别,也带来了冗余的计算量,因此很难直接应用到实际场合中。 认知心理学的研究已经表明,人脑在感知三维几何物体时,往往会忽略该物体表
面的细节,而自然地对该物体显著的凹凸点感兴趣。人脑会自然地在这些凹凸点处将物体
分解,然后逐步地去识别该物体。因此在提取一个符合认知特征的三维模型骨架时,不应考
虑三维模型表面的细节,而只需考虑三维模型的整体结构。

发明内容
为了克服现有技术的不足,本发明的目的是要提供一种能够清楚显示三维模型整 体结构的骨架提取方法和骨架提取装置。 为了实现上述目的,本发明提供了一种三维模型的骨架提取方法,包括以下步骤 计算三维模型上每个点的曲率,根据曲率提取三维模型的关键点;计算三维模型上每个点 到每个关键点的测地距离,根据测地距离中的最小值得到三维模型上每个点的高度值;根 据高度值将三维模型划分为L个高度区间,每个高度区间对应一个结点,相邻的两个高度 区间中的结点之间存在一条连线,由结点和连线组成三维模型的骨架。 与此对应地,本发明还提供了一种三维模型的骨架提取装置,包括关键点提取模 块、高度值计算模块和骨架提取模块,关键点提取模块用于计算三维模型上每个点的曲率, 根据曲率提取三维模型的关键点;高度值计算模块用于计算三维模型上每个点到每个关键 点的测地距离,根据测地距离中的最小值得到三维模型上每个点的高度值;骨架提取模块 用于根据高度值将三维模型划分为L个高度区间,每个高度区间对应一个结点,相邻的两个高度区间中的结点之间存在一条连线,由结点和连线组成三维模型的骨架。 本发明的有益效果是,在三维模型的骨架提取过程中只考虑三维模型的整体结
构,不考虑三维模型表面的细节,不仅算法简单,极大地节约了计算量,也适合人脑对三维
模型的视觉感知特点,非常适合模型识别和动画制作等领域的应用。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变
得明显和容易理解,其中 图1是现有技术中medial axis算法的原理示意图; 图2是现有技术中reeb graph with morse theory算法的原理示意图; 图3是根据本发明实施例的骨架提取方法的流程图; 图4是根据本发明实施例的骨架提取方法的提取过程示意图; 图5是根据本发明实施例的骨架提取方法的提取结果示意图;以及 图6是根据本发明实施例的骨架提取装置的结构示意图。
具体实施例方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终
相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。 本发明根据人脑对三维模型的视觉感知特点进行三维模型的骨架提取,在骨架提
取过程中,本发明只考虑三维模型视觉特征显著的特殊点,忽略三维模型表面的细节,从而
提取出的骨架能够清楚地显示三维模型的整体结构,适合用于模型识别和动画制作等领域中。 图3为本发明实施例的三维模型的骨架提取方法的流程图,图4为图3所示骨架 提取方法的处理过程的示意图。该三维模型的骨架提取方法主要包括以下步骤
S310 :计算三维模型上每个点的曲率,根据曲率提取所述三维模型的关键点。提取 关键点的主要步骤为 S311 :根据曲率计算三维模型每个点的显著值,并由显著值大于预设的阈值的点 组成显著点集。组成显著点集包括以下步骤 S3111 :计算三维模型每个点的两个主曲率、和k2,并计算平均曲率avg(v)为 aVg(v) = _L^I 。 S3112 :根据平均曲率avg(v)计算三维模型每个点在尺度空间。i中的曲率C(v,
Oi)为
,)exPHH2/(2<)〗 (i) V,CT'' _ IL )exp[—|hH|2/(2《)]
其中,N(v,20》为点v在尺度空间Oi中的邻域。
然后计算三维模型每个点在尺度空间o i中的显著值S(v, o》为
6
S(v, o》=|C(v, o i)-C(v,2 o》I (2) S3113 :根据S(v, o》计算三维模型每个点的显著值S(v)为
S(v) =E i(M「i^)2S(v, o》 (3) 其中,Mi为对应尺度空间o i中三维模型的最大显著值,i^为对应尺度空间o i中 三维模型上除Mi以外的局部极大值点的显著值的平均和,局部极大值点为显著值在邻域 N(v,2o》内最大的点。 阈值可以根据实际情况和图像处理的精度要求进行调节,在本发明的一个实施例 中将阈值预先设定为三维模型最大显著值Mi的0. 9倍。显著值S(v)高于阈值的点所构成 的点集就是三维模型上视觉特征显著的点集,即显著点集。对于如图4(a)所示的三维模 型,提取显著点集后的结果如图4(b)所示。
S312 :提取显著点集中的凸点,并对凸点进行聚类。 S3121 :定义两个主曲率都大于零的点为凸点,将显著点集中所有凸点都提取出来 形成凸点集。 S3122:根据凸点的连通性划分连通区域,并将每个连通区域中到其它凸点的测地 距离之和最小的凸点设为代表连通区域的代表点。 如果从点vl到点v2存在一条路径,该路径上所有的点都属于凸点集中的点,则点 vl与点v2连通。根据点与点之间的连通性将凸点集划分为不同的连通区域,从每个连通区 域中选择到该连通区域中其它各点的测地距离之和最小的点,并将该点射为代表整个连通 区域的点,记为代表点,从而形成代表点集。计算点vl和点v2之间的测地距离值的计算步 骤为 S31221 :将连通区域中的每个点v的测地距离值d(v)设为无穷大,将点vl的测地 距离值d(vl)设为O,并将所有点加入到列表List中。 S31222 :从List中选择一个测地距离值d (v)最小的点v3,如果点v3就是点v2, 则此时点v3的测地距离值d(v3)就是点vl和点v2之间的测地距离值,计算结束,否则进 行步骤S31223。 S31223 :假设v4表示与点v3之间进行边连接的点,连接边的长度为length (v3, v4),如果d(v3)+length(v3,v4) < d(v4),则将点v4的测地距离值d(v4)更新为d(v4)= d(v3)+length(v3, v4),并将点v4插入到列表List中,更新完所有与点v3相连接的点v4 之后,将点v3从列表List中删除。 S31224 :重复步骤S31222和S31223,直到列表List为空。此时可以得到点vl和 点v2之间的测地距离值。 S3123 :采用K-中心点聚类算法(K-medoid算法)对代表点进行聚类,将测地距离 相近的点聚成一类,测地距离较远的点分布在不同的类中。K-中心点聚类算法的主要步骤 为 S31231 :计算代表点集中每个点到该代表点集中其它点的测地距离,并进行保存。
S31232 :如果要将代表点集聚成K类,从代表点集中任意选取K个点作为每个类中 的medoid。 S31233 :根据与medoid测地距离最近的原则,将代表点集中余下的点分到K个类 中去。
7
S31234:从每个类中选出一个到本类中其它点的平均测地距离最短的点作为该类 的新medoid。 S31235 :重复步骤S31233和S31234,直到每个类的medoid不再发生变化。此时, 代表点集被划分为K类。 S313 :提取聚类后的每一凸点类中显著值最大的点为关键点。如果步骤S312将三 维模型上的点分为K类,则说明该三维模型中存在K个关键点。每个关键点对应于骨架中 度为1的点,也就是骨架中一个分支的起点或者末点。将图4(b)中图像提取关键点后的结 果如图4(c)所示。 S320:计算三维模型上每个点到每个关键点的测地距离,根据测地距离中的最小 值得到三维模型上每个点的高度值。具体步骤包括 S321 :将三维模型上每个点v到每个关键点的测地距离值d(v)设为无穷大,将每
个关键点到自身的测地距离值d(v)设为O,并将所有点加入列表List中。 S322 :对于List中d(v)最小的点v,点vl与点v之间有长度为length (v,vl)的
连接边,如果d(v)+length(v,vl) < d (vl),则将点vl的测地距离值d (vl)更新为d(vl)=
d(v)+length(v, vl),更新完所有与点v有连接边的点vl之后,将点v从List中删除。 S323 :重复进行更新步骤S322,直至上述List为空,从而得到三维模型上每个点
的测地距离d(v)的最小值,将最小值设为三维模型上每个点的高度值。 S330 :根据高度值将三维模型划分为L个高度区间,每个高度区间对应一个结点,
相邻的两个高度区间中的结点之间存在一条连线,由结点和连线组成三维模型的骨架。具
体步骤为 S331 :将高度值区间[min, max]等分成L份,得到量化高度值^为
<formula>formula see original document page 8</formula> 其中,min为高度值的最小值,max为高度值的最大值。 S332:根据量化高度值hi得到如图4(d)所示的等势线,以得到高度区间序列 {Dvp , i = 1, . . . , L,从而将三维模型划分为与高度区间对应的三角片集,每个三角片 集对应一个结点,相邻的两个三角片集中的结点之间存在一条连线。按照图4(e)的示意, 由这些结点和连线就可以组成三维模型的骨架。 根据本发明的三维模型的骨架提取方法对图5(a)中的三维图形进行骨架提取,
最终可以得到如图5(b)所示的骨架。对比图5的(a)和(b)可以看出,本发明的骨架提取
方法能够清楚地显示三维模型的整体结构,而不会被三维模型表面的细节所干扰。 图6示出的是根据本发明实施例的三维模型的骨架提取装置IOO,其包括关键点
提取模块110、高度值计算模块120和骨架提取模块130,关键点提取模块110用于计算三
维模型上每个点的曲率,根据曲率提取三维模型的关键点;高度值计算模块120用于计算
三维模型上每个点到每个关键点的测地距离,根据测地距离中的最小值得到三维模型上每
个点的高度值;骨架提取模块130用于根据高度值将三维模型划分为L个高度区间,每个高
度区间对应一个结点,相邻的两个高度区间中的结点之间存在一条连线,由结点和连线组
成三维模型的骨架。
关键点提取模块110在根据曲率提取三维模型的关键点时,首先根据曲率计算三 维模型每个点的显著值,并由显著值大于预设的阈值的点组成显著点集;然后提取显著点
集中的凸点,并对凸点进行聚类;最后提取聚类后的每一凸点类中显著值最大的点为关键 点。 其中,关键点提取模块110组成显著点集包括首先计算三维模型每 个点的两个主曲率、和k2,并计算平均曲率avg(v)为avg(v)-^l^;然后提
取模块根据avg(v)计算三维模型每个点在尺度空间Oi中的曲率C(v, 0i)为
Oi中的邻域,并计算三维模型每个点在尺度空间Oi中的显著值S(v, 。i)为S(v, 0i) =|C(v, 。i)-C(v,2。i)1 ;最后根据S(v, 。i)计算三维模型每个点的显著值S(v)为
500 = 2,.(^-*)250,(7》,其中為为对应尺度空间。i中三维模型的最大显著值;i为对
应尺度空间o i中三维模型上除Mi以外的局部极大值点的显著值的平均和,局部极大值点 为显著值在邻域N(v,2。i)内最大的点。 高度值计算模块120在计算三维模型上每个点的高度值时,首先将三维模型上每 个点v到每个关键点的测地距离值d(v)设为无穷大,将每个关键点到自身的测地距离值 d(v)设为0,并将所有点加入列表List中;然后对于List中d(v)最小的点v,点vl与点v 之间有长度为length(v,vl)的连接边,如果d(v)+length(v,vl) < d(vl),则将点vl的测 地距离值d(vl)更新为d(vl) = d(v)+length(v, vl),更新完所有与点v有连接边的点vl 之后,将点v从所述List中删除;重复进行上述更新步骤,直至List为空,从而得到三维模 型上每个点的测地距离d(v)的最小值,将最小值设为三维模型上每个点的高度值。
本领域普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可 以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中, 该程序在执行时,包括方法实施例的步骤之一或其组合。 另外,在本发明每个实施例中的各功能单元可以集成在一个处理模块中,也可以 是每个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机 可读取存储介质中。 上述提到的存储介质可以是只读存储器,磁盘或光盘等。 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
C(v,o",)=
avgWexp[-l卜-v| /(2ct2)]
exp[-||;c-v|| /(2ct2)〗
,其中,N(v,2o》为点v在尺度空
权利要求
一种三维模型的骨架提取方法,其特征在于,包括以下步骤计算三维模型上每个点的曲率,根据所述曲率提取所述三维模型的关键点;计算所述三维模型上每个点到每个所述关键点的测地距离,根据所述测地距离中的最小值得到所述三维模型上每个点的高度值;根据所述高度值将所述三维模型划分为L个高度区间,每个所述高度区间对应一个结点,相邻的两个所述高度区间中的所述结点之间存在一条连线,由所述结点和所述连线组成所述三维模型的骨架。
2. 根据权利要求1所述的骨架提取方法,其特征在于,所述根据曲率提取所述三维模 型的关键点包括根据所述曲率计算所述三维模型每个点的显著值,并由所述显著值大于预设的阈值的 点组成显著点集;提取所述显著点集中的凸点,并对所述凸点进行聚类; 提取聚类后的每一凸点类中所述显著值最大的点为关键点。
3. 根据权利要求2所述的骨架提取方法,其特征在于,所述组成显著点集包括 计算所述三维模型每个点的两个主曲率b和k^并计算平均曲率avg(v)为根据所述avg(v)计算所述三维模型每个点在尺度空间Oi中的曲率C(v, 0i)为的邻域,并计算所述三维模型每个点在尺度空间Oi中的显著值S(v, 0i)为S(v, 0i)= C(v, o i)-C(v,2 o》I ;根据所述S(v, o》计算所述三维模型每个点的显著值S(v)为S(v) =E i(Mi;^S(v, o i),其中,Mi为对应尺度空间o i中所述三维模型的最大显著值;i为对应尺度空间o i中 所述三维模型上除Mi以外的局部极大值点的显著值的平均和,所述局部极大值点为显著值 在邻域N(v,2。i)内最大的点。
4. 根据权利要求2所述的骨架提取方法,其特征在于,所述提取所述显著点集中的凸 点并对所述凸点进行聚类包括提取所述显著点集中两个主曲率均大于零的点为凸点;根据所述凸点的连通性划分连通区域,并将每个所述连通区域中到其它所述凸点的测 地距离之和最小的凸点设为代表所述连通区域的代表点; 采用K-中心点聚类算法对所述代表点进行聚类。
5. 根据权利要求1所述的骨架提取方法,其特征在于,所述得到三维模型上每个点的 高度值包括将所述三维模型上每个点v到每个关键点的测地距离值d (v)设为无穷大,将每个所述 关键点到自身的测地距离值d(v)设为0,并将所有点加入列表List中;对于所述List中d(v)最小的点v,点vl与所述点v之间有长度为length(v,vl)的连 接边,如果d (v) +length (v, vl) < d (vl),则将所述点vl的测地距离值d (vl)更新为 <formula>formula see original document page 2</formula>,其中,N(v,2。i)为点v在尺度空间0i中=d(v)+length(v, vl),更新完所有与所述点v有连接边的点vl之后,将所述点v从所述 List中删除;重复进行所述更新步骤,直至所述List为空,从而得到所述三维模型上每个点的测地 距离d(v)的最小值,将所述最小值设为所述三维模型上每个点的高度值。
6.根据权利要求1所述的骨架提取方法,其特征在于,所述组成三维模型的骨架包括将高度值区间[min, max]等分成L份,得到量化高度值//,. = i(max-min) + min,1,,L,其中,min为所述高度值的最小值,max为所述高度值的最大值; 根据所述量化高度值h得到等势线,以得到高度区间序列{Dvp hj} , i = 1, . . . , L, 从而将所述三维模型划分为与所述高度区间对应的三角片集,每个所述三角片集对应一个 结点,相邻的两个所述三角片集中的所述结点之间存在一条连线,由所述结点和所述连线 组成所述三维模型的骨架。
7. —种三维模型的骨架提取装置,其特征在于,包括关键点提取模块、高度值计算模块 和骨架提取模块,所述关键点提取模块,用于计算三维模型上每个点的曲率,根据所述曲率提取所述三 维模型的关键点;所述高度值计算模块,用于计算所述三维模型上每个点到每个所述关键点的测地距 离,根据所述测地距离中的最小值得到所述三维模型上每个点的高度值;所述骨架提取模块,用于根据所述高度值将所述三维模型划分为L个高度区间,每个 所述高度区间对应一个结点,相邻的两个所述高度区间中的所述结点之间存在一条连线, 由所述结点和所述连线组成所述三维模型的骨架。
8. 根据权利要求7所述的骨架提取装置,其特征在于,所述关键点提取模块根据曲率 提取所述三维模型的关键点包括所述关键点提取模块根据所述曲率计算所述三维模型每个点的显著值,并由所述显著 值大于预设的阈值的点组成显著点集;所述关键点提取模块提取所述显著点集中的凸点,并对所述凸点进行聚类; 所述关键点提取模块提取聚类后的每一凸点类中所述显著值最大的点为关键点。
9. 根据权利要求8所述的骨架提取装置,其特征在于,所述关键点提取模块组成显著 点集包括所述关键点提取模块计算所述三维模型每个点的两个主曲率lq和k2,并计算平均曲率 <formula>formula see original document page 3</formula>所述关键点提取模块根据所述avg(v)计算所述三维模型每个点在尺度空间、中的 <formula>formula see original document page 3</formula>在尺度空间o i中的邻域,并计算所述三维模型每个点在尺度空间o i中的显著值S(v, o》 为S(v, o》=|C(v, o i)-C(v,2o》I ;所述关键点提取模块根据所述S(v, 0i)计算所述三维模型每个点的显著值S(v)为 S(v) =E i(Mi;i"S(v, o i),其中,Mi为对应尺度空间o i中所述三维模型的最大显著值,曲率 <formula>formula see original document page 3</formula>其中,N(v,2。i)为点v^为对应尺度空间o i中所述三维模型上除Mi以外的局部极大值点的显著值的平均和,所述局部极大值点为显著值在邻域N(v,2。i)内最大的点。
10.根据权利要求7所述的骨架提取装置,其特征在于,所述高度值计算模块得到三维 模型上每个点的高度值包括所述高度值计算模块将所述三维模型上每个点v到每个关键点的测地距离值d(v)设 为无穷大,将每个所述关键点到自身的测地距离值d(v)设为O,并将所有点加入列表List 中;对于所述List中d(v)最小的点v,点vl与所述点v之间有长度为length (v,vl)的连 接边,如果d (v) +length (v, vl) < d (vl),则将所述点vl的测地距离值d (vl)更新为d (vl) =d(v)+length(v, vl),更新完所有与所述点v有连接边的点vl之后,将所述点v从所述 List中删除;所述高度值计算模块重复进行所述更新步骤,直至所述List为空,从而得到所述三维 模型上每个点的测地距离d(v)的最小值,将所述最小值设为所述三维模型上每个点的高度值。
全文摘要
本发明提供了一种三维模型的骨架提取方法,包括以下步骤计算三维模型上每个点的曲率,根据曲率提取三维模型的关键点;计算三维模型上每个点到每个关键点的测地距离,根据测地距离中的最小值得到三维模型上每个点的高度值;根据高度值将三维模型划分为L个高度区间,每个高度区间对应一个结点,相邻的两个高度区间中的结点之间存在一条连线,由结点和连线组成三维模型的骨架。本发明还提供了一种骨架提取装置,包括关键点提取模块、高度值计算模块和骨架提取模块。本发明在三维模型的骨架提取过程中只考虑三维模型的整体结构,不考虑三维模型表面的细节,不仅极大地节约了计算量,也适合人脑对三维模型的视觉感知特点。
文档编号G06T17/00GK101751698SQ20101003454
公开日2010年6月23日 申请日期2010年1月22日 优先权日2010年1月22日
发明者刘永进, 罗曦 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1