一种面向基于图像头发建模的自适应浮动切线匹配方法与流程

文档序号:11232018阅读:480来源:国知局
一种面向基于图像头发建模的自适应浮动切线匹配方法与流程

本发明属于虚拟现实技术和计算机图形学领域,特别是基于图像头发建模结果的仿真领域,具体的说是对基于图像头发建模结果进行物理仿真,生成动态头发运动序列,包括生成三维静态头发模型、自适应的浮动切线匹配以及动态头发仿真,主要应用于数字游戏、三维影视动画及化妆广告等领域。



背景技术:

头发建模和仿真是计算机图形学领域重要的研究内容之一。当前,一种头发建模方式是基于物理的方式,但由于在物理方程中存在大量的参数,因此很难产生期望的发型;另一种头发建模方式是基于图像的方式。典型的基于图像的头发建模方式都是通过方向场重建头发模型,此类方法能够生成内部分布相对真实的头发模型,但头发模型外部发丝与头发照片差异较大。大部分基于图像的头发建模结果通过三维点序列表示,这种表示方式不能应用于动态头发仿真。在传统的超级螺旋线头发模型中,头发以超级螺旋线形式表示,能够适用于动态头发仿真。

一、基于图像的头发建模

近期,一些研究者从多张照片重建三维头发模型,主要包括(wei,y.,ofek,e.,quan,l.andshum,h.2005.modelinghairfrommultipleviews.acmtransactionsongraphics(tog),24,3,816-820)(paris,s.,chang,w.,kozhushnyan,o.i.,jarosz,w.,matusik,w.,zwicker,m.anddurand,f.2008.hairphotobooth:geometricandphotometricacquisitionofrealhairstyles.acmtransactionsongraphics(tog),27,3,30)(luo,l.,li,h.andrusinkiewicz,s.2013.structure-awarehaircapture.acmtransactionsongraphics(tog),32,4,76)。他们基于三角化规则生成一个方向场,之后从方向场中追踪生成头发模型。这类方法由于没有考虑头发的外部结构,重建的发型不能很好的保留头发外部结构,也不能保证发根及发丝的分布符合真实。

二、基于物理的头发仿真

早期的头发仿真方法(ken-ichianjyo,yoshiakiusami,andtsuneyakurihara.1992.asimplemethodforextractingthenaturalbeautyofhair.acmsiggraphcomputergraphics,26,111-120)没有考虑发丝之间的交互碰撞等影响。许多近期的研究成果(florencebertails,basileaudoly,marie-paulecani,bernardquerleux,fredericleroy,andjean-lucleveque.2006.super-helicesforpredictingthedynamicofnaturalhair.acmtransactionsongraphics(tog),vol.25.acm,1180-1187)(andrewselle,michaellentine,andronaldfedkiw.2008.amassspringmodelforhairsimulation.acmtransactionsongraphics(tog),27,64.)尝试捕捉真实世界中的头发特性。当前chai等人(mengleichai,changxizheng,andkunzhou.2016.adaptiveskinningforinteractivehair-solidsimulation.ieeetransactionsonvisualizationandcomputergraphics.)提出了一种自适应的使用基于发丝的头发蒙皮模型仿真头发和固体之间的特性。当前头发仿真面临的主要困难是使用简单的头发几何准确的初始化头发模型。本发明利用自适应的浮动切线匹配算法将静态头发建模结果转化为基于物理的头发模型,从而应用于动态头发仿真,具有转换速度快、仿真逼真度高等优势。



技术实现要素:

本发明要解决的技术问题为:克服现有技术的不足,提供一种面向基于图像头发建模的自适应浮动切线匹配方法,该方法既能生成内外真实的三维静态头发模型,又能快速将静态头发建模结果转换为基于物理的头发模型,用于动态头发仿真,具有较高的实用价值。

本发明解决上述技术问题所采用的技术方案是:面向基于图像头发建模的自适应浮动切线匹配方法,分为3个阶段:

第1阶段,生成三维静态头发模型,该阶段首先从多视点采集的静态头发图像出发,生成带方向的三维发丝段,之后生成混合方向场,并构建三维静态头发模型,该阶段分为2个步骤:

(1)从带方向的三维发丝段出发,构建混合方向场,该混合方向场由表面结构方向场、内部方向场、内部距离场和生长方向场共四个方向场组成;

(2)依据混合方向场,构建发丝生长规则,生成三维静态头发模型;

第2阶段,基于第1阶段的结果,使用自适应的浮动切线匹配方法,生成基于物理的头发模型,该阶段分为3个步骤:

(1)从第1阶段生成的静态头发模型中,提取简化的头发模型,使用自适应算法求得每根发丝对应的发丝段数目n;

(2)根据发丝段数目n,将简化头发模型中的每根发丝平均分为n段,得到n+1个断点,经释放断点操作后得到n段连续的螺旋弧;

(3)对每一段螺旋弧求解其对应的物理参数,从而得到基于物理的头发模型;

第3阶段,基于第2阶段的结果构建拉格朗日运动方程,进行动态头发仿真,生成动态头发运动序列。

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

(1)本发明在生成三维静态头发模型中,使用了混合方向场,通过发丝生长规则,使得生成的三维头发模型不仅发根和内部发丝分布符合物理真实,而且使得发型外部发丝分布与采集的头发图像更加相似。

(2)本发明在将几何模型转化为基于物理的头发模型中,使用自适应的浮动切线匹配方法,能够快速、准确转换几何模型,生成基于物理的头发模型。

(3)本发明在动态头发仿真中,从静态头发模型的平衡状态出发,构建拉格朗日动态运动方程,不仅考虑重力、空气阻力,还考虑发丝间的碰撞摩擦力,生成逼真的动态头发运动序列。

总之,本发明既能生成真实的三维静态头发模型,又能将该头发模型转换为基于物理的头发模型,同时还能应用于动态头发仿真,生成逼真的动态头发运动序列。

附图说明

图1是本发明一种面向基于图像头发建模的自适应浮动切线匹配方法流程图;

图2是本发明生成的三维静态头发模型结果图,其中,图2(a)为长直发型建模结果,图2(b)长波浪发型建模结果;

图3是本发明针对不同发型的动态头发运动序列效果图,其中,图3(a)为长直头发摇头运行序列,图3(b)为长波浪发型风吹运行序列。

具体实施方式

下面结合附图与实例对本发明作进一步详细描述:

如图1所示,本发明的具体步骤如下(虚线框内步骤为已有技术):

1、从多视点采集的静态头发图像出发生成混合方向场。

首先利用已有技术从采集的静态头发图像出发生成带方向的三维发丝段头发模型。之后,从该三维发丝段头发模型出发,生成追踪头发生长的混合方向场,步骤如下:

第一步,由三维发丝段头发模型数据求解头发区域边界盒,并将其离散化为三维规则化网格,网格分辨率设置为2mm;

第二步,从三维发丝段头发模型出发,根据现有方法生成保留头发局部结构的发丝带,在进行方向一致性求解后将带方向的发丝段映射到规则化网格上,构建表面结构方向场sd,有发丝带通过的网格点处的方向由发丝带上该点的切线方向确定,其余未知点通过求解热扩散方程求得;

第三步,将三维发丝段头发模型映射到规则化网格上,求解内部方向场v,发丝或发根处网格点的方向由发丝处的方向或发根方向确定,其余网格点的方向通过求解带约束的热扩散方程确定,已知方向的网格点作为边界约束,v=vvt,v是网格点处的方向;

第四步,内部距离场i是标量场,在三维网格体中,头模型包含的网格点处值为0,发丝经过的网格点处值为1,网格边界处内部距离场的值设置为此网格点到上最近点的欧氏距离加上1,其余点的方向通过热扩散方程求得;生长方向场og由每一根发丝上相邻两点的位置决定;

第五步,定义生成的混合方向场为:h=αssd+αvv+αi▽i+αoog,其中:αs,αv,αi和αo为分别对应于每一个场的动态权重。

2、构建三维静态头发模型

使用保留结构的混合方向场h,从均匀分布的发根出发,构建发丝生长规则,逐点生长发丝并生成三维静态头发模型,其步骤如下:

第一步,对每根发丝中新生成的点pi,其位置由公式pi=pi-1+δ(h(pi-1))决定,其中pi-1是发丝上点pi的前序点,δ是生长步长(取值1mm),h(pi-1)是混合方向场h中点pi-1处的值;

第二步,新生长的点pi重复生长,直到满足下列终止条件之一:(i)新生长的点pi超出了头发体i(pi)>ibound,其中ibound取值为1.1;(ii)生长的发丝长度达到了设定的最大值;

第三步,按上述单根发丝生长规则,对所有发根点追踪生成发丝,构建三维头发模型。所得到的三维头发模型如图2所示,其中图2(a)为长直发型建模,图2(b)为长波浪发型建模结果。

3、求解发丝段数目

首先利用已有技术从生成的三维头发模型中提取简化的头发几何模型,之后对简化的头发模型中的每根发丝求解发丝段数目,该方法步骤为:

第一步,根据发丝长度l判断发丝段数目n,若发丝长度l小于lmin,则n=nmin,若发丝长度l大于lmax,则n=nmax,在本方法中,各参数取值分别为:nmax=25,nmin=3,lmax=80cm,lmin=5cm;

第二步,除去第一步中情况外,按照自适应求解发丝段数目算法求解发丝段数目,首先求解近似的发丝段数目n为:接下来,将发丝分割为n段相等的长度,并计算在断点处的切线值为:{t0,t1,...,tn},之后,对每一对相邻的断点处的切线值(ti,ti+1),判断其内积值〈ti,ti+1>,若<ti,ti+1>≤0,则n=n+1,若<ti,ti+1>>0.95,则n=n-1,如此重复直至所有相邻断点均处理完毕,最后求得发丝段数目n。

4、释放断点

释放断点得到共螺旋弧的n条螺旋弧,该方法步骤如下:

第一步,根据求解得到的发丝段数目n将发丝切割为等长的n段,得到n+1个断点{p0,p1,...,pn}以及断点处对应的切线{t0,t1,...,tn};

第二步,释放断点{p0,p1,...,pn}到新位置处使得新断点与断点处的切线{t0,t1,...,tn}满足共螺旋弧条件:其中<a,b>表示三维空间中矢量a和b之间的内积;

第三步,建立n个矩阵其中(v0,i,v1,i)是正交于矢量ti+1-ti的矢量平面的轴线,从初始断点开始,其他断点满足并且

第四步,受约束的最小化问题可以描述为:满足并且使用lu分解解决此二次问题得到从而得到满足共螺旋弧的n条螺旋弧。

5、求解物理参数

得到共螺旋弧的n条螺旋弧后,分别求得每段螺旋弧对应的物理参数,该方法具体步骤为:

第一步,在自适应框架中描述一段螺旋弧r和其切线t,自适应框架通过初始点p0处切线t0和darboux矢量ω描述;

第二步,定义frenet框架{t,n,b},并满足其中在螺旋弧r中,k是曲率,τ是挠率,darboux矢量ω描述为:ω=τt+kb,其满足t′=ω×t,n′=ω×n,b′=ω×b;

第三步,定义一段螺旋弧r及其上位置s处切线t为:其中p0和t0是螺旋弧上起点处的位置和

切线,ω是darboux矢量ω的数值,是规则化的矢量τ是挠率,并满足曲率k可以通过得到;

第四步,通过插值算法求解螺旋弧r对应的物理参数,对所有发丝段得到每段螺旋弧对应的物理参数后,即可得到一个基于物理的头发模型。

6、动态头发仿真

对基于物理的头发模型进行动态头发仿真,包括以下子步骤:

第一步,根据求解物理参数步骤中得到的广义坐标q(离散的曲率和挠率),定义拉格朗日运动方程为:其中jj,q是雅可比矩阵,qj,q是第q段螺旋弧上的第j个曲率,t是动能,v是势能,d是损耗能,f是总的外力;

第二步,定义动态方程中总的外部力f包含重力、粘滞力和摩擦接触力,f=ρsg+fc-νr',其中ρs是螺旋弧单位长度的线密度,r'是r对时间t的导数,g是重力加速度,fc是摩擦接触力,ν是对空气的粘滞系数;

第三步,将各项代入拉格朗日运动方程,得到广义坐标q的显示运动方程为:其中是3n×3n的稠密的对称矩阵,刚度矩阵是对角阵,分别填充螺旋弧的弯曲度和扭曲度,δt是时间步长,μ是发丝间摩擦系数,是曲率对时间的变化,q'是q对时间t的导数,q0是初始的曲率和挠率,qcol对应于碰撞力,c包含粘滞力和空气阻力损耗,通过共轭梯度算法求解该运动方程,并进行运动仿真。图3(a)为对长直发型进行摇头仿真得到的动态头发运动序列,图3(b)为对长波浪发型进行风吹模拟仿真得到的动态头发运动序列。

本发明说明书中未作详细阐述的内容属于本领域专业技术人员公知的现有技术。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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