何長鵬 羅鴻斌 張燕
摘要:由于在虛擬人技術應用領域內兼顧到虛擬人形象化建模的同時還要滿足運動合成的實時性要求,為了解決上述問題,文章提出一種局域數據驅動的虛擬人運動合成方法。首先將捕獲的運動數據按照H-Anim標準進行簡化處理之后存儲在數據庫中;其次從Poser中選取不同的人物模型,分別提取出符合簡化后的運動捕獲數據所描述的人體骨架結構。
關鍵詞:虛擬人;骨架提取;數據驅動;運動合成;形象化建模 文獻標識碼:A
中圖分類號:TP391 文章編號:1009-2374(2017)01-0003-02 DOI:10.13535/j.cnki.11-4406/n.2017.01.002
1 概述
虛擬人是人類在虛擬環境中的化身,即人體在虛擬環境中的幾何特性與行為特性的表示。在現代計算機應用技術中,虛擬人應用主要集中在虛擬試衣、虛擬維護、軍事訓練、交互游戲、動畫和影視特效制作和虛擬康復訓練等方面。除了上述應用之外,還可以利用虛擬人完成很多模擬性的實驗,這樣可以大大降低實驗的風險和成本。虛擬人作為人類的化身,按理應該具備人體的基本特性。但是人體是一個較為復雜的生命體系統,由骨骼、皮膚、肌肉和神經系統等組成,其中關節和骨骼的自由度較多,想要完全構建出一個具備生理特征的數字化虛擬人,難度非常大。目前,虛擬人技術所要解決的問題就是在保證人體基本結構不變的前提下,如何有效地對人體骨骼結構進行簡化處理,構建出具有逼真外形的虛擬人模型。由于肌肉和神經系統的建立存在著很大的困難,研究的難度巨大,所以骨骼模型往往會忽略掉肌肉和神經系統。依據人體解剖學原理,人們制定了兩個重要的國際標準H-Anim和MPEG-4來表示虛擬人骨骼結構,主要是將人體的骨骼和關節進行簡化,減少其自由度,這樣可以降低建模的難度。人們在遵循這兩種標準的基礎上,通過使用基于幾何的方法、基于二維照片重構方法和基于人體測量學的方法等,構造了形象化的虛擬人,但是沒有充分考慮運動合成的效率問題。
本文在兼顧虛擬人形象化建模的同時考慮到要滿足運動合成的實時性要求,提出一種基于數據驅動的虛擬人運動合成方法。首先,在分析人體層次化結構的基礎上,將人體運動捕獲數據BVH進行簡化處理;其次,選擇三維人體造型軟件Poser中相關人物模型提取其骨架結構,將運動捕獲數據BVH映射到此骨架結構,根據運動約束條件對虛擬人運動姿態進行調整,建立符合H-Anim標準的形象化的虛擬人模型;再次,將皮膚網格模型與骨架結構進行綁定,骨架帶動皮膚網格發生變形,產生逼真、平滑的虛擬人運動;最后,通過相關實驗證明了該方法的有效性。
2 運動捕獲數據分析
本文將使用美國卡內基梅隆大學(CMU,Carnegie Mellon University)提供的免費的運動捕獲數據庫當中的運動數據進行分析。人體運動捕獲數據能夠直接記錄人體的運動行為并將其生成計算機動畫。運動捕獲數據中包含著豐富的細節信息,自然逼真。捕獲到的運動數據描述了骨架結構和各時間點的參數。運動數據有很強的復用性,可以提高動畫制作的效率。運動捕獲數據文件格式有ASF/AMC、C3D、CSM、HTR、BVH等許多種類型,其中BVH是一種通用的人體特征動畫文件格式,可以將上述不同類型的運動數據轉換為BVH格式的運動數據。下面將重點介紹BVH格式的運動捕獲數據表現形式。
BVH文件包含骨架信息和關節旋轉數據,將人體結構用樹形結構來表示。BVH格式文件主要分為兩部分:第一部分按照層級關系定義了關節樹和每個關節點的名稱、通道數目、關節與關節之間的相對位置,即人體各部分的骨骼長度;第二部分記錄了運動的數據,定義了動作數據幀以及幀之間的時間間隔。在捕獲數據中還包括一些人體運動的約束信息,例如運動的物理約束、運動特點等。約束信息被認為是人體運動數據的元數據,可將其指定給一幀、一個幀序列或整個運動片段。另外,運動捕獲數據包含人體關節點很多,為了加速渲染,需要將人體結構進行簡化處理,選取重要的人體關節點,其中髖關節Hip為根節點。
根節點Hip包含人體模型在三維場景中的坐標值(X,Y,Z)和3個旋轉參數;對于非根節點Joint,則只含有偏移量Offset和旋轉度,其中偏移量Offset表明該節點針對它的父節點的偏移位置。而末端效應器End Site表示終結遞歸,該關節的定義到此為止。數據塊以Motion關鍵字開始,其中Frames定義了動畫幀數,Frame Time定義了幀率。
3 算法實現
3.1 人物模型選擇
通常可以使用激光掃描和二維照片測量的方法構建虛擬人表面模型。但考慮到這些精密儀器成本比較昂貴,使用時需要復雜的環境和專業的知識。對于絕大部分應用系統而言,采用這些精密儀器獲得高密度的數據集是一種資源的浪費,是完全沒有必要的。本文在前人工作的基礎上,選用人體建模軟件Poser中的人物模型作為運動合成的對象,取代對真實人體進行三維掃描建立的數字化人體模型。主要利用Poser平臺提供的交互式的運動數據導入、導出功能菜單,預先將簡化后的BVH運動數據導入到Poser平臺中的人物模型,產生相應的動作,以便用戶觀察其動作姿態。根據實驗內容,我們將不同的運動數據BVH文件導入到Poser平臺中對應的不同的人物模型,發現Poser平臺中的人物模型與BVH定義的人體層級關系以及關節點的數目不一致性,導致運動數據驅動人物模型時發生扭曲變形,產生的動作姿態不符合運動特征。另外,Poser平臺中人物模型各個部分已預先進行了連接,設置了運動約束,需要手動對人體姿態進行調整,但有時其姿態的調整可能是無效的。
3.2 人體骨架的提取
人體表面模型較為復雜,在建模時需要由2000多個多邊形組成。我們將Poser平臺中的人物模型導出OBJ格式的文件進行解析。不同的人體骨架提取方法,主要思想是對人體模型進行分解確定人體的拓撲結構,將各部分網格模型進行簡化并平滑收縮處理,提取出曲線骨架以后再提煉出符合H-Amin層級結構的骨骼,這樣可以保存原有的人體拓撲結構。
3.3 骨架與皮膚層建立映射關系
人體骨架提取出來以后,需要將虛擬人皮膚層與骨架綁定。當運動數據BVH驅動人體骨架運動時,骨架將會帶動皮膚變形產生逼真的人體動畫。虛擬人皮膚層與骨架的綁定,本文將采用蒙皮變形技術。蒙皮變形技術是骨骼皮膚動畫的關鍵技術,所謂的皮并不是模型的貼圖而是將網格中的頂點綁定在骨骼上,表示頂點受骨骼的影響以及影響的權重(Weight)。傳統的頂點混合蒙皮算法僅對皮膚頂點做了一個線性混合插值,存在皮膚塌陷和打結的缺點。
4 實驗結果和分析
為了驗證該方案的可行性,我們選擇在Intel Core i3 2.53GHz 2048MB的PC機上,在Windows 10操作系統下,使用Microsoft Visual Studio 2015集成開發環境并結合OpenGL開發包和Poser 9來實現。根據研究的內容,將Poser平臺中的人物模型保存為OBJ格式的文件進行讀取,從中提取出人體骨架,并實現了與皮膚層的綁定。在完成了蒙皮之后,用BVH數據驅動虛擬人運動,實驗截取了一個周期內人體步行的序列片段,從算法的效率以及運動的逼真度進行分析,可以驗證該方法的有效性。
5 總結與展望
虛擬人運動合成技術研究關注的焦點是如何實現運動合成的實時性和高效性。在虛擬試衣、交互游戲、動畫和影視特效制作等領域,除了注重運動合成的效率,還會特別關注虛擬人的外形,形象化的人物模型將會增加用戶的沉浸感,增加用戶的樂趣。在綜合考慮上述兩方面因素的基礎上,本文提出一種基于數據驅動的虛擬人運動合成方法。我們選用人體建模軟件Poser平臺中的模型作為運動合成的對象,可以改變傳統的形象化建模方法耗時耗力的缺點,加快形象化建模的速度,提高渲染的速率。此外,為了加快虛擬人運動合成的速度,從Poser平臺中的人物模型提取出其符合H-Amin標準的人體骨架,將人體骨架與皮膚層進行映射,通過BVH運動數據驅動虛擬人運動合成。
參考文獻
[1] J.Hou,F.Xu,L.Wu,H.H.Mi.Avatar-based
human communication:a review[J].International
Journal of Modelling and Simulation,2012,(4).
[2] 何長鵬,侯進,王獻.基于骨骼的三維虛擬人運動合
成方法研究[J].計算機工程與科學,2014,36(4).
[3] 宋慶文,周源華.一種基于模型的人體建模系統[J].
計算機應用與軟件,2004,21(1).
[4] 呂治國,李焱,賀漢根.基于Poser模型的三維人體建
模方法[J].計算機工程,2008,34(13).
[5] 趙建軍,魏毅,夏時洪,等.基于物理的角色動畫合
成方法綜述[J].計算機研究與發展,2015,52(12).
基金項目:甘肅省高等學校科研資助項目(2014A-084);甘肅政法學院科研資助青年項目(GZFXQNLW003)。
作者簡介:何長鵬(1986-),男,甘肅武威人,甘肅政法學院公安技術學院助教,碩士,研究方向:虛擬人技術、網絡安全;羅鴻斌(1979-),男,甘肅莊浪人,甘肅政法學院公安技術學院副教授,碩士,研究方向:數字圖像處理、電子取證;張燕(1985-),女,甘肅榆中人,甘肅氣象信息與技術裝備保障中心助理工程師,碩士,研究方向:模式識別、網絡安全。
(責任編輯:黃銀芳)