三维形状表达方法及装置与流程

文档序号:11707732阅读:214来源:国知局
三维形状表达方法及装置与流程

本发明涉及图形学技术,尤其涉及一种三维形状表达方法及装置。



背景技术:

三维形状的几何信息获取设备的逐步完善以及三维建模方式的成熟,让三维形状的数量得到了极大的提升,这也对三维形状的检索和对比提出了更高的要求。基于这样的观察,如何高效地对三维形状进行表达是解决问题的关键。

近年来,对三维形状的表达以及采用不同的三维形状表达进行形状检索相关的研究成果不断增多。而在现有技术中,对三维形状的表达一般采用全局或局部特征的方式,用不同的特征描述子去描述三维形状,例如将三维形状的体积、面积、傅里叶变换系数以及其他统计数据作为全局特征来描述三维形状,或者基于三维形状中随机表面点之间的距离、角度、面积以及体积的分布来表达不同三维形状,等等。

总之,现有方案中,对三维形状的表达方式主要可分为三大类:(1)基于特征的表达;(2)基于图的表达;(3)基于视角的表达。而基于特征的表达只是单纯地考虑了形状表面的几何属性,并没有考虑到三维形状的整体结构,而人们对形状的直观感受往往是从结构上,而非细节上。而基于图的方式则仅仅通过连接图来表达一个三维形状,若要利用其做更进一步的对比或检索应用,往往还需要额外的定义和计算。而对于基于视角的表达方式,其核心思想是用多张二维图像捕获三维形状的各个视角,但往往为了能尽可能全面地捕捉到三维形状的信息,需要大量的二维图片。若二维图片数量过少则会导致丢失很多形状上的细节,从而影响形状表达结果。而且,在获得这些二维图像的同时,还需要对这些二维图片计算特定的描述子,无法简单地将这些图片直接应用在三维形状的各类应用上。

因此,现有的对三维形状的表达方式均存在一定的问题,有值得改进的空间。



技术实现要素:

本发明实施例提供了一种三维形状表达方式及装置,能够以简单和高效的方式来表达三维形状。

本发明实施例提供了一种三维形状表达方法,包括步骤:提取三维形状的混合型骨架;通过对所述混合型骨架的分割,得到所述三维形状的分割;根据分割的三维形状,得到所述三维形状的子结构;以及根据所述三维形状的子结构,利用词袋模型来建立所述三维形状的表达。

其中,所述提取三维形状的混合型骨架,包括:对所述三维形状的表面进行采样,得到采样点;以及对所述采样点进行重新表达,以得到包含一维曲线和二维薄片的混合型骨架。

其中,所述通过对所述混合型骨架的分割,得到所述三维形状的分割,包括:分割所述混合型骨架;根据所述混合型骨架与所述采样点之间的对应关系,由所述混合型骨架的分割得到所述三维形状的分割。

其中,所述根据分割的三维形状,得到所述三维形状的子结构,包括:由所述分割的三维形状,得到所述三维形状的多个部件;创建连接所述多个部件的连接图;提取所述连接图中的子图,作为所述三维形状的子结构。

其中,所述根据所述三维形状的子结构,利用词袋模型来建立所述三维形状的表达,包括:将所述三维形状的子结构与候选子结构集中的各个候选子结构进行匹配,以确定所述各个候选子结构在所述三维形状上出现的频率;根据所述各个候选子结构在所述三维形状中出现的频率,创建所述三维形状的词向量;对所述词向量进行归一化,以得到所述三维形状的词袋表达。

其中,所述利用词袋模型来建立所述三维形状的表达之前,还包括:创建所述候选子结构集;其中,所述创建所述候选子结构集包括:获取输入数据集中的所有三维形状的子结构;确定所述获取的子结构之间的相似性;根据所述获取的子结构之间的相似性,从所述获取的子结构中选择所述候选子结构,以组成所述候选子结构集。

其中,所述确定所述获取的子结构之间的相似性,包括:定义所述获取的子结构之间的图核;根据所述图核,来确定获取的子结构之间的相似性。

其中,所述定义所述获取的子结构之间的图核,包括:定义节点核和边核;其中,所述节点核为:所述边核为:所述knode(ni,nj)表示节点核,kedge(ei,ej)表示边核,ni,nj表示节点,hi和hj分别是由关于节点ni和nj的部件的几何特征直方图连接而成,d是hi和hj的归一化相关,是任何两对hi和hj的距离d(hi,hj)的最大值,ui和uj是相连两个部件中所有点对关于垂直向上角度和距离构成的二维直方图。

本发明实施例提供了一种三维形状表达装置,包括:骨架提取模块,用于提取三维形状的混合型骨架;分割模块,用于通过对所述混合型骨架的分割,得到所述三维形状的分割;子结构提取模块,用于根据分割的三维形状,得到所述三维形状的子结构;以及表达模块,用于根据所述三维形状的子结构,利用词袋模型来建立所述三维形状的表达。

其中,所述骨架提取模块,具体用于:对所述三维形状的表面进行采样,得到采样点;以及对所述采样点进行重新表达,以得到包含一维曲线和二维薄片的混合型骨架。

其中,所述分割模块,具体用于分割所述混合型骨架;以及根据所述混合型骨架与所述采样点之间的对应关系,由所述混合型骨架的分割得到所述三维形状的分割。

本发明实施例的有益效果是:

本发明实施例,对于三维形状,建立了基于子结构的词袋表达,而此种表达方式具有简单和高效等特点。

附图说明

图1是本发明实施例的三维形状表达方法的实施例的流程示意图;

图2是图1中步骤101的实施例的流程示意图;

图3是图1中步骤102的实施例的流程示意图;

图4是图1中步骤103的实施例的流程示意图;

图5是图1中步骤104的实施例的流程示意图;

图6是三维形状的混合型骨架的示意图;

图7(a)~(c)分别是三个用于混合型骨架分割的局部特征示意图;

图8是创建三维形状图结构的过程示意图;

图9是三维形状的词袋表达示意图;

图10是进行三维形状检索的示意图;

图11是本发明实施例的三维形状表达装置的实施例的结构示意图。

具体实施方式

为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,是本发明实施例的三维形状表达方法的实施例的流程示意图,其包括如下步骤:

步骤101:提取三维形状的混合型骨架。

步骤102:通过对混合型骨架的分割,得到三维形状的分割。

步骤103:根据分割的三维形状,得到三维形状的子结构。以及

步骤104:根据三维形状的子结构,利用词袋模型来建立三维形状的表达。

其中,步骤101的混合型骨架包括:一维曲线和二维薄片。其中,如图2所示,是步骤101的实施例的流程示意图。具体地,为了提取出混合型骨架,首先,对三维形状的表面进行采样,得到多个采样点(步骤201);然后,对所有采样点进行重新表达,以得到包含一维曲线和二维薄片的混合型骨架(步骤202)。其中,在步骤201中,可以对三维形状的表面使用泊松圆盘采样方式进行采样,其中采样点设定为大约20000个。其中,步骤201所得到的采样点为表面点,而在步骤202中,可以将这些采样点扩展为深度点,并将每个表面点和三维形状内部的对应骨架点结合,通过优化形状表面和骨架上的点的排布,使深度点连线的方向和表面点的法向量一致,最终优化函数的收敛将得到一个由一维曲线和二维薄片组成的混合型骨架。例如,如图6所示,是椅子的三维形状的混合型骨架的示意图。

其中,如图3所示,是步骤102的实施例的流程示意图。具体地,首先,分割混合型骨架(步骤301):然后,根据混合型骨架与采样点之间的对应关系,由混合型骨架的分割可以得到三维形状的分割(步骤302)。其中,在步骤301中,对混合型内架中的每个混合型骨架点,计算三个基于pca(principalcomponentanalysis,主成分分析)的局部特征。而计算每个点的这三个特征,需要选取该点的一个测地邻域并计算其特征值λ1≥λ2≥λ3≥0,并定义:

其中,l、p、s即是上述的三个局部特征,分别描述了该点邻域形状的线性、平面性、球形性的程度;举例而言,如图7(a)~(c)所示,分别是上述三个局部特征的示意图,即图7(a)~(c)分别以可视化的方式示出了区域的线性、平面性和球形性。其中,上述的局部特征将被用于分割混合型骨架的聚类过程。并且,在本发明实施例中,为了获得一个更具有语义的三维形状的分割,可以采用半监督谱聚类方法,并结合对混合型骨架的人工交互,得到混合型骨架的分割。其中,在人工交互的过程允许对混合型骨架上的不同点设置“必须连接”和“不能连接”两种约束来引导分割的结果。

如图4所示,是步骤103的实施例的流程示意图。具体地,在图4中,首先,由分割的三维形状,得到三维形状的多个部件(步骤401);然后,创建连接该多个部件的连接图(步骤402);最后,提取连接图中的子图,作为三维形状的子结构(步骤403)。其中,在步骤402中得到的连接图的节点为三维形状的中的部件,而在创建连接图时,若任意两个部件中的任意点对的距离,小于整个三维形状包围盒对角线长度的2%,则通过一条边将两个部件连接。其中,在步骤403中,把该连接图中相连节点数为n=1,…,5的子图提取,从而得到了该三维形状对应的子结构,此处的子结构可以采用一系列的几何特征来表示,其中n的值也不局限于上述示例。其中,如图8所示,其示出了创建三维形状图结构的过程,其中图8中的左侧的形状为结合人工交互后获得混合型骨架的分割示意图,图8中中间的形状为通过混合型骨架与形状表面点的联系获得三维形状的分割,图8中右侧的形状为连接三维形状的各个部件建立连接图。

如图5所示,是步骤104的实施例的流程示意图。具体地,首先,将三维形状的子结构与候选子结构集中的各个候选子结构进行匹配,以确定各个候选子结构在三维形状上出现的频率(步骤501);然后,根据各个候选子结构在三维形状中出现的频率,创建三维形状的词向量(步骤502);最后,对词向量进行归一化,以得到三维形状的表达(步骤503)。

其中,步骤501中的候选子结构集可以预先创建,例如由输入数据集中的所有三维形状的信息来创建。具体而言,可以获取输入数据集中的所有三维形状的子结构,此中此处的获取方式例如可以包括:分别提取各个三维形状的混合型骨架并进行分割,进而得到三维形状的分割,从而得到三维形状的子结构;然后确定获取的子结构之间的相似性;最后,根据获取的子结构之间的相似性,从获取的子结构中选择所述候选子结构,以组成候选子结构集。另外,在选择候选子结构时,还可以同时确定候选子结构的数量。

其中,为了选出具有代表性的子结构,会用到两个子结构间的距离。而计算两个部件数相同的子结构间的距离,可先通过图核(graphkernel)计算得到两个具有相同节点数的子图的相似性,从而获得子结构间的相似性。其中计算的过程会用到节点核(nodekernel)以及边核(edgekernel),在本实施例中,将节点核定义为:

其中,hi和hj分别是关于节点ni和nj的部件的所有几何特征直方图连接而成,这些几何特征包括形状直径函数(shapediameterfunction)和前面用到的三个基于pca的局部特征,且每个特征直方图的维数为16。d是hi和hj的归一化相关(normalizedcorrelation)。符号是任何两对hi和hj的距离d(hi,hj)的最大值。

其中,边核用于捕获了两对相连部件的相似性,将其定义为:

其中,ui和uj是相连两个部件中所有点对关于垂直向上角度和距离构成的二维直方图。这两个特征是通过计算这些点对所构成的线段的距离,以及该线段与三维形状垂直朝上方向所构成的夹角得到。两个子结构的相似性是图核中图步(graphwalks)小于等于p的相似性相加求和所得,其中p为子结构节点的数量。即两个子结构的相似性是由一个考虑节点核与边核的图步核(graphwalkkernel)计算得到。

当定义完子结构的相似性后,便可从所有初始子结构(即上述所有三维形状的子结构)中提取出候选子结构集c,以建立词袋模型中的词典。对于初始的子结构集,需要解决的一个问题是其中存在着大量相似的子结构。产生这一问题的主要原因是三维形状子结构的区别性并不高。因此,为了避免处理大量相似或者无关的子结构,本发明通过在子结构相似性空间进行密度分析,选取得到一个候选子结构集。即计算所有子结构的密度,然后仅保留那些密度处于峰值的子结构。该密度峰值与具有相同节点数的初始子结构集的聚类中心相关联。所以仅挑选出相似空间中被相似子结构包围,且密度处于峰值的子结构,便能避免处理多余的相似子结构。同时,由于这些子结构是密度峰值,它们会频繁出现在子结构集之中。

为了以相对鲁棒的方式计算密度,可以采用聚类的方法。在聚类前,假定聚类中心会被附近更低密度值的子结构所包围,并与其他更高密度值的子结构保持相对远的距离。具体而言,首先由图核(graphkernel)和上述子结构间相似性的定义,计算出两个子结构的距离,并记为dij。然后,将某个子结构ei的局部密度ρi定义为:

ρi=∑jχ(dij-dc),

其中,当x<1时,χ(x)=1,否则为0;dc为截断距离(cutoffdistance),这里设置dc为所有子结构间距离值从小到大排序之后的第2%个值。接下来,再将一个子结构到其它更高密度子结构的距离δi定义为:

而密度最高的子结构作为一个特例,它到其它高密度子结构的距离将被定义为δi=maxjdij。最后,对所有的子结构按照δi排序,并挑选出其中最大的前k个子结构以获得最大的距离值δi。其中,子结构个数k可以根据经验设定,例如根据方差γi=ρiδi来决定。通过以上方式,最终便获得了一个候选子结构集c。需要注意的是,上述方法针对包含部件数量不同的子结构分别处理。

在获得候选子结构集c之后,根据词袋模型的概念,用向量t来代表候选子结构集c在每一个三维形状上出现的频率,称之为这个三维形状的词向量(termvector)。t是一个m维向量,其中m是候选子结构集c中子结构的个数。t中的每一维是统计了某候选子结构出现在该三维形状上的次数,并随后用三维形状上的所有子结构的数量进行归一化处理。若某一相关子结构没有出现在三维形状上,则对应的维度值则为零。

为了对给定的三维形状s创建词向量,采用与获取初始子结构时相似的流程从三维形状上提取子结构。然后,仅保留与候选子结构集c相关的子结构,并统计所检测到的子结构来设定词向量中相关子结构所对应的值。为了找到三维形状s中与候选子结构集c中相似的子结构,需要考虑到子结构间的相似性。对于图中的子结构,给定三维形状上的一个子结构s∈s以及一个候选子结构c∈c,若子结构s和子结构c之间的核距离(kerneldistance)小于阈值τs,则认为这两个子结构是相似的。为了得到关于每个候选子结构c的阈值,需要先计算出子结构c和其它子结构之间的核距离,并建立得到一个直方图。随后,将该直方图拟合到beta分布中,并设定τs值为逆累计分布函数值为0.05之处,这意味着其他子结构到该子结构的距离中有95%大于τs。

如图9所示,展示了一个三维椅子形状和一个三维凳子形状,a和b分别代表了这两个三维形状的词袋表达,即词向量,且每个三维形状的词向量t用一个m维的直方图表示。直方图中的相同位置对应着一个共同的候选子结构。在图9中,可观察到这两个三维形状都具有一个共同的“坐垫及支撑腿”子结构。而对于凳子形状,它与椅子形状属于不同的形状类型,并不具有椅子中的“扶手”子结构,因此,在直方图相应的维上不会有相应的数据。

现有方式,对三维形状进行表达时,对数据输入要求高;而本发明实施例,对输入的三维形状适应性强。同时,本发明的三维形状表达是基于子结构的表达,因此更能捕获到三维形状的全局框架,从而使得能适应具有噪声和缺失问题的三维形状数据。另外,现有中的三维形状表达会用到二维图片,但通常为了完整地捕获到三维形状的形态,需要多个角度,导致用到大量的二维图片;而本发明利用的词袋表达最终只是一个简单的直方图,并且能很好地反映三维形状的结构,其应用扩展更为方便。另外,本发明中对三维形状的最终表达结果在进行对比或检索等应用时,能直接进行距离的计算,不需要再此基础上作进一步的处理和转化。

上述对本发明实施例的原理进行了说明,下面举例对本发明实施例的应用说明。

本发明实施例的三维形状表达方式,可以应用于三维形状的检索、比对、分类和识别等领域。下面以检索为例来对本发明实施例的应用进行说明。对于给定的一个新输入的三维形状,分割并提取该三维形状中的“初始子结构”,然后根据子结构间的相似性来匹配候选子结构,得到所有候选子结构的出现频率,从而完成利用词袋模型来表达该三维形状的过程。然后,计算新输入的三维形状的表达与数据集中的每个三维形状表达之间的距离值,并根据计算的距离值,得到检索结果;举例而言,距离越小,表示两个三维形状越相似。例如,如图10所示,是三维形状检索应用的结果图,其中左侧方框内是检索过程的三维形状输入,而右侧方框中则是通过检索返回的结果。在图10中,取了最小距离的前十个对应的三维形状来作为返回的检索结果,而从结果上看,它们的外形结构也与检索的三维形状也最为相似。

以上对本发明实施例的方法实施例进行了说明,下面对本发明实施例的装置实施例进行说明。

如图11所示,是本发明的三维形状表达装置的实施例的结构示意图。其包括:骨架提取模块111,用于提取三维形状的混合型骨架;分割模块112,用于通过对所述混合型骨架的分割,得到所述三维形状的分割;子结构提取模块113,用于根据分割的三维形状,得到所述三维形状的子结构;以及表达模块114,用于根据所述三维形状的子结构,利用词袋模型来建立所述三维形状的表达。其中,骨架提取模块111,具体用于:对所述三维形状的表面进行采样,得到采样点;以及对所述采样点进行重新表达,以得到包含一维曲线和二维薄片的混合型骨架。其中,分割模块112,具体用于分割所述混合型骨架;以及根据所述混合型骨架与所述采样点之间的对应关系,由所述混合型骨架的分割得到所述三维形状的分割。

需要说明的是,该装置中各模块的功能和作用分别对应于上述方法实施例中的步骤101~步骤104,而由于上述步骤已在前述有详细描述,因此出于简洁而不再重复描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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