王萬良,楊經緯,蔣一波
(浙江工業大學計算機科學與技術學院,杭州 310023)
大尺寸顯示器的PC和智能電視的出現,使得基于鼠標、鍵盤的傳統人機交互設備的不便性日益凸顯,如何使人與機器之間的交互能夠自然的模擬人與人之間的交流變得越來越重要。觸摸屏及相關技術為使用者提供了全新的操作體驗,但使用者不可避免地被限制在顯示器之前,而且該技術必須針對應用環境定制,缺乏一般的通用性。
基于計算機視覺和基于可穿戴傳感器的人體動作識別[1]為人機之間以動作或手勢進行交互識別提出了新的解決方案,在數字家庭設備和大屏幕設備中有廣泛的應用前景。
目前大部分關于手勢識別的研究采用的是基于計算機視覺的方法[2-3]。然而,基于計算機視覺的方法面臨著一個難以克服的難題:遮擋,用戶必須被嚴格地限定在與攝像設備之間沒有遮擋的范圍內。而可穿戴傳感器卻完全不受此限制,因此基于可穿戴的動作識別引起了學者們的研究興趣[4-9]。
Andrea等利用多個傳感器構建了一個人體動作識別系統,對坐、躺、站等姿勢和爬樓梯、跑步等動作進行了識別[4]。任天堂公司開發了用于交互游戲控制的Wii[10],它的輸入設備 Wiimote常常作為加速度數據采集設備用于學者的研究工作中,梁秀波等在文獻[5]中利用智能手機和Wiimote作為加速度數據采集設備將對手勢的識別用于人機交互系統中。AiLive公司開發的 LiveMove[11]是一套集訓練和識別為一體的商用系統。
現有的研究將加速度作為動作特征進行訓練和識別,在特定動作的識別方面取得了不錯的識別率,但對于速度緩慢或者與旋轉相關的動作識別方面存在缺陷。因此,本文將地磁傳感器和加速度傳感器數據融合起來計算出傳感器模塊的姿態角,并將其與加速度數據結合起來作為動作的特征。然后選用在語音識別領域獲得巨大成功的隱馬爾科夫模型作為手勢識別模型對動作特征進行訓練和識別。
本文設計實現了基于加速度傳感器和地磁傳感器模塊的手勢識別算法,在PC平臺和Android手機平臺開發了手勢識別原型系統。
系統的手持端是HTC HD2手機,它自帶有三軸加速度傳感器、三軸地磁傳感器以及用于通信的WIFI模塊。HD2搭載了 Android 2.3.3系統,加速度和地磁數據可通過系統API獲取并通過WIFI傳送到主機端。
加速度傳感器采用意法半導體生產的LIS331DL,電源電壓范圍2.16 V ~3.6 V,量程為±2gn/±8gn動態可選,數據輸出頻率為100 Hz~400 Hz。地磁傳感器為AKM公司的AK8973,電源電壓2.5 V ~3.6 V,它的數據輸出頻率同樣是100 Hz~400 Hz可通過程序調節。
系統的主機端是一個PC,運行著包含有數據傳輸模塊、基于隱馬爾科夫模型HMM(Hidden Markov Model)的動作識別模塊、識別結果和數據顯示模塊的原型系統。
本文系統流程如圖1所示。首先,用戶手持運動傳感設備為手勢集合中的每個動作采集訓練樣本;經過預處理之后數據被傳輸到主機端,然后經過特征提取和特征選擇等一系列后期處理之后作為訓練樣本用于訓練機器學習模型;經過訓練之后的機器學習模型即可實時地識別用戶的手勢。手勢被識別之后便可以將這些手勢映射為各種指令來控制一些交互應用。本系統的核心為數據的采集和預處理、特征提取和特征選擇等后期處理、HMM機器學習和識別三個模塊。
整個識別過程包括以下幾個步驟:數據采集與預處理、特征提取及特征選擇、手勢訓練與識別。
手持HTC HD2的用戶做手勢的時候,監聽函數會將內置在手機里的加速度計和磁強計的讀數保存起來,設加速度計的輸出為=[axayaz],磁強計的輸出為=[mxmymz]。由于加速度計的輸出數據包含有重力加速度信息,為了更準確的反應手機的運動,使用高通濾波除去重力加速度產生的影響,結果記為=[laxlaylaz]。另外,不同的用戶做同一個手勢時的速度和幅度可能有很大差別,即使是同一個用戶重復同樣的手勢,其速度和幅度也不完全相同,因此需要對樣本進行歸一化。本文用線性插值的方法對樣本進行歸一化處理。
由于傳感數據樣本中所隱含動作特征被淹沒在大量不相關的信息中,直接將這樣的手勢樣本用于機器學習很難達到較高的識別率。通常情況下,模式識別系統不直接使用原始傳感器數據作為輸入參數,而是使用更能反映動作特征的數據作為輸入。因此,特征提取和選擇往往是與特定應用和機器學習息息相關的基礎步驟。
人在做手勢的時候手臂主要有兩方面的變化,一個是手臂的移動,另一個是手臂的旋轉。手持終端所采集的加速度數據能有效的反映手臂的移動,而手持終端的姿態,即在世界坐標系中X、Y、Z三坐標軸上的旋轉角度則能很好的標識手臂的旋轉。如圖2、圖3所示,三軸加速度數據分別反映了傳感器模塊在三坐標軸上的運動變化,而姿態角則反映傳感器模塊在三軸上的旋轉變化。

圖2 三軸加速度

圖3 三軸姿態角:橫滾角θ俯仰角γ航向角ψ
文獻[5-6]分別選用了一個和兩個加傳感器模塊來采集數據,文獻[4]選用了多個傳感器模塊。數據采集完成之后,分別采取線性主元分析(Principle Component Analysis,PCA),順序浮動前向搜 索 算 法 (Sequential Forward-backward Floating Search,SFFS),蟻群算法對數據進行了特征選擇。雖然傳感器數目和特征選擇算法不盡相同,但他們最終獲取到的是單一的加速度數據。而我們的實驗表明,單獨使用加速度數據或姿態角在姿勢識別方面都會有一些盲點或者識別率非常低的情況。
加速度數據無法辨別傳感器模塊在沿坐標軸運動時是否傾斜。如圖4中所示,僅僅通過加速度傳感器數據無法辨別左右兩組動作的區別。

圖4 傳感器模塊沿坐標軸移動
同樣,單一使用姿態角作為特征時一些保持姿態不變,但加速度卻發生變化的動作將無法很好的識別。如圖5所示,傳感器模塊在Z軸上有加速度,但模塊的姿態卻沒有改變,僅使用在臺作為特征時,兩個動作將無法被識別。
因此,本文將兩種數據融合起來作為機器學習和識別的特征。
加速度數據可由加速度計直接讀出,姿態角的求解過程[12]如下:當手機處于水平靜態時,加速度計的輸出為=[0 0g]。當手機處于運動狀態時,假定加速度計的測量值為=[axayaz],則由可得:

圖5 傳感器模塊姿態不變加速度變化

在已知橫滾角θ和俯仰角γ的情況下,可以磁強計的輸出計算出航向角ψ:

其中:mxmymz分別為磁強計的X、Y、Z軸的測量值。
加速度傳感器數據與語音數據類似,也是時序序列,因此本文選用在語音識別領域獲得巨大成功的隱馬爾科夫模型作為手勢識別模型。
HMM(Hidden Markov Model)是一個通過概率模型來分析和生成時間序列的雙重隨機過程,一個是馬爾科夫鏈,它描述狀態之間的轉移。另一個隨機過程描述了狀態和觀察值之間的統計對應關系[13]。一個HMM可以用一個五元組表示:λ=(X,O,A,B,π),五個參數的含義分別為,X:狀態的有限集合,O:觀察值的有限集合,A:轉移概率,B:輸出概率,π:初始狀態分布。
簡言之,HMM分為兩部分,一個是馬爾科夫鏈,用π,A描述,輸出狀態序列;另一個是一個隨機過程,由B描述,產生觀察值序列,從而 HMM可簡寫為:

本文的算法包采用劍橋大學開發的HTK(HMM Tools Kit)[14]。其算法主要分為以下兩步:
第1步:用Baum-Welch算法對觀察值序列,即本文針對一個手勢采集到的數據,進行訓練得到該手勢對應的HMM的模型。
第2步:用Forward-Backward算法將手勢特征序列的O作為輸入計算產生O的概率P(O|λi),找出它最大時的模型,該模型所對應的手勢就是手勢識別的結果。
本文對8個動作和8個阿拉伯數字共計16種手勢進行了測試,結果表明能夠很好的識別。如圖6所示,圓點表示手勢開始,箭頭是手勢的軌跡。每個動作要求一次性完成,中間不得有停頓,數據的起始由實驗者通過按鈕控制。

圖6 手勢列表
一次數字8手勢的識別過程如圖7所示。

圖7 數字8的識別過程
圖8和圖9為一次數字8手勢所得到加速度和姿態角數據。
簡單的手勢如手臂向左向右移動不含有旋轉動作,加速度數據就能很好的反映手勢的特征。而復雜的手勢如阿拉伯數字,手臂除加速度變化外還帶有旋轉,為了提高復雜手勢的識別率,本文引入了標識手臂旋轉的姿態角數據作為識別的特征。

圖8 數字8加速度數據

圖9 數字8姿態角數據
為了驗證方法相較于僅使用加速度數據的有效性,做了一個對比實驗。采集了6個人的4種動作數據,每個動作數據包含加速度和姿態角兩種數據,每種動作60個。其中20個用于訓練,40個用于識別。即一個動作有360個數據,其中120個用于訓練HMM模型,240組用于姿態識別。識別率如圖10所示。

圖10 兩種數據下的識別率圖
從這些數據可以看出,基于兩種數據的識別方法在動作比較簡單的情況下的識別率相當,比如向左、向右、向上、向下和左勾、右勾等動作。但對于帶有旋轉的較為復雜動作,如阿拉伯數字、順時針旋轉等動作的識別中,本文提出的方法具有較好的識別率。
為了使手勢交互較少受到視角和光線的限制,提出利用可穿戴傳感器作為輸入設備和機器學習算法相結合進行手勢識別的方法。為驗證所提方法的有效性,在PC和Android手機平臺上實現了數據采集和識別為一體的姿勢識別系統。選取了16手勢進行了識別實驗,并采集了6個人的4種動作進行對比實驗。實驗結果表明,該方法可以實時有效地對手勢特別是復雜的手勢進行識別。結合陀螺儀進行手勢識別是今后研究的方向。
[1]Zhou H,Hu H.Human Motion Tracking for Rehabilitation—A Survey[J].Biomed Signal Processing and Control,2008,1(3):1-18.
[2]Cao X,Balakrishnan R.VisionWand:Interaction Techniques for Large Displays Using a Passive Wand Tracked in 3D[C]//Proceedings of the 16th Annual ACM Symposium on User Interface Software and Technology,Vancouver,2003:173-182.
[3]Malik S,Ranjan A,Balakrishnan R.Interacting with Large Displays from a Distance with Vision-Tracked Multi-Finger Gestural Input[C]//Proceedings of the 18th Annual ACM Symposium on User Interface Software and Technology Seattle,2005:43-52.
[4]Mannini A,Sabatini M.Machine Learning Methods for Classifying Human Physical Activity from On-Body Accelerometers[J].Sensors,2010:1154-1175.
[5]梁秀波,張順,李啟雷.運動傳感驅動的3D直觀手勢交互[J].計算機輔助設計與圖形圖像學報,2010,22(3):521-526.
[6]王昌喜,楊先軍,徐強,等.基于三維加速度傳感器的上肢動作識別系統[J].傳感技術學報,2010,23(6):916-819.
[7]李國峰,王錦,張勇,等.基于MEMS加速度傳感器的智能輸入系統[J].傳感技術學報,2009,22(5):643-646.
[8]Schl?mer T,Poppinga B,Henze N,et al.Gesture Recognition with a Wii Controller[C]//Proceedings of the 2nd International Conference on Tangible and Embedded Interaction.New York:ACM Press,2008:11-14.
[9]Vlasic D,Adelsberger R,Vannucci G,et al.Practical Motion Capture in Everyday Surroundings[J].ACM Transactions on Graphics,2007,26(3):1-9.
[10]Wii.http://www.wii.com[EB/OL].
[11]LiveMove,http://www.ailive.net/liveMove.html[EB/OL].
[12]Y Xiaoping,E Bachmann,R McGhee.A Simplified Quaternion-Based Algorithm for Orientation Estimation from Earth Gravity and Magnetic Field Measurements[C]//IEEE Transactions on Instrumentation and Measurement,2008,57(3):638-650.
[13]Rabiner L R.A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition[J].Proceedings of the IEEE,1989,77(2):257-285.
[14]Young S,Evermann G,Gales M.The Hidden Markov Model Toolkit[EB/OL].http://htk.eng.cam.ac.uk/.2006-10-6.