法律状态公告日
法律状态信息
法律状态
2020-07-17
专利权的转移 IPC(主分类):G06T17/00 登记生效日:20200630 变更前: 变更后: 申请日:20121222
专利申请权、专利权的转移
2015-09-09
授权
授权
2013-05-29
实质审查的生效 IPC(主分类):G06T17/00 申请日:20121222
实质审查的生效
2013-04-24
公开
公开
【技术领域】
本发明涉及三维模型处理领域,特别涉及一种三维模型特征提取方法和系统,以及一种三维模型检索方法和系统。
【背景技术】
如今,三维模型的应用的非常广泛,工业产品设计、虚拟现实、虚拟人、三维游戏、教育、影视动画等都广泛使用三维模型。
为了便于进行三维模型的数字化存储、三维模型的匹配检索等处理,需要提取三维模型的特征。传统的方法提取三维模型的轮廓特征,而轮廓特征相对比较简单,无法得到模型的总体形状特征,而且同一三维模型在不同的缩放比例或旋转角度状态下,所提取到的轮廓特征有可能是不一样的,即提取的轮廓特征会受到三维模型的缩放和旋转的影响。
【发明内容】
基于此,有必要提供一种提取的特征不受三维模型的缩放和旋转影响的三维模型特征提取方法和系统。
一种三维模型特征提取方法,包括以下步骤:
对三维模型进行体素化处理,生成体素模型;
获取体素模型的重心;
计算体素模型中每个体素到重心的距离,获取计算得到的距离中的最大距离;
生成以重心为球心、以最大距离为半径的球体,将球体用等距离的预设数量个同心球面划分为多个空间区域,所述同心球面的球心为所述重心;
计算各空间区域中体素的数量,获取各空间区域中体素数量的最大值;
根据各空间区域中体素的数量以及各空间区域中体素数量的最大值计算体素模型的体素密度分布特征。
在其中一个实施例中,所述对三维模型进行体素化处理,生成体素模型的步骤包括:
获取三维模型的网格模型;
对网格模型进行平移变换,使得平移变换后坐标系原点位于网格模型内部;
获取网格模型的所有顶点的x坐标值中的最大x坐标值和最小x坐标值、y坐标值中的最大y坐标值和最小y坐标值、z坐标值中的最大z坐标值和最小z坐标值;
生成以第一点和第二点为对角线的包围盒,所述第一点的x坐标为最大x坐标值、y坐标为最大y坐标值、z坐标为最大z坐标值,所述第二点的组成的x坐标为最小x坐标值、y坐标为最小y坐标值、z坐标为最小z坐标值;
将生成的包围盒均匀切割成预设大小的体素;
根据网格模型的网格向量获取网格模型内部的体素,并由所述网格模型内部的体素组成体素模型。
在其中一个实施例中,根据各空间区域中体素的数量以及各空间区域中体素数量的最大值计算体素模型的体素密度分布特征的步骤包括:
根据以下公式计算各空间区域中体素的相对密度,得到体素密度分布特征的相对密度向量(r1,...,rN):
>
其中,ri为划分的空间区域中第i个空间区域的体素的相对密度,Si为第i个空间区域中体素的数量,Smax为划分的空间区域的体素数量的最大值,N为划分的空间区域的数量;
根据以下公式计算各空间区域的体素在极坐标方向上的一阶数值差分,得到体素密度分布特征的一阶数值差分向量(dri,...,frN):
>
其中,dri为划分的空间区域中第i个空间区域的体素在极坐标方向上的一阶数值差分,ri为上述计算得到的第i个空间区域的体素的相对密度,N为划分的空间区域的数量;
获取体素密度分布特征为:(r1,...,rN;dri,...,drN),其中,r1,...,rN分别为上述计算得到的第1,…,N个空间区域的体素的相对密度,dri,...,drN分别为上述计算得到的第1,…,N个空间区域的体素在极坐标方向上的一阶数值差分。
一种三维模型特征提取系统,包括:
体素化模块,用于对三维模型进行体素化处理,生成体素模型;
重心获取模块,用于获取体素模型的重心;
体素距离计算模块,用于计算体素模型中每个体素到重心的距离,获取计算得到的距离中的最大距离;
区域划分模块,用于生成以重心为球心、以最大距离为半径的球体,将球体用等距离的预设数量个同心球面划分为多个空间区域,所述同心球面的球心为所述重心;
体素数量获取模块,用于计算各空间区域中体素的数量,获取各空间区域中体素数量的最大值;
分布特征计算模块,用于根据各空间区域中体素的数量以及各空间区域中体素数量的最大值计算体素模型的体素密度分布特征。
在其中一个实施例中,所述体素化模块包括:
网格模型获取单元,用于获取三维模型的网格模型;
平移变换单元,用于对网格模型进行平移变换,使得平移变换后坐标系原点位于网格模型内部;
坐标极值获取单元,用于获取网格模型的所有顶点的x坐标值中的最大x坐标值和最小x坐标值、y坐标值中的最大y坐标值和最小y坐标值、z坐标值中的最大z坐标值和最小z坐标值;
包围盒生成单元,用于生成以第一点和第二点为对角线的包围盒,所述第一点的x坐标为最大x坐标值、y坐标为最大y坐标值、z坐标为最大z坐标值,所述第二点的组成的x坐标为最小x坐标值、y坐标为最小y坐标值、z坐标为最小z坐标值;
体素切割单元,用于将生成的包围盒均匀切割成预设大小的体素;
体素模型生成单元,用于根据网格模型的网格向量获取网格模型内部的体素,并由所述网格模型内部的体素组成体素模型。
在其中一个实施例中,所述分布特征计算模块包括:
相对密度计算单元,用于根据以下公式计算各空间区域中体素的相对密度,得到体素密度分布特征的相对密度向量(r1,...,rN):
>
其中,ri为划分的空间区域中第i个空间区域的体素的相对密度,Si为第i个空间区域中体素的数量,Smax为划分的空间区域的体素数量的最大值,N为划分的空间区域的数量;
数值差分计算单元,用于根据以下公式计算各空间区域的体素在极坐标方向上的一阶数值差分,得到体素密度分布特征的一阶数值差分向量(dri,...,drN):
>
其中,dri为划分的空间区域中第i个空间区域的体素在极坐标方向上的一阶数值差分,ri为上述计算得到的第i个空间区域的体素的相对密度,N为划分的空间区域的数量;
分布特征获取单元,用于获取体素密度分布特征为:(r1,...,rN;dri,...,drN),其中,r1,...,rN分别为上述计算得到的第1,…,N个空间区域的体素的相对密度,dri,...,drN分别为上述计算得到的第1,…,N个空间区域的体素在极坐标方向上的一阶数值差分。
上述三维模型特征提取方法和系统,统计三维模型的体素模型中体素在不同空间区域的分布情况,得到体素模型的体素密度分布特征,由于三维模型的缩放和旋转不影响三维模型的体素在空间区域中的分布情况,因此,上述三维模型特征提取方法和系统提取的特征的精度不受三维模型的缩放和旋转的影响。另外,两个形状相似的三维模型的体素模型中体素在空间区域中的分布也是相似的,因此,上述方法提取的特征能准确反映三维模型的总体形状。而且,上述方法和系统提取的特征的数据量小、便于进行存储和计算处理。
一种三维模型检索方法,包括以下步骤:
提取待检索模型的体素密度分布特征;
计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离;
获取三维模型体素密度分布特征库中与待检索模型的体素密度分布特征距离最小的体素密度分布特征对应的三维模型;
其中,所述提取待检索模型的体素密度分布特征的步骤按照上述任一实施例中的三维模型特征提取方法提取待检索模型的体素密度分布特征。
在其中一个实施例中,在提取待检索模型的体素密度分布特征的步骤之前,所述方法还包括:
按照所述提取待检索模型的体素密度分布特征的方法提取三维模型库中三维模型的体素密度分布特征,将提取的三维模型的体素密度分布特征组成三维模型体素密度分布特征库。
在其中一个实施例中,计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离的步骤包括:
分别计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离;
将计算得到的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离采用高斯模型进行归一化;
计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离为归一化后的相对密度向量的欧氏距离与一阶数值差分向量的欧氏距离的加权值,相对密度向量的欧氏距离的权值系数与一阶数值差分向量的欧氏距离的权值系统之和等于一。
一种三维模型检索系统,包括:
体素密度分布特征提取模块,用于提取待检索模型的体素密度分布特征,所述体素密度分布特征提取模块包括权利要求7至9任一所述的三维模型特征提取系统中的模块;
分布特征距离计算模块,用于计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离;
匹配模型获取模块,用于获取三维模型体素密度分布特征库中与待检索模型的体素密度分布特征距离最小的体素密度分布特征对应的三维模型。
在其中一个实施例中,所述体素密度分布特征提取模块还用于提取三维模型库中三维模型的体素密度分布特征;
所述系统还包括体素密度分布特征库生成模块,用于将提取的三维模型的体素密度分布特征组成三维模型体素密度分布特征库。
在其中一个实施例中,所述分布特征距离计算模块包括:
欧氏距离计算单元,用于分别计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离;
归一化单元,用于将计算得到的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离采用高斯模型进行归一化;
分布特征距离计算单元,用于计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离为归一化后的相对密度向量的欧氏距离与一阶数值差分向量的欧氏距离的加权值,相对密度向量的欧氏距离的权值系数与一阶数值差分向量的欧氏距离的权值系统之和等于一。
上述三维模型检索方法和系统,根据提取三维模型的体素密度分布特征来进行匹配检索,由于体素密度分布特征能准确反映三维模型的总体形状且数据量小,因此,上述方法和系统能快速准确地检索到与待检索三维模型最匹配的三维模型,提取检索的速度的准确度。
【附图说明】
图1为一个实施例中的三维模型特征提取方法的流程示意图;
图2为一个实施例中图1的步骤S10的流程示意图;
图3为将体素模型划分空间区域的示意图;
图4为一个实施例中的三维模型检索方法的流程示意图;
图5为一个实施例中图4的步骤S80的流程示意示意图;
图6为一个实施例中的三维模型特征提取系统的结构示意图;
图7为一个实施例中体素化模块的结构示意图;
图8为一个实施例中分布特征计算模块的结构示意图;
图9为一个实施例中的三维模型检索系统的结构示意图;
图10为一个实施例中分布特征距离计算模块的结构示意图。
【具体实施方式】
如图1所示,在一个实施例中,一种三维模型特征提取方法,包括以下步骤:
步骤S10,对三维模型进行体素化处理,生成体素模型。
如图2所示,在一个实施例中,步骤S10包括:
步骤S101,获取三维模型的网格模型。
具体的,可按照预设的网格模型生成方法生成三维模型的网络模型,在此不作赘述。
步骤S102,对网格模型进行平移变换,使得平移变换后坐标系原点位于网格模型内部。
优选的,可将网络模型的中心平移到坐标系原点。
步骤S103,获取网格模型的所有顶点的x坐标值中的最大x坐标值和最小x坐标值、y坐标值中的最大y坐标值和最小y坐标值、z坐标值中的最大z坐标值和最小z坐标值。
步骤S104,生成以第一点和第二点为对角线的包围盒,所述第一点的x坐标为最大x坐标值、y坐标为最大y坐标值、z坐标为最大z坐标值,所述第二点的组成的x坐标为最小x坐标值、y坐标为最小y坐标值、z坐标为最小z坐标值。
步骤S105,将生成的包围盒均匀切割成预设大小的体素。
步骤S106,根据网格模型的网格向量获取网格模型内部的体素,并由网格模型内部的体素组成体素模型。
步骤S20,获取体素模型的重心。
具体的,可计算体素模型中所有体素的x坐标值的平均值、y坐标值的平均值、z坐标值的平均值,坐标(x坐标值的平均值,y坐标值的平均值,z坐标值的平均值)对应的点即为体素模型的重心。
步骤S30,计算体素模型中每个体素到重心的距离,获取计算得到的距离中的最大距离。
步骤S40,生成以重心为球心、以最大距离为半径的球体,将球体用等距离的预设数量个同心球面划分为多个空间区域,同心球面的球心为体素模型的重心。
图3为将体素模型划分空间区域的示意图。如图3所示,将球体的一条半径等分为N段,分别以球体的球心为球心、以球心到等分点的距离为半径作球面,可作出N-1个球面,这N-1个球面将球体划分为N个空间区域。其中,N为预设值。
步骤S50,计算各空间区域中体素的数量,获取各空间区域中体素数量的最大值。
步骤S60,根据各空间区域中体素的数量以及各空间区域中体素数量的最大值计算体素模型的体素密度分布特征。
在一个实施例中,步骤S60包括以下步骤:
根据以下公式计算各空间区域中体素的相对密度,得到体素密度分布特征的相对密度向量(r1,...,rN):
>
其中,ri为划分的空间区域中第i个空间区域的体素的相对密度,Si为第i个空间区域中体素的数量,Smax为划分的空间区域的体素数量的最大值,N为划分的空间区域的数量;
进一步的,根据以下公式计算各空间区域的体素在极坐标方向上的一阶数值差分,得到体素密度分布特征的一阶数值差分向量(dri,...,drN):
>
其中,dri为划分的空间区域中第i个空间区域的体素在极坐标方向上的一阶数值差分,ri为上述计算得到的第i个空间区域的体素的相对密度,N为划分的空间区域的数量;
进一步的,获取体素密度分布特征为:(r1,...,rN;dri,...,drN),其中,r1,...,rN分别为上述计算得到的第1,…,N个空间区域的体素的相对密度,dri,...,drN分别为上述计算得到的第1,…,N个空间区域的体素在极坐标方向上的一阶数值差分。
上述三维模型特征提取方法,统计三维模型的体素模型中体素在不同空间区域的分布情况,得到体素模型的体素密度分布特征,由于三维模型的缩放和旋转不影响三维模型的体素在空间区域中的分布情况,因此,上述三维模型特征提取方法提取的特征的精度不受三维模型的缩放和旋转的影响。另外,两个形状相似的三维模型的体素模型中体素在空间区域中的分布也是相似的,因此,上述方法提取的特征能准确反映三维模型的总体形状。而且,上述方法提取的特征的数据量小、便于进行存储和计算处理。
如图4所示,在一个实施例中,一种三维模型检索方法,包括以下步骤:
步骤S70,提取待检索模型的体素密度分布特征。
具体的,可按照上述任一实施例中的三维模型特征提取方法提取待检索模型的体素密度分布特征。
步骤S80,计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离。
如图5所示,在一个实施例中,步骤S80包括以下步骤:
步骤S801,分别计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离。
步骤S802,将计算得到的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离采用高斯模型进行归一化;
步骤S803,计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离为归一化后的相对密度向量的欧氏距离与一阶数值差分向量的欧氏距离的加权值,相对密度向量的欧氏距离的权值系数与一阶数值差分向量的欧氏距离的权值系统之和等于一。
例如,两个体素密度分布特征的归一化后的相对密度向量的欧氏距离为dr,归一化后的一阶数值差分向量的欧氏距离为ddr,则可计算两个体素密度分布特征的距离为a*dr+b*ddr,其中,a和b为预设值,a与b的和为1。
步骤S90,获取三维模型体素密度分布特征库中与待检索模型的体素密度分布特征距离最小的体素密度分布特征对应的三维模型。
步骤S90获取的三维模型即为与待检索模型最匹配的三维模型。
在一个实施例中,在步骤S70之前,上述三维模型检索方法还包括步骤:按照上述提取待检索模型的体素密度分布特征的方法提取三维模型库中三维模型的体素密度分布特征,将提取的三维模型的体素密度分布特征组成三维模型体素密度分布特征库。
上述三维模型检索方法,根据提取三维模型的体素密度分布特征来进行匹配检索,由于体素密度分布特征能准确反映三维模型的总体形状且数据量小,因此,上述方法能快速准确地检索到与待检索三维模型最匹配的三维模型,提取检索的速度的准确度。
如图6所示,在一个实施例中,一种三维模型特征提取系统,包括体素化模块10、重心获取模块20、体素距离计算模块30、区域划分模块40、体素数量获取模块50和分布特征计算模块60,其中:
体素化模块10用于对三维模型进行体素化处理,生成体素模型。
如图7所示,在一个实施例中,体素化模块10包括网格模型获取单元101、平移变换单元102、坐标极值获取单元103、包围盒生成单元104、体素切割单元105和体素模型生成单元106,其中:
网格模型获取单元101用于获取三维模型的网格模型。
具体的,网格模型获取单元101可按照预设的网格模型生成方法生成三维模型的网络模型,在此不作赘述。
平移变换单元102用于对网格模型进行平移变换,使得平移变换后坐标系原点位于网格模型内部。
优选的,网格模型获取单元101可将网络模型的中心平移到坐标系原点。
坐标极值获取单元103用于获取网格模型的所有顶点的x坐标值中的最大x坐标值和最小x坐标值、y坐标值中的最大y坐标值和最小y坐标值、z坐标值中的最大z坐标值和最小z坐标值。
包围盒生成单元104用于生成以第一点和第二点为对角线的包围盒,所述第一点的x坐标为最大x坐标值、y坐标为最大y坐标值、z坐标为最大z坐标值,所述第二点的组成的x坐标为最小x坐标值、y坐标为最小y坐标值、z坐标为最小z坐标值。
体素切割单元105用于将生成的包围盒均匀切割成预设大小的体素。
体素模型生成单元106用于根据网格模型的网格向量获取网格模型内部的体素,并由所述网格模型内部的体素组成体素模型。
重心获取模块20用于获取体素模型的重心。
具体的,重心获取模块20可计算体素模型中所有体素的x坐标值的平均值、y坐标值的平均值、z坐标值的平均值,坐标(x坐标值的平均值,y坐标值的平均值,z坐标值的平均值)对应的点即为体素模型的重心。
体素距离计算模块30用于计算体素模型中每个体素到重心的距离,获取计算得到的距离中的最大距离。
区域划分模块40用于生成以重心为球心、以最大距离为半径的球体,将球体用等距离的预设数量个同心球面划分为多个空间区域,同心球面的球心为体素模型的重心。
区域划分模块40可将球体的一条半径等分为N段,分别以球体的球心为球心、以球心到等分点的距离为半径作球面,可作出N-1个球面,这N-1个球面将球体划分为N个空间区域。其中,N为预设值。
体素数量获取模块50用于计算各空间区域中体素的数量,获取各空间区域中体素数量的最大值。
分布特征计算模块60用于根据各空间区域中体素的数量以及各空间区域中体素数量的最大值计算体素模型的体素密度分布特征。
如图8所示,在一个实施例中,分布特征计算模块60包括相对密度计算单元601、数值差分计算单元602和分布特征获取单元603,其中:
相对密度计算单元601用于根据以下公式计算各空间区域中体素的相对密度,得到体素密度分布特征的相对密度向量(r1,...,rN):
>
其中,ri为划分的空间区域中第i个空间区域的体素的相对密度,Si为第i个空间区域中体素的数量,Smax为划分的空间区域的体素数量的最大值,N为划分的空间区域的数量。
数值差分计算单元602用于根据以下公式计算各空间区域的体素在极坐标方向上的一阶数值差分,得到体素密度分布特征的一阶数值差分向量(dri,...,drN):
>
其中,dri为划分的空间区域中第i个空间区域的体素在极坐标方向上的一阶数值差分,ri为上述计算得到的第i个空间区域的体素的相对密度,N为划分的空间区域的数量;
分布特征获取单元603用于获取体素密度分布特征为:(r1,...,rN;dri,...,drN),其中,r1,...,rN分别为上述计算得到的第1,…,N个空间区域的体素的相对密度,dri,...,drN分别为上述计算得到的第1,…,N个空间区域的体素在极坐标方向上的一阶数值差分。
上述三维模型特征提取系统,统计三维模型的体素模型中体素在不同空间区域的分布情况,得到体素模型的体素密度分布特征,由于三维模型的缩放和旋转不影响三维模型的体素在空间区域中的分布情况,因此,上述三维模型特征提取系统提取的特征的精度不受三维模型的缩放和旋转的影响。另外,两个形状相似的三维模型的体素模型中体素在空间区域中的分布也是相似的,因此,上述系统提取的特征能准确反映三维模型的总体形状。而且,上述系统提取的特征的数据量小、便于进行存储和计算处理。
如图9所示,在一个实施例中,一种三维模型检索系统,包括体素密度分布特征提取模块70、分布特征距离计算模块80和匹配模型获取模块90,其中:
体素密度分布特征提取模块70用于提取待检索模型的体素密度分布特征。具体的,体素密度分布特征提取模块70包括上述任一实施例中的三维模型特征提取系统中的模块。
分布特征距离计算模块80用于计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离。
如图10所示,在一个实施例中,分布特征距离计算模块80包括欧氏距离计算单元801、归一化单元802和分布特征距离计算单元803,其中:
欧氏距离计算单元801用于分别计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离;
归一化单元802用于将计算得到的相对密度向量的欧氏距离和一阶数值差分向量的欧氏距离采用高斯模型进行归一化;
分布特征距离计算单元803用于计算待检索模型的体素密度分布特征与三维模型体素密度分布特征库中的体素密度分布特征的距离为归一化后的相对密度向量的欧氏距离与一阶数值差分向量的欧氏距离的加权值,相对密度向量的欧氏距离的权值系数与一阶数值差分向量的欧氏距离的权值系统之和等于一。
例如,两个体素密度分布特征的归一化后的相对密度向量的欧氏距离为dr,归一化后的一阶数值差分向量的欧氏距离为ddr,则分布特征距离计算单元803可计算两个体素密度分布特征的距离为a*dr+b*ddr,其中,a和b为预设值,a与b的和为1。
匹配模型获取模块90用于获取三维模型体素密度分布特征库中与待检索模型的体素密度分布特征距离最小的体素密度分布特征对应的三维模型。
匹配模型获取模块90获取的三维模型即为与待检索模型最匹配的三维模型。
在一个实施例中,体素密度分布特征提取模块70还用于提取三维模型库中三维模型的体素密度分布特征;上述三维模型检索系统还包括体素密度分布特征库生成模块(图中未示出),用于将提取的三维模型的体素密度分布特征组成三维模型体素密度分布特征库。
上述三维模型检索系统,根据提取三维模型的体素密度分布特征来进行匹配检索,由于体素密度分布特征能准确反映三维模型的总体形状且数据量小,因此,上述系统能快速准确地检索到与待检索三维模型最匹配的三维模型,提取检索的速度的准确度。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
机译: 三维模型检索方法,三维模型检索装置,三维模型检索程序和三维模型检索系统
机译: 三维模型特征提取方法及三维模型注释系统
机译: 三维模型检索系统和三维模型检索方法