陳 意,楊 平,陳旭光
(電子科技大學(xué)機械電子工程學(xué)院,成都611731)
在現(xiàn)代社會中,手機等移動電子設(shè)備已成為人們?nèi)粘I钪斜夭豢缮俚耐ㄓ嵑蛫蕵饭ぞ?,其主要的交互方式是鍵盤和觸摸屏,而這兩種交互方式都不可避免地將用戶限制在了設(shè)備屏幕之上,降低了操作效率和用戶體驗[1]。手勢擁有自然、直接、易于學(xué)習(xí)等優(yōu)點,將其作為移動電子設(shè)備現(xiàn)有交互方式的一個補充,將一些簡單、頻繁的操作采用手勢輸入,可增強操作的便捷性和趣味性,提升用戶體驗。
目前,基于加速度傳感器的手勢識別方法主要有動態(tài)時間規(guī)整(DTW)[1-4]和隱馬爾科夫模型(HMM)[5-8]。然而由于個體差異,同一手勢的加速度數(shù)據(jù)(如幅值、手勢長度等)存在較大差異;即使同一個體,同一手勢的加速度數(shù)據(jù)也存在差異。因此上述方法難以建立準(zhǔn)確的手勢模板和隱馬爾卡夫模型,識別準(zhǔn)確率較低,個體適應(yīng)性較差;由于DTW算法的計算量大,隨著手勢數(shù)量的增加,算法實時性將大大降低;并且由于加速度傳感器無法獲取設(shè)備姿態(tài)信息,用戶只能嚴(yán)格地在給定的設(shè)備姿態(tài)下操作,這給用戶造成了極大的不便。鑒于此,本文提出通過提取反映各類手勢運動學(xué)特征的加速度特征量及變化規(guī)律對手勢進(jìn)行識別,以提高對個體差異的適應(yīng)性,增強算法魯棒性和實時性;對于甩動和晃動手勢,通過加速度計與陀螺儀相結(jié)合獲得設(shè)備姿態(tài)信息,將設(shè)備坐標(biāo)系下的加速度轉(zhuǎn)換到用戶坐標(biāo)系再對其進(jìn)行識別,簡化了這兩類手勢的識別,同時提高了識別準(zhǔn)確率。此外,由于敲擊和翻轉(zhuǎn)類手勢的識別本身不需要姿態(tài)信息,因此本文的十個手勢完全取消了設(shè)備姿態(tài)的限制,用戶可以在任意設(shè)備姿態(tài)下操作手勢。
手勢定義應(yīng)遵循兩個原則:①手勢易被設(shè)備可靠識別;②手勢易被使用者學(xué)習(xí)和記憶[9]。基于上述原則,本文定義了10個手勢并按語義及操作的相似性分為4類如表1所示。
表1 手勢定義
手勢識別算法如圖1所示。
圖1 手勢識別算法
手勢識別第一步是通過準(zhǔn)確檢測手勢起點和終點從而截取手勢的加速度數(shù)據(jù)[10]。如圖2所示,本文采用基于加速度變化量的手勢檢測方法,因為在沒有手勢產(chǎn)生時,加速度是相對平穩(wěn)的;而當(dāng)有手勢發(fā)生時,加速度變化劇烈。對加速度進(jìn)行差分可以凸顯加速度的變化量,因此本文采用 Δak=|axk-axk-1|+|aykayk-1|+|azk-azk-1|對手勢起點和終點進(jìn)行檢測:
其中,N為采樣數(shù)據(jù)個數(shù),Mth為起點和終點檢測閾值。N的引入是為了消除由環(huán)境噪聲及用戶抖動等偶然因素引起的誤檢測。
圖2 手勢起點與終點檢測
特征提取直接關(guān)系到手勢識別準(zhǔn)確率,因此提取的特征量必須反映各類手勢的運動學(xué)特性,并且與其他類手勢存在明顯差異。通過對樣本數(shù)據(jù)(15位實驗者,每位實驗者操作每個手勢各100次)進(jìn)行分析后,本文定義了手勢長度、手勢能量[12]、能量最小軸、波峰數(shù)等四個特征。
①手勢長度L
②手勢能量E
其中,L為手勢長度,gx,gy,gz分別為重力加速度在設(shè)備 x,y,z軸分量;
③加速度能量最小軸:三軸手勢能量最小軸;
④波峰數(shù)P
其中,Px,Py,Pz分別為設(shè)備 x,y,z軸加速度波峰數(shù)。為了可靠地計算波峰數(shù),去除操作過程中環(huán)境噪聲及用戶抖動等偶然因素的影響,本文采用如圖3所示方法。
圖3 波峰數(shù)計算方法
首先遍歷手勢加速度數(shù)據(jù),尋找其與橫軸交點C1、C2、C3……,然后在相鄰兩交點間(C1C2、C2C3等)計算加速度最大值和最小值 P1、P2、P3……,若P1、P2……的加速度值大于波峰上限閾值或小于波峰下限閾值,則波峰數(shù)加1。
在使用過程中,傳感器輸出數(shù)據(jù)中包含了用戶各種無意識的誤動作,如將設(shè)備突然放下、將設(shè)備從一只手換到另一只手等。為了提高識別準(zhǔn)確率,這些誤動作必須被去除。而各類手勢的加速度特征均具有一定的統(tǒng)計規(guī)律,如果不滿足這些統(tǒng)計規(guī)律則視為誤操作被去除。通過分析各類手勢樣本數(shù)據(jù),本文得到3條統(tǒng)計規(guī)律,滿足其中之一則為誤操作:①L<0.1 s,因為手勢長度至少為0.1 s;②E>1 500,因為手勢能量最大為1 200左右;③300<E<1 000且P=0,因為能量處于300到1 000之間的翻轉(zhuǎn)和甩動手勢的波峰數(shù)不為0。
為了提高分類準(zhǔn)確率、簡化分類算法,本文提出了如圖4所示的三層決策樹分類器。
圖4 手勢分類決策樹
①分類器第1層:敲擊類手勢加速度小、持續(xù)時間短,手勢能量遠(yuǎn)小于其他3類手勢,因此利用手勢能量分離敲擊類手勢;
②分類器第2層:手機等電子設(shè)備都為長方體,此處為清楚說明問題,設(shè)長方體長、寬、高分別對應(yīng)X、Y、Z軸。翻轉(zhuǎn)手勢是繞X軸的轉(zhuǎn)動,能量主要集中于Y、Z軸,因此X能量最小;而甩動類和晃動類手勢中X軸能量在三軸中不可能最小。因此利用X軸能量最小可分離出翻轉(zhuǎn)類手勢。
③分類器第3層:對于甩動類和晃動類手勢,由于個體之間的差異,單獨使用手勢長度、能量、波峰數(shù)等特征都不能達(dá)到較高的分類準(zhǔn)確率。因此,本文結(jié)合這3個特征利用Fisher分類函數(shù)[13]來分類甩動類和晃動類。通過訓(xùn)練樣本得到的Fisher分類函數(shù)為 f=47L+59E+108P-25690,如果 f>0則為甩動類,f<0則為晃動類。在分類函數(shù)中波峰數(shù)的系數(shù)最大,可以看出波峰數(shù)在甩動類和晃動類手勢的分類中起主要作用,因為波峰數(shù)是這兩類手勢在運動學(xué)上的本質(zhì)區(qū)別(如圖5)。
圖5 不同手勢波形
2.5.1 敲擊次數(shù)識別
敲擊類手勢的加速度體現(xiàn)出沖擊性,但敲擊設(shè)備不同平面時,沖擊特性在設(shè)備各軸上的顯著程度不同。為了保證敲擊次數(shù)識別的準(zhǔn)確性,本文利用J=(|axi-axi-1|+|ayi-ayi-1|+|azi-azi-1|)來識別敲擊次數(shù)。如圖6所示,波形上升沿與次數(shù)識別閾值的交點數(shù)即為敲擊次數(shù)。
圖6 敲擊次數(shù)識別
但是用戶很多無意識的動作會被分類到敲擊類中,如突然的抖動、將設(shè)備突然放下或拿起等。通過分析敲擊類手勢的特征量樣本,本文提出了以下3條準(zhǔn)則以去除敲擊類手勢中的誤動作:
①每次敲擊持續(xù)時間(如圖 6,A2-A1,B2-B1,C2-C1)在0.1 s到0.2 s之間;
②相鄰兩次敲擊間隔時間(如圖 6,B1-A1,C1-B1)大于 0.15 s,因為用戶不可能在 0.15 s內(nèi)完成兩次敲擊;
“您的疼痛有所改變嗎?”我低頭詢問著上周因工廠工傷,經(jīng)歷八小時手術(shù)的44歲病患目前的康復(fù)情況,如同往常的無數(shù)個清晨一樣,我正帶著四五位住院醫(yī)師巡查骨科的各個病房。
③手勢起點前0.3 s內(nèi)的加速度標(biāo)準(zhǔn)差小于0.1 m/s2。因為敲擊手勢起點前的加速度是相對平穩(wěn)的,而用戶的無意識抖動等誤動作的起點前加速度波動較大。
2.5.2 翻轉(zhuǎn)手勢識別
本文僅定義了逆時針翻轉(zhuǎn),因為順時針翻轉(zhuǎn)對用戶而言很不方便,違反了手勢定義的原則。因此翻轉(zhuǎn)類手勢的識別較為簡單,當(dāng)手勢被分類為翻轉(zhuǎn)后則完成識別。
2.5.3 甩動及晃動方向識別
加速度的變化規(guī)律被用于甩動及晃動方向的識別。用戶坐標(biāo)系與設(shè)備坐標(biāo)系如圖7所示,由于傳感器輸出的是設(shè)備局部坐標(biāo)系(oxyz)中的加速度,加速度變化規(guī)律會隨著設(shè)備姿態(tài)的不同而改變,但用戶坐標(biāo)系(OXYZ)中相同方向的甩動或晃動手勢的加速度變化規(guī)律始終保持不變。因此,本文通過結(jié)合加速度計和陀螺儀得到設(shè)備姿態(tài)信息,將設(shè)備局部坐標(biāo)系中的加速度轉(zhuǎn)換到用戶坐標(biāo)系后,再對手勢方向進(jìn)行識別。
圖7 用戶坐標(biāo)系(OXYZ)與設(shè)備坐標(biāo)系(oxyz)
在設(shè)備姿態(tài)計算中,首先利用手勢起點前設(shè)備x,y,z軸的重力加速度分量獲得設(shè)備初始姿態(tài)[14],其中傾斜角θ和橫滾角γ的計算如式(4)和式(5)所示。
對于航向角φ,其初值可設(shè)為0,因為本文僅僅是將加速度數(shù)據(jù)轉(zhuǎn)換到用戶坐標(biāo)系下,而非地球全局坐標(biāo)系。
本文采用四元數(shù) q=(q0,q1,q2,q3)來表示空間轉(zhuǎn)動。通過初始姿態(tài),利用式(6)可以得到四元數(shù)初值[14]:
其中,α=φ/2,β=θ/2,φ=γ/2。由于表征旋轉(zhuǎn)的四元數(shù)必須是規(guī)范化四元數(shù),因此要對四元數(shù)初值做歸一化處理,即是使四元數(shù)滿足q20+q21+q22+q23=1[14]。
在姿態(tài)更新中,本文采用旋轉(zhuǎn)不可交換性誤差較小的等效三子樣旋轉(zhuǎn)矢量法更新四元數(shù)并得到各姿態(tài)更新點的坐標(biāo)轉(zhuǎn)換矩陣[15],如式(7)
利用坐標(biāo)轉(zhuǎn)換矩陣CRb,根據(jù)式(8)便可以得到用戶坐標(biāo)系下去掉重力加速度后的手勢加速度。
其中,下標(biāo)R表示用戶坐標(biāo)系下的加速度,下標(biāo)b表示設(shè)備坐標(biāo)系下的加速度,坐標(biāo)轉(zhuǎn)換后的甩動手勢加速度波形如圖8所示。
實際上,甩動及晃動手勢是繞用戶手腕的圓周運動。在用戶坐標(biāo)系OXYZ中,當(dāng)用戶左右甩動或晃動時,Y軸為切向軸;當(dāng)用戶上下甩動或晃動時,Z軸為切向軸。同時甩動手勢是一先加速后減速的運動,當(dāng)甩動方向相反時,加速或減速的方向?qū)⑾喾?。因此甩動方向可通過切向軸上加速度加減速方向進(jìn)行識別。但是算法首先需要判斷甩動發(fā)生在Y軸或是Z軸上,本文采用 Y軸和 Z軸的加速度平均幅值[2]AM(Average Magnitude)的相對大小判斷甩動發(fā)生軸。
其中,aRyi、aRzi分別為用戶坐標(biāo)系下Y軸和Z軸手勢加速度,A、B分別為手勢起點和終點,L為手勢長度。
對比圖8(a)、8(b)、8(c)和8(d)可知,左右甩動時Y軸加速度幅值比Z軸大;上下甩動時Z軸加速度幅值比Y軸大。因此如果AMy>AMz,則甩動發(fā)生在Y軸;如果AMz>AMy,則甩動發(fā)生在Z軸。
圖8 坐標(biāo)轉(zhuǎn)換后甩動手勢加速度波形
由于本文僅定義了上下晃動和左右晃動,因此晃動方向的識別更為簡單,僅利用Y軸和Z軸的加速度平均幅值相對大小即可識別晃動方向。如果AMy>AMz則為左右晃動;如果AMz>AMy則為上下晃動。
為了測試算法的有效性和對個體差異的適應(yīng)性,本文挑選了15名實驗者并要求以他們習(xí)慣的方式和力度操作各個手勢及常見誤操作各100次。實驗結(jié)果表明算法達(dá)到了95.2%的準(zhǔn)確率,具體識別統(tǒng)計結(jié)果如表2所示,其中G1~G10分別代表單擊、雙擊、三擊、翻轉(zhuǎn)、向左甩動、向右甩動、向上甩動、向下甩動、左右晃動、上下晃動,豎排G1~G10為輸入手勢,橫排G1~G10為識別結(jié)果。
表2 實驗統(tǒng)計結(jié)果
在識別算法中,傳感器數(shù)據(jù)采樣頻率為100 Hz。當(dāng)截取到手勢數(shù)據(jù)后,手勢識別能在下次采樣之前順利完成,由此可知手勢識別時間小于0.01 s。
本文通過提取不隨個體差異變化的加速度特征量及變化規(guī)律對手勢進(jìn)行識別,因而方法簡單有效,對個體差異適應(yīng)性強。并且結(jié)合陀螺儀進(jìn)行加速度數(shù)據(jù)坐標(biāo)轉(zhuǎn)換,取消了DTW和HMM方法對設(shè)備姿態(tài)的限制,實現(xiàn)了任意姿態(tài)下的手勢操作。但在本文目前的研究中,陀螺儀并未得到充分利用,僅輔助用于加速度數(shù)據(jù)坐標(biāo)轉(zhuǎn)換。在今后的進(jìn)一步研究中,可從陀螺儀數(shù)據(jù)中提取特征信息并結(jié)合加速度特征進(jìn)行手勢分類和識別,從而進(jìn)一步提高識別準(zhǔn)確率。
[1] Eun-Seok Choi,Won-Chul,Sung-Jung Cho.Beatbox Music Phone:Gesture Based Interactive Mobile Phone Using a Tri-Axis Accelerometer[C]//IEEE International Conference on Industrial Technology,Hong Kong,2005:97-102.
[2] Min Jun-Ki,Choe Bongwhan,Cho Sung-Bae.A Selective Template Matching Algorithm for Short and Intuitive Gesture UI for Accelerometer-Builtin Mobile Phones.IEEE Second World Congress on Nature and Biologically Inspired Computing[C]//Fukuoka,2010:660-665.
[3] Ahmad Akl,Shahrokh Valaee.Accelerometer Based Gesture Recognition Via Dynamic-Time Warping,Affinity Propagation & Compressive Sensing[C]//IEEE International Conference on Acoustics Speech and Signal Processing,Dallas TX,2010:2270-2273.
[4] 荊雷,馬文君,常丹華.基于動態(tài)時間規(guī)整的手勢加速度信號識別[J].傳感技術(shù)學(xué)報,2012,25(1):72-76.
[5] Sanna Kallio,Juha Kela.Online Gesture Recognition System for Mobile Interaction[C]//IEEE InternationalConference on Systems,Man and Cybernetics,Hong Kong,2003:2070-2076.
[6] 李國峰,王錦,張勇,等.基于MEMS加速度傳感器的智能輸入系統(tǒng)[J].傳感技術(shù)學(xué)報,2009,22(5):643-646.
[7] 梁秀波,張順,李啟雷,等.運動傳感驅(qū)動的3D直觀手勢交互[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2010,22(3):521-533.
[8] 孔俊其,王輝,張廣泉.基于加速度識別的姿態(tài)交互研究[J].蘇州大學(xué)學(xué)報(工科版),2009,29(2):23-27.
[9] 胡友樹.手勢識別技術(shù)綜述[J].科技論壇,2005,2:42-43.
[10] Jiho Choi,Kyohyun Song,Seongil Lee.Enabling a Gesture Based Numeric Input on Mobile Phones[C]//IEEE International Conference on Consumer Electronics.Xi’an,2011:151-152.
[11] Yuan Tao,Wang Ben.Accelerometer Based Chinese Traffic Police Gesture Recognition System[J].Chinese Journal of Electronics,2010,19:270-274.
[12] Yang Jhun-Ying,Wang Jeen-Shing,Chen Yen-Ping.Using Acceleration Measurement for Activity Recognition:An Effective Learning Algorithm for Constructing Neural Classifiers[J].Pattern Recognition Letters,2008,29:370-388.
[13]邊肇祺,張學(xué)工.模式識別(第二版)[M].北京:清華大學(xué)出版社,2000:84-90.
[14] Wang Jeenshing,Hsu Yuliang,Liu Jiunnan.An Inertial-Measurement-Unit-Based Pen with a Trajectory Reconstruction Algorithm and its Applications[J].IEEE Transactions on Industrial Electronics,2010,57:3508-3521.
[15] 秦永元.慣性導(dǎo)航[M].北京:科學(xué)出版社,2006:305-354.