許 鋒
(中國刑事警察學院聲像資料檢驗技術系,遼寧 沈陽 110035)
當前,部分公安一線干警在執(zhí)法過程中存在不作為、不會為和亂作為的現(xiàn)象,極大破壞了法律的權威和警察形象。目前的執(zhí)法動作訓練主要采用口述及肢體示范分解動作的方法,存在較多的局限性,對于執(zhí)法過程中的突發(fā)狀況無法充分模擬并且在訓練過程中受訓人員容易造成身體損傷,虛擬訓練系統(tǒng)可以較好地解決上述問題,滿足執(zhí)法訓練科學化、實戰(zhàn)化的要求[1,2]。
虛擬人是高度真實的人類特性的數(shù)字化表現(xiàn),人作為虛擬環(huán)境的主體,其運動的逼真性直接決定了使用者在虛擬世界的沉浸感[3]。肢體運動的交互通過獲取人體各主要關節(jié)的運動狀況,將這些運動數(shù)據(jù)傳遞給虛擬環(huán)境下的仿真模型,實現(xiàn)對應運動,最終在虛擬環(huán)境下得到流暢和自然的運動仿真效果。此外,這種運動交互方式還可為人類和動物的運動學和仿生學提供借鑒和參考[4,5]。本文在考慮降低運動合成復雜度,提高合成實時性的情況下,提出了一種運動系統(tǒng)的交互結構,建立了肢體交互骨架結構的簡易模型,完善了模型的運動和交互規(guī)則,并實現(xiàn)了程序編制和實例運行。
虛擬環(huán)境下人體建模的技術和方法有很多種,依據(jù)使用的工具大體分為以下三種:軟件建模、硬件建模和軟硬件[6,7]。軟件建模是采用較早的方式之一,目前廣泛使用的軟件有endorphin、Poser、Delmia以及Jack,普遍存在兼容性較差、模型庫單一及誤差大等問題;硬件建模是隨著3D掃描技術發(fā)展而產(chǎn)生的,常見的有ArtecShapify Booth、Handy SCAN等,但多用于靜態(tài)模型的產(chǎn)生,無法生成連續(xù)動作序列;軟硬件結合人體建模通過專業(yè)的動作捕捉設備獲取人體骨架數(shù)據(jù),通過數(shù)據(jù)的轉換完成與關節(jié)的綁定,最終實現(xiàn)驅動虛擬人,但存在人體尺寸匹配不準,且費用較高等問題。根據(jù)公安執(zhí)法動作虛擬訓練系統(tǒng)的需求,在分析人體結構,降低開發(fā)費用,簡化骨骼和結構關節(jié),降低運動合成復雜度等基礎上,本文利用三維圖形軟件構建了虛擬人體模型。
依據(jù)人體的正常生理結構和運動特征,本文將骨骼認定為剛體,把各個運動關節(jié)進行簡化并抽象成球體,大致分為股關節(jié)、膝關節(jié)、頭關節(jié)、頸關節(jié)、肩關節(jié)、腰關節(jié)等16個主要關節(jié),具體關節(jié)及層次見圖1[8-10]。骨架上的各個關節(jié)位置如圖2所示,身體的軀干部分主要包括頸關節(jié)、腰中關節(jié)和腰底關節(jié),頸關節(jié)連接頭頂關節(jié)和左右臂關節(jié),左股關節(jié)和右股關節(jié)連接在腰底關節(jié)上,腰中關節(jié)主要功能是實現(xiàn)彎腰和轉體運動。腰中關節(jié)是整個骨架模型的中心節(jié)點,靠近中心節(jié)點的為父節(jié)點,向下為子節(jié)點。為了在虛擬環(huán)境下如實再現(xiàn)人體身高特征,將骨架模型的身高設置為變量H,其它各部分模型的尺寸換算為身高的一定比例,本文以身高180cm的普通人測量結果作為依據(jù),具體尺寸的比例關系如表1所示。根據(jù)公安執(zhí)法動作的實際情況,本文的運動控制僅包括軀干、手臂和腿部,手和腳關節(jié)等細節(jié)部分被簡化,沒有列出。
表1 骨架尺寸表(H代表身高)
圖1 人體骨架模型關節(jié)層次圖
虛擬環(huán)境下的坐標系設定如圖2中Cw所示,具體的設定規(guī)則如下:基坐標系設定在模型的腰部中心節(jié)點(同時也設定為質量中心和運動中心),在虛擬環(huán)境中虛擬人保持自然直立姿勢,矢狀面與額狀面相交上下貫穿身體的為z軸;與地平面平行與矢狀面平行的為y軸,方向指向身體前方;與地面平行與額狀面平行的為x軸,方向按照左手規(guī)則確定。其余運動關節(jié)的子坐標系的設定與基坐標系相同,z軸同回轉角度最大軸線重合且指向身體外側,x軸垂直于z軸指向子關節(jié)方向,y軸按照左手規(guī)則。根據(jù)圖1和圖2中人體骨骼簡化模型關節(jié)設定,共有16個關機,這些關節(jié)的自由度以及運動范圍如表2所示。
表2 各個關節(jié)自由度定義及活動范圍(單位為角度)
圖2 關節(jié)位置及坐標系定義
在虛擬環(huán)境中模型的運動依靠各個關節(jié)的運動位姿來表達,常見的關節(jié)運動驅動方式一種是程序驅動,另一種是外部設備的交互驅動。本文采用多點電磁跟蹤的方式,通過測量現(xiàn)實世界中人體位置姿態(tài)信息,再將其轉化到虛擬環(huán)境中對應的各個關節(jié)。在現(xiàn)實世界坐標系中的腰中關節(jié)和腰底關節(jié)表示為Rrb(xrb,yrb,zrb)和Rrc(xrc,yrc,zrc),與之相對應的齊次式分別為Brb(xrb,yrb,zrb,1)和Brc(xrc,yrc,zrc,1);設腰中關節(jié)在現(xiàn)實世界中繞三軸轉角分別為α、β和γ,在不考慮縮放條件下,腰底關節(jié)姿態(tài)坐標Rrc的位置齊次式Bbc如下式:
在虛擬環(huán)境中,假設基坐標系的原點在Rvb(xvb,yvb,zvb),可用圍繞虛擬環(huán)境下世界坐標系轉角μ、υ和λ表示其姿態(tài),不考慮縮放的情況下,世界坐標系中腰底關節(jié)坐標齊次式Bvc如下
其余各個運動關節(jié)的坐標依據(jù)此規(guī)則進行變換,完成現(xiàn)實環(huán)境中的肢體運動和虛擬環(huán)境下骨架模型的數(shù)據(jù)同步。虛擬環(huán)境中的輔助人物的運動,參考表1中的骨骼尺寸和表2中的關節(jié)運動范圍,通過動作生成器預先設定好的規(guī)則向骨架模型中的各個關節(jié)發(fā)送運動信號,從而實現(xiàn)需要的運動姿態(tài),更有利于技術人員直觀、便捷的觀察和編輯骨架運動效果。從中心節(jié)點(腰中關節(jié))開始,根據(jù)設定的骨骼尺寸和相連接的各關節(jié)轉角進行傳遞,最終實現(xiàn)期望的運動姿態(tài)。在身體軀干直立,上臂圍繞肩關節(jié)轉動α、β和γ角,小臂轉動λ角的情況下,基坐標系下腕關節(jié)的位置Bbcal3如下式
其中0.456H=0.122H+0.167H+0.167H,270°為肩關節(jié)坐標系初始位置時相對于基坐標系的轉角。在虛擬環(huán)境中,當骨架模型需要縮放時,可通過計算坐標之后乘以縮放矩陣來實現(xiàn),縮放矩陣的定義如下
其中:qx、qy和qz均大于零,代表骨架模型在坐標軸上的放大倍數(shù)。
如圖3所示,整個系統(tǒng)基于SGI的Onyx可視化系統(tǒng)構建,硬、軟件上均分為輸入和反饋兩個通路。系統(tǒng)通過放置在用戶各主要關節(jié)上的運動傳感器來感知運動信息,經(jīng)過跟蹤設備的處理后將信息傳遞給系統(tǒng)程序中的關節(jié)運動模塊,最終實現(xiàn)虛擬環(huán)境下的模型運動。其中非用戶控制的輔助人物運動根據(jù)相應觸發(fā)條件由運動生成器控制,將預先設定的腳本信息傳遞給對應關節(jié)實現(xiàn)動作控制,與此同時運動信息記錄模塊將上述運動的數(shù)據(jù)傳輸進行記錄,方便查詢及反演,交互處理模塊主要完成模型與其它事物的數(shù)據(jù)交互,反饋交互結果。
圖3 交互系統(tǒng)結構及功能
根據(jù)本文算法,首先利用3ds MAX建立簡單的三維骨架模型,然后使用Multigen-Paradigm公司研發(fā)的Creator開發(fā)軟件實現(xiàn)模型的編輯及轉換,并進行關節(jié)定義,最終利用C語言調(diào)用Vega中的API函數(shù)庫,實現(xiàn)了通過讀入交互腳本文件或外部的交互信息使模型運動的功能,并完成了部分程序功能由PC向Onyx可視化系統(tǒng)的移植。系統(tǒng)實現(xiàn)仿真的平臺為實驗室配置的圖形工作站,配置有Intel Xeon E5606 CPU、12G內(nèi)存、帶有1.5GB顯存的NVIDIA Quadro FX4800專業(yè)顯卡和Windows 7 Professional 64位操作系統(tǒng),圖4為運行的實例。
圖4 骨架模型運行實例
針對公安執(zhí)法動作虛擬訓練中虛擬人動作仿真及交互的需求,在考慮人體生理和公安執(zhí)法動作特性的基礎上,本文建立了肢體交互骨架模型,規(guī)定了模型的運動規(guī)則,并基于Creator及Vega實現(xiàn)了運動仿真,結果表明此方法降低了動作合成的復雜性,提高了動作合成的實時性,大大增強了沉浸效果,為公安執(zhí)法動作訓練提供了一條新的解決方案。但本模型不適合用于對復雜物體表面細致變化的運動表達,下一步研究工作將進行算法的優(yōu)化并完善反饋信息的表達,使之適用于更加復雜的運動及警用器械的仿真中。