一种基于压缩流形模式的网格模型特征编辑方法与流程

文档序号:17745187发布日期:2019-05-24 20:35阅读:161来源:国知局
一种基于压缩流形模式的网格模型特征编辑方法与流程

本发明涉及数字几何处理的技术领域,尤其是指一种基于压缩流形模式的网格模型特征编辑方法。



背景技术:

在当代,随着科技的高速发展,计算机领域也在日新月异的快速发展,随着硬件领域的突破,软件领域也快速发展。人们的生活得到了提高,在人们生活中也出现了越来越多的高科技产品,其中有大量的科技产品源自计算机图形学。从影视娱乐中的三维动画电影和极具真实感的游戏场景等各种高科技技术,虚拟实验,模拟场景分析数据等生产科研领域,应用计算机辅助几何设计来进行产品造型设计等,我们发现三维数字几何模型在越来越多的行业领域被广泛应用。人们对三维数字几何模型也越来越关注,在构建三维几何模型的过程中,人们发现通常会涉及到很多需要处理的数学几何问题,比如,对数据进行去噪处理(denoising)、对数据进行简化处理(simplification)、对数据参数化(parameterization)、网格模型的变形编辑(deformationorediting)、网格模型的分割(segmentation)、网格模型的形状分析及检索(shapeanalysisandretrieval)等问题。这些问题也就是数字几何处理研究处理的主要问题,它们组成了数字几何处理研究的主要内容。我们通过计算机来对一个三维物体进行表示,通常需要获得它的几何模型的表达,对一个几何物体可以通过数学上的样条函数或者隐式函数来表达。我们把构建三维模型作为计算机图形学的基础,是计算机图形学研究其他问题的前提。目前我们所了解的构建三维模型的方法有很多,可以采用nurbs(非均匀有理b-样条、bezier曲线曲面)方法进行计算机辅助设计(cad);也可以利用三维建模软件autodesk3dmaxs直接手动进行模型的构建;还可以通过深度相机对模型扫描点云,通过点云的采集完成模型的重建等。目前虽然有大量的三维模型构建的方法,但是使用相对繁琐复杂,并不适用于一般家庭用户用来构建三维模型。

直接构建三维模型相对来说难度较大,人们于是想到对现有的三维模型进行修改编辑获得符合要求的模型。这样操作会节约大量时间,提高三维模型构建生成的效率,提升了三维模型的重复利用率。人们希望对模型只需要简单的旋转拉伸的操作即可达到对三维模型编辑的效果。因此,如何保持原始模型的拓扑结构的同时,如何有效且直观地对3d模型进行网格编辑处理是数字几何处理中研究内容之一。

由于三维网格模型的广泛应用,人们利用现有的三维网格模型来产生出符合自己要求的三维网格模型,因此对三维网格模型的变形编辑有了一定要求。人们希望通过网格变形编辑获得质量较好的三维网格模型,同时降低对网格模型操作的复杂度,人们可以简单高效的对网格模型进行编辑处理。因此,评判网格编辑算法的标准一般来说有两点,第一是三维网格模型变形编辑后获得三维网格模型质量的好坏,第二是用户对三维网格模型进行网格变形编辑的过程中,所有操作的复杂程度。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提出了一种基于压缩流形模式的网格模型特征编辑方法,首次实现基于压缩流形模式构造网格模型的特征骨架模型,对网格模型进行特征编辑,且采用保持原网格模型的微分坐标,使得编辑后的网格模型更加真实。

为实现上述目的,本发明所提供的技术方案为:一种基于压缩流形模式的网格模型特征编辑方法,包括以下步骤:

1)获取三角网格模型的基本参数;

2)利用压缩流形模式对三角网格模型进行重构计算,获得三角网格模型的特征骨架模型;

3)根据用户交互操作,对三角网格模型的特征骨架模型进行变形编辑,通过计算得到变形编辑后的骨架模型;

4)对变形编辑后的骨架模型通过计算进行骨架模型平滑处理;

5)根据原网模型构造的特征骨架模型对变形编辑的特征骨架模型添加网格模型细节;

6)基于原网格模型的微分坐标对添加细节的网格模型进行修复,得到变形编辑后的网格模型。

在步骤1)中,三角网格模型的基本参数包括点的位置、点与点之间的连接关系及每个面所组成点的组合。

在步骤2)中,三角网格模型通过压缩流形模式重构特征骨架模型,通过计算一个具有n个顶点的原始网格模型m的压缩流形基的前m个特征向量来构造网格模型的特征骨架模型,公式如下:

式中,αx,αy,αz来表示原始网格模型m的压缩流形基的特征值。φ1,...,φn来表示原始网格模型m的压缩流形基的特征向量。分别表示根据m个特征值特征向量重构的网格模型的x、y、z坐标的值。构造网格的特征骨架模型,需要取前m个的特征向量,m小于n;其中,φ1,...,φm是m的前m个特征向量,那么ni={fx(vi),fy(vi),fz(vi)},公式表示顶点ni由顶点vi通过函数对于i=1,…,n;由m个特征向量构造出的网格模型s=sm,连通性与网格模型m相同,称该网格模型sm为原网格模型m的特征骨架模型。

在步骤3)中,用户选择希望变形的网格区域,即感兴趣区域roi,vroi表示该区域中的顶点集合,用户指定感兴趣区域所需的变换类型,能够是平移类型或旋转类型,然后,用户通过将某个点拖到目标位置来指示目标配置。

在步骤4)中,通过使用网格模型的前m个低频特征函数构造出最小化能量函数e对网格模型特征骨架模型进行平滑处理,公式如下:

式中,e为能量函数。aj是由重构而成,的特征值。为模型上的顶点。φj[i]是顶点vi上的第j个特征函数φj的值,φj为网格模型的前j个低频特征函数,为变形编辑后的网格模型特征骨架模型顶点。为了得到光滑的变形骨架模型,我们希望为每个找到一个平滑的近似每个顶点从而获得改进的变形骨架模型s*。函数其中a∈{x,y,z}是输入表面m上的函数m→r。

在步骤5)中,对变形的特征骨架模型添加网格模型细节,包括以下步骤:

5.1)创建原始特征骨架模型s时,对原始网格模型的顶点vi和根据原始网格模型构建的特征骨架模型s的顶点ni之间的差做了计算并存储,为给出的细节向量;

5.2)将细节向量添加到变形的特征骨架模型。

在步骤6)中,根据原网格模型的微分坐标,使得添加细节向量的特征骨架模型保持原网格模型的微分坐标,包括以下步骤:

6.1)计算原网格模型的微分坐标;

6.2)根据原始模型m的微分坐标和平滑变形后的特征骨架模型添加细节向量后的顶点坐标v,求解变形后保持原网格模型的顶点坐标v',得到编辑后的网格模型。

本发明与现有技术相比,具有如下优点与有益效果;

1、本发明首次实现基于压缩流形模式构造网格模型的特征骨架模型,网格模型的特征骨架模型保持了原始网格模轮廓特征,实现了更好的选择模型局部。将局部性较好的压缩流形模式应用到三维网格模型的变形编辑。研究和改进三角网格模型网格编辑中网格细节的恢复,以设计更高效、更自然的网格模型网格编辑效果。

2、找出现在三角网格模型网格编辑算法中影响网格编辑变形效果、计算量和编辑效率的关键部分。研究压缩流形模式构建三角网格模型的特征骨架模型,对三角网格模型进行网格编辑,对编辑过程中如何对模型进行变形而不影响细节,进行深入的研究。

3、在构造网格模型特征骨架模型,使用不同数量的特征向量进行变形会引起不同尺度的变化,仅由前几个特征向量创建的特征骨架模型会导致全局级的形状变化,为了捕获局部变化,需要更多的特征向量。研究特征向量的选择,以构造出满足网格编辑要求的更好的特征骨架模型。

4、网格编辑时对感兴趣区域进行平移和旋转,导致在感兴趣区域边界处存在不连续现象,研究对特征骨架模型变形后如何对边界进行更好的平滑处理。

5、由于只使用了少量特征向量构造模型的特征骨架模型,变形后的特征骨架模型缺少原始网格模型的细节,研究如何将原模型的细节添加到根据原始网格模型构造的特征骨架模型上,得到编辑后的网格模型。

6、本发明首次在恢复细节过程中,采用保持原网格模型的微分坐标,使得编辑后的网格模型更加真实。

7、本发明方法在网格编辑中具有广泛的使用空间操作简单、适应性强。

附图说明

图1为本发明逻辑流程示意图。

图2为本发明网格模型连续结构图。

图3为选定编辑区域变形示意图。

图4为特征骨架模型变形示意图。

图5为特征骨架模型变形平滑示意图。

具体实施方式

下面结合具体实施例对本发明作进一步说明。

如图1和图2所示,本实施例所提供的基于压缩流形模式的网格模型特征编辑方法,其具体情况如下:

第一步,构建网格模型的特征骨架模型

压缩流形模式特征函数为原始网格模型m上定义的平方可积函数形成了一个基。类似于曲面上函数的傅里叶谐波,具有较低特征值的压缩流形模式特征函数对应于低频模式,而具有较高特征值的压缩流形模式特征函数对应于高频模式描述输入流形m的细节。输入是一个近似于隐藏表面m的三角形网格。在这种情况下,我们需要从这个网格计算出的离散形式的压缩流形模式。网格的压缩流形模式本身和它的特征值已经被证明能够收敛到隐藏流形的流形,因为网格更好地逼近了流形。由于更高的特征函数具有更高的频率并因此捕获更小的细节,所以我们可以截断特征函数的数量(即仅使用少量的特征向量)来重构表面以获得不同程度的细节。

给定一个具有n个顶点的曲面网格,也用m表示,我们计算m的压缩流形基的特征向量,用φ1,...,φn来表示。构造网格的特征骨架模型,我们只需要取前m个的特征向量(m远小于n)。通过重构这给了我们一个更高层次的表面捕捉其粗糙特征的抽象。具体地说,令n={n1,n2,…,nn}是仅使用前m个特征向量φ1,...,φm从m的顶点集合v={v1,v2,…,vn}重构的点的集合。其中φ1,...,φm是m的前m个特征向量。

那么ni={fx(vi),fx(vi),fx(vi)}对于i=1,…,n。由m个特征向量构造出的网格模型s=sm,其顶点为ni,连通性与网格模型m相同。我们称该网格模型sm为原网格模型m的特征骨架模型。

最后,由于更高的特征函数具有更高的频率并因此捕获更小的细节,所以我们可以截断特征函数的数量(即仅使用最少的坐标权重)来重构表面以获得不同程度的细节。

对于网格模型如何构造网格模型的特征骨架模型,对特征向量个数的选择比较重要。一般不同的特征向量会捕捉不同尺度的细节。因此,使用不同数量的特征向量进行变形会引起不同尺度的变化。

一般而言,仅由最前几个特征向量创建的特征骨架模型会导致网格模型整体的形状变化。为了捕捉局部变化,我们需要更多的特征向量。具体来说,如果感兴趣区域r很小,那么我们需要更多的特征向量来构建骨架模型,这样在这个骨架模型中r被合理地重构,并且相应的坐标权重的变化足以使r变形。如果我们选择的特征向量太少,耳朵的特征骨架模型大致塌陷一点,根本无法表现耳朵。由于对于特征骨架模型计算变形,所以不能用这样的骨架模型来描述耳朵的变形。使用更多的特征向量,我们可以捕捉骨骼中的耳朵,并进一步变形。

另一方面,如果感兴趣的区域很大,那么通常需要在很大的范围内进行改变。如果我们现在选择了太多的特征向量,在步骤2中最小化能量函数试图保留特征骨架模型的局部细节(因为有更多的术语,即具有大的j的aj,描述它们)。粗略地说,较低的特征向量的权重的优化被大量的较高的特征向量所淹没。因此,在步骤2中返回的特征骨架模型的变形趋向于在尝试保留其他地方的局部细节时的几个点上有一些戏剧性的变化。因此,在大范围的情况下,我们需要选择少量的特征向量来构建特征骨架模型,从而强调全局变形的权重。

总之,应根据感兴趣区域r的大小来选择用于重建特征骨架模型的特征向量的数目。

第二步,猜测变形后的网格模型

首先,用户选择他希望变形的网格区域。我们称之为感兴趣区域roi,vroi表示该区域中的顶点集合。接下来,用户指定感兴趣区域所需的变换类型,其可以是平移类型或旋转类型。然后,用户通过简单地将某个点(例如v属于vroi)拖到目标位置来指示目标配置。

从v和的位置结合的变换类型,如果期望的变换是平移类型,则我们的算法计算平移向量或者旋转轴p和旋转矩阵r,如果期望的变换是旋转类型,那么我们使用以下简单的过程来计算特征骨架模型s的粗糙的目标配置对于所有的点vi不属于vr,对应点pi的目标位置在特征骨架模型简单地是对于每个点vi属于vr,如果变换的类型是平移,则目标位置是如果变换类型是旋转,那么目标位置是

换句话说,我们只是剪切感兴趣的区域,并将其应用于用户指示的目标变换,而其余的形状保持不变。这样对目标配置的初步猜测当然不令人满意。事实上,变形并不是连续的(沿着影响区域r的边界,变形存在显著的、不连续的变化)。单数,我们稍后会看到,在第二步中,我们的算法采用了这个初始的目标配置,并产生了一个更好的,平滑弯曲的特征骨架模型。以图3为例:为了弯曲龙的身体,我们在龙的后半部分指定一个旋转。然后,我们将这个旋转应用于特征骨架模型中的整个感兴趣区域,获得变形后的网格模型。

注意平移型和旋转型运动只是在步骤2中产生最终变形指定的运动方式。最终的变形不一定是刚性的。

第三步,网格模型的特征骨架模型变形

对于特征骨架模型s,我们具有猜测变形后的目标模型。在这个步骤中,我们希望从猜测变形后的目标模型到计算改进的目标变形特征骨架模型s*。在下一节描述的步骤3中,我们将向s*添加细节以获得输入表面m的变形表面m*

图2说明了连续的结构。

是网格模型构造特征骨架模型变形后猜测目标骨架模型中第i个顶点vi的位置。现在考虑猜测目标骨架模型的坐标函数注意,每个函数其中a∈{x,y,z}是输入表面m上的函数m→r。通过旋转拉伸变化的骨架模型通常不符合要求。特别地,通过切割影响区域并简单地平移和旋转该部分,在影响区域的边界处存在不连续性。换句话说,整个剪辑没有平滑的过渡。这意味着坐标函数在切割过程中不平滑。为了得到光滑的变形骨架模型,我们希望为每个找到一个平滑的近似每个顶点从而获得改进的变形骨架模型s*

为此,注意到由于m的特征函数构成了m上平方可积函数族的基础,每个fa可以写成所有特征函数φis的线性组合,此外,低特征值的特征函数类似于低频模式,而高特征值的特征函数对应于高频模式。由于我们的目标是获得fa的平滑重构,所以我们要忽略高频模式。因此,我们发现只使用前m个低频特征函数φ1,…,φm。其中我们希望找到最小化能量函数的权重其中φj[i]是顶点vi上的第j个特征函数φj的值:

直观地说,猜测变形后的目标模型的坐标中的不连续性要求高频特征函数来重构它,并且仅使用低频模式会产生更平滑的这引起更好的变形骨架模型s*。参见图4,在步骤2之后从新坐标权重重建的骨架模型显示从感兴趣区域到其余部分的平滑过渡。

变形后的特征骨架模型的坐标中的不连续性要求高频特征函数来重构它,并且仅使用低频模式会产生更平滑的这引起更好的变形骨架模型s*。参见图5,从新坐标权重重建的骨架模型显示从感兴趣区域到其余部分的平滑过渡。

对能量函数e进行最小化处理。方程(2)中的能量函数中有3m个变量。为了最小化e,我们计算其关于ak的梯度

其中是猜测目标骨架模型的坐标函数。现在,我们得到所有ak的偏导数为零。这导致线性方程组的形式如下:φa*=b,其中φ是m×m矩阵,φi,j=<φi·φj>2,a*是一个m×3矩阵,和b也是一个m×3矩阵,其中第i行为使用a*作为坐标权重,我们重建新的变形特征骨架模型s*

第四步,恢复网格模型的细节

我们现在有变形平滑后的特征骨架模型s*。由于我们只使用前几个特征向量构造原始网格模型的特征骨架模型并对它进行变形,所以这个特征骨架模型缺少原始网格模型的细节特征。我们需要将细节通过计算添加到特征骨架模型s*上,获得变形的网格m*。为了跟踪网格模型的形状细节,当创建原始特征骨架模型s时,我们对原始网格模型的顶点vi和根据原始网格模型构建的特征骨架模型s的顶点ni之间的差做了计算并存储。我们称之为由为给出的细节向量。

第五步,基于微分坐标恢复网格模型细节

当网格模型添加时,网格模型的部分被拉伸,导致模型变形,可以将变形后的网格模型,保持原网格模型的微分坐标恢复得到变形后的网格模型。

根据laplacian矩阵,通过转换矩阵,可以得到如下方程:

lv'=δ

方程中l为原始网格模型的顶点坐标的laplacian矩阵,v’为变形后的顶点坐标,δ为顶点做坐标的微分坐标。

根据原始模型m的微分坐标和平滑变形后的特征骨架模型添加后的顶点坐标v,求解变形后保持原网格模型的顶点坐标v'。通过观察该转换矩阵,发现其为奇异的,即矩阵的秩小于n(顶点的个数),为n-k,其中k是原始模型m中相连通的部分的数量。

为了使整个线性系统有解,得到最后变形的顶点坐标v',假设m是连通的,即k为1,我们需要至少一个顶点的笛卡尔坐标来确定空间位置。而这些顶点坐标在方程中作为约束条件使得线性系统有解,在空间上,作为约束点,控制着整个网格模型的形变。令已知约束点的集合为c,即有附加约束为:

vj=cj,j∈c

记c={1,2,...,m},即存在m个控制点,可以得到如下线性方程组:

得到新的转换矩阵后,对约束顶点的索引值,在等式右边相应处添加常数项即可。这样,整个线性系统处于列满秩,通过最小二乘原理进行求解,得到最后的结果。

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。根据最小二乘原理,控制点上的能量变动实际上均匀扩散到了整个网格,最终得到保持原网格模型微分坐标的变形模型。

用最优化式子表示:

我们记加上已知m个约束点信息后的l矩阵为l',右边的δ也相应扩为δ',那么公式lv'=δ就变为:

l'v'=δ'

l'行列为(m+n)×n,l'行列为n×3,δ'的行列则为(m+n)×3,运用最小二乘法思想,方程两边同时左乘l'的转置矩阵(l')t

(((l')t)l')v'=((l')t)δ'

随着大型稀疏矩阵的求解速度的大大加快,整个变形添加网格模型细节过程效率也将提高,最终得到变形编辑后的网格模型。

以上所述实施例只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。

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