何長鵬,侯 進,王 獻
(西南交通大學信息科學與技術(shù)學院,四川 成都 610031)
基于骨骼的三維虛擬人運動合成方法研究*
何長鵬,侯 進,王 獻
(西南交通大學信息科學與技術(shù)學院,四川 成都 610031)
針對虛擬人運動合成中建立的人體模型存在復雜化、合成的虛擬人運動序列逼真度差的問題,提出了一種基于骨骼的虛擬人運動合成方法。在分析人體結(jié)構(gòu)的基礎(chǔ)上,通過三維圖形軟件獲取人體骨骼數(shù)據(jù),構(gòu)建虛擬人體的骨骼模型。另外,將關(guān)鍵幀四元數(shù)球面插值算法與時間和空間變形方法相結(jié)合,生成多樣化的虛擬人運動序列。實驗結(jié)果驗證了該方法的有效性。
虛擬人;運動合成;關(guān)鍵幀插值;時間空間變形
虛擬人是人類幾何特性和行為特性在虛擬環(huán)境中的數(shù)字化表示,是高度真實的人類特性的數(shù)字化再現(xiàn),而人作為虛擬環(huán)境的主體,其運動的逼真性直接決定著用戶在虛擬世界的沉浸感[1]。近年來,虛擬人研究主要關(guān)注兩方面的內(nèi)容:一是形象化的建模;二是運動合成。對于虛擬人逼真的外形,以及真實自然的復雜運動和多樣化運動的合成,人們提出了更高的要求:不僅運動模型高度逼真、具有實時性,而且還要有物理特性和自主行為能力。虛擬人運動合成過程中,關(guān)鍵幀往往起著核心的作用,通過選定虛擬人關(guān)鍵幀姿態(tài),用插值算法來生成運動序列,而運動序列的逼真、自然程度取決于關(guān)鍵幀姿態(tài)的逼真、自然程度。Peinado M等人[2]利用優(yōu)先級的逆運動學PIK(Prioritized Inverse Kinematics)方法,在處理關(guān)鍵幀姿態(tài)插值的過程中,根據(jù)約束條件優(yōu)先級,對虛擬人的姿態(tài)進行調(diào)整,實現(xiàn)智能化的虛擬人運動合成,使虛擬人具有“自我意識”。這種方法實現(xiàn)了逼真的虛擬人外形,但大幅度增加了運動合成的復雜性。Zhang Gui-juan等人[3]提出一種基于骨架的流體動畫合成方法,它考慮了人體的生理特性和運動特性,但運動合成的效率存在局限性,不能滿足系統(tǒng)實時傳輸?shù)男阅芤蟆R虼?,在充分考慮人體生理特性和運動特性的情況下,如何降低虛擬人運動合成的復雜度,提高運動合成的實時性,有待我們?nèi)ソ鉀Q。
虛擬人建模,目前有很多種不同的方法:(1)通過對人體照片進行圖像處理,提取人體輪廓和關(guān)鍵部位的特征參數(shù)信息,重構(gòu)人體模型;(2)利用三維掃描儀自動獲得真實人體表面的幾何數(shù)據(jù);(3)利用建模軟件Maya等繪制人體的三維模型,獲得虛擬人表面模型數(shù)據(jù)。虛擬人運動合成,早期主要采用數(shù)值計算的方法,通過建立運動學或動力學方程,用數(shù)值方法求解。后來出現(xiàn)了運動捕獲設(shè)備,許多基于捕獲數(shù)據(jù)的合成方法被提了出來。
本文在分析人體結(jié)構(gòu)的基礎(chǔ)上簡化人體骨骼結(jié)構(gòu),考慮降低運動合成復雜度的情況,實現(xiàn)一種基于骨骼的虛擬人運動合成方法。首先,通過三維圖形軟件獲取人體骨骼數(shù)據(jù),構(gòu)建人體的骨骼模型;然后,讀取運動數(shù)據(jù)關(guān)鍵幀,通過球面線性插值算法和時間空間變形方法,驅(qū)動底層骨骼運動,合成真實自然的虛擬人運動序列。具體實現(xiàn)過程見圖1。
Figure 1 System flow chart圖1 系統(tǒng)流程圖
由于人體是一個復雜的生命體系,由206塊骨骼、600多塊肌肉以及指揮這些骨骼和肌肉的無數(shù)神經(jīng)組成,骨骼之間由多種關(guān)節(jié)相連,人體全身關(guān)節(jié)具有200多個自由度DOF(Degree of Freedom),是典型的高維非線性系統(tǒng)[4]。所以,在人體運動合成過程中需要將人體做某種程度的抽象,這種抽象既要盡可能反映人體的真實情況,又要易于實現(xiàn)。就人體骨骼結(jié)構(gòu)而言,目前有兩個重要的國際標準 H-Anim和 MPEG-4都支持虛擬人的表示。人體骨骼結(jié)構(gòu)中,各骨骼之間存在著一定的運動連帶關(guān)系,把關(guān)節(jié)看成是點,將關(guān)節(jié)之間的骨骼看成鏈,就可以按照運動關(guān)系將各個肢體連接起來。對于由多關(guān)節(jié)組成的復雜人體,通常采用常規(guī)的樹形結(jié)構(gòu),樹中每一個節(jié)點對應一個關(guān)節(jié)。一般根據(jù)實際的需要,從運動關(guān)節(jié)和自由度方面考慮來簡化人體模型。本文通過三維圖形軟件獲取人體骨骼模型數(shù)據(jù),對人體骨骼模型進行簡化處理,得到一個17個關(guān)節(jié)、39個DOF的虛擬人骨骼模型,如圖2所示,其中白色的線段表示人體的骨骼,淺色的點表示人體的關(guān)節(jié)點和末端效應器。
Figure 2 Skeleton model of virtual human圖2 虛擬人骨骼模型
人體的關(guān)節(jié)是連接身體各個部分的環(huán)節(jié),也是身體運動的樞紐。人體通過關(guān)節(jié)來傳遞力和力矩,結(jié)構(gòu)復雜。在人體工程學中,通常把人體關(guān)節(jié)抽象為一個球鉸,但是人體關(guān)節(jié)實際活動范圍并沒有像鉸鏈那樣的自由度,它受到人體運動生理上的限制,因此必須明確人體各關(guān)節(jié)運動的約束條件,把關(guān)節(jié)分為自轉(zhuǎn)和擺動。我們對人體的關(guān)節(jié)進行分類,一個自由度(DOF)的關(guān)節(jié),如膝蓋,只能上下彎曲,沒有自轉(zhuǎn);兩個自由度(DOF)的關(guān)節(jié),如腕關(guān)節(jié),除自轉(zhuǎn)外,有兩個方向的旋轉(zhuǎn)自由度;三個自由度(DOF)的關(guān)節(jié),如肩關(guān)節(jié),既有自轉(zhuǎn)又有擺動。人體的約束條件有運動約束、能量約束、動力約束和空間時間約束等。文獻[2]中給出了人體的運動約束條件,考慮了人體脊柱關(guān)節(jié)的旋轉(zhuǎn)角度范圍。假設(shè)虛擬人的任意的一個關(guān)節(jié)為i,旋轉(zhuǎn)的角度為θi,其運動約束為θimin≤θi≤θimax,其中θimin及θimax分別為關(guān)節(jié)i所允許的最小和最大旋轉(zhuǎn)角度。
插值是處理運動數(shù)據(jù)最有效的方法之一。文獻[5]中為了增強人體骨骼運動細節(jié)的表達,提出了基于關(guān)鍵幀分類的虛擬人運動插值方法。以骨骼間夾角為動作特征,將關(guān)鍵幀集合根據(jù)其運動特征進行分類,采用分層插值方法,合成虛擬人運動序列。在關(guān)鍵幀插值過程中,每一個關(guān)鍵幀指出了骨骼在該時刻相對于父關(guān)節(jié)坐標的變換以及位置、朝向等信息,而且每一根骨骼都要有很多的關(guān)鍵幀,通常用旋轉(zhuǎn)四元數(shù)、縮放向量和平移向量來表示。獲得關(guān)鍵幀數(shù)據(jù)后,需要按照某時刻與前后兩個關(guān)鍵幀時刻的時間值插值計算出該時刻骨骼相對于父節(jié)點的新的變換矩陣。在插值過程中,對于平移和縮放,采用線性插值,而旋轉(zhuǎn)過程比較復雜,需要球面線性插值算法。球面線性插值算法是在四維空間的單位超球面上對兩個單位四元數(shù)進行插值,并且保證最終的插值結(jié)果仍在超球面上,而不會產(chǎn)生加速效果。
假設(shè)q1和q2為單位四元數(shù),參數(shù)μ∈[0,1],從q1到q2的球面線性插值記做slerp(q1,q2,μ),數(shù)學表達式為:
其中,α=arccos(q1,q2)是兩個插值點q1和q2間的夾角。球面線性插值的結(jié)果處于球面上,無需進行歸一化處理,就能保證以恒定的角速度在兩個關(guān)鍵幀q1和q2間的球面上以最短弧長運動。
虛擬人運動狀態(tài)可能會實時發(fā)生變化,通過對兩個不同狀態(tài)的運動進行合成,生成新的運動狀態(tài)[6]。例如,把跑步和走路這兩種不同風格運動進行加權(quán)平均,從而生成新的運動“慢跑”。本文在關(guān)鍵幀插值基礎(chǔ)上,采用時間變形使兩個運動之間的關(guān)鍵幀產(chǎn)生一一對應的關(guān)系,并且持續(xù)相同的時間。記選取關(guān)鍵幀的時刻為Ki(1≤i≤Nk),Nk為選取的個數(shù)。將實際時間T∈ [ K1,KNk] 映射到標準時間t∈[0,1],構(gòu)造如下函數(shù):
其中,m為最大指數(shù),即T>Km。
對于輸入的運動序列經(jīng)過時間變形后,使兩個運動之間的關(guān)鍵幀產(chǎn)生一一對應的關(guān)系。但是,由于人物空間位置的不同,運動插值之后很容易出現(xiàn)錯誤,因此要對輸入的運動序列進一步進行空間變形。將運動序列整體沿水平面方向平移和繞垂直方向旋轉(zhuǎn),使各輸入運動的空間位置和朝向盡可能相似。設(shè)運動序列P和Q的長度分別為m和n,分別表示為:
每幀具有J 個關(guān)節(jié)點,采用“點云”[6,7]方式表示運動姿態(tài)。每個關(guān)鍵幀對應不同的點云,任意點云經(jīng)過運動變換后,使點云距離達到最小。對輸入的兩段運動序列m1和m2任意的關(guān)鍵幀進行空間變形。設(shè)m1中第i關(guān)鍵幀fi中一個關(guān)節(jié)坐標為(x,y,z)T,設(shè)m2中第i關(guān)鍵幀中相同關(guān)節(jié)坐標為 ( x′ ,y′,z′)T,人體在XOZ平面上繞軸的旋轉(zhuǎn)角度為θ。任意兩幀之間的距離函數(shù)為[6,7]:
其中,pi,k是由第i幀生成的鄰居點云上的第k個節(jié)點;是把第i幀和第j幀對齊的仿射變換矩陣;wk是權(quán)值,決定了每個節(jié)點對最終距離值的影響程度。
我們將幾個典型動作按照合適的權(quán)重結(jié)合產(chǎn)生新的動作數(shù)據(jù)A,即可得到在兩個典型動作A1和A2之間的中間插值動作[6]:
其中,浮點數(shù)α取值0~1.0。式(9)表示兩個動作所包含的所有對應的旋轉(zhuǎn)角度和平移矢量各自進行線性組合。
根據(jù)研究的內(nèi)容,本文在Intel Core i3 2.53 GHz 2 048MB的環(huán)境下,選用 Microsoft Visual Studio 2010作為軟件開發(fā)平臺,使用OpenGL和Cal3D[8]開發(fā)庫,對提出的虛擬人運動合成方法進行了實驗驗證。首先,系統(tǒng)讀取從三維圖形軟件獲得的人體骨骼模型數(shù)據(jù),對模型進行簡化處理,得到一個17個關(guān)節(jié)、39個DOF的虛擬人骨骼模型。構(gòu)建完虛擬人骨骼模型之后,用關(guān)鍵幀插值方法來合成虛擬人走路的運動序列片段,如圖3所示。在實驗中,虛擬人合成的運動序列是以每秒60幀的速率產(chǎn)生的。從圖3中可以看出,虛擬人的行走是一個循環(huán)往復的過程,其中以腿部運動為例來加以說明。腳趾作為人體的末端效應器,只有平移運動,顯然使用線性插值,而膝關(guān)節(jié)既有平移又有旋轉(zhuǎn),優(yōu)先使用球面線性插值,這樣保證了插值的連續(xù)性,不會產(chǎn)生加速效果。
為了驗證關(guān)鍵幀時間和空間變形的有效性,我們將走路和跑步這兩種運動進行融合,合成虛擬人“慢跑”的運動序列片段。分別將揮手和走路以及揮手和跑步這兩種動作相融合,生成在走路的過程中揮手和在跑步的過程中揮手兩種不同的運動序列。圖4給出了揮手和跑步合成之后的運動序列片段。在實驗中,可以給揮手、走路和跑步等幾種運動序列設(shè)置不同的權(quán)重,根據(jù)不同的權(quán)重值,生成多樣化的運動序列片段。圖4所示的運動序列片段,揮手和跑步的權(quán)重值分別為0.2和0.8。
Figure 3 Sequence fragment of virtual human walking motion圖3 人體走路的運動序列片段
Figure 4 Sequence fragment of waving and running synthetic motion圖4 揮手和跑步合成的運動序列片段
本文介紹了一種基于骨骼的虛擬人運動合成方法。該方法在分析人體結(jié)構(gòu)的基礎(chǔ)上,通過三維圖形軟件獲取人體骨骼模型數(shù)據(jù),構(gòu)建虛擬人體的骨骼模型。將選定的虛擬人關(guān)鍵幀狀態(tài),用線性插值和四元數(shù)球面線性插值算法來合成真實自然的虛擬人運動序列。為了合成多樣化的虛擬人運動序列,將兩種不同的虛擬人運動關(guān)鍵幀進行時間和空間變形,合成一種新的運動狀態(tài)。這種方法充分考慮了人體生理和運動特性,降低了運動合成的復雜性,提高了運動合成的實時性,生成的虛擬人運動序列真實自然。
[1] Hou Jin,Wu Ling,Xu Fang,et al.Real-time text driven avatars[J].Online Journal on Computer Science and Information Technology,2011,1(1):9-14.
[2] Peinado M,Meziat D,Maupu D,et al.Full-body avatar control with environment awareness[J].IEEE Computer Graphics and Applications,2009,29(3):62-75.
[3] Zhang Gui-juan,Zhu Deng-ming,Qiu Xian-jie,et al.Skeleton-based control of fluid animation[J].Visual Computer,2011,27(3):199-210.
[4] Li Shi-lei,Liang Jia-hong,Li Meng,et al.Whole body posture generation of virtual characters by combinig posture examples and prioritized inverse kinematics[J].Journal of System Simulation,2011,23(12):2692-2700.(in Chinese)
[5] Kong De-hui,Wang Li-chun,Zheng Chong-yu.A key frame interpolation method enhancing motion details of skeletal animation[J].Journal of Beijing University of Technology,2011,37(8):1255-1260.(in Chinese)
[6] Meng Wei,Guo Wei-bin,Zhu Chang-ming,et al.Motion fusion technique based on characteristics of human motion[J].Journal of Computer Applications,2011,31(1):42-44.(in Chinese)
[7] Horvath C,Geiger W.Directable,high-resolution simulation of fire on the GPU[C]∥Proc of the 2009Computing Machinery’s Special Interest Group on Computer Graphics,2009:1-8.
[8] Yuan Peng,Wang Shu-jie,Zhang Ji-wei,et al.Virtual reality platform based on open sourced graphics toolkit openscenegraph[C]//Proc of the 10th IEEE International Conference on Computer-Aided Design and Computer Graphics,2007:361-364.
附中文參考文獻:
[4] 李石磊,梁加紅,李猛,等.基于姿態(tài)庫和PIK算法的虛擬人全身姿態(tài)生成[J].系統(tǒng)仿真學報,2011,23(12):2692-2700.
[5] 孔德慧,王立春,鄭重雨.增強骨骼動畫運動細節(jié)的關(guān)鍵幀插值方法[J].北京工業(yè)大學學報,2011,37(8):1255-1260.
[6] 孟巍,郭衛(wèi)斌,朱昌明,等.基于人體運動規(guī)律的運動融合技術(shù)[J].計算機應用,2011,31(1):42-44.
Research of the three-dimensional virtual human motion synthesis method based on skeleton
HE Chang-peng,HOU Jin,WANG Xian
(School of Information Science and Technology,Southwest Jiaotong University,Chengdu 610031,China)
In view of the problem that the construction of virtual human model is complicated and synthetic virtual human movement sequences have poor fidelity,proposes a method of the virtual human motion synthesis based on skeleton.Based on the analysis of human body structure,the human bone data are acquired through three-dimensional graphics software.In addition,quaternions spherical interpolation method and the time and space deformation of motion fusion method are combined to generates diversity virtual human movement sequences.The effectiveness of this method is verified through the experiment.
virtual human;motion synthesis;keyframe interpolation;time and space warping
TP317.4
A
10.3969/j.issn.1007-130X.2014.04.028
2012-09-04;
2012-12-19
國家自然科學基金資助項目(60902023,61171096);2009年高等學校博士學科點專項科研基金資助項目(20090184120020,20090184120022);中央高?;究蒲袠I(yè)務費專項資金資助項目(SWJTU12CX093);四川省動漫研究中心2012年度科研項目(DM201204)
侯進(Houjin_163@163.com)
通訊地址:610031四川省成都市二環(huán)路北一段111號西南交通大學信息科學與技術(shù)學院
Address:School of Information Science and Technology,Southwest Jiaotong University,Chengdu 610031,Sichuan,P.R.China
1007-130X(2014)04-0737-04
何長鵬(1986-),男,甘肅武威人,碩士生,研究方向為虛擬人運動合成。E-mail:hechangpeng2008@163.com
HE Chang-peng,born in 1986,MS candidate,his research interest includes virtual human motion synthesis.