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