文/陳曦 黃昌正 周言明 梁銘成 陳明
近些年來,隨著全球范圍內(nèi)虛擬現(xiàn)實(virtual reality,VR)商業(yè)化、普及化快速推進,VR 交互方式也由平面界面發(fā)展到虛擬空間追蹤交互,極其強調(diào)沉浸感,而要完全沉浸進入虛擬世界,動作捕捉系統(tǒng)必不可少,可以說動作捕捉技術(shù)是VR 產(chǎn)業(yè)隱形鑰。
VR 動作捕捉技術(shù)就是對真人進行實時地準確地測量并記錄在真實三維空間中的運動軌跡和姿態(tài),并將每一時刻運動狀態(tài)還原到虛擬三維空間中的過程,使虛擬角色的動作和表情能像真人一般自然逼真。
VR 中應(yīng)用的動作捕捉系統(tǒng)根據(jù)技術(shù)原理分為慣性動捕和光學(xué)動捕兩大類。光學(xué)動作捕捉系統(tǒng)是通過光學(xué)相機捕捉物體的連續(xù)運動圖像,通過圖像處理識別物體運動姿態(tài);慣性動作捕捉系統(tǒng) 是通過慣性傳感器捕捉運動物體的運動信息,通過航姿參考 系A(chǔ)HRS(attitude and heading reference system)解算獲得運動物體姿態(tài)信息。
光學(xué)動作捕捉與慣性動作捕捉兩種動作方案都存在一些缺點:光學(xué)動作方案容易因為遮擋導(dǎo)致丟失關(guān)鍵信息,而慣性傳感器會出現(xiàn)數(shù)據(jù)漂移而帶來誤差。針對上述兩種方案的問題,本研究提出采用慣性動作捕捉與無標(biāo)記光學(xué)視覺動作捕捉技術(shù)相結(jié)合對目標(biāo)人物進行動作捕捉(以下簡稱“光慣混合動捕”),在數(shù)據(jù)算法處理上把兩種動作捕捉數(shù)據(jù)進行相互融合補充,結(jié)合視覺信息中空間位置的準確性以及慣性傳感器的靈敏度高、動態(tài)性能好的特點,獲取更為精確的動作信息。
如圖1所示,光慣混合動捕主要由慣性動捕套件、深度攝像頭、無線數(shù)據(jù)收發(fā)單元以及計算單元組成。

圖 1 光慣動捕系統(tǒng)組件
慣性動捕套件(圖1中①)由多個慣性傳感器模組組成,每一個模組帶有獨立的供電模塊、無線傳輸模塊,可以維持一段時間內(nèi)的數(shù)據(jù)獲取及數(shù)據(jù)傳輸,利用慣性傳感器的高采樣率,可以得到實時的人體姿態(tài)數(shù)據(jù)。深度攝像頭(圖1中②)可以選用雙目攝像頭或是結(jié)構(gòu)光深度攝像頭,表演者無需事先安裝標(biāo)記點,僅從深度攝像頭獲取的圖像數(shù)據(jù)中檢測到表演者,通過人體姿態(tài)估計算法得到表演者的關(guān)節(jié)點三維坐標(biāo),進而得到整個人體模型。無線數(shù)據(jù)收發(fā)單元(圖1中③)用于接收所有慣性傳感器的數(shù)據(jù)以及深度攝像頭的圖像數(shù)據(jù),并轉(zhuǎn)發(fā)給中央主機,該設(shè)備保證了數(shù)據(jù)傳輸?shù)膶崟r性。計算單元(圖1中④)用來處理慣性動捕數(shù)據(jù)以及深度攝像頭的圖像數(shù)據(jù),通過對兩者數(shù)據(jù)的融合,得到更為準確的動作姿態(tài)數(shù)據(jù)。
整個過程中最為關(guān)鍵的步驟是兩種數(shù)據(jù)的融合,當(dāng)前采用經(jīng)典的卡爾曼濾波算法對兩者數(shù)據(jù)融合。相較于獨立的數(shù)據(jù)來源,融合后的數(shù)據(jù)一定程度消除了數(shù)據(jù)中的誤差,使數(shù)據(jù)更加準確和更有用。
如圖2所示光慣融合數(shù)據(jù)處理流程,慣性動捕數(shù)據(jù)需要對套件中N個傳感器數(shù)據(jù)組合為一幀(當(dāng)前使用了17個傳感器數(shù)據(jù)),并對N個傳感器數(shù)據(jù)根據(jù)校準數(shù)據(jù)進行修正,修正后的數(shù)據(jù)記做Q1,用以表示人體模型的骨骼姿態(tài)旋轉(zhuǎn)。
采用視覺人體姿態(tài)估計算法檢測出深度圖像數(shù)據(jù)中的表演者,并估計出表演者的關(guān)節(jié)點是三維坐標(biāo)以及坐標(biāo)的置信度值,將置信度高的關(guān)節(jié)點坐標(biāo)根據(jù)人體骨骼的相互連接關(guān)系,計算出骨骼的姿態(tài)旋轉(zhuǎn)值,記做Q2。

圖2 分級光學(xué)與慣性數(shù)據(jù)融合處理流程
由于慣性動捕數(shù)據(jù)的更新速度比視覺動捕數(shù)據(jù)快,因此將慣性動捕數(shù)據(jù)看作為卡爾曼濾波器中的預(yù)測數(shù)據(jù),而視覺動捕數(shù)據(jù)看作為觀測數(shù)據(jù)。
卡爾曼濾波器的操作包括兩個階段:預(yù)測與更新。預(yù)測階段,濾波器使用上一狀態(tài)的預(yù)測值(即慣性動捕數(shù)據(jù)Q1),作出對當(dāng)前狀態(tài)的預(yù)測;更新階段,濾波器利用當(dāng)前狀態(tài)的觀測值(即視覺動捕數(shù)據(jù)Q2)優(yōu)化在預(yù)測階段獲得的預(yù)測值,獲得更精確的估計值,即最終的姿態(tài)數(shù)據(jù)Q。由于視覺動捕數(shù)據(jù)的更新速度較慢的原因,當(dāng)視覺動捕數(shù)據(jù)未更新時,將采用上一幀的視覺動捕數(shù)據(jù)。
慣性動作捕捉是使用多個慣性傳感器準確地反映出人體的運動姿態(tài)。在姿態(tài)解算過程中涉及到的坐標(biāo)系分別有:載體坐標(biāo)系、導(dǎo)航坐標(biāo)系、骨骼坐標(biāo)系、世界坐標(biāo)系。載體坐標(biāo)系是指慣性傳感器物體本身的坐標(biāo)系,由傳感器模塊中IMU(inertial measurement unit)擺放的方式?jīng)Q定;導(dǎo)航坐標(biāo)系是指IMU 在融合了陀螺儀、加速度計、磁力計之后的原始坐標(biāo)系,當(dāng)前使用的IMU 采用的是“東北天”坐標(biāo)系作為導(dǎo)航坐標(biāo)系;骨骼坐標(biāo)系是指單個骨骼的坐標(biāo)系,每個肢體均有自己的骨骼坐標(biāo)系,該坐標(biāo)系在創(chuàng)建骨骼的時候決定;世界坐標(biāo)系是指一個虛擬的坐標(biāo)系,表演者在行走時參考的坐標(biāo)系(見圖3)。
慣性動捕姿態(tài)解算的目的是,利用慣性傳感器的姿態(tài)來獲得骨骼的局部坐標(biāo)系相對于世界坐標(biāo)系的姿態(tài)變化。簡而言之,就是把載體坐標(biāo)系轉(zhuǎn)換為世界坐標(biāo)系。

圖3 世界坐標(biāo)系與骨骼姿態(tài)坐標(biāo)系
在進行姿態(tài)解算前需要進行校準的工作,目的是確定導(dǎo)航坐標(biāo)系與世界坐標(biāo)系之間的轉(zhuǎn)換關(guān)系。校準的過程是表演者穿戴好慣性動捕套件,并作出規(guī)定的動作,例如Z-Pose 或I-Pose(如圖4),軟件將會記錄此時的傳感器數(shù)據(jù)。

圖4 Z-Pose(左)與I-Pose(右)

本次采用的 人體姿態(tài)估計算法采用自頂而下的 設(shè)計方式,即先檢測出多個人,再對每一個人進行姿勢估計。
首先采用ACNet(attention complementary Net)對深度圖像數(shù)據(jù)進行語義分割,其特點是采用集成了注意力機制的三平行分支架構(gòu)對彩色圖像和深度圖像分別采樣,并同時進行融合。兩個獨立分支根據(jù)每一層特征所包含的信息量設(shè)計多個注意力輔助模塊來平衡特征的分布,使網(wǎng)絡(luò)更加關(guān)注圖像的有效區(qū)域,第三個獨立分支用于融合彩色圖像特征和深度信息特征,最后經(jīng)過多次上采樣得到分割結(jié)果。三分支架構(gòu)和注意力輔助模塊較好地平衡了深度圖像數(shù)據(jù)中彩色圖像特征和深度圖像特征,可以得到一個較好的人物分割對象,為后續(xù)的關(guān)節(jié)點的檢測提供一個好的依據(jù)。
在檢測得到行人之后,通過CPM(convolutional pose machine)進行關(guān)鍵點的檢測。CPM 使用多階段順序化的卷積架構(gòu)來表達空間信息和紋理信息,在每一個階段下,輸出不同尺度的特征圖并計算各個關(guān)節(jié)點的響應(yīng)圖,對于每個關(guān)節(jié)點累加所有尺度的響應(yīng)圖得到總響應(yīng)圖,在每個關(guān)節(jié)點的總響應(yīng)圖上找出響應(yīng)最大的點,該點便是關(guān)節(jié)點位置坐標(biāo)及置信度。圖5展示的則是在深度圖像中,檢測并估計出的人體姿態(tài)模型。

圖5 利用深度攝像頭構(gòu)建的地圖以及識別到的表演者模型
該算法還在手部姿態(tài)估計上得到了應(yīng)用,并部署在手機等移動端上(如圖6)。

圖6 人體姿態(tài)計算法對移動端的手部姿態(tài)估計
卡爾曼濾波器由一系列遞歸數(shù)學(xué)公式描述,它提供了一種高效可計算的方法來估計過程的狀態(tài),并使估計均方誤差最小。卡爾曼濾波器應(yīng)用廣泛且功能強大:它可以估計信號的過去和當(dāng)前狀態(tài),甚至能估計將來的狀態(tài),即使并不知道模型的確切性質(zhì)。
在卡爾曼濾波預(yù)測步驟中,卡爾曼濾波算法會根據(jù)前期已采集數(shù)據(jù)計算出一個目前狀態(tài)的估計值,此估算值存在一定的不確定性;在更新步驟中,根據(jù)新采集數(shù)據(jù)結(jié)果(包括一定程度的隨機噪聲),使用加權(quán)平均來更新估計值,并賦予確定性更高的權(quán)重,使得更新的估計值更穩(wěn)定并與實際情況更接近。卡爾曼濾波算法可以在實時控制系統(tǒng)中執(zhí)行,僅使用當(dāng)前輸入測量值和先前計算的狀態(tài)及其不確定性矩陣即可,不需要其他以往的信息。
由于慣性動捕數(shù)據(jù)的更新速度相較于視覺動捕數(shù)據(jù)的更新速度更快,因此假定慣性動捕數(shù)據(jù)為卡爾曼濾波器中的預(yù)測數(shù)據(jù),視覺動捕數(shù)據(jù)作為卡爾曼濾波器中的觀測數(shù)據(jù)。每次在進行數(shù)據(jù)處理時,都會執(zhí)行卡爾曼濾波算法的兩個步驟,當(dāng)視覺動捕數(shù)據(jù)未及時更新時,則對上一次的數(shù)據(jù)進行更新。
需要注意的是,在卡爾曼濾波器中需要給定預(yù)測數(shù)據(jù)(慣性動捕數(shù)據(jù))以及觀測數(shù)據(jù)(視覺動捕數(shù)據(jù))的噪聲協(xié)方差矩陣,因此,在前期分別對兩種動捕方法獨立運行一段時間,表演者做單一動作或是規(guī)定的動作序列后,通過這段時間的數(shù)據(jù)與預(yù)期數(shù)據(jù)進行對比計算,得到兩種數(shù)據(jù)的噪聲協(xié)方差矩陣。
如圖7,是根據(jù)對慣性動捕和視覺動捕數(shù)據(jù)進行降維仿真實驗的結(jié)果,黑色曲線為慣性動捕的數(shù)據(jù),綠色曲線為視覺動捕數(shù)據(jù),黃色曲線為經(jīng)過卡爾曼濾波得到的實時數(shù)據(jù)。慣性動捕數(shù)據(jù)的更新時間約為視覺動捕數(shù)據(jù)更新時間的1/5,表演者的左臂做抬起和放下的動作,在骨骼坐標(biāo)系中的X軸上,數(shù)據(jù)理論上應(yīng)表現(xiàn)為與正弦函數(shù)相近,實際測量的結(jié)果如圖,而在經(jīng)過數(shù)據(jù)融合后可以看到數(shù)據(jù)隨著時間的推移,通過不斷的迭代趨于平滑,并與滿足理論數(shù)據(jù)基本相符。

圖7 慣性動捕數(shù)據(jù)與視覺動捕數(shù)據(jù)仿真
在實際操作中,將光學(xué)動作捕捉得到的數(shù)據(jù)與慣性動作捕捉得到的數(shù)據(jù)通過卡爾曼濾波器進行融合,使最終的數(shù)據(jù)更加穩(wěn)定且準確,在一定程度消除掉兩種傳感器的誤差數(shù)據(jù)并形成優(yōu)勢互補。
光學(xué)動作捕捉中,對比普通二維攝像頭,深度攝像頭在解決遮擋問題上雖然有很大的提升,但如果遮擋比較嚴重的時候依然會有較大的影響;同時,由于采用了深度學(xué)習(xí)的方案,對于硬件資源要求較高。
根據(jù)目前各大增強現(xiàn)實(AR)眼鏡設(shè)備發(fā)展情況看,AR 移動環(huán)境下的實時人體運動姿態(tài)捕捉與識別將是未來AR 交互的重要發(fā)展方向。在未來的工作中,希望可以對光學(xué)動作捕捉下的姿態(tài)估計算法作進一步提升,或者是隨著硬件資源的不斷升級,將計算單元改為移動設(shè)備,并與光學(xué)傳感器做成一個設(shè)備,結(jié)合SLAM(simultaneous localization and mapping, 同步定位與建圖)算法,在表演者運動的同時不斷移動設(shè)備,尋找更優(yōu)的拍攝角度,這樣既可解決遮擋問題,同時也能增加運動的空間范圍。