史衛(wèi)亞 張洪超
河南工業(yè)大學 信息科學與工程學院,河南鄭州 450001
動作捕捉是一種對人體動作進行數字化記錄和動作重現的技術[1]。人體動作捕捉技術經常被應用到電影、動漫、游戲的制作中[2],還可以應用到醫(yī)療診斷、姿態(tài)矯正、醫(yī)療康復輔助[3]、動作分析和動作識別等方面。
動作捕捉技術可分為光學式、機械式、電磁式、聲學式以及慣性傳感式[4]。目前,主流的技術主要采用光學式和慣性傳感式這兩種方式。光學系統(tǒng)捕捉人體動作精度高、實施性好,但是使用復雜并且價格昂貴。慣性傳感器動作捕捉系統(tǒng)只需要在身體指定的關節(jié)佩戴傳感器就可以完成動作數據的采集。雖然慣性傳感器能夠非常精確地測量每個關節(jié)的旋轉,但是并不能實現人體精確的位移。
根據以上分析,提出了一種結合慣性傳感器和超寬帶定位系統(tǒng)的人體動作捕捉的方法。該方法在非視距條件下輔助超寬帶進行定位,使用慣性傳感器的加速度計估計位置信息。實驗表明該方法可以有效地提高系統(tǒng)的定位精度。
慣性傳感器動作捕捉系統(tǒng)是一個自給系統(tǒng),沒有外界參考點不能直接提供位置數據,所以目前的慣性動作捕捉系統(tǒng)多數只估計人體的姿態(tài),不能獲取人體在全局坐標下的位置信息,為了解決這個問題,研究者們提出了多種方案。例如,Jimenez等[5]提出了一個基于卡爾曼濾波的慣性導航系統(tǒng)與無線電射頻識別系統(tǒng)緊耦合的方法,用于室內步行者的定位導航;Brodie等[6]使用融合慣性傳感器、GPS、壓力傳感器、攝像機和經緯儀的動作捕捉系統(tǒng)捕捉人體在高山滑雪比賽時的三維動力學和運動學信息;Fischer等[7]設計了一個用于步行者定位微型傳感器系統(tǒng),該系統(tǒng)里需要在實驗對象的腳上放置融合了慣性傳感器和超聲波傳感器的設備。
隨著室內定位技術的發(fā)展,超寬帶定位技術日趨成熟,可以使用超寬帶定位系統(tǒng)和慣性傳感器相結合的方法實現人體動作捕捉。兩種傳感器具有良好的互補性:超寬帶技術可用于室內精確定位,精度高于其他的定位方式[8-9]。但在定位過程中易受室內非視距、多路徑效應的影響,從而導致長期定位精度低的問題[10];通過慣性傳感器輔助定位來彌補超寬帶定位的不足,從而獲得高精度的定位效果。
該技術首先通過傳感器捕獲表演者的三維加速度、角速度和磁場數據;再把獲取的信息通過無線傳輸協(xié)議以幀的形式發(fā)送到計算機端,然后采用卡爾曼濾波對獲取的運動信息進行去噪和融合,得到四元數數據;最后把四元數數據輸入到虛擬3D人體模型中,從而驅動虛擬3D人體模型的動作,實現人體動作捕捉。
1、超寬帶定位系統(tǒng)
超寬帶定位系統(tǒng)由一個標簽和三個基站組成。超寬帶定位的原理是由基站發(fā)送一個信號到標簽所需要的時間來推算標簽的位置[11]。這里使用雙面雙向測距方法,雙面雙向測距的方法是在單面雙向測距的基礎上再增加一次通訊,兩次通訊的時間可以彌補因為時鐘偏移引入的誤差[12],準確地獲取基站和標簽的距離就能得到標簽的位置[13]。
2、慣性傳感器定位算法
為了能夠將慣性傳感器與超寬帶定位系統(tǒng)測量值融合,必須把加速度測量值轉換為相對位移估計值。但是由于加速度計中存在噪聲,而且在加速度用積分計算位移時放大了噪聲,所以這里引入卡爾曼濾波器來減少加速度轉換位移的噪聲[14]。利用卡爾曼濾波器對狀態(tài)信息進行校正,降低誤差累計的影響,以實現輔助測量位移[15]。
為了融合超寬帶定位提供的位置估計和慣性傳感器提供的相對位置估計,根據視距和非視距使用不同的融合方法。
1、簡單融合方法
使用積分方法計算x維度下,在時間步n的人體的位置XSIM,n,如公式(1)所示:
其中,xSIM,n,ySIM,n,zSIM,n—在時間步n的人體位置三維坐標;
XUWB,n—超寬帶定位系統(tǒng)在x維度下,時間步n的人體位置坐標;
XIMU,n—慣性傳感器在x維度下,時間步n的人體位置坐標;
δx,UWB,n—x軸中超寬帶定位提供位置估計的標準偏差;
δIMU,n—慣性傳感器的標準偏差。由于很難預測慣性傳感器的標準偏差,所以三個維度都設置相同的值。使用以下過程處理積分誤差帶來的影響:
在時間步n,如果當前估計的超寬帶定位標準偏差小于n-1的慣性傳感器標準偏差,即用公式(2)表示:
其中,δk,UWB,n—超寬帶定位系統(tǒng)在時間步n的位置偏差;
δIMU,n-1—慣性傳感器在時間步n-1的標準偏差。那么慣性傳感器的標準偏差將被重置為δIMU=0.05m/s2。否則,慣性傳感器的標準偏差設置為:
其中,tsr—慣性傳感器標準偏差被重置的時間間隔。
因此,根據超寬帶定位誤差標準偏差,慣性傳感器誤差標準偏差的無限增加受到限制,并且在可視距條件下復位積分誤差。在非可視距條件下假定非視距引起的誤差小于積分誤差時,復位積分誤差[16]。該融合算法的系統(tǒng)架構圖如圖1所示,算法工作流程如下:
(1)讀取慣性傳感器的加速度數據;
(2)讀取超寬帶定位系統(tǒng)中表演者的位置數據;
(3)根據基站定位系統(tǒng)判斷表演者是否有位移;
(4)根據慣性傳感器中的加速度數據判斷表演者是否有位移;
(5)如果基站定位系統(tǒng)和慣性傳感器同時有位移,那么更新表演者的位置信息。
2、非視距情況下的位置估計
將非視距檢測與簡單的融合算法相結合,如圖2所示。該方法在沒有檢測到非視距條件下使用簡單融合算法,并且由于超寬帶定位和慣性傳感器的位移估計融合算法減少超寬帶定位的誤差。如果檢測到非視距情況,位置估計僅依賴于剩余的基站[17]。在剩余2個基站的情況下,如果計算x-y平面的2D位置,可以使用超寬帶定位的上一個位置信息或慣性傳感器的位置信息來預測現在的位置。如果慣性傳感器計算的位置信息和上一個位置信息之間的距離不是很大,而且在二基站定位的范圍內,則使用慣性傳感器的位置估計;如果慣性傳感器計算的位置信息和上一個位置信息之間的距離很大,而且和二基站定位的差別很大,那么直接使用上一個位置信息。具體流程如圖2所示,虛線是非視距情況下的位置估算方法,算法工作流程如下:
(1)讀取慣性傳感器中加速度數據;
(2)讀取超寬帶定位系統(tǒng)中表演者的位置數據;
(3)判斷超寬帶定位系統(tǒng)是否處于非視距情況;
(4)非視距情況下使用二基站定位和慣性傳感器的位置估計。
以上是兩種慣性傳感器和超寬帶定位系統(tǒng)數據融合的方法,非視距情況下的位置估計是在簡單融合方法的基礎上增加了對非視距情況下位置的估計。所以,第二種方法非視距情況下位置估算有更高的可用性,因為在實際情況中,人體在運動時經常會遮擋基站造成非視距情況,該實驗采用了非視距情況下位置估計算法。
為了測試所使用的融合算法在動作捕捉系統(tǒng)中的有效性,在室內布置了場地,如圖3所示。慣性傳感器在人體身上的綁定,標簽在人體身上的腰部。慣性傳感器接收模塊和基站A與電腦連接,基站B和基站C分別在基站A的上方和右方。動作數據最終通過Unity3D開發(fā)的3D虛擬人物模型來展示,如圖4所示。
為了量化測試人體在靜止時,非視距情況下使用融合算法和不使用融合算法對定位精度的影響。
首先把標簽和慣性傳感器腰部的節(jié)點放入待測試場地的中心坐標點(135cm,135cm),然后測試人員繞著測試場地中心的傳感器勻速走一圈,以實現對超寬帶定位系統(tǒng)的非視距干擾。每走一圈結束后記錄下這組位置數據。一共測試了10次,得到了10組使用融合算法的位置數據和10組不使用融合算法的位置數據。為了方便對比實驗數據,再測試一組沒有干擾情況下的數據(即視距)與上述前兩次實驗數據對比。
分別計算上述10組使用融合算法的位置數據各組的平均值和標準差,再將計算所得的10組平均值和標準差求均值;將剩下的10組不使用融合算法的位置數據和一組沒有干擾情況下的數據(即視距)用同樣的方法處理。X軸和Y軸的計算結果分別如表1、表2所示,數據的平均值說明了定位的整體情況。
圖5為X軸數據與Y軸數據分別在視距、非視距(無融合算法)、非視距(有融合算法)三種條件下的數據對比圖。從圖中可以看出,在視距條件下,X軸和Y軸的定位數據有波動,但是波動范圍不大,基本趨于穩(wěn)定;在非視距條件下,沒有使用融合算法的定位數據波動較大,X軸數據波動范圍在[100, 150]之間,Y軸數據波動在[110, 150]之間;而在非視距條件下,有融合算法的定位數據波動趨勢和視距的波動基本重合,X軸波動范圍在[125, 135]之間,Y軸波動在[125, 140]之間。
從上述實驗結果可以得出結論,在傳感器靜止時,非視距條件下使用超寬帶定位系統(tǒng)和慣性傳感器相融合的定位方法,比單獨使用超寬帶定位系統(tǒng),定位精度有了顯著的提高。
表1 X軸數據對比表(單位:cm)
表2 Y軸數據對比表(單位:cm)
為了清晰地展示運動軌跡,人體攜帶傳感器在2.4m×2.4m的正方形區(qū)域內逆時針走動1圈,運動軌跡如圖6所示。其中,圖6(a)是在單獨的超寬帶定位系統(tǒng)時得到的定位運動軌跡,從圖中可以看出在整個定位過程中,超寬帶定位存在許多偏離實際路線的值,定位誤差較大;圖6(b)是在使用超寬帶定位系統(tǒng)和慣性傳感器融合定位方法時得到的定位運動軌跡,從圖中可以看出,在整個定位過程中,運動軌跡非常接近正常的運動軌跡。因此,該實驗結果說明傳感器在動態(tài)條件下,使用超寬帶定位系統(tǒng)和慣性傳感器融合的定位方法,比單獨使用超寬帶定位系統(tǒng)有效地提高了定位的精度。
本文實現了一種基于超寬帶和慣性傳感器融合的人體動作捕捉系統(tǒng),用于在動作捕捉中測量人體的位移。該系統(tǒng)由慣性傳感器和超寬帶定位系統(tǒng)這兩部分組成。慣性傳感器能夠精確地測量人體肢體的動作,然而只靠慣性傳感器不能測量全局的位置,因此,為了獲得精確的位置數據,采用超寬帶定位系統(tǒng)。但是,只依靠超寬帶定位系統(tǒng)不能解決非視距情況,所以使用慣性傳感器中的加速度計輔助超寬帶定位系統(tǒng)定位。實驗表明,采用超寬帶和慣性傳感器融合的方法可以有效地提高系統(tǒng)的定位精度,為動作捕捉解決位移問題提供了參考。超寬帶和慣性傳感器融合的捕捉系統(tǒng)還有待于進一步的研究,以實現更高精度的定位和動作捕捉。