一种获取物体几何质心的方法与流程

文档序号:12126511阅读:833来源:国知局
一种获取物体几何质心的方法与流程

本发明涉及三维模型测量领域,尤其涉及一种获取物体几何质心的方法。



背景技术:

质心,又称质量中心,其在物理中有明确的定义:对于一个欧氏空间中的三维流形,其质心的坐标可以通过求解其内部所有点坐标的加权平均得到,质心能够使得惯性矩达到最小。

然而,当物体的外形呈现非凸时,根据物理定义所得到的质心可能会落在该非凸物体的外部。在数字几何处理的很多应用场合中,要求质心必须落在三维流形的内部,并且保证质心对噪声和变形不敏感。显然,基于上述物理定义所得到的质心并不能满足此要求。



技术实现要素:

本发明所要解决的技术问题是针对上述现有提供一种获取物体几何质心的方法。该方法能够保证所得到的质心处于三维流形的内部,并且既可以不受物体外形影响,又可以避免遭受噪声和变形的不利影响。

本发明解决上述技术问题所采用的技术方案为:一种获取物体几何质心的方法,用于三维流形所形成的物体,其特征在于,包括如下步骤1至步骤6:

步骤1,计算三维流形的内部距离;其中,三维流形的内部距离的计算过程包括如下步骤1-1至步骤1-3:

步骤1-1,将所述物体对应的三维流形模型离散为多个四面体,以形成四面体网格;其中,所述四面体网格的获取过程包括如下步骤1-11和步骤1-12:

步骤1-11,采用TetGen软件对所述物体对应的三维流形模型进行离散化处理,以生成高质量的四面体网格;

步骤1-12,对四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子分别进行离散化处理;其中,四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子的离散化处理包括如下步骤1-121至步骤1-124:

步骤1-121,假定在四面体网格内部的标量函数f线性变化,并设定标量函数f为该四面体网格上的分片线性函数;

步骤1-122,根据四面体网络中每个四面体的分片线性函数,计算所述每个四面体的分片线性函数的梯度算子;其中,四面体h的分片线性函数的梯度算子标记为

其中,Vh表示四面体h的体积,Sj为四面体h中与该四面体h的顶点j相对的三角形的面积,fj为四面体h的顶点j上的分片线性函数值,nj为四面体h中与该四面体h的顶点j相对的三角形上的单位法向量;

步骤1-123,构建四面体网格内部的分段线性向量场,并设置四面体的顶点处的散度算子;其中,假设所构建的分段线性向量场g以及四面体h的顶点j处的散度算子分别设置如下:

其中,m表示四面体网格中的四面体的数目;Vj表示四面体j的体积;

步骤1-124,获取四面体网格中拉普拉斯-贝尔特拉米算子的离散化数值;其中:

Δ=V-1L;

其中,Δ表示拉普拉斯-贝尔特拉米算子,V为对角矩阵,Vj表示四面体j的体积,L为稀疏对称矩阵;i和j分别表示四面体中的两个相邻顶点,ωji表示权重,表示顶点j与顶点i所对边ek的长度,为边ek所处的两个平面之间所形成二面角的角度;

步骤1-2,在三维流形中设定给定的起点为s,并以s为单位热源,计算四面体网格经过时刻t之后的热量分布;其中,四面体网格中的热量分布计算过程包括如下步骤1-21和步骤1-22:

步骤1-21,设定μ(t,x,y)为热传导方程的解;其中:

其中,t为四面体所经过的时间,x和y为四面体网格空间中的两个任意点;k表示所述四面体空间的维度;

步骤1-22,计算热量场的梯度,并对所得热量场的梯度进行归一化后,得到归一化热量场梯度,以利用所得到的归一化热量场梯度表示三维流形内部距离场的梯度;

步骤1-3,利用LDLT分解法求解泊松方程,以得到三维流形内部的距离场;利用LDLT分解法求解泊松方程过程包括步骤1-31和步骤1-32:

步骤1-31,设定所要求解的泊松方程的矩阵形式如下:

采用LDLT分解法对泊松方程矩阵进行分解:

L=PQΛQTPT

其中,P为置换矩阵,Q为稀疏的下三角矩阵,V为对角矩阵;PT为置换矩阵P的转置矩阵,QT为下三角矩阵Q的转置矩阵;G是热量场的梯度向量场;表示热量场的梯度算子;

步骤1-32,将所分解的矩阵代入矩阵形式的泊松方程,以得到三维流形内部的距离场:

d表示三维流形内部的距离场;

步骤2,构建针对三维流形的能量函数模型;其中,所构建的能量函数模型设定如下:

其中,E(y)为能量函数,E(y)恒为正数且有界,ρ(x)为三维流形中点x处的密度,dg(x,y)为三维流形中任意点x与三维流形中任意点y的内部距离;

步骤3,采用梯度下降法对所述能量函数进行最小化处理,以得到三维流形相应的梯度函数;其中,三维流形能量函数的梯度函数计算公式如下:

其中,ρ(x)为三维流形中的点x处的密度,dg(x,y)为三维流形中任意点x与三维流形中任意点y的内部距离,E(y)为能量函数;

步骤4,根据所得三维流形的能量函数的梯度函数,得到三维流形中点x到点y的最短路径;其中,三维流形中点x到点y的最短路径记为d(x,y)min,其方向为该最短路径d(x,y)min的结束方向,长度为1;

步骤5,针对三维流形中的点y,随机选取N个不同的初值{yr,r=1,2,…,N}以分别对能量函数E(y)进行优化,并获取到最优能量函数值;其中,最优能量函数值标记为E(y)opt

步骤6,根据所获取的最优能量函数值E(y)opt,以该最优能量函数值E(y)opt所对应的点yv作为物体的几何质心。

进一步地,在所述步骤1-2中,所述四面体所经过的时间t=l2,l为四面体网格中所有四面体的平均边长。

与现有技术相比,本发明的优点在于:

首先,在利用本发明方法获取物体几何质心时,由于本发明通过对三维流形的模型进行离散化处理,以得到由多个四面体所形成的四面体网格,记录了本发明的方法在不同四面体数量的网格模型上计算单源内部距离场的时间代价;利用LDLT加速方法获取三维流形内部距离场的过程仅需消耗非常小的时间代价,从而实现利用本发明方法能够高效地计算物体所对应三维流形内部距离;

其次,在对四面体网格的热量分布情况计算中,通过对四面体网格的热量场梯度归一化处理,使得针对四面体网格所经过时间t的取值对三维流形的内部距离场的求解几乎没有影响;另外,获取物体几何质心的计算代价小;

再次,对噪声的鲁棒性好。在针对三维流形模型处于有噪声和光滑的情况下,利用本发明方法所计算出来的质心在位置上仅差1.7×10-3,这说明本发明中获取物体几何质心的方法对噪声不敏感;

最后,由于本发明方法所求出的三维流形的内部距离也是三维流形内部的测地距离,即本发明将三维流形的欧式距离替换为物体的内部距离,也就是三流形内部的真正测地距离,而三维流形与物体姿势变化无关,使得几何质心继承了这种性质,即使在姿势变形较大的情况下,三维流形的质心的位置也基本一致。

附图说明

图1为本发明实施例中获取物体几何质心的方法的流程示意图;

图2为本发明实施例中四面体ABCD的示意图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

如图1所示,本实施例中获取物体几何质心的方法,用于三维流形所形成的物体,该获取物体几何质心的方法包括如下步骤1至步骤6:

步骤1,计算三维流形的内部距离;由于每一个三维流形都可以看成是由多个四面体所形成,所以每一个三维流形又可以看做是一个由多个四面体所形成的四面体网格,一个物体对应着一个三维流形模型;其中,在本实施例中,三维流形的内部距离的计算过程包括如下步骤1-1至步骤1-3:

步骤1-1,将所述物体对应的三维流形模型离散为多个四面体,以形成四面体网格;其中,该四面体网格的获取过程包括如下步骤1-11和步骤1-12:

步骤1-11,采用TetGen软件对所述物体对应的三维流形模型进行离散化处理,以生成高质量的四面体网格;TetGen是一款能够生成四面体网格的软件,TetGen软件属于本领域技术人员的常用工具,此处不做过多赘述;

步骤1-12,对四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子分别进行离散化处理;其中,四面体的梯度算子、散度算子以及拉普拉斯-贝尔特拉米算子的离散化处理包括如下步骤1-121至步骤1-124:

步骤1-121,假定在四面体网格内部的标量函数f线性变化,并设定标量函数f为该四面体网格上的分片线性函数;例如,四面体h的分片线性函数则标记为fh

步骤1-122,根据四面体网络中每个四面体的分片线性函数,计算所述每个四面体的分片线性函数的梯度算子;其中,四面体h的分片线性函数的梯度算子标记为

其中,Vh表示四面体h的体积,Sj为四面体h中与该四面体h的顶点j相对的三角形的面积,fj为四面体h的顶点j上的分片线性函数值,nj为四面体h中与该四面体h的顶点j相对的三角形上的单位法向量;假设四面体网络中的四面体个数为H,可知h=1,2,…,H;

步骤1-123,构建四面体网格内部的分段线性向量场,并设置四面体的顶点处的散度算子;其中,假设所构建的分段线性向量场g以及四面体h的顶点j处的散度算子分别设置如下:

其中,m表示四面体网格中的四面体的数目;Vj表示四面体j的体积;Vj实质上就是四面体上顶点j所控制的四面体体积;

步骤1-124,获取四面体网格中拉普拉斯-贝尔特拉米算子的离散化数值;其中:

Δ=V-1L;

其中,Δ表示拉普拉斯-贝尔特拉米算子,V为对角矩阵,Vj表示四面体j的体积,L为稀疏对称矩阵;i和j分别表示四面体中的两个相邻顶点,ωji表示权重,表示顶点j与顶点i所对边ek的长度,为边ek所处的两个平面之间所形成二面角的角度;具体地,参见图2中所示:在单独的一个四面体ABCD中,两个相邻的顶点A与顶点B所对边即为边CD,边CD的长度边CD所处的两个平面分别是面ABD和面ABC,边CD所处的两个平面ABD、ABC之间所形成的二面角即为∠EGF;

步骤1-2,在三维流形中设定给定的起点为s,并以s为单位热源,计算四面体网格经过时刻t之后的热量分布;其中,四面体网格中的热量分布计算过程包括如下步骤1-21和步骤1-22:

步骤1-21,设定μ(t,x,y)为热传导方程的解;其中:

其中,t为四面体所经过的时间,x和y为四面体网格空间中的两个任意点;k表示所述四面体空间的维度;t=l2,l为四面体网格中所有四面体的平均边长;该步骤1-21中的公式描述了在时间t比较小的情况下,热量和距离之间存在一种换算关系,即热量场的等值线也是距离场的等值线。其中,热量场的梯度方向与距离场的梯度方向基本一致,两者反向但长度不等;

步骤1-22,计算热量场的梯度,并对所得热量场的梯度进行归一化后,得到归一化热量场梯度,以利用所得到的归一化热量场梯度表示三维流形内部距离场的梯度;

步骤1-3,利用LDLT分解法求解泊松方程,以得到三维流形内部的距离场;利用LDLT分解法求解泊松方程过程包括步骤1-31和1-32:

步骤1-31,设定所要求解的泊松方程的矩阵形式如下:

采用LDLT分解法对泊松方程矩阵进行分解:

L=PQΛQTPT

其中,P为置换矩阵,Q为稀疏的下三角矩阵,V为对角矩阵;PT为置换矩阵P的转置矩阵,QT为下三角矩阵Q的转置矩阵;G是热量场的梯度向量场;表示热量场的梯度算子;

步骤1-32,将所分解的矩阵代入矩阵形式的泊松方程,以得到三维流形内部的距离场:

d表示三维流形内部的距离场;

步骤2,构建针对三维流形的能量函数模型;其中,所构建的能量函数模型设定如下:

其中,E(y)为能量函数,E(y)恒为正数且有界,ρ(x)为三维流形中点x处的密度,dg(x,y)为三维流形中任意点x与三维流形中任意点y的内部距离;

步骤3,采用梯度下降法对能量函数进行最小化处理,以得到三维流形相应的梯度函数;其中,三维流形能量函数的梯度函数计算公式如下:

其中,ρ(x)为三维流形中的点x处的密度,dg(x,y)为三维流形中任意点x与三维流形中任意点y的内部距离,E(y)为能量函数;

步骤4,根据所得三维流形的能量函数的梯度函数,得到三维流形中点x到点y的最短路径;其中,三维流形中点x到点y的最短路径记为d(x,y)min,其方向为该最短路径d(x,y)min的结束方向,长度为1;

步骤5,针对三维流形中的点y,随机选取N个不同的初值{yr,r=1,2,…,N}以分别对能量函数E(y)进行优化,并获取到最优能量函数值;其中,最优能量函数值标记为E(y)opt

具体地,最优能量函数值E(y)opt计算获取过程进一步说明如下:

首先,令并根据得到在时所对应求解得到的y=yv;然后,将所得y=yv代入到能量函数模型中,从而得到此时对应的能量函数值E(yv);最后,把所得能量函数值E(yv)作为该步骤5中的最优能量函数值,即E(y)opt=E(yv);

步骤6,根据所获取的最优能量函数值E(y)opt,以该最优能量函数值E(y)opt所对应的点yv作为物体的几何质心。

在利用本实施例中的方法获取物体几何质心时,由于本发明通过对三维流形的模型进行离散化处理,以得到由多个四面体所形成的四面体网格,记录了本实施例中的方法在不同四面体数量的网格模型上计算单源内部距离场的时间代价;利用LDLT加速方法获取三维流形内部距离场的过程仅需消耗非常小的时间代价,从而实现利用本发明方法能够高效地计算物体所对应三维流形内部距离;

其次,在对四面体网格的热量分布情况计算中,通过对四面体网格的热量场梯度归一化处理,使得针对四面体网格所经过时间t的取值对三维流形的内部距离场的求解几乎没有影响;另外,获取物体几何质心的计算代价小;

再次,对噪声的鲁棒性好。在针对三维流形模型处于有噪声和光滑的情况下,利用本发明方法所计算出来的质心在位置上仅差1.7×10-3,这说明本实施例中获取物体几何质心的方法对噪声不敏感;

最后,由于所求出的三维流形的内部距离也是三维流形内部的测地距离,即本发明实施例将三维流形的欧式距离替换为物体的内部距离,也就是三流形内部的真正测地距离,而三维流形与物体姿势变化无关,使得几何质心继承了这种性质,即使在姿势变形较大的情况下,三维流形的质心的位置也基本一致。

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