文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.07.017
中文引用格式: 徐軍,劉春花,孟月霞,等. 可穿戴手勢識別控制器[J].電子技術應用,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 引言
近年來,嵌入多種MEMS(Micro-Electro-Mechanical System)傳感器的可穿戴電子設備發(fā)展迅速,如谷歌眼鏡、阿迪達斯運動鞋和愛心運動手環(huán)等。同時,將人機交互和可穿戴設備相結合逐漸成為研究熱點,其中手勢識別技術在人機交互領域扮演著一個重要的角色[1]。在手勢識別技術中,基于運動傳感器的手勢識別技術[2-3]相比基于圖像的手勢識別方法避免了環(huán)境因素的干擾,成為了一種簡單的交互方式,國內(nèi)外學者基于此做了大量研究。Min等利用K均值聚類算法提取手勢模板,在識別階段通過動態(tài)時間規(guī)整算法進行輸入手勢與手勢模板的匹配計算,從手勢數(shù)據(jù)中計算特征量,利用貝葉斯分類器對手勢進行預分類,再與相應類中的手勢模板進行匹配[5]。Thomas等開發(fā)了一種手持Wii控制器,算法中通過量化三維加速度向量和建立隱性馬爾科夫模型進行手勢識別,平均識別率為90%[6]。XU等提出了符號序列結合霍普菲爾德(Hopfield)神經(jīng)網(wǎng)絡、速度增量和符號序列結合模板匹配三種算法,分別對手勢的速度數(shù)據(jù)進行編碼,識別率為95.6%[7]。黃劉松[8]等提出一種基于加速度傳感器的乒乓球擊球動作識別算法,利用固定閾值法截取手勢數(shù)據(jù),提取能量信號和手勢長度等特征,識別過程采用K近鄰和決策樹算法。
基于以上分析,本文設計了一種可穿戴于手指上的手勢識別控制器,相比傳統(tǒng)的手持設備,其獲取手勢的方式更加自由隨意,提高了用戶的體驗性;同時,采用特征提取的方法實現(xiàn)手勢識別,利用特征量閾值進行分類提高手勢識別算法的準確率,相比于其他方法不僅計算量小,而且省去了復雜的模板建立過程,提高了手勢識別算法的個體適應性。
1 系統(tǒng)的總體設計方案
可穿戴手勢識別控制器組成如圖1所示,主控芯片ATmega328控制各模塊運行,接收姿態(tài)模塊MPU6050傳感器采集的三軸加速度、角速度和和通過姿態(tài)解算得到的三軸姿態(tài)角,然后將數(shù)據(jù)由WiFi模塊傳給上位機,進行手勢數(shù)據(jù)的截取,通過提取運動手勢的特征量進行手勢分類。
設備體積大小只有2.3 cm×1.4 cm×0.8 cm,通過5 V鋰電池為系統(tǒng)供電,控制器的實物圖正、反面如圖2所示,穿戴于食指的第二個關節(jié)上。
2 手勢定義
手勢動作的定義應易于學習與使用,且具有明顯的特征。本文定義六類簡單手勢,如表1所示。
3 手勢識別算法
3.1 手勢數(shù)據(jù)預處理
微慣性傳感器能夠采集動態(tài)的手勢數(shù)據(jù),但由于敏感原件的固有特性會產(chǎn)生隨機噪聲,所以采用卡爾曼濾波方法(Kalman)對獲取的加速度、角速度數(shù)據(jù)等進行平穩(wěn)去噪處理。卡爾曼濾波方法僅需知道前一時刻的估算值和當前測量值,通過時間更新和觀測更新方程不斷迭代獲得當前狀態(tài)信息和濾波增益[9],相比于小波變換[10]、傅里葉變換方法節(jié)省了數(shù)據(jù)的存儲空間和算法的編譯時間。通過設定觀測噪聲協(xié)方差和過程噪聲協(xié)方差矩陣相近的取值,可以剔除手勢數(shù)據(jù)中的高頻噪聲,角速度的濾波效果如圖3所示。
3.2 手勢數(shù)據(jù)截取
控制器在平穩(wěn)狀態(tài)下輸出相對穩(wěn)定的數(shù)據(jù),當手指操作時,傳感器采集的加速度和角速度都會有明顯變化,因此采用差分值法進行手勢數(shù)據(jù)截取,如式(1) :
3.3 特征量提取
在手勢識別過程中,慣性傳感器設備坐標系不斷改變,最終產(chǎn)生的數(shù)據(jù)有很大差異,所以需將設備坐標轉(zhuǎn)變?yōu)橛脩糇鴺讼?,然后分析這些手勢數(shù)據(jù)。確定了6個特征量對手勢進行分類:
(1)手勢長度L:手勢運動中從起點到終點的手勢數(shù)據(jù)采樣個數(shù)。
(2)手勢能量E:手勢在運動過程中的劇烈程度被稱為手勢能量,計算為從手勢起點到終點的所有三軸角速度和三軸加速度之和,如式(2):
其中,L為手勢長度,wxi、wyi、wzi為手勢在X、Y、Z軸上的角速度,axi、ayi、azi分別為手勢在三軸上的加速度,g為重力加速度。
(3)角速度能量最大軸:每個軸角速度能量計算方法如式(3)所示,角速度能量最大軸為分別計算各軸角速度總和之后比較得出的最大者,即max(Ewx,Ewy,Ewz)所在的坐標軸。
(4)加速度波峰數(shù):即三軸加速度波峰數(shù)之和,每個坐標軸的波峰數(shù)提取方法如圖5所示。首先找出手勢加速度數(shù)據(jù)與橫軸的所有交點A1、A2、A3、A4、A5……,然后在這些相鄰兩交點間找出加速度絕對值最大值點B1、B2、B3、B4……,它們中大于波峰數(shù)閾值范圍的個數(shù)為加速度波峰數(shù)。
(5)姿態(tài)角變化量Δa:控制器在運動起點與終點時的三軸姿態(tài)角的分別差值的總和,如下式:
(6)單符號角速度:手勢操作時,任何一個坐標軸上的角速度始終為正值或負值,為單符號角速度。
3.4 手勢分類與識別
操作可穿戴設備過程中,一些不規(guī)則手勢將會影響手勢識別的準確率,所以經(jīng)過分析6種手勢數(shù)據(jù)后,本算法將手勢動作不滿足手勢長度L>30或手勢能量E>50的條件當做誤動作去除。手勢能量E范圍在1 500以內(nèi),不規(guī)則手勢運動的手勢能量大于該閾值時同樣將判為誤動作不進行手勢分類與識別,從而提高手勢識別算法的魯棒性。本文采用決策樹分類器對6種手勢進行分類,如圖6所示。
第一層:敲擊手勢持續(xù)時間短,產(chǎn)生手勢數(shù)據(jù)個數(shù)少且運動劇烈程度小,因此根據(jù)手勢長度、手勢能量兩個特征量閾值區(qū)分出敲擊類手勢。
第二層:翻轉(zhuǎn)手勢主要是繞X軸作旋轉(zhuǎn)運動,角速度能量主要集中于X軸,所以利用X軸是否為角速度能量最大軸即可識別出翻轉(zhuǎn)手勢。
第三層:劃叉、晃動、劃鉤、甩動手勢間的手勢長度、手勢能量、加速度波峰數(shù)特征量都有一定的交集,所以利用Fisher線性分類算法將4種手勢分為兩類:f=43×L+65×E+124×P-29 900,當f>0為劃叉和晃動類手勢,反之為劃鉤和甩動類手勢。
第四層:分析晃動和劃叉手勢的起止點的三軸姿態(tài)角數(shù)據(jù),得出劃叉比晃動手勢的姿態(tài)角變化量大,以此區(qū)分這兩類手勢。甩動手勢是繞Z坐標軸作單方向的旋轉(zhuǎn)運動,滿足單符號角速度特征,因此和劃鉤手勢進行區(qū)分。
4 實驗結果
考慮到用時最短的敲擊手勢頻率小于10 Hz,只要采樣頻率大于手勢動作的2~3倍就可以獲得完整的動作數(shù)據(jù)信息,所以本設計分別以不同的頻率進行數(shù)據(jù)采樣,按照以上識別算法進行平均識別時間和準確率測試如表2所示。隨著采樣頻率增加,采集數(shù)據(jù)增加,編譯時間增加和準確率提高,但當采樣頻率過大時則采集數(shù)據(jù)過多導致計算量增大反而影響準確率,實時性降低。為保證算法的實時性和控制計算量,將控制器的采樣頻率設為50 Hz,分類算法的編譯和識別可以在0.085 s內(nèi)完成,不會影響設備的下次數(shù)據(jù)采樣。
本文選擇了20位實驗者對設備進行測試,他們分別操作6種手勢各20次。敲擊手勢的加速度數(shù)據(jù)和手勢能量較小,如圖7所示,翻轉(zhuǎn)手勢X軸的角速度能量遠大于Y軸和Z軸的角速度數(shù)據(jù),如圖8所示。甩動類手勢滿足單符號角速度特征,其角速度數(shù)據(jù)如圖9。劃鉤手勢不具有單符號角速度特征而易于被識別,其角速度數(shù)據(jù)如圖10所示?;蝿雍蛣澆媸謩菀蜃藨B(tài)角變化量特征被區(qū)分,其手勢數(shù)據(jù)分別如圖11、12所示。
手勢分類結果如表3所示,第一列是手勢動作的輸入,第一行代表手勢識別輸出結果,識別準確率依次為:敲擊-100%、翻轉(zhuǎn)-100%,甩動-94.5%、晃動-96.5%、劃叉-95.25%、劃鉤-95.75%。實驗證明控制器對6種手勢的平均識別率達到了97%。
其中的誤差主要是由于甩動手勢在操作前有極短的反方向運動過程而不滿足單符號角速度特征,易被識別為劃鉤手勢;當甩動力度過大時,手勢能量和波峰數(shù)增加,將導致Fisher函數(shù)值大于零,且甩動手勢的姿態(tài)角變化量較小,所以也可能被劃分為晃動手勢。同理,當晃動手勢動作幅度過小時,分類器出現(xiàn)誤差,且不具有單符號角速度特性,有被識別為劃鉤手勢的可能。劃鉤手勢力度過大和因姿態(tài)角變化量較大將被識別為劃叉類,操作劃叉手勢力度過小時和不具有單符號角速度特征將被分類為劃鉤手勢。
5 結論
本文提出了一種具有手勢識別功能的可穿戴控制器的設計方法。控制器充分運用了慣性傳感器的加速度計和陀螺儀的輸出數(shù)據(jù),依據(jù)特征量提取的方法對手勢數(shù)據(jù)進行分析,成功實現(xiàn)了對6種手勢的識別,確保了分類算法的準確率。該設計方法首先對控制器進行設備姿態(tài)更新,消除了以往僅使用加速度計對設備姿態(tài)的限制,提高了設備的用戶體驗性和實用性。而且使用者無需經(jīng)過訓練提取模板,減小了個體差異引起的誤差,同時該手勢識別算法省去了傳統(tǒng)算法中模板匹配過程的計算量,確保了算法的簡單性。
參考文獻
[1] 王萬良,楊經(jīng)緯,蔣一波.基于運動傳感器的手勢識別[J].傳感技術學報,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] 黃啟友,戴永,胡明清.基于陀螺傳感器的三維手勢識別方案[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] 黃劉松,儲岳中,張學鋒.基于加速度傳感器的乒乓球擊球動作識別[J].傳感器與微系統(tǒng),2016,35(1):56-58.
[9] 張海鵬,房建成.MEMS陀螺儀短時漂移特性試驗研究[J].中國慣性技術學報,2007,15(2):100-104.