一种基于模糊对应函数的3D模型局部检索方法及装置与流程

文档序号:12271397阅读:174来源:国知局
一种基于模糊对应函数的3D模型局部检索方法及装置与流程

本发明涉及计算机图形学技术领域,具体涉及一种基于模糊对应函数的3D形状模型局部分析及检索方法及装置。



背景技术:

3D模型的再利用具有很重要的实用价值。人们常通过对3D模型进行分割,重组来创造新的3D模型,这是创造新的3D模型的重要方式,因此在一个大的3D形状数据库中进行局部检索就显得非常重要。



技术实现要素:

为了实现3D形状数据库分析与局部检索的功能,本发明的目的是提供一种基于3D形状数据库的点对应的模糊对应函数的建立技术,从而实现3D形状数据库分析与局部检索方案。

为了达成所述目的,本发明提出了一种3D形状模型分析及检索方法,其包括:

步骤1、输入3D形状模型数据库中所有的3D形状模型并建立其初始化关系图,使相似的3D形状模型之间相互连接;

步骤2、通过初始化关系图,对相似的3D形状模型进行变形,得到空间中最优的两两对准效果,并计算出衡量对准程度的评估值;

步骤3、根据所述评估值,将所有两两对应的3D形状模型的评估值嵌入我们定义的对应矩阵中,并对该对应矩阵进行谱分析;

步骤4、根据谱分析后得到的两两对应点之间的扩散距离计算,得到模糊对应函数(描述了点对点的相似度量关系),并不断对初始化关系图进行优化,调整该模糊对应函数。

步骤5、从3D形状模型数据库中选定与待检索模型相似的3D形状模型的局部区域;

步骤6、根据步骤4确定的模糊对应函数,计算所选定的局部区域与两两对准效果,并计算出衡量对准程度的评估值;

步骤3、根据所述评估值,将所有两两对应的3D形状模型的评估值嵌入我们定义的对应矩阵中,并对该对应矩阵进行谱分析;

步骤4、根据谱分析后得到的两两对应点间的扩散距离计算得到模糊对应函数(描述了点对点的相似度量关系),并不断对初始化关系图进行优化,调整并确定最终的模糊对应函数。

步骤5、从3D形状模型数据库中选定与待检索模型相似的3D形状模型的局部区域;

步骤6、计算所选定的局部区域与3D形状模型数据库中其它3D形状模型的距离;

步骤7、根据计算得到的距离,从小到大按顺序排列其他3D形状模型,可以得到与待检索模型局部区域最相似到最不相似的3D形状模型输出;

步骤8、在3D形状模型数据库中,任意选定多个3D形状模型中不同的局部区域(比如椅子1的扶手和椅子2的靠背等),根据上述步骤所述分别计算多个区域与其他3D形状模型的距离,对各距离相加,得到总距离值,从小到大按顺序排列其他3D形状模型,可以得到同时与多个局部区域最相似到最不相似的3D形状模型输出。

附图说明

图1示出了本发明基于点对应的3D形状模型分析及检索方法的流程图;

图2示出了本发明中通过点对应的模糊对应函数实现的形状库中任意的单区域局部检索或多区域的局部检索效果图;

图3示出了利用本发明实现的形状库的局部检索效果界面。

具体实施方式

其中,步骤1-4主要是用于3D形状数据库的模糊对应函数的建立,具体可分为下面几个部分:(1)3D形状数据库预处理;(2)3D形状数据库初始对应图的构造;(3)3D形状数据库点对应矩阵的构造;(4)基于谱嵌入理论的点对应模糊对应函数的构造;(5)3D形状数据库的对应图及模糊对应函数的优化。

而步骤5主要是利用步骤1-4所建立的模糊对应函数进行相应的检索。本发明中,可通过所述模糊对应函数对3D形状模型的局部进行检索。3D形状模型局部检索可分为以下两个部分:(I)基于3D形状数据库点对应的模糊对应函数,计算选定的某一个形状模型局部与3D形状数据库中其它形状模型的距离;(II)基于上述技术的3D形状数据库分析及3D形状模型局部检索方案。

下面参照图1,对所述方法包括的各个部分详细进行描述:

1、3D形状数据库的点对应的模糊对应函数的建立:

(1)3D形状数据库预处理

可以通过自己扫描或从网络(比如Google 3D Warehouse)上获取大量的3D形状模型,组建一个3D形状模型数据库,包括椅子、飞机……等生活中常见物体的3D形状模型。

记3D形状模型数据库为{m(1),m(2),L,m(N)},其中m(i)(i=1,2,L,N)表示一个单独的3D形状模型,所述3D形状模型数据库中的模型总数为N。为了减小计算量,此处并不用每个3D形状模型的所有顶点,而是每个模型确定K(K=128)个采样点,记作m(i)={vi1,vi2,L,viK}(i=1,2,L,N,K=128)。确定采样点方法如下:对一个3D形状模型m,从其任意一个顶点v1出发,令m*={v1},找到3D形状模型m的顶点中与m*最远的点,记作v2,即v2满足maxv∈m||v-v1||Euclid(||g||Euclid表示欧几里得范数),然后将之加入m*,则m*={v1,v2};然后再找3D形状模型m的顶点中与m*最远的点,记作v3,即v3满足maxv∈m{(||v-v1||Euclid+||v-v2||Euclid)/2},然后将之加入m*,则m*={v1,v2,v3},如此,直到m*中顶点个数为K(K=128)。则每个3D形状模型对应的m*即为经过预处理后3D形状模型数据库中每个3D形状模型的表示,下面的m就是此处得到的m*

(2)3D形状模型数据库初始对应图的构造

计算3D形状模型数据库中各个形状模型的3D球面调和描述子(计算方法此处采用已知方法,不再赘述,详见文献【Kazhdan,Rotation Invariant Spherical Harmonic Representation of 3DShape Descriptors,Eurographics Symposium on Geometry Processing,2003】),记作{x(1),x(2),L,x(N)}。

令V={m(1),m(2),L,m(N)},(表示连接顶点mk,ml的边的模长,即欧式距离)。以V为顶点集,以E为边集,可构造出一个完全图,记作G0=(V,E)。

然后,由边集E求得G0的最小生成树(Minimal Spanning Tree),记作GMST=(V,EMST)。一般来说GMST的连通性不好,所以我们需要增加一些边来改善GMST的连通性。我们希望每个顶点处增加M(M=5,M越大,连通性越好)条边。故对于G0=(V,E),我们在每个顶点处选取3×M条边作为候选边,共N×3×M条侯选边,计算其边秩(计算方法见下段),然后选取边秩最大的N×M条边加入GMST=(V,EMST),变为G(1)=(V,E(1)),所得到的图就为本步骤中构造的3D形状数据库初始对应图。

边秩的计算方法:构造矩阵L,d(k)为顶点v(k)的度,即定义d(k)={与顶点v(k)相关联的边的个数}。k和l表示矩阵L的第k行第l列元素,L为N*N矩阵。由于L是对称矩阵,故可求L的特征值及特征向量,其中第二小的特征值对应的特征向量称为Fiedler向量,记作FV,则给定边对应的边秩为其中FV(k),FV(l)表示Fiedler向量FV的第k,l个分量值。

(3)3D形状数据库点对应矩阵的构造

设φ为形状间的仿射变换空间,即3D形状之间所有可能的仿射变换组成的集合。对于一对3D形状模型mk={vk1,vk2,L,vkK}及ml={vl1,vl2,L,vlK},我们通过外在对应及本征对应两方面的计算得到两个形状的模糊对应程度,但是根据3D形状模型数据库的不同,应该采取不同的对应的评价形式(详见下述说明)。

1)外在对应:

针对拓扑差异较大的数据集(如Google 3D Warehouse里面的形状各异的模型),我们采用外在对应来评价对应程度。

对于任意的两个3D形状模型mk={vk1,vk2,L,vkK}及ml={vl1,vl2,L,vlK},其中K为步骤(1)中对3D形状模型预处理后得到的统一的3D形状抽样顶点的个数,首先取σ(ml)=Diam(ml)/5,其中Diam(ml)表示形状ml的直径,即然后,我们定义两个3D形状上顶点之间的相似度量为其中La(vki,vlj)为局部对应,Ba(mk,ml)为全局对应,分别定义如下。

这里T∈φ表示T为仿射空间φ中的仿射变换(T∈R3×3)。

这里T(ml),T(mk)表示3D形状模型mk={vk1,vk2,L,vkK}及ml={vl1,vl2,L,vlK}在仿射变换T下的像,即T(ml)={Tvl1,Tvl2,L,TvlK},T(mk)={Tvk1,Tvk2,L,TvkK}。

2)本征对应:

对于具有平滑、等距、流形表面的输入形状(如人体、动物等模型库),本征对应,运用具有共形保角映射特性的本征对应,有着更显著的效果。本征对应仍然分为局部对应和全局对应两部分,但形式与上述外在对应不同,为方便我们仍采用相同的符号,及局部对应为La(vki,vlj)与,全局对应为Ba(mk,ml),具体形式如下。

首先,我们给出几个符号的说明。第一,e:mk→ml为一个本征映射,即为一个3D空间内的点与点的映射关系,具有共形保角特性。第二,记3D形状模型的表面积为A(ml),定义表示该本征映射的对应的模糊程度(因为本征映射的英文为intrinsic map,故我们用σin来表示本征映射,以强调此映射为本征映射)。第三,设3D形状上一个顶点v的一个邻域为nv,该邻域的面积为A(nv),该邻域nv在本征映射e:mk→ml下的像为e(nv),其面积为A(e(nv)),由此可以定义3D形状上单个顶点的对应置信度为

然后,对于任意两个3D形状模型mk={vk1,vk2,L,vkK}及ml={vl1,vl2,L,vlK},基于上述定义的几个符号,我们给出本征对应的局部对应和全局对应的形式如下:

其中Dgeod.(e(vki),vlj)为3D形状ml上顶点e(vki)与vlj的几何距离。

从而,对一个3D形状模型数据库{m1,m2,L,mN},其中,mi={vi1,vi2,L,viK},记其所有的顶点组成的集合为

V={v11,v12,L,v1K;v21,v22,L,v2K;L;vN1,vN2,L,vNK},

为了叙述方便将其记为V={v1,v2,L,vNK},对其中任意两个顶点vi(i=1,2,L,NK),vj(i=1,2,L,NK),不妨设vi∈mk,vj∈ml,则定义点对应矩阵,如下:

显然C为N×K阶实对称矩阵,其中每个元素表示数据库中两个顶点之间的相似度。

(4)基于谱嵌入理论的点对应的模糊对应函数的构造

根据(3)中的C,求解C的特征值及相应的特征向量分别为:λ12,L,λNK;ψ12,L,ψNK,定义谱嵌入映射为:

(其中表示λ1的t次方,其它类同),

其中,可选地取t=10,t取大值可以减少对应错误带来的影响。则对任意的顶点vi(i=1,2,L,NK),vj(i=1,2,L,NK)(可属于同一3D形状,也可属于不同3D形状),点对应距离为:

Dt(vi,vj)=||πt(vi)-πt(vj)||Euclid.

进一步定义点对应的模糊对应函数为:

其中,τ(vi)表示归一化因子,定义为上述谱嵌入映射πt确定的嵌入空间中与πt(vi)距离最近的前15%的点的距离的平均值。为了更有效率地得到该函数,我们设两两间距离大于2τ(vi)的值为0,根据之前低秩的判断,只考虑前K个特征向量。于是我们在K维空间内采用近似最近邻搜索方法(FLANN)求取f。

(5)3D形状模型数据库的初始对应图及模糊对应函数的优化

根据上述步骤对于步骤(2)中构建的3D形状数据库的初始对应图G0,在步骤(4)中构建了一个模糊对应函数f0,往往初始的对应图和模糊对应函数的一致性不好,比如G0含有模糊对应函数值比较小的噪声边,因此需要对初始对应图及模糊对应函数进行迭代优化,即通过迭代地检测并去除噪声边及更新模糊对应函数来增加形状对应的稳定性,具体算法如下。

首先,对于任意两个形状mk,ml,它们是初始对应图G0中的两个顶点,记它们在G0中的边为(mk,ml),定义一个分数来衡量这条边的对应程度,如下:

其中f为上述步骤(4)所得的模糊对应函数,为步骤(3)第2)节本征对应定义的顶点之间的相似度量。基于此对应分数的定义,我们可以得到初始对应图G0中任一顶点(即一个形状)mk的所有相邻边的对应分数,即;类似地形状ml所有相邻边的对应分数为

则判断任一条边是否是噪声边的方法如下:若这边的对应分数低于该边连接的两个顶点的分数最大值的30%,则认为该边为噪声边,否则为非噪声边。

其次,假设我们检测出Edelete条噪声边,则将之从当前对应图(不妨设为Gi,对应函数为fi=f0)去除。

然后,我们要添加Eadd=Edelete条形状对应稳定性较好的边,方法如下:选取图中模型之间边数大于3条的模型对作为候选,分别计算综合对应值选取3·Eadd条IFC值最大的边,计算其边秩(计算方法见(2)),将边秩最大的Eadd条边添加。

如此,一次优化更新(只更新G0)完成),可迭代执行步骤(5),先更新G0,再更新f0,然后G1,再f1,直到二者一致性收敛,误差趋于0,即多次(具体迭代次数可根据实际问题确定)迭代,使得G0对于f0变化关系趋于稳定,程度可根据实际需要适当控制。

3D形状模型局部检索技术主要包括:

(I)基于3D形状数据库点对应的模糊对应函数,构造选定的某一个形状模型局部与3D形状数据库中其它形状模型的相似性度量。设给定(可用户选择)形状mk上一局部区域R(k)={vk1,vk2,L,vkr}(即形状mk上的r个顶点),基于上述步骤(4)所得的模糊对应函数f,对形状数据库中任意其他形状ml,定义R(k)到ml的最优仿射变换如下:

其中,R(l)={vl1,vl2,L,vlr}表示在形状ml上的一个局部区域,这个仿射变换会返回ml上的与所选择局部区域R(k)={vk1,vk2,L,vkr}最优对应的一个局部区域。此外,定义最优对应函数为定义

由此,对于形状mk上任意给定局部区域R(k)={vk1,vk2,L,vkr},定义形状数据库中其他任意形状ml与R(k)的距离(即相似性度量)为:

其中表示R(k)中与顶点vlp对应的点。

(II)基于上述技术的3D形状数据库分析及3D形状模型局部检索方案,检索效果如图2所示。根据(I),可定义的给定的形状mk上一局部区域R与形状数据库中任意其他模型的距离DR(m1),DR(m2),L,DR(mk-1),DR(mk+1),L,DR(mNK),按大小排序即可得与给定的形状mk上一局部区域R相似度逐渐减小的形状模型

(Ⅲ)因为现实生活中,用户往往对多个3D形状模型的不同局部区域同时感兴趣,并希望得到同时具有多个特征的3D形状模型。此时,基于上述技术的3D形状数据库分析及3D形状模型局部检索方案,检索效果图如图3所示。根据(II),如果用户选取了两个3D形状模型的不为对应区域的任意两个区域,可定义这两个形状的局部区域为R1,R2,该装置可计算这两个区域分别相对于3D形状数据库中的任意其他模型的距离及将他们对应相加得到DR(m1),DR(m2),L,DR(mk-1),DR(mk+1),L,DR(mNK),按大小排序,即可得到与给定两个区域R1,R2,相似度逐渐减小的形状模型此规律可以推广到同时选定任意N个模型的N个局部区域并检索的方法。

综上,本发明的3D形状数据库分析及3D形状模型局部检索方案具体为:用户输入一个3D形状模型m(new),本发明用户交互系统(以下简称“系统”,系统检索界面见图2~3)自动地计算其球面调和描述子x(new)(如步骤(2)),并计算其与数据库中的3D形状模型的球面调和描述子{x(1),x(2),L,x(N)}的欧氏距离:{d1,d2,L,dN},其中di=||x(new)-x(i)||Euclid。按从小到大的顺序,返回相应的模型(可取前20个,根据3D形状数据库形状模型的类的大小而定),并展示给用户。用户可以从中选择一个(最相似的形状模型),然后用系统给的画笔工具选择一个感兴趣区域R,系统按(II)描述方法自动给出3D形状库中与R最相似的若干个(可根据需要取定)3D形状模型,供用户选择、再利用。

在本发明的具体应用场景,采用一台具有2.9GHZ的Intel处理器和6GB安装内存Lenovo B580计算机,Ubuntu13.04系统下,用C++语言编制了点对应局部检索技术的界面(如图2~3),实现了本发明的3D形状数据库分析与3D形状模型局部检索技术,还可以采用其他执行环境,在此不再详细赘述。

本发明使得用户可以任意选择一个3D形状或者一个3D形状的局部,在检索系统中进行检索,系统反馈给用户的是相似的形状或局部,使得之前单纯的反馈相似的整个形状模型有很大的改观,因为用户可能只对某个局部感兴趣。最初,本发明需要建立3D形状模型库,当然可以不断地添加新的形状模型进去,只是每次添加一批新的模型后,需要重新执行一下本发明的分析过程。我们首先建立3D形状数据库的点对应的模糊对应函数,主要步骤有:(1)3D形状数据库预处理;(2)3D形状数据库初始对应图的构造;(3)3D形状数据库点对应矩阵的构造;(4)基于谱嵌入理论的点对应的模糊对应函数的构造;(5)3D形状数据库的对应图及点对应的模糊对应函数的迭代优化。然后,实现3D形状数据库分析及3D形状模型局部检索,主要包括:(I)基于3D形状数据库点对应的模糊对应函数,构造选定的某一个形状模型局部与3D形状数据库中其它形状模型的相似性度量;(II)基于上述技术的3D形状数据库分析及3D形状模型局部检索方案。本发明的综合检索技术可加入当今网络浏览器的检索功能,借助大数据、云存储等最新理论,从而给用户更好的检索体验。

以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。

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