劉彬 王慧



摘要:針對快速捕捉賽場中裁判員手勢判決跟蹤問題,依靠圖像的動態手勢跟蹤虛擬現實交互技術,研制了一種基于慣性傳感技術的裁判員手勢控制器,并進行了相關實驗驗證。該手勢控制器由安裝在手部、小臂和大臂的13個傳感器節點組成,可用于計算機快速捕捉到裁判員對賽事的判罰,進而與虛擬空間中的物體進行交互。實驗結果表明,該手勢控制器能夠準確地跟蹤裁判員手姿勢,進而控制虛擬手完成虛擬各類手勢等交互操作。
關鍵詞:虛擬交互;裁判員手勢;慣性傳感
中圖分類號:rIP212
文獻標識碼:A
0 引言
裁判員作為體育比賽中負責賽場只需的任務,其主要依靠手勢行使規則賦予的職權[1]。針對裁判員手勢的跟蹤研究是快速判斷比賽結果的重要依據。虛擬現實(Virtual Reality,VR)作為目前虛擬空間并與之交互的三維環境模擬系統,是視覺表達最為完美的藝術表現形式,具有很強的沉浸感[2],且已經在軍事航天、康復醫療訓練、游戲、室內設計、工業仿真、教學等從軍事到民用等諸多領域得到了廣泛應用[3]。裁判員手勢輸入具有迅速、直觀的特點,主要分為基于數據手套的靜態手勢識別[4]和基于圖像的動態手勢跟蹤[5]兩類。數據手套能夠準確地識別出手勢信息,但是手勢被限制在固定點,屬于靜態手勢,而且柔性傳感器成本昂貴、容易損壞[6]。基于圖像的動態手勢跟蹤是基于實時圖像處理技術實現的,該方法能有效快速跟蹤裁判員手部的運動,但是算法實現難度大[7],而且容易受到賽場攝像機視場以及光照條件的限制。
近年來,隨著微慣性傳感技術(MEMS)的不斷發展,慣性式動作捕捉技術逐漸成為研究熱點[8]。國內外對慣性傳感技術在手勢跟蹤方面的研究主要集中在主從控制[9]、人機交互[10]、康復醫療[11]等領域,而且這些研究大多針對靜態手勢識別。從交互的角度來看,靜態手勢識別適用于指令式操作,屬于單向輸入,一般用于流程控制;動態手勢跟蹤適用于交互式操作,可用于操作虛擬空間中的手勢。
從虛擬現實輸入的角度出發,針對裁判員動態手勢跟蹤,提出了一種基于慣性傳感技術的手勢控制器,并加入了振動反饋。該控制器不僅可以為虛擬現實提供手勢跟蹤,而且可以提供觸覺反饋,使得虛擬交互變得更加真實自然,且快速獲取裁判員對賽事判決。
1 整體方案設計
1.1 功能需求
在體育賽事中,裁判員通過手勢去表達比賽結果的判決,手勢表達在賽事中具有非常重要的意義。在人機交互中,手勢輸入作為一種新型交互手段,具有生動、形象和直觀的特點,可以為研究裁判員手勢提供非常自然的交互體驗。
針對虛擬交互的動態手勢跟蹤方法主要有兩類,一是基于圖像的動態手勢跟蹤方法[12],該方法對攝像機視場中的圖像進行實時處理,但是當賽場中眾多運動員同時交互發生遮擋或受到空間中其他物體的遮擋時,動態手勢跟蹤會失去效果。另一類是基于慣性傳感技術的動態手勢跟蹤方法[13]該方法不受光照、背景、空間等外部環境的限制,不存在遮擋問題,而且具有實時性好、靈敏度高、動態性能好等優點,非常適合應用在多人互動的虛擬交互環境中。
針對虛擬交互設計的裁判員手勢控制器應該具備以下功能:(1)適用于虛擬交互,具有可拓展性,未來可用于現實賽場;(2)具有觸覺反饋功能,可用來感知操作對象;(3)穿戴方便,且性能要穩定可靠。手勢控制器中增加的觸覺反饋功能可以增強互動感,考慮到舒適性、體積限制等因素,擬采用振動觸覺反饋方式。
1.2 傳感器布局方案設計
圖1所示為人手骨骼解剖結構圖。手掌骨骼主要由掌骨、近節指骨、中節指骨和遠節指骨構成。其中除大拇指外,其他四指均由遠節指骨、中節指骨和近節指骨構成。手指的彎曲由三節指骨的旋轉運動來實現,其中除大拇指外其余四指主要依賴近節指骨和中節指骨的主動運動。由于遠節指骨的自主運動范圍極小,而且它與中節指骨在運動上有一定的附屬關系,因此在手勢跟蹤中,遠節指骨的數據常常根據中節指骨來計算出,而不需要在遠節指骨上安裝傳感器。大拇指的運動是由遠節指骨和近節指骨的運動來共同完成的。因此,在手掌部分,每根手指需要安裝兩個傳感器,同時手背處也需安裝傳感器來檢測手的空間翻轉、俯仰運動,則手掌部分共需11個傳感器。
人手在空間中的運動范圍可以抽象為:以肩關節為原點,臂長為半徑的球形空間(在不考慮關節運動限制的情況下)。當前設計出的包含11個傳感器節點的手勢控制器所控制的虛擬手被限定在固定位置,屬于靜態手勢識別。因此,參照人手的運動特點,在大臂和小臂處增設傳感器節點,以肩關節為原點,大臂、小臂和手掌共同作為運動捕捉對象,通過關節間的旋轉構造出人手的空間運動姿態。在單手手勢控制器中,共需13個傳感器,最終的傳感器布局方案如圖2所示.
2 姿態解算原理
2.1 捷聯慣導系統
在捷聯慣導系統中[14],導航坐標系為n,即地理坐標系,一般采用東北天坐標系。由運載體的機體軸確定的坐標系為6,一般稱為載體坐標系。根據歐拉旋轉定理可知,載體坐標系相對于導航坐標系的轉動可通過三次獨立的旋轉來實現。初始時載體坐標系與導航坐標系重合,設旋轉軸依次為:-Zn→Xn→Yn,得到的旋轉角依次為:偏航角ψ,俯仰角θ,橫滾角φ。初始時載體坐標系b與導航坐標系n重
2.2 空間旋轉四元數法
表征空間旋轉的方法主要有歐拉角法[15]、方向余弦法[16]和規范化四元數法[17]。其中歐拉角法僅用三個旋轉角參數(ψ、θ、φ)進行描述,計算簡單,但是會出現奇異值,造成萬向節死鎖,不能用于全姿態的解算。方向余弦法可用于全姿態解算,但是需對九個方程求解,計算量大,不適合實時解算系統。規范化四元數法相對于方向余弦法而言,計算量小,動態響應快,對處理器性能要求低,且不會出現歐拉角法涉及到的萬向節鎖,是空間全姿態解算方法,因此在慣導系統中應用較為廣泛。四元數的復數形式表示為:
2.4 基于互補濾波器的四元數姿態解算方法
在姿態解算中,利用加速度計和磁力計可以直接解算出姿態信息,靜態時準確性較好,但是容易受到外界加速度及磁場的影響,動態性能較差。陀螺儀動態響應特性良好,但是直接用于積分會累積誤差,精度也不高。為了獲得較準確的運動信息,同時兼顧動態性能,擬采用濾波算法融合這三個傳感器的數據,以提高解算精度和系統的動態性能。最常用的濾波算法有卡爾曼濾波和互補濾波兩類。卡爾曼濾波是一種最優估計方法,計算過程中涉及到大量代數運算和矩陣求逆,運算量很大,對處理器性能要求較高。相比之下,互補濾波具有計算量小、實時性好、對處理器性能要求不高等特點,而且在載體變化率較小的情況下,互補濾波的效果比卡爾曼濾波更好。綜合考慮,選擇采用互補濾波算法來進行數據融合。姿態解算流程如圖3所示:
3 硬件設計
3.1 傳感器節點設計
傳感器節點的硬件電路架構如圖4所示,包括微處理器及外圍電路、三軸加速度計、三軸陀螺儀、三軸磁強計。
傳感器節點的功能是采集當前傳感器原始數據,進行數據融合處理得到姿態數據[19](四元數),最后將姿態數據輸出到數據采集板。由于該節點要安裝在手指上,因此其尺寸必須滿足微型化要求,且不能影響手指的正常生理活動。
微處理器采用ARM Cortex -M3內核的STM32F103系列微處理器,該處理器內部集成了IIC接口、USART接口以及CAN控制器等,提供了多種數據傳輸方式。處理器外圍電路主要包括供電(3.3V)、復位、晶振以及通訊相關接口部分。姿態傳感器采用MPU6050芯片,該芯片是集成了三軸加速度計和三軸陀螺儀的6軸運動處理組件,消除了加速度計與陀螺儀安裝軸誤差帶來的影響,減小了封裝空間,且該芯片內部集成了nc接口以及輔助nc接口,能夠掛載額外的傳感器,如磁強計或氣壓計。三軸磁強計采用HMC5883L芯片,該芯片體積小集成度高,具備nc接口,航向精度能精確到10至20,使用簡單且成本較低,充分滿足了設計需求。
3.2 觸覺反饋設計
由于手部體積限制,考慮采用振動來提供反饋,即在傳感器綁帶的內側(手心一側)增加微型振動馬達(如圖6所示),連接到微控制器10處,通過PWM輸出來調節振動強度。當虛擬手與虛擬物體接觸時,將接觸信號反饋到對應的微控制器,微控制器進而驅動微型馬達振動,為操作者提供一個觸覺上的接觸反饋。
3.3 節點實物圖
3.4 數據采集模塊設計
數據采集模塊的硬件電路架構如圖7所示,包括微處理器、串口芯片、WIFI模塊、CAN收發器。
數據采集模塊的功能是接收各傳感器節點的姿態數據并打包處理[20],然后通過有線(串口傳輸)或無線(WIFI)傳輸的方式發送到上位機中。傳感器節點內已經集成了CAN控制器,每一個CAN控制器都對應一個CAN收發器,二者配合實現CAN總線的數據傳輸,即實現了各傳感器數據的采集。數據采集模塊內主要包括處理器、CAN收發器、WIFI模塊、USB轉串口芯片及外圍電路,其中處理器采用STM32F103系列微處理器;WIFI模塊采用正點原子[21]的HLK-RM04模塊,CAN收發器采用SN65HVD230芯片,該芯片采用3.3V供電;USB轉串口芯片采用CH340G芯片。
4 軟件設計
4.1 軟件處理流程
(1)傳感器節點內處理好傳感器數據,經由CAN收發器與CAN總線連接,將姿態信息發送到CAN總線上;
(2)數據采集模塊內的處理器STM32F1系列經CAN收發器從CAN總線接收姿態信息;
(3)當處理器接收到全部13個節點數據后,將數據進行打包處理,然后經由有線(串口)或無線(WIFD的方式發送至控制主機(即計算機)。
(4)控制主機對姿態數據進行解包,并將數據與骨骼相對應,操作虛擬手運動,當虛擬手與虛擬物體發生交互作用時,觸發反饋信息,同時將該信息發回到處理器,進而驅動振子振動,為使用者提供振動反饋。
4.2 虛擬平臺設計
采用PC機作為控制主機,選擇Unity 3D軟件作為虛擬平臺。Unity 3D是由Unity Technologies開發的一個專業游戲引擎,其具備跨平臺發布、高性能優化、高性價比、高級游戲渲染效果等特點,應用范圍非常廣泛,也是目前主流的一款VR開發平臺。
在場景建模方面中,本文采用了從外部直接導入模型的方式,將在3DS MAX軟件中建立的模型.max文件直接導入到Unity中使用,被導入的信息包括物體的空間位置、材質、關節信息等。
4.2.1 虛擬手模型驅動
在裁判員手勢活動中,以手臂運動為例來說明,手指可以獨立運動而不影響手背、小臂、大臂的運動;但是,當大臂、小臂、手背運動時,手指必然會隨之運動而改變手指的空間位置。因此,在運動捕捉的過程中,我們以大臂終點肩關節為基本根關節,小臂肘關節為子關節,手部腕關節為次子關節,各手指關節同一指節的地位相同,依照圖9所示的次序驅動各個關節運動。
Unity 3D中支持腳本語言C#和JavaScript,通過選擇合適的腳本,可以完成數據通信、模型控制、場景變換等不同的功能。本方案中,選擇C#腳本語言作為開發語言,Unity中封裝了大量的API函數供開發者調用。通過GameObject.Find O函數獲得指定游戲對象,進而用Quatemion(四元數)類下的API函數去處理由串口或WIFI讀入的姿態數據(四元數),從而驅動指定游戲對象做相應的運動。
4.2.2 坐標系轉換
由串口讀入的數據是在地理坐標系n下的載體姿態數據,由于Unity中有世界坐標系和局部坐標系的概念,世界坐標系是固定在Unity中一切其他坐標系的總參考,因此經串口讀入的數據需要進行坐標轉換,轉換步驟如下:
(1)首先通過Quatemion類下的旋轉函數將虛擬手臂的坐標系旋轉到與世界坐標系重合;
(2)真實手臂相對于東北天坐標系的初始姿態與虛擬手臂相對于Unity中的世界坐標系的初始姿態重合,進行初始化;
(3)通過配置運動函數及參數,使得真實手臂運動來驅動虛擬手臂同步運動。
4.2.3 彎曲檢測
彎曲檢測可以模擬出現實環境中物體碰撞到障礙物時產生的反應。在Unity3D中,要產生彎曲的效果,必須為操作對象添加剛體屬性(Rigidbody)和碰撞器(Collider)。當為虛擬手臂添加組合碰撞器和剛體屬性后,手臂可以在虛擬空間中與其他物體產生聯系,進而可以設計彎曲、抓取等交互實驗。在Unity3D中,通過MonoBehaviour.OnTriggerEnter和Mono Behaviour.OnCollisionEnter可以設計出各類彎曲情形的組合。
5 實驗設計
5.1 初始化
裁判員穿戴好傳感器設備后,上電進行初始化。待初始化完成后,手部運動可以控制虛擬手同步運動,如圖10、圖11所示。圖10為手掌展開狀態,圖12為握拳狀態。
5.2 彎曲實驗
在虛擬空間中創建立方體,并增加碰撞體表面。在手臂皮膚表面創建組合彎曲體,當手臂皮膚與立方體接觸時,會觸發彎曲,彎曲實驗如圖13、圖14所示。圖12表示手指在移動過程中即將與立方體接觸但還未接觸到時的狀態;圖13表示手指撥動立方體后的狀態,接觸的瞬間振動馬達會振動產生反饋,立方體受到碰撞后旋轉向上運動(此狀態下未增加重力約束)。如果沒有在立方體表面和手臂皮膚表面增加碰撞體表面,則手指在觸碰到立方體后會穿透立方體表面,而沒有相對運動的產生,也不會產生碰撞效應。
5.3 抓取實驗
在虛擬空間中創建虛擬小球,并增加彎曲體表面。實驗者操作虛擬手來完成小球的抓取,抓取實驗如圖14、圖15所示。圖14表示手指在移動過程中靠近小球但還未接觸到時的狀態,此時小球顏色為白色。圖15表示手指抓取到小球時的狀態,此時小球顏色變為紅色,表示手指抓取到小球,且手指內側的振動馬達開始振動從而為用戶提供一定的觸覺反饋。在抓取狀態下,小球可隨手指在空間中移動。
6 結論
針對虛擬交互設計的裁判員手勢控制器立意較新穎,能夠流暢地完成動態手勢跟蹤及虛擬交互。在比賽場地中且不需要苛刻的實驗環境條件下,該控制器穩定可靠,佩戴舒適,能夠較好地滿足裁判員手勢跟蹤的操作需求,并且還可用于快速獲取裁判員對賽事判決,具有廣闊的現實應用前景。
參考文獻
[1]張文,牟艷,高振興,等.基于移動終端的壁球裁判評分系統設計[J].微處理機,2017,38 (03):46-51.
[2]林一,陳靖,劉越,等.基于心智模型的虛擬現實與增強現實混合式移動導覽系統的用戶體驗設計[J].計算機學報,2015,38 (02).408-422.
[3]孔麗文,薛召軍,陳龍,等,基于虛擬現實環境的腦機接口技術研究進展[J].電子測量與儀器學報,2015,29 (03):317- 327.
[4] 張立志,黃菊,孫華東,等.局部特征與全局特征結合的HMM靜態手勢識別[J].計算機科學,2016,43 (2):247-251.
[5]張毅,姚圓圓,羅元,等,一種改進的TLD動態手勢跟蹤算法[J].機器人,2015,37 (06):754-759.
[6]余超,關勝曉.基于TLD和DTW的動態手勢跟蹤識別[J].計算機系統應用,2015,24 (10):148-154.
[7] 覃文軍,楊金柱,王力,等.基于Kalman濾波器與膚色模型的手勢跟蹤方法[J].東北大學學報:自然科學版,2013,34 (04): 474-477.
[8]孫偉,初婧,丁偉,等,基于IMU旋轉的MEMS器件誤差調制技術研究[J],電子測量與儀器學報,2015,29 (02):240-246.
[9]王少陽,張瑞峰,孫曉偉,等.基于FPCA的MEMS測量控制系統的設計[J].電子測量技術,2014,37 (12):58-61.
[10]孫凱,嚴瀟然,謝榮平.基于手勢識別的智能家居人機交互系統設計[J].工業控制計算機,2014,27 (04):54-56.
[11]陳俊江,李華,湯呈祥,等.基于MEMS傳感器的肢體康復程度檢測系統[J].沿海企業與科技,2015,(04):28-32+20.
[12]林偉強,莊寶山,動態手勢軌跡跟蹤與HMM模式識別[J].電腦知識與技術,2014,10 (32):7714-7718 +7733.
[13]李華興.MEMS慣性傳感技術專利分類對比研究[J].中國科技信息,2016,(16):106-107.
[14]張小躍,楊功流,張春熹.捷聯慣導,里程計組合導航方法[J].北京航空航天大學學報,2013,39 (07):922-926.
[15]趙曉穎,溫立書,么彩蓮,歐拉角參數表示下姿態的二階運動奇異性[J].科學技術與工程,2012,12 (03):634-637.
[16]吳能偉,基于方向余弦的交會方法[J].光電子·激光,2017,28(O1):87-90.
[17]喬相偉,周衛東,吉宇人.用四元數狀態切換無跡卡爾曼曼濾濾波器估計的飛行器姿態[J].控制理論與應用,2012,29(01):97-103.
[18]龐鴻鋒,潘孟春,王偉,等.基于高斯牛頓迭代算法的三軸磁強計校正[J].儀器儀表學報,2013,34 (07):67-72.
[19]江杰,朱君,豈偉楠.四旋翼無人飛行器姿態數據采集處理系統[J].計算機測量與控制,2012,20 (06):1703-1706.
[20]王利華,胡志東.基于乒乓結構的數據打包技術[J].信息通信,2014,(03):20-21.
[21]周青春,狄尊燕,周昱.量子點、量子點分子及耦合腔場的糾纏動力學[J].廣東工業大學學報,2014,31 (02):7-13.