王萬良,楊經(jīng)緯,蔣一波
(浙江工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310023)
大尺寸顯示器的PC和智能電視的出現(xiàn),使得基于鼠標(biāo)、鍵盤的傳統(tǒng)人機(jī)交互設(shè)備的不便性日益凸顯,如何使人與機(jī)器之間的交互能夠自然的模擬人與人之間的交流變得越來越重要。觸摸屏及相關(guān)技術(shù)為使用者提供了全新的操作體驗(yàn),但使用者不可避免地被限制在顯示器之前,而且該技術(shù)必須針對(duì)應(yīng)用環(huán)境定制,缺乏一般的通用性。
基于計(jì)算機(jī)視覺和基于可穿戴傳感器的人體動(dòng)作識(shí)別[1]為人機(jī)之間以動(dòng)作或手勢(shì)進(jìn)行交互識(shí)別提出了新的解決方案,在數(shù)字家庭設(shè)備和大屏幕設(shè)備中有廣泛的應(yīng)用前景。
目前大部分關(guān)于手勢(shì)識(shí)別的研究采用的是基于計(jì)算機(jī)視覺的方法[2-3]。然而,基于計(jì)算機(jī)視覺的方法面臨著一個(gè)難以克服的難題:遮擋,用戶必須被嚴(yán)格地限定在與攝像設(shè)備之間沒有遮擋的范圍內(nèi)。而可穿戴傳感器卻完全不受此限制,因此基于可穿戴的動(dòng)作識(shí)別引起了學(xué)者們的研究興趣[4-9]。
Andrea等利用多個(gè)傳感器構(gòu)建了一個(gè)人體動(dòng)作識(shí)別系統(tǒng),對(duì)坐、躺、站等姿勢(shì)和爬樓梯、跑步等動(dòng)作進(jìn)行了識(shí)別[4]。任天堂公司開發(fā)了用于交互游戲控制的Wii[10],它的輸入設(shè)備 Wiimote常常作為加速度數(shù)據(jù)采集設(shè)備用于學(xué)者的研究工作中,梁秀波等在文獻(xiàn)[5]中利用智能手機(jī)和Wiimote作為加速度數(shù)據(jù)采集設(shè)備將對(duì)手勢(shì)的識(shí)別用于人機(jī)交互系統(tǒng)中。AiLive公司開發(fā)的 LiveMove[11]是一套集訓(xùn)練和識(shí)別為一體的商用系統(tǒng)。
現(xiàn)有的研究將加速度作為動(dòng)作特征進(jìn)行訓(xùn)練和識(shí)別,在特定動(dòng)作的識(shí)別方面取得了不錯(cuò)的識(shí)別率,但對(duì)于速度緩慢或者與旋轉(zhuǎn)相關(guān)的動(dòng)作識(shí)別方面存在缺陷。因此,本文將地磁傳感器和加速度傳感器數(shù)據(jù)融合起來計(jì)算出傳感器模塊的姿態(tài)角,并將其與加速度數(shù)據(jù)結(jié)合起來作為動(dòng)作的特征。然后選用在語音識(shí)別領(lǐng)域獲得巨大成功的隱馬爾科夫模型作為手勢(shì)識(shí)別模型對(duì)動(dòng)作特征進(jìn)行訓(xùn)練和識(shí)別。
本文設(shè)計(jì)實(shí)現(xiàn)了基于加速度傳感器和地磁傳感器模塊的手勢(shì)識(shí)別算法,在PC平臺(tái)和Android手機(jī)平臺(tái)開發(fā)了手勢(shì)識(shí)別原型系統(tǒng)。
系統(tǒng)的手持端是HTC HD2手機(jī),它自帶有三軸加速度傳感器、三軸地磁傳感器以及用于通信的WIFI模塊。HD2搭載了 Android 2.3.3系統(tǒng),加速度和地磁數(shù)據(jù)可通過系統(tǒng)API獲取并通過WIFI傳送到主機(jī)端。
加速度傳感器采用意法半導(dǎo)體生產(chǎn)的LIS331DL,電源電壓范圍2.16 V ~3.6 V,量程為±2gn/±8gn動(dòng)態(tài)可選,數(shù)據(jù)輸出頻率為100 Hz~400 Hz。地磁傳感器為AKM公司的AK8973,電源電壓2.5 V ~3.6 V,它的數(shù)據(jù)輸出頻率同樣是100 Hz~400 Hz可通過程序調(diào)節(jié)。
系統(tǒng)的主機(jī)端是一個(gè)PC,運(yùn)行著包含有數(shù)據(jù)傳輸模塊、基于隱馬爾科夫模型HMM(Hidden Markov Model)的動(dòng)作識(shí)別模塊、識(shí)別結(jié)果和數(shù)據(jù)顯示模塊的原型系統(tǒng)。
本文系統(tǒng)流程如圖1所示。首先,用戶手持運(yùn)動(dòng)傳感設(shè)備為手勢(shì)集合中的每個(gè)動(dòng)作采集訓(xùn)練樣本;經(jīng)過預(yù)處理之后數(shù)據(jù)被傳輸?shù)街鳈C(jī)端,然后經(jīng)過特征提取和特征選擇等一系列后期處理之后作為訓(xùn)練樣本用于訓(xùn)練機(jī)器學(xué)習(xí)模型;經(jīng)過訓(xùn)練之后的機(jī)器學(xué)習(xí)模型即可實(shí)時(shí)地識(shí)別用戶的手勢(shì)。手勢(shì)被識(shí)別之后便可以將這些手勢(shì)映射為各種指令來控制一些交互應(yīng)用。本系統(tǒng)的核心為數(shù)據(jù)的采集和預(yù)處理、特征提取和特征選擇等后期處理、HMM機(jī)器學(xué)習(xí)和識(shí)別三個(gè)模塊。
整個(gè)識(shí)別過程包括以下幾個(gè)步驟:數(shù)據(jù)采集與預(yù)處理、特征提取及特征選擇、手勢(shì)訓(xùn)練與識(shí)別。
手持HTC HD2的用戶做手勢(shì)的時(shí)候,監(jiān)聽函數(shù)會(huì)將內(nèi)置在手機(jī)里的加速度計(jì)和磁強(qiáng)計(jì)的讀數(shù)保存起來,設(shè)加速度計(jì)的輸出為=[axayaz],磁強(qiáng)計(jì)的輸出為=[mxmymz]。由于加速度計(jì)的輸出數(shù)據(jù)包含有重力加速度信息,為了更準(zhǔn)確的反應(yīng)手機(jī)的運(yùn)動(dòng),使用高通濾波除去重力加速度產(chǎn)生的影響,結(jié)果記為=[laxlaylaz]。另外,不同的用戶做同一個(gè)手勢(shì)時(shí)的速度和幅度可能有很大差別,即使是同一個(gè)用戶重復(fù)同樣的手勢(shì),其速度和幅度也不完全相同,因此需要對(duì)樣本進(jìn)行歸一化。本文用線性插值的方法對(duì)樣本進(jìn)行歸一化處理。
由于傳感數(shù)據(jù)樣本中所隱含動(dòng)作特征被淹沒在大量不相關(guān)的信息中,直接將這樣的手勢(shì)樣本用于機(jī)器學(xué)習(xí)很難達(dá)到較高的識(shí)別率。通常情況下,模式識(shí)別系統(tǒng)不直接使用原始傳感器數(shù)據(jù)作為輸入?yún)?shù),而是使用更能反映動(dòng)作特征的數(shù)據(jù)作為輸入。因此,特征提取和選擇往往是與特定應(yīng)用和機(jī)器學(xué)習(xí)息息相關(guān)的基礎(chǔ)步驟。
人在做手勢(shì)的時(shí)候手臂主要有兩方面的變化,一個(gè)是手臂的移動(dòng),另一個(gè)是手臂的旋轉(zhuǎn)。手持終端所采集的加速度數(shù)據(jù)能有效的反映手臂的移動(dòng),而手持終端的姿態(tài),即在世界坐標(biāo)系中X、Y、Z三坐標(biāo)軸上的旋轉(zhuǎn)角度則能很好的標(biāo)識(shí)手臂的旋轉(zhuǎn)。如圖2、圖3所示,三軸加速度數(shù)據(jù)分別反映了傳感器模塊在三坐標(biāo)軸上的運(yùn)動(dòng)變化,而姿態(tài)角則反映傳感器模塊在三軸上的旋轉(zhuǎn)變化。
圖2 三軸加速度
圖3 三軸姿態(tài)角:橫滾角θ俯仰角γ航向角ψ
文獻(xiàn)[5-6]分別選用了一個(gè)和兩個(gè)加傳感器模塊來采集數(shù)據(jù),文獻(xiàn)[4]選用了多個(gè)傳感器模塊。數(shù)據(jù)采集完成之后,分別采取線性主元分析(Principle Component Analysis,PCA),順序浮動(dòng)前向搜 索 算 法 (Sequential Forward-backward Floating Search,SFFS),蟻群算法對(duì)數(shù)據(jù)進(jìn)行了特征選擇。雖然傳感器數(shù)目和特征選擇算法不盡相同,但他們最終獲取到的是單一的加速度數(shù)據(jù)。而我們的實(shí)驗(yàn)表明,單獨(dú)使用加速度數(shù)據(jù)或姿態(tài)角在姿勢(shì)識(shí)別方面都會(huì)有一些盲點(diǎn)或者識(shí)別率非常低的情況。
加速度數(shù)據(jù)無法辨別傳感器模塊在沿坐標(biāo)軸運(yùn)動(dòng)時(shí)是否傾斜。如圖4中所示,僅僅通過加速度傳感器數(shù)據(jù)無法辨別左右兩組動(dòng)作的區(qū)別。
圖4 傳感器模塊沿坐標(biāo)軸移動(dòng)
同樣,單一使用姿態(tài)角作為特征時(shí)一些保持姿態(tài)不變,但加速度卻發(fā)生變化的動(dòng)作將無法很好的識(shí)別。如圖5所示,傳感器模塊在Z軸上有加速度,但模塊的姿態(tài)卻沒有改變,僅使用在臺(tái)作為特征時(shí),兩個(gè)動(dòng)作將無法被識(shí)別。
因此,本文將兩種數(shù)據(jù)融合起來作為機(jī)器學(xué)習(xí)和識(shí)別的特征。
加速度數(shù)據(jù)可由加速度計(jì)直接讀出,姿態(tài)角的求解過程[12]如下:當(dāng)手機(jī)處于水平靜態(tài)時(shí),加速度計(jì)的輸出為=[0 0g]。當(dāng)手機(jī)處于運(yùn)動(dòng)狀態(tài)時(shí),假定加速度計(jì)的測(cè)量值為=[axayaz],則由可得:
圖5 傳感器模塊姿態(tài)不變加速度變化
在已知橫滾角θ和俯仰角γ的情況下,可以磁強(qiáng)計(jì)的輸出計(jì)算出航向角ψ:
其中:mxmymz分別為磁強(qiáng)計(jì)的X、Y、Z軸的測(cè)量值。
加速度傳感器數(shù)據(jù)與語音數(shù)據(jù)類似,也是時(shí)序序列,因此本文選用在語音識(shí)別領(lǐng)域獲得巨大成功的隱馬爾科夫模型作為手勢(shì)識(shí)別模型。
HMM(Hidden Markov Model)是一個(gè)通過概率模型來分析和生成時(shí)間序列的雙重隨機(jī)過程,一個(gè)是馬爾科夫鏈,它描述狀態(tài)之間的轉(zhuǎn)移。另一個(gè)隨機(jī)過程描述了狀態(tài)和觀察值之間的統(tǒng)計(jì)對(duì)應(yīng)關(guān)系[13]。一個(gè)HMM可以用一個(gè)五元組表示:λ=(X,O,A,B,π),五個(gè)參數(shù)的含義分別為,X:狀態(tài)的有限集合,O:觀察值的有限集合,A:轉(zhuǎn)移概率,B:輸出概率,π:初始狀態(tài)分布。
簡(jiǎn)言之,HMM分為兩部分,一個(gè)是馬爾科夫鏈,用π,A描述,輸出狀態(tài)序列;另一個(gè)是一個(gè)隨機(jī)過程,由B描述,產(chǎn)生觀察值序列,從而 HMM可簡(jiǎn)寫為:
本文的算法包采用劍橋大學(xué)開發(fā)的HTK(HMM Tools Kit)[14]。其算法主要分為以下兩步:
第1步:用Baum-Welch算法對(duì)觀察值序列,即本文針對(duì)一個(gè)手勢(shì)采集到的數(shù)據(jù),進(jìn)行訓(xùn)練得到該手勢(shì)對(duì)應(yīng)的HMM的模型。
第2步:用Forward-Backward算法將手勢(shì)特征序列的O作為輸入計(jì)算產(chǎn)生O的概率P(O|λi),找出它最大時(shí)的模型,該模型所對(duì)應(yīng)的手勢(shì)就是手勢(shì)識(shí)別的結(jié)果。
本文對(duì)8個(gè)動(dòng)作和8個(gè)阿拉伯?dāng)?shù)字共計(jì)16種手勢(shì)進(jìn)行了測(cè)試,結(jié)果表明能夠很好的識(shí)別。如圖6所示,圓點(diǎn)表示手勢(shì)開始,箭頭是手勢(shì)的軌跡。每個(gè)動(dòng)作要求一次性完成,中間不得有停頓,數(shù)據(jù)的起始由實(shí)驗(yàn)者通過按鈕控制。
圖6 手勢(shì)列表
一次數(shù)字8手勢(shì)的識(shí)別過程如圖7所示。
圖7 數(shù)字8的識(shí)別過程
圖8和圖9為一次數(shù)字8手勢(shì)所得到加速度和姿態(tài)角數(shù)據(jù)。
簡(jiǎn)單的手勢(shì)如手臂向左向右移動(dòng)不含有旋轉(zhuǎn)動(dòng)作,加速度數(shù)據(jù)就能很好的反映手勢(shì)的特征。而復(fù)雜的手勢(shì)如阿拉伯?dāng)?shù)字,手臂除加速度變化外還帶有旋轉(zhuǎn),為了提高復(fù)雜手勢(shì)的識(shí)別率,本文引入了標(biāo)識(shí)手臂旋轉(zhuǎn)的姿態(tài)角數(shù)據(jù)作為識(shí)別的特征。
圖8 數(shù)字8加速度數(shù)據(jù)
圖9 數(shù)字8姿態(tài)角數(shù)據(jù)
為了驗(yàn)證方法相較于僅使用加速度數(shù)據(jù)的有效性,做了一個(gè)對(duì)比實(shí)驗(yàn)。采集了6個(gè)人的4種動(dòng)作數(shù)據(jù),每個(gè)動(dòng)作數(shù)據(jù)包含加速度和姿態(tài)角兩種數(shù)據(jù),每種動(dòng)作60個(gè)。其中20個(gè)用于訓(xùn)練,40個(gè)用于識(shí)別。即一個(gè)動(dòng)作有360個(gè)數(shù)據(jù),其中120個(gè)用于訓(xùn)練HMM模型,240組用于姿態(tài)識(shí)別。識(shí)別率如圖10所示。
圖10 兩種數(shù)據(jù)下的識(shí)別率圖
從這些數(shù)據(jù)可以看出,基于兩種數(shù)據(jù)的識(shí)別方法在動(dòng)作比較簡(jiǎn)單的情況下的識(shí)別率相當(dāng),比如向左、向右、向上、向下和左勾、右勾等動(dòng)作。但對(duì)于帶有旋轉(zhuǎn)的較為復(fù)雜動(dòng)作,如阿拉伯?dāng)?shù)字、順時(shí)針旋轉(zhuǎn)等動(dòng)作的識(shí)別中,本文提出的方法具有較好的識(shí)別率。
為了使手勢(shì)交互較少受到視角和光線的限制,提出利用可穿戴傳感器作為輸入設(shè)備和機(jī)器學(xué)習(xí)算法相結(jié)合進(jìn)行手勢(shì)識(shí)別的方法。為驗(yàn)證所提方法的有效性,在PC和Android手機(jī)平臺(tái)上實(shí)現(xiàn)了數(shù)據(jù)采集和識(shí)別為一體的姿勢(shì)識(shí)別系統(tǒng)。選取了16手勢(shì)進(jìn)行了識(shí)別實(shí)驗(yàn),并采集了6個(gè)人的4種動(dòng)作進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,該方法可以實(shí)時(shí)有效地對(duì)手勢(shì)特別是復(fù)雜的手勢(shì)進(jìn)行識(shí)別。結(jié)合陀螺儀進(jìn)行手勢(shì)識(shí)別是今后研究的方向。
[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]梁秀波,張順,李啟雷.運(yùn)動(dòng)傳感驅(qū)動(dòng)的3D直觀手勢(shì)交互[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形圖像學(xué)報(bào),2010,22(3):521-526.
[6]王昌喜,楊先軍,徐強(qiáng),等.基于三維加速度傳感器的上肢動(dòng)作識(shí)別系統(tǒng)[J].傳感技術(shù)學(xué)報(bào),2010,23(6):916-819.
[7]李國(guó)峰,王錦,張勇,等.基于MEMS加速度傳感器的智能輸入系統(tǒng)[J].傳感技術(shù)學(xué)報(bào),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.