文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.2016.07.017
中文引用格式: 徐軍,劉春花,孟月霞,等. 可穿戴手勢(shì)識(shí)別控制器[J].電子技術(shù)應(yīng)用,2016,42(7):68-71,75.
英文引用格式: Xu Jun,Liu Chunhua,Meng Yuexia,et al. Gesture recognition base on wearable controller[J].Application of Electronic Technique,2016,42(7):68-71,75.
0 引言
近年來(lái),嵌入多種MEMS(Micro-Electro-Mechanical System)傳感器的可穿戴電子設(shè)備發(fā)展迅速,如谷歌眼鏡、阿迪達(dá)斯運(yùn)動(dòng)鞋和愛(ài)心運(yùn)動(dòng)手環(huán)等。同時(shí),將人機(jī)交互和可穿戴設(shè)備相結(jié)合逐漸成為研究熱點(diǎn),其中手勢(shì)識(shí)別技術(shù)在人機(jī)交互領(lǐng)域扮演著一個(gè)重要的角色[1]。在手勢(shì)識(shí)別技術(shù)中,基于運(yùn)動(dòng)傳感器的手勢(shì)識(shí)別技術(shù)[2-3]相比基于圖像的手勢(shì)識(shí)別方法避免了環(huán)境因素的干擾,成為了一種簡(jiǎn)單的交互方式,國(guó)內(nèi)外學(xué)者基于此做了大量研究。Min等利用K均值聚類算法提取手勢(shì)模板,在識(shí)別階段通過(guò)動(dòng)態(tài)時(shí)間規(guī)整算法進(jìn)行輸入手勢(shì)與手勢(shì)模板的匹配計(jì)算,從手勢(shì)數(shù)據(jù)中計(jì)算特征量,利用貝葉斯分類器對(duì)手勢(shì)進(jìn)行預(yù)分類,再與相應(yīng)類中的手勢(shì)模板進(jìn)行匹配[5]。Thomas等開發(fā)了一種手持Wii控制器,算法中通過(guò)量化三維加速度向量和建立隱性馬爾科夫模型進(jìn)行手勢(shì)識(shí)別,平均識(shí)別率為90%[6]。XU等提出了符號(hào)序列結(jié)合霍普菲爾德(Hopfield)神經(jīng)網(wǎng)絡(luò)、速度增量和符號(hào)序列結(jié)合模板匹配三種算法,分別對(duì)手勢(shì)的速度數(shù)據(jù)進(jìn)行編碼,識(shí)別率為95.6%[7]。黃劉松[8]等提出一種基于加速度傳感器的乒乓球擊球動(dòng)作識(shí)別算法,利用固定閾值法截取手勢(shì)數(shù)據(jù),提取能量信號(hào)和手勢(shì)長(zhǎng)度等特征,識(shí)別過(guò)程采用K近鄰和決策樹算法。
基于以上分析,本文設(shè)計(jì)了一種可穿戴于手指上的手勢(shì)識(shí)別控制器,相比傳統(tǒng)的手持設(shè)備,其獲取手勢(shì)的方式更加自由隨意,提高了用戶的體驗(yàn)性;同時(shí),采用特征提取的方法實(shí)現(xiàn)手勢(shì)識(shí)別,利用特征量閾值進(jìn)行分類提高手勢(shì)識(shí)別算法的準(zhǔn)確率,相比于其他方法不僅計(jì)算量小,而且省去了復(fù)雜的模板建立過(guò)程,提高了手勢(shì)識(shí)別算法的個(gè)體適應(yīng)性。
1 系統(tǒng)的總體設(shè)計(jì)方案
可穿戴手勢(shì)識(shí)別控制器組成如圖1所示,主控芯片ATmega328控制各模塊運(yùn)行,接收姿態(tài)模塊MPU6050傳感器采集的三軸加速度、角速度和和通過(guò)姿態(tài)解算得到的三軸姿態(tài)角,然后將數(shù)據(jù)由WiFi模塊傳給上位機(jī),進(jìn)行手勢(shì)數(shù)據(jù)的截取,通過(guò)提取運(yùn)動(dòng)手勢(shì)的特征量進(jìn)行手勢(shì)分類。
設(shè)備體積大小只有2.3 cm×1.4 cm×0.8 cm,通過(guò)5 V鋰電池為系統(tǒng)供電,控制器的實(shí)物圖正、反面如圖2所示,穿戴于食指的第二個(gè)關(guān)節(jié)上。
2 手勢(shì)定義
手勢(shì)動(dòng)作的定義應(yīng)易于學(xué)習(xí)與使用,且具有明顯的特征。本文定義六類簡(jiǎn)單手勢(shì),如表1所示。
3 手勢(shì)識(shí)別算法
3.1 手勢(shì)數(shù)據(jù)預(yù)處理
微慣性傳感器能夠采集動(dòng)態(tài)的手勢(shì)數(shù)據(jù),但由于敏感原件的固有特性會(huì)產(chǎn)生隨機(jī)噪聲,所以采用卡爾曼濾波方法(Kalman)對(duì)獲取的加速度、角速度數(shù)據(jù)等進(jìn)行平穩(wěn)去噪處理。卡爾曼濾波方法僅需知道前一時(shí)刻的估算值和當(dāng)前測(cè)量值,通過(guò)時(shí)間更新和觀測(cè)更新方程不斷迭代獲得當(dāng)前狀態(tài)信息和濾波增益[9],相比于小波變換[10]、傅里葉變換方法節(jié)省了數(shù)據(jù)的存儲(chǔ)空間和算法的編譯時(shí)間。通過(guò)設(shè)定觀測(cè)噪聲協(xié)方差和過(guò)程噪聲協(xié)方差矩陣相近的取值,可以剔除手勢(shì)數(shù)據(jù)中的高頻噪聲,角速度的濾波效果如圖3所示。
3.2 手勢(shì)數(shù)據(jù)截取
控制器在平穩(wěn)狀態(tài)下輸出相對(duì)穩(wěn)定的數(shù)據(jù),當(dāng)手指操作時(shí),傳感器采集的加速度和角速度都會(huì)有明顯變化,因此采用差分值法進(jìn)行手勢(shì)數(shù)據(jù)截取,如式(1) :
3.3 特征量提取
在手勢(shì)識(shí)別過(guò)程中,慣性傳感器設(shè)備坐標(biāo)系不斷改變,最終產(chǎn)生的數(shù)據(jù)有很大差異,所以需將設(shè)備坐標(biāo)轉(zhuǎn)變?yōu)橛脩糇鴺?biāo)系,然后分析這些手勢(shì)數(shù)據(jù)。確定了6個(gè)特征量對(duì)手勢(shì)進(jìn)行分類:
(1)手勢(shì)長(zhǎng)度L:手勢(shì)運(yùn)動(dòng)中從起點(diǎn)到終點(diǎn)的手勢(shì)數(shù)據(jù)采樣個(gè)數(shù)。
(2)手勢(shì)能量E:手勢(shì)在運(yùn)動(dòng)過(guò)程中的劇烈程度被稱為手勢(shì)能量,計(jì)算為從手勢(shì)起點(diǎn)到終點(diǎn)的所有三軸角速度和三軸加速度之和,如式(2):
其中,L為手勢(shì)長(zhǎng)度,wxi、wyi、wzi為手勢(shì)在X、Y、Z軸上的角速度,axi、ayi、azi分別為手勢(shì)在三軸上的加速度,g為重力加速度。
(3)角速度能量最大軸:每個(gè)軸角速度能量計(jì)算方法如式(3)所示,角速度能量最大軸為分別計(jì)算各軸角速度總和之后比較得出的最大者,即max(Ewx,Ewy,Ewz)所在的坐標(biāo)軸。
(4)加速度波峰數(shù):即三軸加速度波峰數(shù)之和,每個(gè)坐標(biāo)軸的波峰數(shù)提取方法如圖5所示。首先找出手勢(shì)加速度數(shù)據(jù)與橫軸的所有交點(diǎn)A1、A2、A3、A4、A5……,然后在這些相鄰兩交點(diǎn)間找出加速度絕對(duì)值最大值點(diǎn)B1、B2、B3、B4……,它們中大于波峰數(shù)閾值范圍的個(gè)數(shù)為加速度波峰數(shù)。
(5)姿態(tài)角變化量Δa:控制器在運(yùn)動(dòng)起點(diǎn)與終點(diǎn)時(shí)的三軸姿態(tài)角的分別差值的總和,如下式:
(6)單符號(hào)角速度:手勢(shì)操作時(shí),任何一個(gè)坐標(biāo)軸上的角速度始終為正值或負(fù)值,為單符號(hào)角速度。
3.4 手勢(shì)分類與識(shí)別
操作可穿戴設(shè)備過(guò)程中,一些不規(guī)則手勢(shì)將會(huì)影響手勢(shì)識(shí)別的準(zhǔn)確率,所以經(jīng)過(guò)分析6種手勢(shì)數(shù)據(jù)后,本算法將手勢(shì)動(dòng)作不滿足手勢(shì)長(zhǎng)度L>30或手勢(shì)能量E>50的條件當(dāng)做誤動(dòng)作去除。手勢(shì)能量E范圍在1 500以內(nèi),不規(guī)則手勢(shì)運(yùn)動(dòng)的手勢(shì)能量大于該閾值時(shí)同樣將判為誤動(dòng)作不進(jìn)行手勢(shì)分類與識(shí)別,從而提高手勢(shì)識(shí)別算法的魯棒性。本文采用決策樹分類器對(duì)6種手勢(shì)進(jìn)行分類,如圖6所示。
第一層:敲擊手勢(shì)持續(xù)時(shí)間短,產(chǎn)生手勢(shì)數(shù)據(jù)個(gè)數(shù)少且運(yùn)動(dòng)劇烈程度小,因此根據(jù)手勢(shì)長(zhǎng)度、手勢(shì)能量?jī)蓚€(gè)特征量閾值區(qū)分出敲擊類手勢(shì)。
第二層:翻轉(zhuǎn)手勢(shì)主要是繞X軸作旋轉(zhuǎn)運(yùn)動(dòng),角速度能量主要集中于X軸,所以利用X軸是否為角速度能量最大軸即可識(shí)別出翻轉(zhuǎn)手勢(shì)。
第三層:劃叉、晃動(dòng)、劃鉤、甩動(dòng)手勢(shì)間的手勢(shì)長(zhǎng)度、手勢(shì)能量、加速度波峰數(shù)特征量都有一定的交集,所以利用Fisher線性分類算法將4種手勢(shì)分為兩類:f=43×L+65×E+124×P-29 900,當(dāng)f>0為劃叉和晃動(dòng)類手勢(shì),反之為劃鉤和甩動(dòng)類手勢(shì)。
第四層:分析晃動(dòng)和劃叉手勢(shì)的起止點(diǎn)的三軸姿態(tài)角數(shù)據(jù),得出劃叉比晃動(dòng)手勢(shì)的姿態(tài)角變化量大,以此區(qū)分這兩類手勢(shì)。甩動(dòng)手勢(shì)是繞Z坐標(biāo)軸作單方向的旋轉(zhuǎn)運(yùn)動(dòng),滿足單符號(hào)角速度特征,因此和劃鉤手勢(shì)進(jìn)行區(qū)分。
4 實(shí)驗(yàn)結(jié)果
考慮到用時(shí)最短的敲擊手勢(shì)頻率小于10 Hz,只要采樣頻率大于手勢(shì)動(dòng)作的2~3倍就可以獲得完整的動(dòng)作數(shù)據(jù)信息,所以本設(shè)計(jì)分別以不同的頻率進(jìn)行數(shù)據(jù)采樣,按照以上識(shí)別算法進(jìn)行平均識(shí)別時(shí)間和準(zhǔn)確率測(cè)試如表2所示。隨著采樣頻率增加,采集數(shù)據(jù)增加,編譯時(shí)間增加和準(zhǔn)確率提高,但當(dāng)采樣頻率過(guò)大時(shí)則采集數(shù)據(jù)過(guò)多導(dǎo)致計(jì)算量增大反而影響準(zhǔn)確率,實(shí)時(shí)性降低。為保證算法的實(shí)時(shí)性和控制計(jì)算量,將控制器的采樣頻率設(shè)為50 Hz,分類算法的編譯和識(shí)別可以在0.085 s內(nèi)完成,不會(huì)影響設(shè)備的下次數(shù)據(jù)采樣。
本文選擇了20位實(shí)驗(yàn)者對(duì)設(shè)備進(jìn)行測(cè)試,他們分別操作6種手勢(shì)各20次。敲擊手勢(shì)的加速度數(shù)據(jù)和手勢(shì)能量較小,如圖7所示,翻轉(zhuǎn)手勢(shì)X軸的角速度能量遠(yuǎn)大于Y軸和Z軸的角速度數(shù)據(jù),如圖8所示。甩動(dòng)類手勢(shì)滿足單符號(hào)角速度特征,其角速度數(shù)據(jù)如圖9。劃鉤手勢(shì)不具有單符號(hào)角速度特征而易于被識(shí)別,其角速度數(shù)據(jù)如圖10所示。晃動(dòng)和劃叉手勢(shì)因姿態(tài)角變化量特征被區(qū)分,其手勢(shì)數(shù)據(jù)分別如圖11、12所示。
手勢(shì)分類結(jié)果如表3所示,第一列是手勢(shì)動(dòng)作的輸入,第一行代表手勢(shì)識(shí)別輸出結(jié)果,識(shí)別準(zhǔn)確率依次為:敲擊-100%、翻轉(zhuǎn)-100%,甩動(dòng)-94.5%、晃動(dòng)-96.5%、劃叉-95.25%、劃鉤-95.75%。實(shí)驗(yàn)證明控制器對(duì)6種手勢(shì)的平均識(shí)別率達(dá)到了97%。
其中的誤差主要是由于甩動(dòng)手勢(shì)在操作前有極短的反方向運(yùn)動(dòng)過(guò)程而不滿足單符號(hào)角速度特征,易被識(shí)別為劃鉤手勢(shì);當(dāng)甩動(dòng)力度過(guò)大時(shí),手勢(shì)能量和波峰數(shù)增加,將導(dǎo)致Fisher函數(shù)值大于零,且甩動(dòng)手勢(shì)的姿態(tài)角變化量較小,所以也可能被劃分為晃動(dòng)手勢(shì)。同理,當(dāng)晃動(dòng)手勢(shì)動(dòng)作幅度過(guò)小時(shí),分類器出現(xiàn)誤差,且不具有單符號(hào)角速度特性,有被識(shí)別為劃鉤手勢(shì)的可能。劃鉤手勢(shì)力度過(guò)大和因姿態(tài)角變化量較大將被識(shí)別為劃叉類,操作劃叉手勢(shì)力度過(guò)小時(shí)和不具有單符號(hào)角速度特征將被分類為劃鉤手勢(shì)。
5 結(jié)論
本文提出了一種具有手勢(shì)識(shí)別功能的可穿戴控制器的設(shè)計(jì)方法??刂破鞒浞诌\(yùn)用了慣性傳感器的加速度計(jì)和陀螺儀的輸出數(shù)據(jù),依據(jù)特征量提取的方法對(duì)手勢(shì)數(shù)據(jù)進(jìn)行分析,成功實(shí)現(xiàn)了對(duì)6種手勢(shì)的識(shí)別,確保了分類算法的準(zhǔn)確率。該設(shè)計(jì)方法首先對(duì)控制器進(jìn)行設(shè)備姿態(tài)更新,消除了以往僅使用加速度計(jì)對(duì)設(shè)備姿態(tài)的限制,提高了設(shè)備的用戶體驗(yàn)性和實(shí)用性。而且使用者無(wú)需經(jīng)過(guò)訓(xùn)練提取模板,減小了個(gè)體差異引起的誤差,同時(shí)該手勢(shì)識(shí)別算法省去了傳統(tǒng)算法中模板匹配過(guò)程的計(jì)算量,確保了算法的簡(jiǎn)單性。
參考文獻(xiàn)
[1] 王萬(wàn)良,楊經(jīng)緯,蔣一波.基于運(yùn)動(dòng)傳感器的手勢(shì)識(shí)別[J].傳感技術(shù)學(xué)報(bào),2011,24(12):1723-1727.
[2] Liu Yu.Inertial sensor-based mobile phone gesture recognition[J].Application of Electronic Technique,2011,37(12):76-79.
[3] 黃啟友,戴永,胡明清.基于陀螺傳感器的三維手勢(shì)識(shí)別方案[J].計(jì)算機(jī)工程,2011,37(22):72-76.
[4] Yin Liang,Dong Mingzhi,Duan Ying.A high-performance training-free approach for hand gesture recognition with accelerometer[J].Multimedia Tools and Applications,2014(1):843-864.
[5] Jun-Ki Min,Bongwhan Choe,Sung-Bae Cho.A selective template matching algorithm for short and intuitive gesture UI for accelerometer built-in mobile phones[C].IEEE Second World Congress on Nature and Biologically Inspired Computing.Fukuoka,2010:660-665.
[6] SCHLLOMER T.Gesture recognition with a Wii controller[C].Proceedings of the 2nd International Conference on Tangible and Embedded Interaction.Bonn,2008:11-14.
[7] Xu Ruize,Zhou Shengli,WEN J,et al.MEMS accelerometer based nonspecific-user hand gesture recognition[J].IEEE Sensors Journal,2012,12(5):1166-1173.
[8] 黃劉松,儲(chǔ)岳中,張學(xué)鋒.基于加速度傳感器的乒乓球擊球動(dòng)作識(shí)別[J].傳感器與微系統(tǒng),2016,35(1):56-58.
[9] 張海鵬,房建成.MEMS陀螺儀短時(shí)漂移特性試驗(yàn)研究[J].中國(guó)慣性技術(shù)學(xué)報(bào),2007,15(2):100-104.