張 平, 劉祚時(shí)
(江西理工大學(xué) 機(jī)電工程學(xué)院,江西 贛州 341000)
基于慣性傳感器手勢(shì)識(shí)別一直以來(lái)是人機(jī)交互領(lǐng)域的重要研究方向[1]。目前,手勢(shì)識(shí)別的方案有很多種,主要包括:基于筆的手勢(shì)識(shí)別、數(shù)據(jù)手套的手勢(shì)識(shí)別、基于微機(jī)電系統(tǒng)(micro-electro-mechanical system,MEMS)慣性傳感器的手勢(shì)模式識(shí)別、基于視覺的手勢(shì)識(shí)別和基于圖像的手勢(shì)識(shí)別[2~4]。基于視覺的手勢(shì)識(shí)別技術(shù)比較成熟[5],但依賴于對(duì)圖像的處理,要求設(shè)備有很強(qiáng)的圖像處理能力和對(duì)設(shè)備的使用環(huán)境有嚴(yán)格要求,比如光線的影響,限制了該方法的應(yīng)用?;诩铀俣葌鞲衅鞯氖謩?shì)識(shí)別方法[6],比如荊雷、馬文君等人[7]提出的動(dòng)態(tài)時(shí)間規(guī)整(dynamic time warping,DTW),方法計(jì)算量大,對(duì)于連續(xù)性手勢(shì)識(shí)別實(shí)時(shí)性不好。隱馬爾可夫模型(hidden Markov model,HMM)[8],由于同一種手勢(shì)在不同用戶間存在差異很難建立起手勢(shì)模板和隱馬爾可夫模型。陳意、楊平等人提出了基于加速度規(guī)律特征提取的手勢(shì)識(shí)別方法[9]。隨著微電子技術(shù)的飛速發(fā)展,32位微控制器的均自帶浮點(diǎn)運(yùn)算單元(floating point unit,FPU),大幅提高了運(yùn)算能力,同時(shí)慣性傳感器自帶數(shù)字運(yùn)動(dòng)處理器(digital motion processors,DMP)可以將姿態(tài)解算[10]應(yīng)用于手勢(shì)識(shí)別算法中。
本文基于MPU6050傳感器提出了結(jié)合加速度和姿態(tài)角手勢(shì)特征提取的手勢(shì)識(shí)別優(yōu)化算法。針對(duì)個(gè)體手勢(shì)動(dòng)作的差異性具有較強(qiáng)的魯棒性,通過提取各種手勢(shì)的運(yùn)動(dòng)學(xué)特征以及設(shè)備的姿態(tài)變化規(guī)律完成手勢(shì)識(shí)別。對(duì)手勢(shì)的方向識(shí)別運(yùn)用了姿態(tài)角的特征量來(lái)實(shí)現(xiàn),簡(jiǎn)化了算法的復(fù)雜度。在敲擊手勢(shì)和晃動(dòng)類手勢(shì)識(shí)別中也運(yùn)用了姿態(tài)角的變化規(guī)律,姿態(tài)角的信號(hào)特征為手勢(shì)的方向識(shí)別提供了便利。
在敲擊手勢(shì)和晃動(dòng)類手勢(shì)的分類中應(yīng)用了四元數(shù)轉(zhuǎn)換到歐拉角的信號(hào)波形來(lái)分析。手勢(shì)設(shè)備在空間的姿態(tài)變化可以用四元數(shù)不斷更新來(lái)表征,亦即用轉(zhuǎn)換后的歐拉角表示。對(duì)手勢(shì)的方向識(shí)別運(yùn)用姿態(tài)角的特征量進(jìn)行判斷。
1)四元數(shù)定義:空間中任何一個(gè)旋轉(zhuǎn)均可以用四元數(shù)來(lái)表示成q=ω+xi+yj+zk形式,其中,ω表示旋轉(zhuǎn)角度,寫成矩陣形式為
q=[ω,x,y,z]T
(1)
2)四元數(shù)歸一化處理:表征旋轉(zhuǎn)的四元數(shù)必須是規(guī)范化四元數(shù),需要進(jìn)行歸一化處理[11]
|q|2=ω2+x2+y2+z2=1
(2)
3)四元數(shù)/歐拉角轉(zhuǎn)換:任何一個(gè)設(shè)備在三維空間中的姿態(tài)可以用歐拉角表示
(3)
式中φ為橫滾(roll)角;θ為俯仰(pitch)角;φ為偏航(yaw)角。
1.2.1基本手勢(shì)定義和分類
手勢(shì)定義基本原則:設(shè)備易于識(shí)別手勢(shì);使用者容易學(xué)習(xí)和使用手勢(shì)。定義了如表1所示的手勢(shì)集分類。
表1 手勢(shì)集劃分
1.2.2 實(shí)驗(yàn)平臺(tái)
基于STM32F427處理器,通過MPU6050慣性傳感器進(jìn)行手勢(shì)數(shù)據(jù)信息采集,通過外設(shè)串口并按照自定義幀協(xié)議將數(shù)據(jù)上傳至上位機(jī)軟件,本文借助匿名飛控的上位機(jī)軟件實(shí)現(xiàn)了手勢(shì)數(shù)據(jù)的實(shí)時(shí)顯示和圖形繪制,方便對(duì)信息進(jìn)行分析處理,最后通過算法將手勢(shì)信息提取為指令,從而通過無(wú)線收發(fā)器NRF24L01 2.4 GHz通信協(xié)議在LCD顯示手勢(shì)識(shí)別結(jié)果。圖1為實(shí)驗(yàn)系統(tǒng)整體結(jié)構(gòu)。
圖1 實(shí)驗(yàn)系統(tǒng)整體結(jié)構(gòu)
1.2.3 手勢(shì)識(shí)別模式算法
研究的慣性傳感器手勢(shì)識(shí)別算法應(yīng)用于移動(dòng)設(shè)備,要求實(shí)時(shí)性高,方便在嵌入式系統(tǒng)移植。故采用了手勢(shì)原始數(shù)據(jù)統(tǒng)計(jì)分析的方法。手勢(shì)識(shí)別算法框圖如圖2所示。
圖2 手勢(shì)識(shí)別算法框圖
1.2.4 手勢(shì)信號(hào)數(shù)據(jù)截取
在進(jìn)行有效手勢(shì)信號(hào)截取前,必須要準(zhǔn)確檢測(cè)手勢(shì)起點(diǎn)和終點(diǎn)。圖3為利用加速度信號(hào)進(jìn)行手勢(shì)起點(diǎn),終點(diǎn)檢測(cè)。
圖3 手勢(shì)起點(diǎn)和終點(diǎn)判斷
由圖3可見,加速度計(jì)在一般狀態(tài)下變化較平緩,但當(dāng)有手勢(shì)動(dòng)作發(fā)生時(shí)加速度計(jì)數(shù)據(jù)波形會(huì)發(fā)生劇烈變化。利用加速計(jì)的數(shù)據(jù)特性表征手勢(shì)動(dòng)作具有很高的可靠性[12]。本文對(duì)三軸加速計(jì)數(shù)據(jù)作差分,再以差分絕對(duì)值之和作為表征手勢(shì)起點(diǎn)、終點(diǎn)的特征量。如式(4)所示,以Δak作為判斷起點(diǎn)和終點(diǎn)的依據(jù)
Δak=|axk-axk-1|+|ayk-ayk-1|+|azk-azk-1|
(4)
圖4 手勢(shì)識(shí)別模式算法起點(diǎn)流程
1)手勢(shì)信號(hào)階段平均能量
為了簡(jiǎn)化算法,減少計(jì)算量,用手勢(shì)平均能量代替手勢(shì)總能量
(5)
式中L為手勢(shì)長(zhǎng)度;axi,ayi,azi分別為x軸、y軸和z軸第i個(gè)采樣點(diǎn)加速度;ax0,ay0,az0為對(duì)應(yīng)軸加速度零偏。
2)手勢(shì)長(zhǎng)度
從手勢(shì)起點(diǎn)開始到手勢(shì)結(jié)束的時(shí)間差值,本文以采樣點(diǎn)[12]的序號(hào)表示采樣節(jié)點(diǎn)對(duì)應(yīng)的時(shí)刻值。手勢(shì)長(zhǎng)度即為采樣序號(hào)的差值
L=Kend-Kstart
(6)
對(duì)于不同的手勢(shì)動(dòng)作手勢(shì)長(zhǎng)度不同,對(duì)于翻轉(zhuǎn)類手勢(shì)動(dòng)作較短小于50 ms,其他手勢(shì)較長(zhǎng),采樣頻率200 Hz。
3)手勢(shì)信號(hào)段歐拉角波峰波谷數(shù)目計(jì)算
在手勢(shì)信號(hào)階段,以手勢(shì)起點(diǎn)閾值為0°,遍歷與橫軸的交點(diǎn),B1~B7,計(jì)算每個(gè)區(qū)間中最大和最小值,當(dāng)最小值小于下限閾值,波谷數(shù)目加1;當(dāng)最大值大于上限,閾值波峰數(shù)目加1。利用上限和下限閾值的濾波的方法能夠減小干擾,具體計(jì)算方法如圖5所示。
圖5 波峰波谷數(shù)目計(jì)算方法
4)手勢(shì)信號(hào)段歐拉角信號(hào)平均幅值
(7)
式中Pi為波峰或波谷值;N為波峰波谷總數(shù)。
5)手勢(shì)信號(hào)段歐拉角差分絕對(duì)值之和
(8)
(9)
(10)
式中Eφ,Eθ,Eφ分別為橫滾角、俯仰角和偏航角差分絕對(duì)值之和;L為手勢(shì)長(zhǎng)度。
設(shè)計(jì)的手勢(shì)分類器充分利用了姿態(tài)角的信號(hào)進(jìn)行方向判斷以及敲擊手勢(shì)和晃動(dòng)手勢(shì)的分離,設(shè)計(jì)了3層決策樹分類器,達(dá)到了簡(jiǎn)化算法的目的。如圖6所示。
圖6 分類器
第一層:在預(yù)定義手勢(shì)中只有翻轉(zhuǎn)類手勢(shì)長(zhǎng)度最短且加速度信號(hào)變化量最小,所以若手勢(shì)能量最小,小于閾值,分類為翻轉(zhuǎn)類。
第二層:MPU6050自帶數(shù)字運(yùn)動(dòng)處理器,通過姿態(tài)解算后得到歐拉角,清晰反映預(yù)定義手勢(shì)波峰數(shù),甩動(dòng)手勢(shì)在姿態(tài)角上表現(xiàn)的運(yùn)動(dòng)學(xué)特征為無(wú)峰值,利用該條件可分離出甩動(dòng)類手勢(shì)。甩動(dòng)手勢(shì)加速度和歐拉角波形如圖7所示。
圖7 甩動(dòng)手勢(shì)加速度和歐拉角波形
第三層:預(yù)定義敲擊手勢(shì)為連續(xù)敲擊3次和晃動(dòng)手勢(shì)在歐拉角信號(hào)上形狀相似,如圖8所示。
圖8 敲擊和晃動(dòng)手勢(shì)波形
在姿態(tài)角特征上的區(qū)別表現(xiàn)為手勢(shì)長(zhǎng)度L和手勢(shì)平均幅值Em的不同,考慮到設(shè)備姿態(tài)以及操作者的差異性,為了提高識(shí)別率,選取出敲擊手勢(shì)和晃動(dòng)手勢(shì)的樣本,利用這兩個(gè)特征進(jìn)行訓(xùn)練,得到Fisher分類函數(shù)f=61L+5Em-4 610,當(dāng)f<0,為敲擊類手勢(shì);當(dāng)f>0為晃動(dòng)類手勢(shì)。
2.3.1 翻轉(zhuǎn)類手勢(shì)識(shí)別
翻轉(zhuǎn)類手勢(shì)動(dòng)作均繞特定坐標(biāo)軸翻轉(zhuǎn),運(yùn)動(dòng)變化主要體現(xiàn)在陀螺儀上,加速度計(jì)變化很小。在預(yù)定義手勢(shì)集中表現(xiàn)為手勢(shì)平均能量最小,經(jīng)過統(tǒng)計(jì)分析翻轉(zhuǎn)類手勢(shì)平均能量最大不超過4 000,而手勢(shì)能量最低的甩動(dòng)手勢(shì)均大于4 500。利用最小平均能量閾值分離出翻轉(zhuǎn)類手勢(shì)。再利用手勢(shì)段歐拉角差分絕對(duì)值之和最大特征量(即選Eφ,Eθ,Eφ最大者)篩選出翻轉(zhuǎn)軸(Eφ,Eθ,Eφ分別對(duì)應(yīng)X,Y,Z軸)。對(duì)于方向的識(shí)別根據(jù)手勢(shì)段歐拉角波峰值或者波谷值有無(wú)確定,僅有波峰值為順時(shí)針翻轉(zhuǎn),僅有波谷值為逆時(shí)針翻轉(zhuǎn)。
2.3.2 甩動(dòng)類手勢(shì)識(shí)別
由分類器第一層利用手勢(shì)能量分離出翻轉(zhuǎn)類手勢(shì)后,在預(yù)定義的剩下3類手勢(shì)中,利用姿態(tài)角波形能夠清晰反映手勢(shì)峰值特征,晃動(dòng)手勢(shì)和連續(xù)敲擊3次手勢(shì)波峰和波谷數(shù)目均大于等于3,而甩動(dòng)手勢(shì)在歐拉角信號(hào)上表現(xiàn)為波峰數(shù)目等于0,利用波峰數(shù)目能夠分離出甩動(dòng)手勢(shì)。
1)甩動(dòng)手勢(shì)方向的預(yù)識(shí)別:甩動(dòng)分為左右甩動(dòng)和上下甩動(dòng),當(dāng)歐拉角差分絕對(duì)值之和最大值發(fā)生在俯仰角信號(hào)上,(即Eθ值最大)則為上下甩動(dòng)如圖9(a);當(dāng)發(fā)生在在偏航角信號(hào)上,(即Eφ值最大)則為左右甩動(dòng)如圖9(b)。
圖9 甩動(dòng)手勢(shì)信號(hào)波形
2.3.3 敲擊類和晃動(dòng)類手勢(shì)識(shí)別
預(yù)定義敲擊手勢(shì)為連續(xù)敲擊3次,而晃動(dòng)類手勢(shì)為連續(xù)晃動(dòng)3次及以上,當(dāng)晃動(dòng)3次以上,手勢(shì)信號(hào)明顯特征表現(xiàn)在晃動(dòng)手勢(shì)長(zhǎng)度大于敲擊手勢(shì),平均幅值Em也大于前者。但是當(dāng)晃動(dòng)次數(shù)為3次時(shí),兩類手勢(shì)信號(hào)很相似,為了提高識(shí)別準(zhǔn)確度,對(duì)兩類手勢(shì)樣本進(jìn)行訓(xùn)練得到Fisher判別函數(shù)f=61L+5Em-4 610:當(dāng)f<0,為敲擊類手勢(shì);當(dāng)f>0為晃動(dòng)類手勢(shì)。
晃動(dòng)手勢(shì)方向識(shí)別:晃動(dòng)分為左右晃動(dòng)和上下晃動(dòng),表現(xiàn)在姿態(tài)角上的特征是當(dāng)手勢(shì)信號(hào)段歐拉角差分絕對(duì)值之和最大值(即Eθ值最大)出現(xiàn)在俯仰角信號(hào)上為上下晃動(dòng),信號(hào)波形如圖10(a)所示;當(dāng)出現(xiàn)在偏航角信號(hào)上(即Eφ值最大)為左右晃動(dòng),信號(hào)波形如圖10(b)所示。
圖10 晃動(dòng)手勢(shì)信號(hào)波形
基于MPU6050慣性傳感器的實(shí)驗(yàn)測(cè)試,選擇10位試驗(yàn)對(duì)象各進(jìn)行100次測(cè)試,平均識(shí)別率96.4 %,測(cè)試識(shí)別結(jié)果如表2所示。G1~G9分別表示順時(shí)針翻轉(zhuǎn)、逆時(shí)針翻轉(zhuǎn)、向上甩動(dòng)、向下甩動(dòng)、向左甩動(dòng)、向右甩動(dòng)、敲擊、上下晃動(dòng)、左右晃動(dòng),R1~R9為實(shí)驗(yàn)結(jié)果。
表2 手勢(shì)識(shí)別結(jié)果
從結(jié)果可以看出,大多數(shù)的識(shí)別錯(cuò)誤出現(xiàn)在方向識(shí)別,與操作不規(guī)范性因素有關(guān),比如抖動(dòng)因素。
針對(duì)MPU6050傳感器提出了結(jié)合加速度規(guī)律和特征量以及設(shè)備姿態(tài)角變化規(guī)律的手勢(shì)識(shí)別方法。能夠減少因用戶操作差異性因素造成誤識(shí)別的影響。同時(shí)利用姿態(tài)角的變化規(guī)律和特征量能夠方便對(duì)手勢(shì)的方向進(jìn)行判別。相較于僅使用加速度變化規(guī)律的手勢(shì)識(shí)別算法,利用姿態(tài)角對(duì)方向識(shí)別簡(jiǎn)化了算法,縮短了手勢(shì)識(shí)別時(shí)間,提高了實(shí)時(shí)性。姿態(tài)角能直觀地表征設(shè)備的位姿變化,同時(shí)能夠在一定范圍內(nèi)兼容手勢(shì)動(dòng)作包含的基礎(chǔ)運(yùn)動(dòng)。算法已成功移植在STM32F427微處理器上。
[1] 雷 蕾,趙涓涓,史曜華.人車交互技術(shù)中的手勢(shì)檢測(cè)及識(shí)別方法[J].太原理工大學(xué)學(xué)報(bào),2016,47(6):793-798.
[2] 肖 茜,楊 平,徐立波.一種基于MEMS慣性傳感器的手勢(shì)識(shí)別方法[J].傳感技術(shù)學(xué)報(bào),2013,26(5):611-615.
[3] 武 霞,張 崎,許艷旭.手勢(shì)識(shí)別研究發(fā)展現(xiàn)狀綜述[J].電子科技,2013,26(6):171-174.
[4] Panwar M.Hand gesture recognition based on shape parame-ters[C]∥International Conference on Computing,Communication and Applications,IEEE,2012:1-6.
[5] 孔俊其,王 輝,張廣泉.基于傳感器的手勢(shì)交互研究[C]∥江蘇計(jì)算機(jī)大會(huì),2008.
[6] 孔俊其.基于三維加速度傳感器的手勢(shì)識(shí)別及交互模型研究[D].蘇州:蘇州大學(xué),2009.
[7] 荊 雷,馬文君,常丹華.基于動(dòng)態(tài)時(shí)間規(guī)整的手勢(shì)加速度信號(hào)識(shí)別[J].傳感技術(shù)學(xué)報(bào),2012,25(1):72-76.
[8] 劉珠峰,周 良,丁秋林.基于隱性馬爾可夫模型的手勢(shì)識(shí)別設(shè)計(jì)和優(yōu)化[J].計(jì)算機(jī)應(yīng)用研究,2011,28(6):2386-2388.
[9] 陳 意.基于MEMS慣性傳感器的移動(dòng)電子設(shè)備手勢(shì)識(shí)別技術(shù)研究[D].成都:電子科技大學(xué),2013.
[10] 彭孝東,陳 瑜,李繼宇,等.MEMS三軸數(shù)字陀螺儀標(biāo)定方法研究[J].傳感器與微系統(tǒng),2013,32(6):63-65.
[11] 曹 飛.嵌入式航向姿態(tài)參考系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京理工大學(xué),2012.
[12] 趙呂晨,吳 薇,曾憲奕,等.基于多加速度傳感器的胎動(dòng)信號(hào)檢測(cè)方法[J].傳感器與微系統(tǒng),2016,35(12):20-23.