文獻標識碼: A
文章編號: 0258-7998(2011)12-0076-04
日常生活中人與人之間的交流除了語言、文字、圖片等之外,手勢等動作的交流也是一種必不可少的方式,甚至在某些特定的場合,手勢交流會起著主導的作用。但是在人與手機等手持設備的人機交互方式上,往往只有傳統(tǒng)的鍵盤與觸屏方式,這兩種交互方式都是通過文字為媒介實現(xiàn)的。為了提高手持設備的便捷性,其他形式的交互方式顯得必不可少。而隨著MEMS技術與工藝的進步,微型陀螺儀與加速度計的出現(xiàn)無疑為擴展人機交互方式提供了一種新思路。目前,對于基于慣性傳感器的手持設備的姿態(tài)識別已經(jīng)引起了越來越多的的公司與機構的關注。在目前,基于MEMS的慣性傳感器已經(jīng)在大量的工業(yè)產(chǎn)品中得到了應用,例如從2007年開始熱銷的iPhone手機與任天堂的Wii游戲機等產(chǎn)品中就應用到了微加速度計。由微加速度計所帶來的前所未有的用戶體驗代表著一種新的人機交互方式的開始,而此種方式的核心內容之一就是快速而精確地識別出手機當前的姿態(tài)。對此,近年來已經(jīng)有很多人進行了大量的工作,例如,Jang與 Park在2004年將手持設備測得的加速度信號分為靜態(tài)的和動態(tài)的,并給出了相應的識別方法[1],F(xiàn)erscha和Resmritas則將手勢基于一定的規(guī)則分為了基本手勢與組合手勢,并以此建立相應的手勢數(shù)據(jù)庫[2-3]。目前的研究絕大部分都是基于在手持設備中集成微加速度計而來,因而設備的應用與姿態(tài)的檢測就存在很大的局限性。微陀螺儀的加入在很大程度上解決了這個問題。在本文的研究中,就探討了一種基于微加速度計與微陀螺儀的手機姿態(tài)識別方法。測試中采用了ST的三軸數(shù)字式加速度計LIS331DLH,量程為±2 g,16 bit,靈敏度為16 384 LSB/g;微陀螺儀采用Epson公司的XV-3500CB,為模擬傳感器,16 bit,靈敏度為0.4 mV/deg/s,量程±600 deg/s。
1 手勢動作識別的預處理
一般來講,剛體的運動可以分為隨質心的平動以及繞質心的轉動[4],換言之,知道剛體質心(或剛體上某一點)的加速度向量(a=ax+ay+az)與角速度向量(ω=ωx+ωy+ωz)后就可以計算出該剛體的運動狀態(tài)。在日常應用中,手機等手持設備往往可以視為一個剛體,通過集成于手持設備中的三軸加速度計與三軸陀螺儀就可以準確地感知手機等的運動狀態(tài)(在沒有考慮傳感器誤差的情況下)。本文的工作正是基于三軸加速度計與三軸陀螺儀輸出的六個自由度的數(shù)據(jù)。
實際中,手機的動作根據(jù)傳感器感知結果可分為敲擊(Tap)、旋轉甩動(Rotation Shake)、甩動(Shake)、直線運動(Linear Move)、非直線運動(Nonlinear Move)等幾個動作,動作區(qū)分如圖1所示。為了準確識別這些動作,就需要提取出這些動作的特征,而且這些特征要在信號表現(xiàn)上具有明顯的差異性。以加速度計為例,當加速度計信號產(chǎn)生劇烈突變時,可能的手機手勢是Tap或Rotation Shake等,但進一步分析后可以得知Tap的加速度尖峰會比較短暫(大約在5 ms以內),與之相反,Rotation Shake的加速度尖峰就要長得多(大約在40 ms左右)。因此,可以把尖而短的加速度信號看作是Tap的特征信號。
通過大量動作試驗,可以獲得到各種動作對應的傳感器信號,通過分析可以設定出大致的各種動作所對應的信號特征,進而根據(jù)此特征對手持設備的當前狀態(tài)進行判斷。具體判斷流程如圖2所示。
雖然慣性MEMS傳感器可分為模擬式和數(shù)字式,但是通過A/D轉換后都成為了一系列的時間序列,或者說是離散信號。而如何去除誤差,首先需知道慣性傳感器的誤差模型,一般其誤差是由角度隨機游走誤差、角速率隨機游走、閃速噪聲、馬爾科夫誤差等組成[5],從表現(xiàn)出來的統(tǒng)計特性可以將其分為平穩(wěn)信號誤差和非平穩(wěn)信號誤差。工程上,將慣性傳感器的誤差分為有規(guī)律的漂移、隨機誤差、抖動誤差。其中有規(guī)律的漂移可以通過減去一個補償值消除;隨機誤差用濾波的方法;抖動誤差其實并不是誤差的范疇,用清零校準可以消去。從實驗數(shù)據(jù)發(fā)現(xiàn),隨著時間和采樣點數(shù)的增加,隨機誤差很接近于一個平穩(wěn)分布。而在圖2 的流程圖中,傳感器信號預處理這一步主要就是進行誤差的消除,其大致包括以下幾個方面:
(1) 對慣性傳感器信號進行靜態(tài)誤差補償;
(2) 分別獲得加速度能量信號與角速度能量信號;
(3) 對傳感器信號與加速度、角速度能量信號進行去噪(平滑)處理。
其中第一步較為簡單,可以對傳感器信號(六軸)分別加上一個靜態(tài)補償值,這個補償值可以由經(jīng)驗確定(即在算法中直接加上),也可以在使用中測試得到,即在每次開機后選取一小段靜態(tài)信號計算獲得。
由式(5)可知,實際上增益系數(shù)Kk實時修正測量值和上一時刻估計值,這樣的濾波是一種連續(xù)的迭代方法,且存儲只需上一時刻的值,占有空間少,因此比較適合計算能力與存儲空間都比較有限的移動手持設備。
為了測試卡爾曼濾波的效果,這里取了一組繞著X軸旋轉的微陀螺儀的數(shù)據(jù)。由圖3可知,Q=0時,平滑效果最好,即方差最小,但是卻存在一個問題:在降低高頻噪聲的同時,也降低了低頻的有用信號。而研究的目的是在降低高頻信號的同時卻不影響低頻的有用信號。因此,在這里設一個Q,使得Pk-=Pk-1+Q,Q的取值與R相差不大,這樣就巧妙地實現(xiàn)了既降低了高頻噪聲又盡量保持了低頻的有用信號的目的。這里的R是常數(shù),因為微陀螺儀的隨機誤差隨著時間增加,經(jīng)實驗非常接近平穩(wěn)分布,故其二階矩為常數(shù)。
平滑要求噪聲的幅值盡量地衰減,有用的信號盡量地保持原形,而對于線性平滑濾波只能滿足最小均方誤差的原則。也就是說窗口足夠長可以使得曲線很平滑,但是不能保證低頻信號的不變形。對于非線性的平滑,理論上是可以做到既保持低頻原形又能衰減高頻,可以取任何加權值,而且面對隨機的有用低頻有用信號,固定不改的加權值和窗口值就會顯得捉襟見肘了。對于卡爾曼濾波,其增益矩陣(系數(shù))如何取值才是一個最優(yōu)的選擇。
2 手勢動作識別
手勢動作識別可以分作廣義的識別與狹義的識別,以圖2為例,廣義的識別可以包括流程圖中的起點識別、信號類型分類與動作識別三步。事實上,在很多工作中這三步都是緊密聯(lián)系著的。
在動作識別的方法上,可以采用建立隱式與馬爾科夫模型進行判斷[8],一種思路是波形匹配[9],即事先在手機中存儲一系列的標準動作模板,當檢測到手機有動作發(fā)生時便將該動作的傳感器波形與標準動作模板庫中的動作波形進行匹配處理,以此來判斷動作類型。該方法主要是運用了動態(tài)時間歸整DTW(Dynamic Time Warping)算法,DTW算法是一種時序匹配算法。它是通過計算兩個序列之間的距離來做出相應的判斷,該算法是基于動態(tài)規(guī)劃(DP)的思想,可以用于在信號長短不一的情況下進行模板匹配,是語音識別中出現(xiàn)較早、較為經(jīng)典的一種算法。其思路為,假設d(p,q)為兩點p、q之間的距離,則時序P={p1,p2,…pm}與Q={q1,q2,…qn}之間的距離D(P,Q)計算方法如下:
在實際工作中,針對此種思路也做出了測試,以Tap(敲擊)為例,主要根據(jù)三軸加速度的能量來對敲擊動作進行識別,因為相對于采用加速度及加速度能量信號而言,加速度能夠很好地反映作用于手機的力的變化率,而敲擊最主要的特征,即作用于手機的力的變化率很大。如圖4、圖5所示為3次敲擊下三軸加速度信號與加速度能量信號。
在此種思路下,對加速度能量信號進行模版匹配。通過對比發(fā)現(xiàn),該信號波形與三次敲擊的模版信號最為匹配,故而可以判定此時對手機進行了一次“三次敲擊”的動作。經(jīng)過大量的試驗統(tǒng)計,發(fā)現(xiàn)這種方法的準確率可以達到95%以上。
然而這種方法也存在一定的缺陷,即如果動作較多,則模版也比較多。依舊以Tap為例,在試驗中準備了“單次敲擊”、“雙次敲擊”與“三次敲擊”三個模板。故而在試驗中更傾向于另一種方法,即不進行特定的模版匹配,只是提取信號的特征點進行判斷。以圖4的敲擊為例,依舊采用加速的能量信號進行判斷,首先提取到“敲擊發(fā)生”的特征信號,進而在接下來的一段時間里進行敲擊次數(shù)的識別,并最終反饋回敲擊的次數(shù)。該方法在測試中的準確率依舊可以達到95%以上。
在這種方法中,其中一個關鍵的地方在于判斷動作的類型及其起始點??紤]到數(shù)據(jù)的傳遞性以及判斷效率,設置了動作的優(yōu)先級,具體思路如圖6所示。
由傳感器輸出的原始信號為一組六維信號s1={ax,ay,az,ωy,ωz}T,經(jīng)過預處理后得到一組四維信號s2={as,ωs,ass,ωss}T,其中as與?棕s分別表示加速度能量信號與角速度能量信號,ass與?棕ss是as與?棕s分別經(jīng)由卡爾曼濾波得到。把s2送入流程進行判斷,此處把濾波前的信號送入判斷是因為有些動作的特征信號就是屬于高頻信號。判斷完成后,則將加速度與角速度的相應信號截取送入相應的處理模塊進行后期處理,在后期處理中,將反饋回動作的具體信息,如敲擊的次數(shù)、旋轉的角度與旋轉軸等。這種方法與前一種相比其優(yōu)點在于不需要太多的空間來存儲模版信息,在匹配時的計算量也遠小于前者。
作為檢驗,以一種組合動作的檢測為例,該動作要求:x軸向下運動一段距離,再旋轉甩動,即模擬用手機當鑰匙開門的動作。其部分關鍵數(shù)據(jù)如圖7所示,其中第一行為x軸加速度數(shù)值,第二、第三行分別為濾波后的加速度與角速度能量信號。此時,如果用第一種方法則至少需要建立以下兩個模版:x軸向下的線性運動模版、x軸向下的旋轉甩動模版。并實時對慣性傳感器信號進行模版匹配。而在第二種方法下,創(chuàng)造性地提出了一種簡單的思路:先檢測旋轉甩動,檢測到后再向前檢測線性運動。如此就不需要建立太多額外的存儲參數(shù),整個系統(tǒng)的響應時間也得到了很好的控制,其流程如圖8所示。
動作的識別結果顯示:采用第二種識別方式,可以迅速而準確地識別出該組合動作,從動作結束到顯示出識別結果,手持設備所花費的時間可以控制在1 s以內,這也從一個側面證實了該識別方法的可行性。
本文通過對微加速度計與微陀螺儀信號的研究,結合實際提出了兩種比較可靠的手機等手持設備的手勢動作識別方法,綜合考慮各種因素,得到了一種可以快速而準確地識別出手機手勢動作的方法,以及一種簡單而有效的信號預處理方法。如今,微加速度計已經(jīng)成功集成到手機中,微陀螺儀的加入也是大勢所趨,通過對兩種MEMS慣性傳感器的綜合研究,快速準確地識別出手機的手勢動作,可以極大地提高人機交互的效率,豐富手機的使用范圍。
參考文獻
[1] JANG I J, PARK W B. Signal processing of the acceler ometer for gesture awareness on handheld devices[C]. In Proceedings of the IEEE International Workshop on Robot and Human Interactive Communication, 2003:139-144.
[2] FERSCJA A,RESMRITA S. Gestural interaction in the pervasive computing landscape[J].Elektrotechnik & Informationstechnik, 2007,124(l):17-25.
[3] CHEN Q, PETRIU E M, GEORGANAS N D. 3D hand tracking and motion analysis with a combination approach of statistical and syntactic analysis. HAVE 2007: Proc. IEEE Int. Workshop on Haptic, Audio and Visual Environments and Their Applications, 2007:56-61.
[4] 朗道,栗費席茲.理論物理學教程:第1卷,力學[M]. 5版.李俊峰,譯.北京:高等教育出版社,2007:108-136.
[5] NASER E S,NASSAR S, NOURELDIN A.Wave denoising for IMU alignment[J].IEEE A&E System Magazine.2004,19(10):32-39.
[6] MADGWICK S O H.An efficient orientation filter for inertial and inertial/magnetic sensor arrays. April, 2010.
[7] LUTOVAC M D,TOSIC D V. Filter Design for signal Processing using MATLAB and Mathematica[M]. Prentice Hall, 2001.
[8] Kong Junqi, Wang Hui. Gesture recognition model based on 3D Accelerations[C]. Proceedings of 2009 4th International Conference on Computer Science & Education.2009.
[9] Min Junki, CHOE B W, CHO S B. A selective templatematching algorithm for short and intuitive gesture UI of accelerometer-builtin mobile phones. Nature and Biologically Inspired Computing (NaBIC), 2010 Second World Congress on. 2010:660-665.