鄭利平, 張 娟, 趙建明, 劉玉飛, 劉曉平
(合肥工業大學計算機與信息學院,安徽 合肥 230009)
多樣化虛擬人群生成方法研究
鄭利平, 張 娟, 趙建明, 劉玉飛, 劉曉平
(合肥工業大學計算機與信息學院,安徽 合肥 230009)
對于人群仿真中的人物角色來說,如果所有的虛擬人物外觀都一樣,那么就會給人簡單復制品的感覺,真實感較差。研究人群角色外觀的多樣性問題,分別從角色模型多樣化,紋理多樣化和姿態動作多樣化等方面進行討論,采用 Hasler模型庫實現角色身高以及體型的差異化,通過紋理模板實現角色外觀的多樣化,并通過嵌入骨骼技術為模型賦予不同動作。實驗結果表明本方法可生成效果較好、外觀各異、動作多樣的虛擬人群。
人群仿真;多樣化;角色模型;角色紋理;行走姿態
人群仿真技術在很多領域均有應用,可以應用于軍事訓練和軍事部署,交通路口等公共場所的安全演練,城市規劃、游戲創作、訓練系統以及火災等災難現場模擬與輔助指揮[1]。但是從目前的研究情況來看,群體動畫中采用的人物角色群體太過單一,大都是由一個或幾個模板復制而來,大量相似的人物模型并沒有一個人群的感覺,缺乏真實感,給人一種單調乏味的感覺。
由于人物身體本身的復雜性,動畫師必須通過大量詳盡的處理才能設計出比較真實的體型。然而,如果需要繪制自然、與實際相符的人群,如街上人群模擬,那么必須提供多樣化的人群,以產生高矮胖瘦的體型、豐富多的衣著和兩兩不同的姿態動作等效果。如果讓動畫師手動創作這些多樣性,增加了他們任務的復雜性以及時間代價。
現有的人群仿真真實感研究主要體現在人物外觀的多樣性。對于大規模群體來說,如果所有的虛擬人物體型都相同,真實感會降低。本文在研究群體角色多樣性問題方面,首先提出體型多樣化技術和紋理外觀多樣化方法,以產生互不相同的虛擬人群,再通過嵌入骨骼技術,驅動角色運動,且通過動作模板產生不同的姿態動作。最后進行了實驗分析,建立原型系統生成外觀各異的虛擬人群。
在模型多樣化方面,Scheeper et a1[2]強調了內在的組成部分(肌肉等)對身體形狀影響的重要作用,提出了以解剖學為基礎建模人物模型,這個方法涉及到的建模不僅僅在表面,還包括骨骼肌肉等其他方面,這種包括物理問題的仿真要耗費更多的計算代價,過于復雜。文獻[3]將虛擬角色的體型建模方法分成了由動畫師設計的以解剖學為基礎的幾何模型,即原創型;由3D掃描儀、圖像、視頻序列中捕捉到的角色形狀而建的3D虛擬角色,即重組型;由在一系列示例模型中使用插值模式而重組成為新的幾何模型,即插值型。為了能建立更真實的模型,文獻[4]基于模型重用的思想,通過調節標準人體模型關鍵人體參數獲得具有個性化特征的人體模型。Hasler[5],Anguelo[6],Allen[7]均采用的3D掃描模型,對掃描的模型進行編碼,從而獲得所需要的大量模型,避免了手工建模的復雜性。同時,為了使模型更具多樣化,滿足當一個物體運動時,身體形狀和運動能自由關聯,Kakadiaris和Metaxast[8]在三維坐標系中使用不斷變形的2D圖像近似模擬3D角色不同的身體形狀,而文獻[9]提供的方法是基于二維圖片的實現,通過3D模型變形映射到2D圖片,實現了對模型的隨意變胖變瘦以及高矮,從而實現對圖片的修飾功能。Blanz等[10]對三維面部掃描,對模型的表情和紋理進行線性組合,再通過自動匹配算法,產生模型面部多樣化。McDonnell在文獻[11]中提出通過外觀克隆,動作克隆以及將兩種結合的克隆實現了多樣化群體,在文獻[12]中則研究了通過改變面部紋理,頭部紋理,面部幾何形狀,附件(男女),發型之類研究各種影響因素的影響大小,得出結果,同時改變附件和面部紋理被識別出的可能性最小,也即是能生成差異性最大的群體,從而實現群體的多樣性。文獻[13]主要從人群的初始位置和朝向測量真實人的位置和方向,對真實場景進行重建,提出朝向的規則以及位置放置規則。Jentsch等[14]主要討論了群體仿真中的一些變量的計算處理以及驗證方法。我們采用的方法通過對3D掃描模型建立數據庫,對其相關屬性進行編碼,并通過模板匹配對網格模型進行各種變形,得到所需要的基于一個模型基礎上的多樣化模型。
在模型與骨架自動綁定及動畫方面,Bloomenthan[15]提出了通過自動計算頂點權重以達到平滑綁定,采用的是中軸卷積計算方法。Katz[16]和 Attene[17]等為實現骨骼的綁定采用網格分割方法。Baran[18]提出了利用熱量擴散原理來計算頂點權重,該方法計算的權重較為平滑,變形效果較好。文獻[19]通過對MAXScript 腳本語言的研究開發,實現了對人體三維模型的測量和骨架的自動生成與匹配。文獻[18]則提出通過離散懲罰函數精確定位關節點的位置,定義骨架結構并且通過變形骨架尺寸以適應模型進行骨架嵌入,由此生成的骨架拓撲結構明顯,同時定義骨骼動畫序列,從而可以通過骨骼運動帶動模型運動產生動畫。
在紋理處理方面,Maim et a1[20], Ciechomski et a1[21]均采用儲存一個外觀集合包括各種紋理及各部分的映射關系,通過 HSB顏色空間調整顏色色調,同時對各部分附著物分段映射,從而產生多樣化紋理映射人群。
綜上所述,這些文獻分別從模型和紋理等某一方面著手研究并實現人群的多樣化。本論文從模型多樣化、外觀紋理多樣化和動作多樣化3個方面考慮,提出結合Hasler模型庫和Baran自動嵌入骨骼算法的完整解決方案,可生成體態不同、穿著多樣、行走姿態各異、符合現實的虛擬人群,更好地服務于人群仿真應用。
我們希望能由一個輸入模型產生多個互不相同、體態各異的虛擬角色模型,即在身高體重等約束下控制模型復雜形變,而不是成比例的放大縮小。論文采用開源模型庫Hasler[22]來實現。
模型庫的具體實現過程是通過全身3D激光掃描儀掃描k個不同性別及不同年齡階段的人物模型數據,對掃描的模型數據進行 PCA編碼,同時定義一個模板模型,從而實現基于模板基礎上對存儲的模型數據的重建和顯示。作為原始模型,給所有掃描的原始模型數據建立 PCA(Principal Component Analysis,主成分分析)空間,計算出特征值和特征向量,使用一組正交基去描述得到的數據空間,通過標準正交基的線性組合,計算出另一組正交基,從而達到變形效果。這個過程類似于文獻[7]所述。

每個掃描對應l個屬性控制,由公式(1)、公式(2)計算出映射關系 M,M 為(k-1)*(l+1)型的矩陣,其中fi為某個掃描模型數據的特征值,P為相應的主成分分析矩陣,F為由特征空間中的特征向量組成的(l+1)*k維矩陣,F+為F的逆矩陣,即根據身高體重等屬性的限制,定義fi為個體模型的某個屬性值,Δfi表示模型變化前變化后的屬性值差值,通過 Δf=[Δf… Δf0]T,1lΔP=MΔf計算得到PCA相應新的基,即某個屬性改變后的 PCA空間矩陣,投影到 PCA空間,進而可以實現模型的體重增加或減少,產生胖瘦變化以及其他屬性改變。
通過對開源模型庫的分析,我們采用此方法生成我們所需要的模型。我們可以通過weight,height,age,sex等屬性來確定我們想要的目標模型特性。如圖1所示,中間模型代表原始模型(weight=70kg, height=180),右邊(weight=50,height=175)和左邊(weight=60, height=170)模型表示經過身高體重的改變后生成的模型,可以看出在一個模型的基礎上實現了模型的胖瘦高矮變化。

圖1 網格模型變化效果
上述角色模型是網格模型,要實現動畫必須對其嵌入骨骼,顯然手工嵌入骨骼因其復雜性對群體操作難以完成。本文采用Baran[18]中的自動嵌入骨骼算法,提出通過變形骨架尺寸以適應模型進行骨架嵌入,然后通過離散懲罰函數精確定位關節點的位置,這種方法能為我們生成的多樣性模型分別嵌入骨骼。
骨架的嵌入主要在于對骨架重新定義大小以及確定關節點的位置。首先,確定模型關節點的位置,通過KD-TREE計算距離場,得出任意點到中軸面(Medial Surface)的距離,簡化過濾出必要的頂點及數目,根據距離排序從大到小進行球形包裹,然后將這些球心連接起來的邊作為骨骼,球心作為關節點,由此構建出幾何圖G=(V,E),V表示關節點,E表示骨骼。


PR(i)為關節i的父節點索引,fD包含不同關節點位置的依賴關系,fi骨骼鏈終點計算函數。
第k個關節被嵌入后,產生的下界值:

但是,簡化后的骨架嵌入以后缺少某些必要關節,這樣不能正確驅動模型運動,因此,算法根據未簡化骨架上關節在整條邊上的比例,重新計算出該關節在簡化骨架上的位置,然后插入到骨架中。骨骼嵌入的結果,如圖2所示。

圖2 骨骼嵌入過程
我們為模型添加骨骼,由于骨骼與模型是相互獨立的,為了讓骨骼驅動模型產生合理的運動,需要進行蒙皮操作,即需指定骨架運動與角色表面網格變化之間的聯系。本文根據熱平衡原理[18]來尋找權值。假設我們把人物模型的體積認為是一個不占容積的熱導體,然后,我們強迫骨骼i的溫度為1,而其他骨骼的溫度為0。當熱平衡以后,我們就可以把表面上每個頂點的溫度值作為該骨骼對它影響的權值,其過程可用式(5)表示



圖3 程序渲染結果
由上所述,我們實現了人物模型與骨骼的自動綁定,使之能通過骨骼運動控制帶動模型運動,從而產生動畫效果。若要生成新的動畫,只需要定義新的人體運動,采集新的運動數據,便可方便地控制新的人物模型的運動和變形。人體的運動數據可以來源于運動捕捉儀器等多種方法。通過各種動作捕捉我們可以得到不同姿態和不同的運動方式數據,這些數據作為動作數據庫即動作模板,從而豐富人群運動的動作多樣化和體現仿真人群的真實性。我們實現的系統可以讓一個靜態的模型,根據給定的動作模板進行所需要的運動。如圖4所示,圖4(a)是出于靜止狀態下一個人的不同姿態,圖4(b)是運動情況下產生的不同動作姿態。

圖4 同一模型的不同行走姿態
在紋理外觀方面,一般主要從虛擬角色的衣著外觀、穿戴附件等方面來進行研究,使用較少的標準顏色要素通過組合的形式構成多樣性的外觀。在系統中對每個虛擬角色的模型分別配置幾套不同的衣服,通過色彩隨機組合形成的多樣化紋理作為紋理模板,最后通過排列組合的方式映射到模型上就形成了具有真實感外觀的群體。
由于生成的網格模型沒有對應的紋理,用UV Layout對模型進行UV展開,在完成模型UV展開后通過貼圖來檢測UV拉伸與接縫情況。在檢測后沒有UV拉伸和UV 接縫的情況下,制作相應的紋理,再采用多樣化組合產生多樣化紋理模板映射。程序運行結果,如圖5所示。

圖5 不同紋理映射
我們的實驗環境為64位Win7 SP1操作系統,主機CPU為Intel(R) Core Q8400,內存6G,程序運行環境為Visual Studio 2008,在其中直接調用Matlab進行相關運算,采用OpenGL作為顯示和交互平臺。如圖6、圖7、圖8、圖9、圖10、圖11所示。
系統平臺如圖6所示,左邊面板可以選擇輸入人群數目生成隨機人群或者選擇性別以及身高體重范圍生成約束人群,右邊為可視化顯示平臺。圖7為選取某一模型,保持其身高190cm不變,改變其體重,如圖7從左至右體重依次取值為 84.2kg,74.2kg,64.2kg,54.2kg,44.2kg。圖8為某模型保持體重70kg不變,身高從左至右依次取值190cm,180cm,170cm,160cm,150cm,如圖所示為所得出實驗結果。圖9為選擇某個模型作為模板,定義其身高在100cm-190cm同時體重在30kg-90kg均隨機取值,生成基于模板基礎上的變形模型,其結果如圖9所示。圖10為輸入人群數目后,隨機生成的不同姿態的虛擬人群。圖11為隨機生成的帶不同紋理的人群。

圖6 程序框架

圖7 對同一模型保持身高固定減少體重

圖8 對同一模型保持體重不變降低身高

圖9 在身高、體重隨機選擇下生成的虛擬人群

圖10 不同姿態的人群

圖11 不同外觀紋理下的虛擬人群
群體動畫的研究內容非常廣泛,涉及到人工智能、計算機、數學、物理等多個學科方面的知識,而本文的研究重點是人群仿真中的多樣化。文中著重討論了虛擬角色模型多樣化和動畫技術,以及模型紋理動作添加方法,在理論研究的基礎上設計并實現了人群動畫渲染系統。本仿真系統雖然能實現人群多樣性,但在實時交互以及生成大規模人群時渲染速度尚有待改進,并且動作多樣化有待進一步延伸,將在下一步工作中進行完善。
[1]陳 靜. 大規模群體的角色建模與實時渲染技術研究[D]. 成都:電子科技大學, 2009.
[2]Scheepers F, Parent R E, Carlson W E. Anatomy-based modeling of the human musculature[C]//Proceedings of the 24th annual conference on Computer graphics and interactive techniques (SIGGRAPH'97).New York,NY, USA:ACM Press/Addison-Wesley Publishing CO., 1997:163-172.
[3]Magnenat-Thalmann N, Seo H, Cordier F. Automatic modeling of virtual humans and body clothing [J].Comput. Sci Technol, 2004, 19(5):575-584.
[4]李 健, 于清華,等. 三維人體模型的個性化調節及平滑處理研究[J]. 工程圖學學報, 2008, 29(5):96-102.
[5]Hasler N, Stoll C, Sunkel M, et al. A statistical model of human pose and body shape [J]. Computer Graphics Forum, 2009, 28(2):337-346.
[6]Anguelov D, Srinivasan P, Koller D, et al. SCAPE:shape completion and animation of people [J]. ACM Trans. Graph, 2005, 24(3):408-416.
[7]Allen B, Curless B, Popovic Z. The space of human body shapes:reconstruction and parameterization from range scans [J].ACM Trans.Graph, 2003, 22(3):587-594.
[8]Kakadiaris I A, Metaxas D. 3D human body model acquisition from multiple views [C]//Proceedings of the Fifth International Conference on Computer Vision(ICCV '95). Washington, DC, USA:IEEE Computer Society, 1995:618-623.
[9]Zhou Shizhe, Fu Hongbo, Liu Ligang, et al. Parametric reshaping of human bodies in images[J]. ACM Trans.Graph. 2010, 29(4):126-136.
[10]Blanz V, Vetter T. A morphable model for the synthesis of 3d faces [C]//Proceedings of the 26th annual conference on Computer graphics and interactive techniques (SIGGRAPH '99). New York,NY, USA:ACM Press/Addison-Wesley Publishing Co., 1999:187-194.
[11]McDonnell R, Larkin M, Dobbyn S, et al. Clone attack! Perception of crowd variety [J]. ACM Trans.Graph, 2008, 27(3):26-34.
[12]McDonnell R, Larkin M, Hernández B, et al.Eye-catching crowds:saliency based selective variation [J]. ACM Trans. Graph, 2009, 28(3):55-65.
[13]Ennis C, Peters C, O'Sullivan C. Perceptual evaluation of position and orientation context rules for pedestrian formations [C]//Proceedings of the 5th symposium on Applied perception in graphics and visualization (APGV '08). New York, NY,USA:ACM, 2008:75-82.
[14]Jentsch F, Kaup D J, Malone L, et al. Inclusion of Social and behavioral individual-difference variables in crowd simulations:a literature review and theoretical framework [C]//Proceedings of the 2008 Summer Computer Simulation Conference (08SCSC),Edinburgh, Scotland, 2008:286-291.
[15]Bloomenthal J. Medial-based vertex deformation [C]//Proceedings of the 2002 ACM SIGGRAPH/Eurographics symposium on Computer animation(SCA '02).New York, NY, USA:ACM, 2002:147-151.
[16]Katz S, Tal A. Hierarchical mesh decomposition using fuzzy clustering and cuts [C]//SIGGRAPH ACM Special Interest Group on Computer Graphics and Interactive Techniques. New York, NY, USA:ACM, 2003:954-961.
[17]Attene M, Falcidieno B, Michela Spagnuolo.Hierarchical mesh segmentation based on fitting primitives [J]. Vis. Comput, 2006, 22(3):181-193.
[18]Baran I, Popovic J. Automatic rigging and animation of 3D characters [J]. ACM Trans. Graph, 2007, 26(3) :72.
[19]姜立軍, 李哲林, 甘東兵. 基于真實場景的大規模虛擬人群的快速生成方法[J]. 工程圖學學報, 2009,30(2):69-75.
[20]Jonathan Ma?m, Barbara Yersin, Daniel Thalmann:Real-time crowds:architecture, variety, and motion planning [C]//ACM SIGGRAPH ASIA 2008 courses,2008:1-16.
[21]Pablo de Heras Ciechomski, Sébastien Schertenleib,Jonathan Ma?m, Damien Maupu, Daniel Thalmann,:Real-time Shader Rendering for Crowds in Virtual Heritage [C]//The 6th International Symposium on Virtual Reality, Archaeology and Cultural Heritage, VAST, 2005:91-98.
[22]Hasler:http://www.mpi-inf.mpg.de/resources/scandb/,Dec. 2008.
Study of Diversity Generating Method of Virtual Crowd
Zheng Liping, Zhang Juan, Zhao Jianming, Liu Yufei, Liu Xiaoping
( School of Computer and Information, Hefei University of Technology, Hefei Anhui 230009, China )
In crowd simulation, if all of the virtual characters look alike, it will appear to be clones and lack reality as in real world. The paper studies the diversified appearance of characters from aspect of models, textures, postures and so on. The paper realizes character model differentiation by using Hasler model library, achieves diversification of the appearance by texture templates, and obtains the various postures by skeleton embedding technology for the model. The results show that the proposed method can generate plausible virtual crowd with good diversity.
crowd simulation; crowd diversity; characters model; characters texture; walking posture
TP 391.9
A
2095-302X (2013)04-0112-07
2012-10-12;定稿日期:2012-12-21
國家自然科學基金資助項目(61070124);安徽省自然科學基金資助項目(1208085MF107);安徽省高等學校省級自然科學研究重點資助項目(KJ2012A221)。
鄭利平(1978-),男,湖北麻城人,副教授,主要研究方向為可視化和人群仿真。E-mail:zhenglp@hfut.edu.cn