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

文档序号:6555213阅读:532来源:国知局
专利名称:用三维标记点直接进行三维模型变形的方法
技术领域
本发明涉及一种图像处理技术领域的方法,具体是一种用三维标记点直接进行三维模型变形的方法。
背景技术
图像作为一种十分重要的媒体和手段越来越受到人们的重视,图像已成为工程学、计算机科学、信息科学、统计学、物理学、化学、生物学、医学甚至社会科学等领域各学科之间学习和研究的对象。变形是计算机图形学中比较常见的方法,主要用于图像或图形的配准等用途。目前对二维图像的弹性变形得到了飞快的发展,包括光流、重采样、薄板样条、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)归一化顶点数据。这里涉及投影矩阵、模型矩阵、视口矩阵等。为了保持后面三维标记点的准确性和一致性,须将原始顶点数据归一化至[-1,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]]>将顶点数据均限制在[-1,1]之间。这样,每一组坐标都归一化,与后面获得的深度坐标(系统输出在[-1,1]之间)对应,可以逆变换后直接用来作为世界坐标。
2.将屏幕上取得的点转化为世界坐标这一步骤可以利用OpenGL中的逆变换来得到世界坐标(三维坐标)。为此,事先获得当前模型的视口矩阵、模型矩阵和投影矩阵(矩阵大小为4*4)。由于屏幕坐标是以左上角为原点,而帧缓存中的坐标是以左下角开始,为了实现屏幕坐标和帧缓存中坐标的对应关系,须将此时得到的屏幕Y坐标“求补”(即根据屏幕视口,利用“视口坐标-当前屏幕坐标Y分量-1”来求得逆变换所需要的Y坐标)。再将当前的帧缓存读入内存(读入像素格式为深度分量),可以获得对应位置的深度值。
此深度值在[-1,1]范围内。最后根据此前得到的三个矩阵和当前帧缓存中的数据用逆变换映射得到三维坐标点。
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))]]>为此,将薄板样条函数作如下改进所有的二维点均用三维点代替,相应的基函数、构建矩阵、求取新的坐标点的函数均加以修改成三维坐标的变量。这样,刚才通过三维取好的标记点,可以直接代入求取新的坐标。此时,变形完成。
该方法同样适用于其它类型的径向基函数,如线形插值、高斯插值、多曲面插值等。利用直接的三维点进行插值,消除了因为二维坐标展开造成的数据失真,也大大节省了运算时间,是比较理想的变形方法。
使用本发明可以实现三维模型的配准或表面变换等数据处理。以配准为例,若有100个三维人脸模型,需要实现点对点对应得配准,则可以用本方明中的方法实现。首先对这100个模型求平均值,获得平均人脸模型。在此平均模型上标好60个三维标记点(如眼睛、眉毛、嘴唇等),作为所有模型变形的目标标记点。再将每一个人脸模型同样取对应的60个标记点,这两组标记点作为改进后薄板样条的P、V矢量数据。最后用薄板样条算法求得需配准的人脸模型的新的三维坐标。如此对100个模型均做此类变形,可以获得以标记点为对应的配准模型。可以发现,这样获得的三维配准模型,基本形状没有变化,仅仅将模型按标记点的方向变化,得到的是效果比较理想的点对点对应的模型。
权利要求
1.一种用三维标记点直接进行三维模型变形的方法,其特征在于,包括以下步骤(1)归一化顶点数据,涉及投影矩阵、模型矩阵、视口矩阵,为了保持后面三维标记点的准确性和一致性,将原始顶点数据归一化至[-1,1]范围内,用一个边长为2的立方体来约束;(2)将屏幕上取得的点转化为世界坐标,保存此时模型的视口矩阵、模型矩阵和投影矩阵,矩阵大小为4×4,为了实现屏幕坐标和帧缓存中坐标的对应关系,将此时得到的屏幕Y坐标“求补”,再将当前的帧缓存读入内存,最后根据此前得到的三个矩阵映射得到三维坐标点;(3)取点,保存三维标记点,同理,得到另外一个模型对应位置上的标记点;(4)用薄板样条插值算法进行弹性变形,所有的二维点均用三维点代替,相应的距离函数、双调和函数、求取新的坐标点的函数均修改成三维坐标的变量,直接获得新的坐标,此时,变形完成。
2.根据权利要求1所述的用三维标记点直接进行三维模型变形的方法,其特征是,所述的屏幕Y坐标“求补”,是指根据视口矩阵,求得根据左下角为初始位置的三维Y坐标。
3.根据权利要求1所述的用三维标记点直接进行三维模型变形的方法,其特征是,所述的将帧缓存读入内存,读入像素格式为深度分量。
4.根据权利要求1所述的用三维标记点直接进行三维模型变形的方法,其特征是,所述的标记点,其特征和数目必须与待变形的模型的标记点一致。
全文摘要
一种图像处理技术领域的用三维标记点直接进行三维模型变形的方法。步骤为(1)归一化顶点数据,将原始顶点数据归一化至[-1,1]范围内,用一个边长为2的立方体来约束;(2)将屏幕上取得的点转化为世界坐标,将得到的屏幕Y坐标“求补”,再将当前的帧缓存读入内存,最后求得三维坐标点;(3)取点,保存三维标记点,同理,得到另外一个模型对应位置上的标记点;(4)用薄板样条插值算法进行弹性变形,所有的二维点均用三维点代替,直接获得新的坐标,此时,变形完成。本发明可以在模型上标记需要的三维特征点,直接进行模型变形,具有节省运算时间,提高运算精度,减少由于二维展开带来的重叠误差等多方面优点。
文档编号G06T17/00GK1804904SQ20061002345
公开日2006年7月19日 申请日期2006年1月19日 优先权日2006年1月19日
发明者陈鲁, 杨杰, 杜春华 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1