張 衡, 張澤宇
(西南大學計算機與信息科學學院,重慶400715)
基于MEMS傳感器和Unity3D的人體運動捕獲系統(tǒng)
張 衡, 張澤宇
(西南大學計算機與信息科學學院,重慶400715)
隨著人機交互技術(shù)的發(fā)展,人與計算機之間自然、多模態(tài)交互將成為人與計算機之間交互的主要方式,而這首先需要計算機可以正確地理解和捕捉人的行為特征,運動捕獲技術(shù)正是在這種背景下提出來。通過運動捕獲技術(shù),計算機可以理解人體動作,用戶就可以通過體態(tài)、方位、手勢和表情等模態(tài)向計算機發(fā)出指令、傳達信息等,因此運動捕獲是新一代人機交互中的關(guān)鍵技術(shù)之一。目前基于MEMS慣性傳感器的動作捕獲研究主要針對動漫和電影制作,價格昂貴;隨著傳感器的集成度變高,價格逐漸降低帶來了新的系統(tǒng)設(shè)計需求。在原有動作捕獲技術(shù)基礎(chǔ)上,設(shè)計并實現(xiàn)一種普適性更好的人體動作捕獲系統(tǒng)原型,原型系統(tǒng)實現(xiàn)了基于慣性傳感節(jié)點的人體運動信息的采集與融合、節(jié)點與匯聚節(jié)點的數(shù)據(jù)傳輸、虛擬人體模型實時動作呈現(xiàn)程序;實現(xiàn)了從數(shù)據(jù)測量到采集,再到模擬呈現(xiàn)的全過程。
MEMS慣性傳感器;人機交互;動作捕獲
當前,體感互動主要采用的傳感設(shè)備是動作捕獲系統(tǒng),主流設(shè)備分光學系統(tǒng)和慣性傳感系統(tǒng)兩類[1]。主流的光學動作捕捉系統(tǒng)由多臺高速紅外攝像機構(gòu)成,被測者需要全身佩帶捕捉標記,盡管捕獲精度高,效果好,但是使用復雜且價格昂貴[2-3]。典型產(chǎn)品是美國的 Vicon。這類產(chǎn)品主要應用于動漫、制作游戲。
最近幾年一種廉價、具有深度感知的光學動作捕獲裝置Kinect、LeapMotion的出現(xiàn),引發(fā)了體感互動熱潮,使得體感互動進入主流。這類光學捕獲裝置主要具有深度感知,采用結(jié)構(gòu)光、飛行時間或者雙目視覺技術(shù)[2-3]。文獻[3]以光學式捕捉技術(shù)為基礎(chǔ),提出了完整的動作捕獲、處理與虛擬動作重構(gòu)方案。文獻[4]借助Kinect,設(shè)計了基于深度信息的動作捕獲方法,所設(shè)計的示教系統(tǒng)能較精確地重現(xiàn)人體的三維動作并對學員的動作缺陷給出合理的提示。文獻[5]在運動圖像信息成功捕獲的基礎(chǔ)上,研究了動作的精確識別方法,在運動數(shù)據(jù)的關(guān)鍵幀提取、動作識別與運動分割以及帶拒識能力的連續(xù)動作識別3個方面展開深入工作,提高了動作捕獲系統(tǒng)的準確性。此外,國內(nèi)外商家也基于光學動作捕獲技術(shù)開發(fā)了一系列體感互動游戲、健身、設(shè)備操控等產(chǎn)品。但是,光學類動作捕獲設(shè)備普遍具有范圍、遮擋、戶外、光線、高速移動和人數(shù)等限制。
動作捕獲的另一類技術(shù)和產(chǎn)品是基于慣性傳感的動作捕獲系統(tǒng)。典型的系統(tǒng)有XSensMVN,由于價格較貴,使得該產(chǎn)品與Vicon一樣成為少數(shù)特殊單位的應用“專利”。中科院研究生院等單位研制的MMocap與Xsens公司相似,取得了非常好的成績,如果能夠打開市場,將是XSensMVN競爭產(chǎn)品。同時,文獻[6]和[7]在慣性傳感技術(shù)的基礎(chǔ)上,著重研究了新型的數(shù)據(jù)采集與動作分析方法,通過進一步分析處理所得的動作數(shù)據(jù),實現(xiàn)了人體運動姿態(tài)的重構(gòu),對完整的慣性傳感動作捕獲系統(tǒng)進行了深入探索。文獻[8]提出了將慣性傳感節(jié)點佩帶在身上完成數(shù)據(jù)采集的方法,解決了光學式動作捕獲成本高的問題,降低了動作捕獲系統(tǒng)的成本和使用復雜度。另外,也有許多其他研究機構(gòu)和公司都在前幾年開展了相關(guān)研究,如國家體育總局、北京諾亦騰公司等,都取得較好的成績。
隨著MEMS器件的集成度越來越高,應用點越來越廣,出現(xiàn)對基于MEMS傳感器的動作捕獲系統(tǒng)的新需求,即價格相對較低、靈活性較強,受眾的使用范圍更多更廣。文獻[9]和[10]闡述了在基于MEMS傳感器技術(shù)的人體動作捕獲研究中的成果。文獻[9]通過單傳感器節(jié)點動作效果檢測和人體動作捕獲的實驗設(shè)計,驗證了所設(shè)計的人體動作捕獲裝置原理的正確和工作性能的穩(wěn)定可靠,為人體動作捕獲的后續(xù)算法研究提供了一套完整的硬件平臺。文獻[10]則基于MEMS傳感器芯片的小型化、結(jié)構(gòu)簡單化進行了探索,并實現(xiàn)了完整的體感信息采集與動作重現(xiàn),但存在可擴展性及精確性不足的問題。文獻[11]提出了MEMS傳感器數(shù)據(jù)與人體運動關(guān)節(jié)相對應的標定方法并分析了傳感器采集數(shù)據(jù)存在誤差的原因,以互補濾波器方法提高了運動數(shù)據(jù)的精度。文獻[12]以共享數(shù)據(jù)文件的方式實現(xiàn)了動作數(shù)據(jù)在模擬程序中的實時呈現(xiàn),并證明了該方法的準確性與便捷性,但該方法在靈活性上存在缺陷。文獻[13]對多傳感節(jié)點的協(xié)同工作進行了研究,針對節(jié)點通信的抗干擾能力進行重點改善,實現(xiàn)了多傳感節(jié)點通時裝備條件下的可靠工作。文獻[14]和[15]同樣圍繞動作捕獲與重現(xiàn)的精確性進行了改善,分別提出了基于數(shù)據(jù)融合思想的擴展卡爾曼濾波方法以及多層次的數(shù)據(jù)融合算法,為動作捕獲系統(tǒng)消除誤差,提高采集數(shù)據(jù)精度具有指導意義。
由于人體運動捕獲具有立體呈現(xiàn)和與虛擬現(xiàn)實相融合的特點,必不可少地要用到后臺呈現(xiàn)或展示平臺。Unity3D可以直接使用3DSMax的max、Maya的.md等大多數(shù)建模格式。Unity3D還有優(yōu)秀的設(shè)計環(huán)境、方便快捷的設(shè)計流程、易于操作的場景編輯器,目前成為3D游戲和虛擬仿真項目優(yōu)先選擇的引擎,已廣泛被應用于三維游戲、虛擬現(xiàn)實和Web3D等眾多領(lǐng)域。
1.1 信息輸入部分的結(jié)構(gòu)組成
信息輸入部分的硬件部分主要由微處理器+傳感器件組合,基本結(jié)構(gòu)如圖1所示。
三軸加速度傳感器是一種基于慣性原理測量加速度的電子設(shè)備。大多數(shù)加速度傳感器是根據(jù)壓電效應的原理來工作的。壓電效應是指對于不存在對稱中心的異極晶體加在晶體上的外力除了使晶體發(fā)生形變以外,還將改變晶體的極化狀態(tài),在晶體內(nèi)部建立電場。加速度傳感器利用加速度造成晶體變形、晶體變形又會產(chǎn)生電壓的特性,計算產(chǎn)生電壓和所施加的加速度之間的關(guān)系,將加速度轉(zhuǎn)化成電壓輸出。根據(jù)加速度傳感器的具體實現(xiàn)方式,可分為壓電式、壓阻式、電容式和伺服式,其中使用MEMS微機電系統(tǒng)工藝的三軸加速度傳感器在體積、價格和市場占有率方面具有明顯優(yōu)勢。系統(tǒng)使用三軸加速度計獲取人體動作的三維方向的加速度,從而獲取人體動作在三維方向的位移運動。
圖1 信息傳輸功能部分硬件結(jié)構(gòu)圖
三軸陀螺儀傳感器是測量物體角速度的傳感器。常見的MEMS陀螺儀有雙平衡環(huán)結(jié)構(gòu)、懸臂梁結(jié)構(gòu)、音義結(jié)構(gòu)和振動環(huán)結(jié)構(gòu)等,通過被激勵的振動體對哥氏加速度的敏感測量角速度,具有很高的分辨率、靈敏度、抗干擾能力和測量范圍。系統(tǒng)使用三軸陀螺儀傳感器測量人體動作在各個軸向的角速度,從而獲取人體動作的旋轉(zhuǎn)運動。
三軸電子羅盤傳感器,又稱三軸數(shù)字羅盤傳感器,在現(xiàn)代技術(shù)條件中作為導航儀器或姿態(tài)傳感器已被廣泛應用。電子羅盤與傳統(tǒng)指針式和平衡架結(jié)構(gòu)羅盤相比能耗低、體積小、重量輕、精度高、可微型化。目前,廣為使用的MEMS三軸電子羅盤傳感器具有抗搖動和抗振性、航向精度較高和對干擾場有電子補償、可以集成到控制回路中進行數(shù)據(jù)鏈接等優(yōu)點,因而廣泛應用于航空、航天、機器人、航海測量和導航等領(lǐng)域。此外,三軸電子羅盤克服了平面電子羅盤在使用中的嚴格限制,因為三軸電子羅盤傳感器在其內(nèi)部加入了傾角傳感器,如果電子羅盤發(fā)生傾斜時可以對羅盤進行傾斜補償,這樣即使發(fā)生傾斜,測量數(shù)據(jù)依然準確無誤。系統(tǒng)使用三軸電子羅盤實現(xiàn)三維方向的確定。
人體動作捕獲節(jié)點設(shè)計是基于微處理器為核心的嵌入式系統(tǒng),微處理器通過數(shù)字總線1獲取傳感器的原始運動數(shù)據(jù),對傳感器采集的原始運動數(shù)據(jù)進行處理,然后將處理后的數(shù)據(jù)由數(shù)字總線2傳給通信芯片,再經(jīng)過對數(shù)據(jù)的處理無線發(fā)送出去。數(shù)字總線1實際上是SPI總線,該總線能對傳感器數(shù)據(jù)進行讀取然后傳輸給微處理器,SPI一共有4條線;CS、SCLK、DI和DOUT。CS為選擇線,只有在CS為低電平時,芯片才接受SPI上的數(shù)據(jù)或向SPI總線發(fā)送數(shù)據(jù)。SCLK是時鐘控制線,因為在SPI下傳輸數(shù)據(jù)是一位一位的傳輸,因此需要SCLK提供時鐘脈沖,進行時鐘控制。DI為數(shù)據(jù)輸入線,DOUT為數(shù)據(jù)輸出線,這兩條線是基于SCLK提供的時鐘控制,發(fā)送或接收數(shù)據(jù)。數(shù)字總線2是異步串行總線,設(shè)計為微處理器和通信芯片的串口(UART)通信,該總線使用一根線TX發(fā)送數(shù)據(jù)的同時用另一根線RX接收數(shù)據(jù),實現(xiàn)按位的數(shù)據(jù)傳輸,使用時需要設(shè)置波特率、數(shù)據(jù)位、停止位和校驗位,設(shè)置串口后即可實現(xiàn)微處理器和無線芯片的數(shù)據(jù)傳輸。
具體的節(jié)點實物如圖2所示。
圖2 節(jié)點實物圖
1.2 信息輸入部分捕獲人體動作的原理
人體動作主要分為定向運動和旋轉(zhuǎn)運動。陀螺儀是測量物體角速度的傳感器,當陀螺儀隨物體運動時,陀螺儀能夠測量物體繞各個軸轉(zhuǎn)動的角速度,通過對角速度進行積分運算,就能得到物體旋轉(zhuǎn)的角度。短時間內(nèi),陀螺儀測量具有較高的精度,但陀螺儀容易受振動等因素的影響而引入測量噪聲,且陀螺儀的輸出存在漂移,漂移隨著時間、溫度及其他隨機因素而變化,通過積分會使測量誤差變大,因此陀螺儀不適合長時間的動態(tài)角度測量。另外,陀螺儀只能用于運動物體的角度測量,如果物體的初始位置存在一定的傾角,則陀螺儀無法感知。使用加速度計測量物體的加速度,當加速度計靜止時,其輸出為重力加速度在各個軸上的分量,裝有加速度計的物體的傾角發(fā)生變化時,加速度計的輸出也會隨之變化,根據(jù)這一原理,通過測量加速度計各軸的輸出便可以得出物體的傾角。對于靜止物體而言,加速度計測量的角度十分準確。但是,一旦物體運動,會在加速度計相應的敏感軸引入除重力以外的加速度(除非物體處于勻速運動狀態(tài)),此時傾角的計算將會因物體運動的加速度影響而變得不準確,實際應用中,物體不可能長時間做勻速運動,因此加速度計不適合用于測量運動物體的傾角。
從上面的分析不難看出,陀螺儀和加速度計具有互補性:加速度計可以測量靜止物體的傾角并具有較高的準確性;陀螺儀可以測量動態(tài)物體的角速度并在短時間內(nèi)具有較高的準確性。本系統(tǒng)設(shè)計正是利用其互補性來捕獲人體動作,另外使用三軸電子羅盤確定絕對方向。
1.3 信息輸入部分的無線傳輸
藍牙技術(shù)是一種支持設(shè)備短距離通信的無線電技術(shù)。其最大的特點就是利用近距離的無線連接為通訊設(shè)備終端建立統(tǒng)一的無線連接,從而實現(xiàn)設(shè)備間無線通訊的目的。藍牙技術(shù)的通訊工作頻段選在全球通用的2.4 GHz ISM頻段,該頻段允許用戶在4~20 dBm范圍內(nèi)施行功率控制,有效的傳輸范圍為10~100M,這樣的傳輸距離對于動作捕捉系統(tǒng)可以完全滿足要求。同時藍牙采用的是 TDMA傳輸模式,能夠以0.625 μs時隙進行數(shù)據(jù)傳輸,傳輸?shù)乃俾士蛇_1Mb/s。此外,藍牙技術(shù)中采用了跳頻技術(shù),其可以提高整個傳輸系統(tǒng)的抗干擾能力。對于基于MEMS傳感器的動作捕捉系統(tǒng),傳感器的采樣頻率為819.2SPS,每個數(shù)據(jù)占2個字節(jié),那么15個傳感器的數(shù)據(jù)傳輸量約為25 KB/s,藍牙已足以對其進行傳輸處理。此外藍牙的傳輸距離為 10M,能夠滿足在室內(nèi)進行人體動作捕獲要求,同時藍牙對串口傳輸提供了友好的支持,因此動作捕捉系統(tǒng)中無線數(shù)據(jù)傳輸將利用藍牙來實現(xiàn)無線數(shù)據(jù)傳輸。
藍牙4.0目前已經(jīng)得到了廣泛的應用, 藍牙4.0實際是個三位一體的藍牙技術(shù),它將3種規(guī)格合而為一,分別是傳統(tǒng)藍牙、低功耗藍牙和高速藍牙技術(shù),這3個規(guī)格可以組合或者單獨使用。系統(tǒng)設(shè)計使用藍牙4.0的無線通信,在無線傳輸實時性、可靠性和低功耗性方面相比其他無線通信有極大優(yōu)勢。
在人體動作數(shù)據(jù)被成功采集并傳輸?shù)幕A(chǔ)上,為了實現(xiàn)對3D人體模型的精確控制,需要對人體動作原始數(shù)據(jù)進行進一步的處理,主要包括信息融合與糾偏和坐標變換。
2.1 信息融合與糾偏
傳感器在數(shù)據(jù)采集過程中難免會出現(xiàn)數(shù)據(jù)的誤差。一方面,使用陀螺儀傳感器對人體姿態(tài)進行測量時,在計算過程中存在誤差累加的可能,導致姿態(tài)數(shù)據(jù)逐漸偏離可修正范圍;另一方面,使用加速度計與磁場計測量肢體運動過程,會受到運動加速度的干擾,無法提供精確的數(shù)據(jù)[9]。因而,本文將以上方式得到的測量結(jié)果通過擴展卡爾曼濾波進行融合,充分發(fā)揮使用多種測量方法的優(yōu)勢,以達到減少測量誤差,提高測量數(shù)據(jù)精度的目的。
擴展卡爾曼濾波技術(shù)被認為是一種高濾波性能與小計算量兼得的濾波技術(shù)[14],在本文中,使用的擴展卡爾曼濾波函數(shù)集包括:
(1) 狀態(tài)一步預測函數(shù):
(2) 一步預測均方誤差函數(shù):
(3) 濾波增益函數(shù):
(4) 狀態(tài)估計函數(shù):
(5) 估計均方誤差:
其中,O表示最優(yōu)化的輸出值估計矩陣,S指代狀態(tài)轉(zhuǎn)移矩陣;X為原始測量值矩陣;K表示卡爾曼濾波增益矩陣;N表示測量噪音矩陣;M表示過程噪音矩陣;P表示偏微分矩陣;C為協(xié)方差矩陣。下標 t 表示時刻t;t/t–1表示由時刻t–1計算出來的時刻 t 的值。
2.1.1 濾波狀態(tài)向量的選取
卡爾曼濾波技術(shù)可分為直接法與間接法兩種,由于間接法所使用的狀態(tài)向量均為誤差量,故誤差估計的準確性較高,因而本文選擇間接法進行數(shù)據(jù)處理[10]。
空間姿態(tài)的表示方面,本文選用四元數(shù)進行數(shù)據(jù)表示,在實現(xiàn)全姿態(tài)表述的基礎(chǔ)上,降低了運算量,同時也使得三維空間變換信息的求解過程得以簡化。
在獲得傳感節(jié)點采集到的四元數(shù)之后,通過間接卡爾曼濾波方法,以7維向量作為狀態(tài)向量,如式(6)所示。該向量的前四維數(shù)據(jù)是四元數(shù)的各個成員,余下三維表示由加速度計和地磁儀數(shù)據(jù)對陀螺儀數(shù)據(jù)融合濾波后計算得到的陀螺儀各軸的誤差量。
根據(jù)上述,最終求得的濾波狀態(tài)向量為:
2.1.2 狀態(tài)更新值的計算
對陀螺儀輸出數(shù)據(jù)進行校準時,令V=(vx, vy, vz)表示實際旋轉(zhuǎn)向量,G=(gx, gy, gz)代表陀螺儀的輸出數(shù)據(jù),E=(ex, ey, ez)表示誤差數(shù)據(jù),以上三者之間的關(guān)系可表示為:
在得到校準數(shù)據(jù)之后,與濾波狀態(tài)向量相結(jié)合,得到的狀態(tài)預測方程表示為:
其中,(q0,Q1,Q2,Q3)T表示為當前時刻的狀態(tài)更新值,而表示為(q0,Q1,Q2,Q3)T前一時刻的狀態(tài)更新值。
2.1.3 得到均方誤差矩陣
鑒于系統(tǒng)的離散特點,慣性傳感單元的測量工作需要以Δt(Δt足夠小)為周期進行更新,以確保數(shù)據(jù)精度,則卡爾曼濾波的狀態(tài)方程為:
其中,Gn代表陀螺儀輸出的角速度。方程f代表式(8)~(9)的連續(xù)處理,則f對狀態(tài)向量各成員求偏導數(shù)形成的偏微分矩陣S與過程噪音矩陣M及初始值Ct–1相結(jié)合構(gòu)成的預測均方誤差矩陣如式(2)所示,其中M表示陀螺儀的精度誤差均方矩陣,其獲取可由傳感器對某固定量測量并進行數(shù)字特征計算得到。
2.1.4 確定狀態(tài)預測值
卡爾曼濾波的基本原理是通過計算卡爾曼濾波增益更新均方誤差矩陣和估計向量。為了計算濾波增益,需要建立觀測模型,即求出濾波增益方程中的狀態(tài)向量 P 矩陣,通過 P 矩陣金科建立均方誤差與觀測值之間的聯(lián)系,進而實現(xiàn)由加速度計和磁場計數(shù)據(jù)協(xié)同完成的姿態(tài)陣更新。
(1) 建立一個參考坐標系,該參考系的X軸正方向指向北方,Y軸正方向指向東方,Z軸指向地心。通過重力加速度在該坐標系上投影,以及地磁在水平面與豎直平面上的分量,可以得到重力加速度和地磁場的觀測函數(shù)集,在通過與加速度計和磁場測量的實際結(jié)果進行校準,可以分別求得重力加速度與地磁場觀測矩陣的雅可比矩陣,分別記為Pja和Pjm。
(2) 將Pja、Pjm分別代入式(3),即可計算出重力加速度濾波增益Ka和地磁濾波增益Km。將Ka作為參數(shù),應用到式(4)~(5)中,即可得到矯正Roll和Pitch航向角的狀態(tài)估計方程與加速度計的均方誤差估計函數(shù);同理,將Km應用到式(4)~(5)中,可計算出Yaw航向角的狀態(tài)估計方程以及磁場計的均方誤差估計函數(shù)。經(jīng)過矯正與估計后,最終求得的Ot即是7維濾波狀態(tài)向量在當前時刻的預測值,計算結(jié)果Ct即是加速度計與磁場計的測量均方誤差。綜合上述,在對Roll、Pitch、Yaw進行矯正的過程中,狀態(tài)向量的后三維也得到了更新。
2.2 坐標變換
為了精確地在3D模型上呈現(xiàn)出人體動作,需要選擇合適的坐標系作為參考,故需要對采集到的運動數(shù)據(jù)進行坐標變換。通過動作數(shù)據(jù)驅(qū)動3D模型的過程中,需要用到地磁坐標系、位于人體運動關(guān)節(jié)的傳感器節(jié)點坐標系以及虛擬人體模型所處的3D空間坐標系。
地磁坐標系通常選擇以地心為原點,X軸與Y軸位于赤道平面上,相互垂直;而Z軸則以地磁場中朝向北極的方向為正方向。在驅(qū)動模型過程中,由于地磁坐標系的影響,使得傳感節(jié)點傳遞給上位機的采集數(shù)據(jù)存在與運動信息無關(guān)的初始值,因而在3D模型驅(qū)動初始化階段,需要對模型進行標定,以消除地磁坐標數(shù)據(jù)對運動呈現(xiàn)的影響。
傳感器坐標系用來表示傳感節(jié)點在不同方向上測量到的運動數(shù)據(jù)的量化數(shù)值及運動角度信息。在使用這些運動數(shù)據(jù)驅(qū)動虛擬模型時,傳感器坐標系需要與虛擬人體關(guān)節(jié)在3D空間中的局部坐標系相對應。
3D空間坐標系可分為局部坐標系與全局坐標系。對本文所述3D人體模型而言,每個可運動關(guān)節(jié)都擁有一個局部坐標系,標識該關(guān)節(jié)以自身為參考的相對運動;而全局坐標系則用以確定各個關(guān)節(jié)在完整虛擬空間中的絕對位置。
不同坐標系間的坐標變換通常由旋轉(zhuǎn)變換和平移變換結(jié)合而成。旋轉(zhuǎn)變換就是通過與旋轉(zhuǎn)矩陣相乘將某點坐標轉(zhuǎn)換到目標坐標系下,計算出該點在旋轉(zhuǎn)之后的坐標;而坐標平移則是指在原坐標數(shù)據(jù)的基礎(chǔ)上加上平移向量。
本文所使用的傳感節(jié)點采集數(shù)據(jù)以四元數(shù)的形式表示,以旋轉(zhuǎn)一個空間向量為例說明四元數(shù)形式下的坐標旋轉(zhuǎn)變換:向量(x, y, z)的四元數(shù)表示法為(0, x, y, z),記為T;即設(shè)置四元數(shù)的實部值為0,其余坐標信息填寫到四元數(shù)中相應位置。同時,設(shè)記錄旋轉(zhuǎn)信息的四元數(shù)為Q,通過四元數(shù)信息實現(xiàn)旋轉(zhuǎn)的公式為:
T ′指代旋轉(zhuǎn)后的四元數(shù),Q–1表示旋轉(zhuǎn)數(shù)四元數(shù)的逆,×表示四元數(shù)乘法;四元數(shù)的乘法不滿足交換律,旋轉(zhuǎn)時需嚴格按照式(11)進行計算。
3D空間中的平移變換直接以三維向量的形式進行計算:設(shè)P(x, y, z)為待平移的坐標,平移向量ΔP(Δx,Δy,Δz),P′指代平移后的坐標,則坐標平移變換的計算公式為:
以肘關(guān)節(jié)采集的旋轉(zhuǎn)數(shù)據(jù)驅(qū)動人體模型前臂為例,主要包括以下幾個環(huán)節(jié):
(1) 人體姿態(tài)的初始化。為了確保各關(guān)節(jié)運動信息的準確性,需要人體配合呈初始化姿態(tài):雙腳并攏,目視軀體正前方,手臂平展與兩肩同高,五指并攏伸直,掌心向下,呈“T”形。
(2) 運動關(guān)節(jié)的初始化標定。計算出肘關(guān)節(jié)相對于全局坐標系原點的平移量,以向量形式表示,記為T,對T求反,記為–T并保存。
人體保持初始化姿態(tài)下,肘關(guān)節(jié)傳感節(jié)點所采集的第一組運動數(shù)據(jù)將作為對應關(guān)節(jié)的輔助標定數(shù)據(jù),記為I。如前文所述,I記錄的數(shù)據(jù)是人體在靜止狀態(tài)下,肘關(guān)節(jié)傳感節(jié)點受地磁影響的數(shù)據(jù)。為了消除地磁的影響,對I求逆,記為I–1并保存。以此為基礎(chǔ),肘關(guān)節(jié)的后續(xù)運動數(shù)據(jù)在上位機端與I–1相乘,即可消除地磁對采集數(shù)據(jù)造成的影響。
(3) 局部坐標系下的旋轉(zhuǎn)變換。新的肘關(guān)節(jié)運動數(shù)據(jù)到來時,首先與I–1相乘消除地磁影響,然后根據(jù)式(11)進行肘關(guān)節(jié)的旋轉(zhuǎn)與腕關(guān)節(jié)新坐標的計算。
(4) 全局坐標系下的平移變換。通過之前保存的逆向平移矩陣–T,計算出在全局坐標系下的腕關(guān)節(jié)的準確坐標值。
按照上述過程,遵循“先處理父節(jié)點,再處理子節(jié)點”的原則,即可實現(xiàn)3D模型的完整動作驅(qū)動過程。
3.1 平臺及工具介紹
在3D呈現(xiàn)程序的具體實現(xiàn)過程中,本文選擇Unity3D作為開發(fā)工具。Unity3D支持目前主流的OPENGL和DirectX技術(shù),具有優(yōu)秀的設(shè)計環(huán)境、方便快捷的設(shè)計流程和易于操作的場景編輯器,并能夠良好支持主流3D模型文件(如.max文件、.fbx文件等),同時,其多平臺應用支持等優(yōu)良特性使其逐漸成為 3D游戲和虛擬仿真項目優(yōu)先選擇的引擎,廣泛被應用于三維游戲、虛擬現(xiàn)實和 Web3D等眾多領(lǐng)域。
建模方面,本文設(shè)計過程中使用了內(nèi)容形式豐富且具有良好平臺支持性的.fbx文件格式,.fbx格式來源于Motion Builder,該軟件是三維動作設(shè)計制作軟件。.fbx文件為不同三維建模軟件間進行的模型、材質(zhì)、動作、攝影機信息和燈光信息的相互導入與導出提供了非常靈活的支持。對Unity3D引擎而言,使用.fbx作為模型文件格式,保證了Unity3D引擎與其他3D建模工具之間的良好交互性。
3.2 Unity3D引擎中的模型導入
Unity3D為模型設(shè)置提供了諸多便利的功能。如節(jié)點的鎖定、整體剛性的設(shè)置及肢體動作幅度的設(shè)定等。
為了保證呈現(xiàn)效果,本文使用的人體模型選擇了16處運動部位進行標記,如圖3所示。
圖3 人體運動部位結(jié)構(gòu)設(shè)計圖
在Unity3D引擎中,借助Avatar動畫系統(tǒng),使得運動部位節(jié)點分布情況以更直觀、更形象的方式呈現(xiàn)(見圖4)。
圖4 Unity3D中的運動部位結(jié)構(gòu)圖
為了保證模型動作的合理性,需要根據(jù)人體運動基本原理對各個虛擬關(guān)節(jié)的運動幅度進行設(shè)置,進而避免出現(xiàn)扭曲的肢體動作。Unity3D引擎中同樣提供了直觀的設(shè)置界面。如圖5所示。
圖5 Unity3D中的關(guān)節(jié)運動幅度設(shè)置界面
3.3 實時動作信息的呈現(xiàn)
實時動作的呈現(xiàn)具有靈活性大、實時性要求高等特點,以往的呈現(xiàn)方法難以提供全面的支持。Unity3D引擎與Mono開發(fā)平臺相結(jié)合,為不同操作系統(tǒng)下的開發(fā)者提供了C#、JavaScript等多種主流開發(fā)技術(shù)的支持。開發(fā)者通過自己熟悉的開發(fā)語言,以腳本的形式,實現(xiàn)數(shù)據(jù)傳輸、數(shù)據(jù)加工、模型控制等不同環(huán)節(jié)的功能需求,使得代碼的可移植性與可維護性得到提升。
在Unity3D中,人體運動部位模型的各個關(guān)節(jié)以“層次樹”的形式進行了直觀展示。開發(fā)者可以通過各關(guān)節(jié)所對應的關(guān)節(jié)名稱直接在腳本中獲取各個關(guān)節(jié)對象進行針對性的操作(如圖6)。
圖6 Unity3D中的層次化骨骼關(guān)節(jié)結(jié)構(gòu)圖
針對所需要進行的不同坐標系間的坐標變換工作,Unity3D引擎提供了豐富的API函數(shù),使得坐標變換等復雜的數(shù)據(jù)處理工作得以簡化,完成效率得到提高。
在實現(xiàn)運動肘部旋轉(zhuǎn)整個前臂的模擬呈現(xiàn)中,通過將節(jié)點固定在肘部,實現(xiàn)對肘部運動信息的采集。同時,在 Unity3D引擎中,通過 GameObject類中的 Find()方法,獲得對指定名稱關(guān)節(jié)的控制對象,進而具備了在單一關(guān)節(jié)上應用運動數(shù)據(jù)的能力。
為了明顯地展示模型驅(qū)動效果,在實驗過程中,在保持全身其他關(guān)節(jié)靜止的狀況下,針對性地對肘部關(guān)節(jié)進行處理。3D呈現(xiàn)效果與真實的人體動作效果的對比見圖7~8。
本文以MEMS傳感相關(guān)技術(shù)為理論基礎(chǔ),以最新的價格低廉的集成電子模塊為實驗基礎(chǔ),實現(xiàn)了基于多傳感器節(jié)點的人體運動信息的采集與融合、節(jié)點與匯聚節(jié)點的數(shù)據(jù)傳輸、虛擬人體模型實時動作呈現(xiàn)程序;實現(xiàn)了從數(shù)據(jù)測量到采集,再到精確模擬呈現(xiàn)的全過程。提出了陀螺儀與空間羅盤同時測量,并借助擴展卡爾曼融合濾波技術(shù)實現(xiàn)人體動作信息精確采集的方案。根據(jù)實驗結(jié)果,該方案的測量精度與性能較單一傳感技術(shù)的采集結(jié)果有明顯地提高,比目前主流的基于MEMS傳感器的人體運動捕獲系統(tǒng)更具性價比,普適性更好。同時,與目前新興的3D圖形引擎相結(jié)合,設(shè)計實現(xiàn)了具有良好呈現(xiàn)精度與跨平臺特性的實時人體動作呈現(xiàn)程序。
圖7 上抬前臂動作的呈現(xiàn)效果
圖8 前臂向下旋轉(zhuǎn)的呈現(xiàn)效果
[1] 劉劍鋒. 虛擬環(huán)境下幾種三維交互技術(shù)的研究[D]. 杭州: 浙江大學, 2010.
[2] 李曉丹, 肖 明, 曾 莉. 人體動作捕捉技術(shù)綜述以及一種新的動作捕捉方案陳述[J]. 中國西部科技, 2011, 10(15): 35-37.
[3] 孫新領(lǐng), 李揚波, 馬紹惠. 光學式運動捕捉技術(shù)在人體動畫中的應用研究[J]. 河南機電高等專科學校學報, 2013, 21(3): 17-19, 23.
[4] 譚艾迪, 曾 明. 基于深度信息探測的三維動作重建與分析[J]. 江西科學, 2013, 31(5): 682-686.
[5] 蔡美玲. 三維人體運動分析與動作識別方法[D]. 長沙:中南大學, 2013.
[6] 侯祖貴. 基于慣性傳感器的人體動作分析與識別[D].哈爾濱: 哈爾濱工程大學, 2013.
[7] 蹇 彪. 基于慣性傳感器的人體運動姿態(tài)三維重構(gòu)[D].哈爾濱: 哈爾濱工程大學, 2013.
[8] 李啟雷, 金文光, 耿衛(wèi)東. 基于無線慣性傳感器的人體動作捕獲方法[J]. 浙江大學學報: 工學版, 2012, 16(2): 280-285.
[9] 饒 勇. 基于傳感網(wǎng)絡(luò)的人體動作捕獲裝置設(shè)計與實現(xiàn)[D]. 成都: 電子科技大學, 2013.
[10] 龔 勇. 基于多傳感器節(jié)點的人體動作捕獲系統(tǒng)設(shè)計與實現(xiàn)[D]. 成都: 電子科技大學, 2013.
[11] 劉 博. 基于MEMS傳感器的動作捕捉系統(tǒng)開發(fā)設(shè)計[D]. 北京: 北京理工大學, 2011.
[12] 趙正旭, 戴 歡, 趙文彬, 等. 基于慣性動作捕捉的人體運動姿態(tài)模擬[J]. 計算機工程, 2012, 38(5): 5-8.
[13] 劉曉祥. 基于加速度傳感器的動作捕捉系統(tǒng)的研究[D].長春: 吉林大學, 2011.
[14]Suh YS. Orientation estimation using a quaternion-based indirect Kalman filter with adaptive estimation of external acceleration [J]. IEEE Transactions on Instrumentation andMeasurement, 2010, 59(12):3296-3305.
[15] Zhang Zhiqiang, Wu Jiankang. A novel hierarchical information fusionMethod for three-dimensional upper limbMotion estimation [J]. IEEE Transactions on Instrumentation andMeasurement, 2011, 60(11):3709-3719.
HumanMotion CaptureSystem Based onMEMSSensors and Unity3D
Zhang Heng, Zhang Zeyu
(School of Computer and InformationScience,Southwest University, Chongqing400715, China)
A natural, flexible way for human beings to interact with computers isMain goal to human-computer interaction technology, which is remarkably developing. This goal requires computers capture and understand human?sMotion precisely, under this background,Motion capture technology was proposed. As future goal, computer users couldSend information, commands to computers not only by clicking and typing, but also by gesture, facial expression and other body expressions. To achieve this,Motion capture technology is definitely indispensable. Currently existingMotion captureSystemsMostly work for 3D video, which have high costs. However, the improving integration ofMEMSSensor brings lower cost andMore demands toMotion captureSystems. With integrating existing technologies, this paper proposes a universalMotion capture prototype, which implements the complete process from dataMeasuring, transmitting toMotionSimulating presence based on inertialSensor nodes.
MEMSSensor; human-computer interaction;Motion capture
TP 391.4
A
2095-302X(2015)02-0274-08
2014-08-11;定稿日期:2014-08-20
中央高校基本科研業(yè)務費專項資金資助項目(SWU113066, XDJK2015C023, XDJK2012C019);2014Google產(chǎn)學合作專業(yè)綜合改革資助項目(20710164)
張 衡(1976–),男,安徽廬江人,副教授,博士。主要研究方向為可穿戴計算、人機交互、無線感知網(wǎng)。Email:dahaizhangheng@163.com