用三维标记点直接进行三维模型变形的方法技术

技术编号:2947923 阅读:205 留言:0更新日期:2012-04-11 18:40
一种图像处理技术领域的用三维标记点直接进行三维模型变形的方法。步骤为:(1)归一化顶点数据,将原始顶点数据归一化至[-1,1]范围内,用一个边长为2的立方体来约束;(2)将屏幕上取得的点转化为世界坐标,将得到的屏幕Y坐标“求补”,再将当前的帧缓存读入内存,最后求得三维坐标点;(3)取点,保存三维标记点,同理,得到另外一个模型对应位置上的标记点;(4)用薄板样条插值算法进行弹性变形,所有的二维点均用三维点代替,直接获得新的坐标,此时,变形完成。本发明专利技术可以在模型上标记需要的三维特征点,直接进行模型变形,具有节省运算时间,提高运算精度,减少由于二维展开带来的重叠误差等多方面优点。

【技术实现步骤摘要】

本专利技术涉及一种图像处理
的方法,具体是一种。
技术介绍
图像作为一种十分重要的媒体和手段越来越受到人们的重视,图像已成为工程学、计算机科学、信息科学、统计学、物理学、化学、生物学、医学甚至社会科学等领域各学科之间学习和研究的对象。变形是计算机图形学中比较常见的方法,主要用于图像或图形的配准等用途。目前对二维图像的弹性变形得到了飞快的发展,包括光流、重采样、薄板样条、B样条等多种算法,在全局和局部变形上也有了很多分类,使得现在的变形比较细致、真实。但对于三维模型的变形,大多数是基于模型的柱面展开,得到二维图像,然后利用现有的算法,在二维图像上实现变形,最后还原得到变形后的三维模型。经对现有技术的文献检索发现,Volker Blanz等人在《IEEE transaction onPattern Recognition and Machine Intelligence》Vol.25,No.9,September2003,1063-1074(IEEE模式识别与机器智能,第25卷,第9期,2003年九月版,1063-1074页)上,采用光流的方法将展开的三维人脸坐标进行弹性配准。通过高维向量的计算,得到不同模型之间的强度变化。这样的方法对空间变化比较大的模型,光流算法的平滑性假设不能满足,计算结果对应不理想。检索中还发现,胡永利等在《计算机学报》2005年,第10期,91-99页上发表的“基于形变模型的三维人脸重建方法及其改进”一文中,同样是将三维模型展开,用重采样的方法得到对应标记点的变形,从而实现三维人脸模型的配准。这样的展开对于理想的柱面模型比较适用,但也不可避免地出现失真。若非理想柱面,则得到的二维图像会有重叠,再次还原时,模型的一部分信息必会丢失,效果不理想。同时,由于展开和还原需要大量的计算时间,使得计算效率并不简洁,在线性能大大降低。
技术实现思路
本专利技术的目的在于针对现有技术的不足,提出一种,使其不需要将三维模型展开成二维图像,再利用二维标记点变形后还原为柱面三维模型这些冗余步骤,而是可以在模型上标记需要的三维特征点,直接进行模型变形。实验证明,本专利技术具有节省运算时间,提高运算精度,减少由于二维展开带来的重叠误差等多方面优点。本专利技术是通过以下技术方案实现的采用基于改进的薄板样条(Thin-plateSpline)弹性插值算法,用同样特征和数目的三维标记点对模型每一个坐标进行计算,得到新的模型的对应三维坐标点;同时纹理或RGB信息保持不变,这样保证了原来模型的其它信息,不至于失真。本专利技术具体包括以下步骤(1)归一化顶点数据。这里涉及投影矩阵、模型矩阵、视口矩阵等。为了保持后面三维标记点的准确性和一致性,须将原始顶点数据归一化至范围内。这里可以用一个边长为2的立方体来约束;(2)将屏幕上取得的点转化为世界坐标。根据转化的一些要求,保存此时模型的视口矩阵、模型矩阵和投影矩阵(矩阵大小为4×4)。为了实现屏幕坐标和帧缓存中坐标的对应关系,将此时得到的屏幕Y坐标“求补”(即根据视口矩阵,求得根据左下角为初始位置的三维Y坐标)。再将当前的帧缓存读入内存(读入像素格式为深度分量)。最后根据此前得到的三个矩阵映射得到三维坐标点;(3)取点,保存三维标记点。类似地,可以得到另外一个模型对应位置上的标记点。标记点的特征和数目必须与要待变形的模型的标记点一致; (4)用薄板样条插值算法进行弹性变形。所有的二维点均用三维点代替,相应的距离函数、双调和函数、求取新的坐标点的函数均加以修改成三维坐标的变量,直接求取新的坐标,此时,变形完成。这里采用的是经过改进后的薄板样条算法,用来直接进行三维变形。本专利技术用三维标记点直接进行三维模型变形,相对于柱面展开成二维图像变形的方法,具有如下优点节省运算时间;提高运算精度;减少由于二维展开带来的重叠误差。附图说明图1为本专利技术方法框图具体实施方式如图1所示,实现,需要四个步骤1.归一化顶点数据此步骤是为下一步的屏幕取点转化为三维坐标做准备。对三维坐标系的x,y,z分量分别寻找绝对值的最大值,利用下面公式Xnew=Xori|X|max,Ynew=Yori|Y|max,Znew=Zori|Z|max]]>将顶点数据均限制在之间。这样,每一组坐标都归一化,与后面获得的深度坐标(系统输出在之间)对应,可以逆变换后直接用来作为世界坐标。2.将屏幕上取得的点转化为世界坐标这一步骤可以利用OpenGL中的逆变换来得到世界坐标(三维坐标)。为此,事先获得当前模型的视口矩阵、模型矩阵和投影矩阵(矩阵大小为4*4)。由于屏幕坐标是以左上角为原点,而帧缓存中的坐标是以左下角开始,为了实现屏幕坐标和帧缓存中坐标的对应关系,须将此时得到的屏幕Y坐标“求补”(即根据屏幕视口,利用“视口坐标-当前屏幕坐标Y分量-1”来求得逆变换所需要的Y坐标)。再将当前的帧缓存读入内存(读入像素格式为深度分量),可以获得对应位置的深度值。此深度值在范围内。最后根据此前得到的三个矩阵和当前帧缓存中的数据用逆变换映射得到三维坐标点。3.取点,保存三维标记点如图1右侧,类似地可以得到目标模型对应特征上的标记点。标记点的特征和数目必须与待变形的模型的标记点一致;4.用薄板样条插值算法进行弹性变形一般的弹性变形算法涉及以下三个方面1)在参考图像和待配准图像中选择控制点并且决定它们的对应关系;2)通过已知的坐标和控制点决定映射函数的类型和参数;3)用映射函数对待配准图像进行几何变换。这里,本专利技术选择既有全局变形,也有局部变形的薄板样条插值算法。该算法描述如下薄板样条是用于对分散点数据集插值得到曲面的工具,是弹性插值,它将插值问题模拟为一个薄金属板在点约束下的弯曲变形,用简练的代数式表示变形的能量。薄板样条是这样得到的。薄板样条的基函数为U(r)=r2logr2其中,r=x2+y2]]>可以看作是一维三次样条函数|x3|自然扩展到二维的结果。假设有一个二维点集,(x1,y1),(x2,y2),…,(xn,yn),称之为标志点,令Pi=(xi,yi),i=1,2,…,n,同时定义ri,j=|Pi-Pj|,为点Pi和点Pj的欧几里得距离。定义n×n矩阵 及n×3矩阵P=1x1y11x2y2.........1xnyn]]>L=KPPT0]]>在此0代表3×3的0矩阵,PT是P的转置。想使金属板在点(xi,yi)处高度为zi,因而构建行矢量V=(z1,z2,…,zi)和列矢量Y=(V000)T,维数为(n+3)×1。通过下式定义列矢量W=(w1,w2,…wn)和系数a1,ax,ayL-1Y=(W|a1axay)T根据以上定义得到要求的函数f(x,y)=a1+axx+ayy+Σi=1nwiU(Pi-(x,y))]]>为此,将薄板样条函数作如下改进所有的二维点均用三维点代替,相应的基函数、构建矩阵、求取新的坐标点的函数均加以修改成三维坐标的变量。这样,刚才通过三维取好的标记点,可以直接代入求取新的坐标。此时,变形完成。该方法同样适用于其它类型的径向基函数,如线形插值、高斯插值、多曲面插值等。利用直接的三维点进行插值,消除了因为二维坐标展开造成的数据失真,也大大节省了运算时间,是本文档来自技高网
...

【技术保护点】
一种用三维标记点直接进行三维模型变形的方法,其特征在于,包括以下步骤:(1)归一化顶点数据,涉及投影矩阵、模型矩阵、视口矩阵,为了保持后面三维标记点的准确性和一致性,将原始顶点数据归一化至[-1,1]范围内,用一个边长为2的立方体来 约束;(2)将屏幕上取得的点转化为世界坐标,保存此时模型的视口矩阵、模型矩阵和投影矩阵,矩阵大小为4×4,为了实现屏幕坐标和帧缓存中坐标的对应关系,将此时得到的屏幕Y坐标“求补”,再将当前的帧缓存读入内存,最后根据此前得到的三个矩阵 映射得到三维坐标点;(3)取点,保存三维标记点,同理,得到另外一个模型对应位置上的标记点;(4)用薄板样条插值算法进行弹性变形,所有的二维点均用三维点代替,相应的距离函数、双调和函数、求取新的坐标点的函数均修改成三维坐标的变 量,直接获得新的坐标,此时,变形完成。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈鲁杨杰杜春华
申请(专利权)人:上海交通大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1