基于图谱理论的三维CAD模型双层检索方法与流程

文档序号:15558315发布日期:2018-09-29 01:39阅读:182来源:国知局

本发明涉及三维cad模型相似性检索领域,具体为一种基于图谱理论的双层检索机制的三维cad模型检索方法。



背景技术:

随着互联网技术的发展,计算机辅助设计技术的应用使得制造业发展突飞猛进。三维cad的三维造型、曲面设计、参数化驱动彻底改变了设计人员的习惯,使设计过程与最终产品紧密相关,并能够直接影响产品研发及生产制造的生命周期。加之,产品生命周期的其他各阶段都很难纠正和弥补概念设计阶段存在的缺陷。新产品研发对设计重用的迫切要求以及不断积累的设计资源,使得三维cad模型检索技术已成为近年来的研究热点之一。

目前,三维cad模型检索的方法主要分为整体检索和局部检索,基本都是基于模型几何形状、拓扑信息或语义信息,利用不同特征描述子对待检索模型及模型库模型进行表征,检索系统以b-rep模型作为输入,用属性邻接图表征模型拓扑结构,将模型检索过程转化为公共子图检索问题。图能较好地描述三维cad模型的几何、拓扑和语义信息,所以基于图的模型表征和检索方法受到了更多的关注,但其最终都要通过繁琐的图匹配实现对应模型间的相似性比较,然而图匹配是np完全问题,计算过程十分复杂耗时,检索效率低。模型的向量化表征方式可以提高匹配和检索效率,但该方式只能表达模型的整体形状,对于结构复杂的模型,其局部细节特征的描述能力不足问题凸显。如何同时提高模型检索精度和检索效率的问题已成为研究焦点。



技术实现要素:

本发明的目的是针对三维cad模型快速检索与重用,提出一种基于图谱理论的三维cad模型双层检索方法,结合cad模型的几何形状和拓扑信息共同完成检索任务。

本发明的第一层为“粗”检索,首先依据模型的边界将其分割为一组包含数量较少的、有工程意义的、由一些相互连接的面组成的区域特征集合;依据图谱理论对区域集合进行向量化表征,建立谱向量集合,将模型检索转化为完全二分图的最佳匹配问题,快速缩小相似模型的范围,选出与待检索模型最为相似的前n(例如n=5)个模型。第二层为“精”检索,在第一层检索结果的基础上进行,提取检索出的相似模型的面属性编码集合,与待检索模型进行精确匹配。该方法兼顾模型检索的精度和效率,易于实施,适用于三维模型的快速检索。

本发明的技术方案为:

所述一种基于图谱理论的三维cad模型双层检索方法,其特征在于:包括以下步骤:

步骤1:对于待检索模型以及模型库中的每个模型,根据三维cad模型的b-rep模型信息建立对应的属性邻接图g,g={v,e,a,d};其中v表示节点集合,且对于模型的每个面都有唯一的节点与之对应;e表示边集合,对于模型中相邻两个面都有唯一的连线与之对应;a表示模型的属性信息集合,包括面属性和边属性;d表示每个节点的度;根据属性邻接图中节点的凹凸性以及边的凹凸性,通过合并优化算法对模型进行分割,将模型分割成具有工程语义的局部区域集合;

步骤2:通过以下步骤构建双层检索机制,对模型进行快速匹配与检索:

步骤2.1:采用图谱理论以向量形式描述每个模型属性邻接图的拓扑结构信息:依据公式

计算各区域的拉普拉斯矩阵l;其中u和v表示属性邻接图中的两个节点,d(u)和d(v)分别表示节点u和v的度,l(u,v)表示拉普拉斯矩阵l中的元素;

步骤2.2:对每个模型进行向量化表示:

计算模型各区域拉普拉斯矩阵l的特征值,并按照降序排列,得到模型分割后各区域的谱向量spv,其中spv=[λ1λ2…λm],λ1≥λ2≥…≥λm;以所有模型中最长的区域谱向量为基准,对其他谱向量进行“末位补0”处理;修正后的区域谱向量为spv',其中,spv'=[λ1,λ2,…,λm,0…0];将每个三维cad模型的表示转化为向量集合a,其中,a={spv1',spv2',…,spvn'};

步骤2.3:将待检索模型与模型库中的每个模型进行粗检索:

步骤2.3.1:计算待检索模型p与模型库中某一模型q的粗差异度:

利用公式

ωij=dist(spv'(pi),spv'(qj))=||spv'(pi)-spv'(qj)||2(2)

计算模型p中的区域i与模型q中的区域j的差异度,其中spv'(pi)表示模型p中区域i的谱向量,spv'(qj)表示模型q中区域j的谱向量;

解算出模型p包含的所有区域与模型q包含的所有区域的最佳匹配对,使得区域对之间的差异度之和最小,从而得到模型p和模型q的粗差异度sd(p,q);

步骤2.3.2:重复步骤2.3.1,得到待检索模型p与模型库中每个模型的粗差异度,得到与待检索模型p粗差异度值最小的前n个模型;

步骤2.4:将待检索模型与步骤2.3得到的n个模型进行精检索:

步骤2.4.1:对于待检索模型与步骤2.3得到的n个模型,分别提取模型的面编码集合fcode,fcode={ftype,fcon,fra};其中ftype表示面的类型,取值范围为[1,5],表示平面、圆柱面、圆锥面、球面及其他;fcon表示面的凹凸性,取值范围为[1,4],表示为平面、凸面、凹面及其他;fra表示面的相对面积,由公式

计算,其中aft表示模型中第t个面的面积,表示模型中所有面的面积之和;

步骤2.4.2:计算待检索模型p与步骤2.3得到的n个模型中的某一模型q的面属性差异度:

模型p中第j个面和模型q中第k个面的属性差异度为:

其中表示模型p中第j个面的第a个属性,表示模型q中第k个面的第a个属性,a的取值范围为[1,3],分别代表面的类型ftype、面的凹凸性fcon和面的相对面积fra;

模型p的第j个面和模型q的第k个面的差异度为:

若模型p包含p个面,模型q包含q个面,则模型p和模型q的面属性差异度sf(p,q)为:

步骤2.4.3:利用公式

s(p,q)=ω1×sd(p,q)+ω2×sf(p,q)(7)

计算模型p和模型q的精差异度s(p,q),ω1和ω2为权值,ω1≥0,ω2≥0,ω1+ω2=1;

步骤2.5:根据精差异度s(p,q)从步骤2.3得到的n个模型中确定检索结果。

有益效果

本发明采用双层检索,第一层为“粗”检索,首先依据模型的边界将其分割为一组包含数量较少的、有工程意义的、由一些相互连接的面组成的区域特征集合;依据图谱理论对区域集合进行向量化表征,建立谱向量集合,将模型检索转化为完全二分图的最佳匹配问题,快速缩小相似模型的范围,选出与待检索模型最为相似的前n个模型。第二层为“精”检索,在第一层检索结果的基础上进行,提取检索出的相似模型的面属性编码集合,与待检索模型进行精确匹配。该方法兼顾模型检索的精度和效率,易于实施,适用于三维模型的快速检索。

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

附图说明

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

图1待检索模型p和模型库模型q;

图2赋权二分图;

图3三维cad模型检索实例。

具体实施方式

下面详细描述本发明的实施例,所述实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

本实施例中模型库包含340个三维cad模型,大部分来自工程网站下载,部分模型由课题组成员构建。参照图1,以待检索模型p和模型库模型q为例,cad软件设计环境为nx7.5软件,以visualstudio2010为开发工具。

本实施例中的基于图谱理论的三维cad模型双层检索方法,包括以下步骤:

步骤1:对于待检索模型以及模型库中的每个模型,根据三维cad模型的b-rep模型信息建立对应的属性邻接图g,g={v,e,a,d};其中v表示节点集合,且对于模型的每个面都有唯一的节点与之对应;e表示边集合,对于模型中相邻两个面都有唯一的连线与之对应;a表示模型的属性信息集合,包括面属性和边属性;d表示每个节点的度;根据属性邻接图中节点的凹凸性以及边的凹凸性,通过合并优化算法对模型进行分割,将模型分割成具有工程语义的局部区域集合。

本实施例中,根据三维cad模型信息分别建立模型p与模型q对应的属性邻接图gp和gq:其中gp={vp,ep,ap,dp},gq={vq,eq,aq,dq}。依据模型边界信息进行区域特征分割,分别将模型p和模型q划分为具有工程意义的局部区域集合。如图1所示,通过颜色深浅不同区分局部区域。

步骤2:通过以下步骤构建双层检索机制,对模型进行快速匹配与检索:

步骤2.1:采用图谱理论以向量形式描述每个模型属性邻接图的拓扑结构信息:依据公式

计算各区域的拉普拉斯矩阵l;其中u和v表示属性邻接图中的两个节点,d(u)和d(v)分别表示节点u和v的度,l(u,v)表示拉普拉斯矩阵l中的元素。

步骤2.2:对每个模型进行向量化表示:

计算模型各区域拉普拉斯矩阵l的特征值,并按照降序排列,得到模型分割后各区域的谱向量spv,其中spv=[λ1λ2…λm],λ1≥λ2≥…≥λm;由于如图1可知,模型p和模型q分割后的区域包含的面数量不同,故每个区域对应的属性邻接子图包含的节点数量不同,导致拉普拉斯矩阵的特征值个数也不同,为了方便计算,以所有模型中最长的区域谱向量为基准,对其他谱向量进行“末位补0”处理;修正后的区域谱向量为spv',其中,spv'=[λ1,λ2,…,λm,0…0];将每个三维cad模型的表示转化为向量集合a,其中,a={spv1',spv2',…,spvn'}。

步骤2.3:将待检索模型与模型库中的每个模型进行粗检索,即待检索模型p与模型库中的模型快速检索,缩小模型检索范围。

步骤2.3.1:计算待检索模型p与模型库中某一模型q的粗差异度,通过两个模型包含的区域进行逐一比较,利用下面公式将模型包含的所有区域差异度计算转化为赋权二分图的权值计算,其中ωij表示模型p中的区域i与模型q中的区域j的差异度。

利用公式

ωij=dist(spv'(pi),spv'(qj))=||spv'(pi)-spv'(qj)||2(2)

计算模型p中的区域i与模型q中的区域j的差异度,其中spv'(pi)表示模型p中区域i的谱向量,spv'(qj)表示模型q中区域j的谱向量。

解算出模型p包含的所有区域与模型q包含的所有区域的最佳匹配对,使得区域对之间的差异度之和最小,该问题可转化为赋权二分图的最优匹配问题,采用kuhn-munkres算法计算,从而得到模型p和模型q的粗差异度sd(p,q);

步骤2.3.2:重复步骤2.3.1,得到待检索模型p与模型库中每个模型的粗差异度,根据计算结果缩小检索空间,得到与待检索模型p粗差异度值最小的前5个模型。

步骤2.4:谱向量只考虑属性邻接图的拓扑性质,未考虑模型每个面的属性,为了提高检索的准确度,下面将待检索模型与步骤2.3得到的n个模型进行精检索:

步骤2.4.1:对于待检索模型与步骤2.3得到的n个模型,分别利用nx7.5软件提取模型的面编码集合fcode,fcode={ftype,fcon,fra};其中ftype表示面的类型,取值范围为[1,5],表示平面、圆柱面、圆锥面、球面及其他;fcon表示面的凹凸性,取值范围为[1,4],表示为平面、凸面、凹面及其他;fra表示面的相对面积,由公式

计算,其中aft表示模型中第t个面的面积,表示模型中所有面的面积之和。

步骤2.4.2:计算待检索模型p与步骤2.3得到的n个模型中的某一模型q的面属性差异度:

模型p中第j个面和模型q中第k个面的属性差异度为:

其中表示模型p中第j个面的第a个属性,表示模型q中第k个面的第a个属性,a的取值范围为[1,3],分别代表面的类型ftype、面的凹凸性fcon和面的相对面积fra;若待比较两个面的类型相同,的取值为0,反之为1;若待比较两个面的凹凸性相同,取值为0,反之为1;在相对面积比较时,还可以进一步设定阈值τ,当计算结果大于该阈值时,认为两个面相差太远,并不匹配,忽略不计。

模型p的第j个面和模型q的第k个面的差异度为:

若模型p包含p个面,模型q包含q个面,则模型p和模型q的面属性差异度sf(p,q)为:

步骤2.4.3:接下来可以利用公式

s(p,q)=ω1×sd(p,q)+ω2×sf(p,q)(7)

计算模型p和模型q的精差异度s(p,q),是赋权二分图匹配结果,ω1和ω2为权值,ω1≥0,ω2≥0,ω1+ω2=1;图3显示的是本实施例中三维模型的相似性检索结果,其中ω1=0.2,ω2=0.8。

步骤2.5:根据精差异度s(p,q)从步骤2.3得到的5个模型中确定检索结果。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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