董玉華,孫炎輝,徐國凱*,宋 鵬
(1.大連民族學院信息與通信工程學院,遼寧大連116600;2.大連民族學院機電信息工程學院,遼寧大連116600)
語言是人們思想交流和感情傳遞的工具,人們在交流的時候通常除了使用有聲語言外還經(jīng)常借助人體語言(包括手勢語言)來輔助交流,手勢語的直觀形象是有聲語言的重要補充。近些年,隨著移動計算技術(shù)和微機電系統(tǒng)的發(fā)展,手勢識別技術(shù)逐漸成為人機交互[1]領(lǐng)域研究的熱點,其自然便捷、形象直觀等諸多優(yōu)點也成為其發(fā)展的一個主要因素。目前主流的手勢識別方法有兩種:一種是基于圖像設(shè)備[2]獲取人的手勢動作圖像,之后進行圖像分析并識別。另一種是基于微傳感器獲取手部不同部位的動作信息,進而通過與模型的匹配得到動作者的實時手勢信息。由于人手是復(fù)雜的變形體,同時手勢具有多樣性、多意性以及空間上的差異性等特點,所以基于圖像設(shè)備的手勢識別技術(shù)在一定程度上存在局限性[3]。而基于微傳感器的手勢識別系統(tǒng)只需獲取手部各部位的動作數(shù)據(jù),通過算法便可還原動作者的意圖。該類系統(tǒng)在任何環(huán)境和空間里都能間接獲得動作者的手勢信息,基本能夠克服基于圖像設(shè)備識別的弊端,故基于微傳感器的手勢識別研究逐漸得到重視。
從20世紀的90年代末開始已有大量的研究者從事基于微傳感器的手勢識別研究,并且取得了顯著的成效。1997年,Hoffman F等人使用數(shù)據(jù)手套和離散隱馬爾可夫模型[4]進行德語識別,識別率達到96%[5];2000年,哈爾濱工業(yè)大學的吳江琴、高文將ANN-HMM混合方法應(yīng)用于有18個傳感器的CyberGlove型號數(shù)據(jù)手套的中國手語識別系統(tǒng)中,孤立詞識別率為90%,簡單語句級識別率為92%[6];2004 年,Jang I J和Park W B 對手持設(shè)備中加速度信號處理的問題進行了研究。為了準確地識別出用戶的手勢,將測量的加速度分為靜態(tài)和動態(tài),并且分別提供了識別方法[7];2007年,F(xiàn)erscha A和Resmrita S將手勢的概念泛化。根據(jù)手勢的語法規(guī)則將手勢分為原子手勢和復(fù)雜手勢兩種,并建立了手勢庫Glib,可供基于加速度傳感器的系統(tǒng)使用[8];2010年Michael Hoffmand等人分別用Linear分類器和AdaBoost分類器對25種手勢進行識別。Linear分類器的識別率為98.5%,AdaBoost分類器的識別率比Linear分類器識別率約少3%[9]。
現(xiàn)有的基于微傳感器的手勢識別研究大概分為兩類:一類是基于多類型傳感器陣列的數(shù)據(jù)手套研究。另外一類是基于單傳感器的研究[10]。前者研究計算復(fù)雜度高并且數(shù)據(jù)量大,無法應(yīng)用在現(xiàn)有的移動平臺中[11]。后者雖然能夠解決數(shù)據(jù)量大的問題,但是無法準確反應(yīng)動作者的手指信息,進而無法準確判斷細微的手勢。
文中給出了一種基于ZigBee和多加速度傳感器的手勢識別方法。該方案采用ADXL335三軸加速度傳感器分別采集五個手指和手背上的加速度信息,信息通過多路開關(guān)依次送到終端節(jié)點進行A/D轉(zhuǎn)換,并將處理后的數(shù)據(jù)整理發(fā)送。接收端收到數(shù)據(jù)后對手勢動作依次進行濾波取整、抖動判定以減少因為噪聲和抖動帶來的差異。同時利用單個動作之間停頓時間的門限閾值檢測動作的起始。最后對手勢信息特征進行提取,構(gòu)建離散隱馬爾可夫模型以實現(xiàn)對手勢的識別。
系統(tǒng)所采用的手勢信息采集芯片主要采用TI公司生產(chǎn)的CC2430和三軸加速度傳感器ADXL335。整個系統(tǒng)兩個部分:發(fā)送端模塊和接收端模塊。發(fā)送端模塊包括加速度數(shù)據(jù)的采集、A/D轉(zhuǎn)換以及數(shù)據(jù)發(fā)送。利用位于手指和手背上的六個加速度傳感器,通過MAX338多路開關(guān),分別將各傳感器的X軸、Y軸、Z軸分量分別送給CC2430。該芯片利用其內(nèi)部的A/D對模擬量進行轉(zhuǎn)換,并將信息通過射頻方式發(fā)給接收端。考慮到用戶佩戴位置的偏差對識別率的影響,系統(tǒng)對其硬件結(jié)構(gòu)進行了相應(yīng)的改善。為了保證佩帶位置沒有太大變化,將各傳感器固定于一個軟質(zhì)手套上,并將手指位置用膠帶固定牢,使用時以指甲蓋為各傳感器的參考點,以保證每次佩戴時,各加速度傳感器位置基本保持一致。
接收端模塊采用與發(fā)送端相同的核心芯片CC2430,其主要完成包括:數(shù)據(jù)接收、濾波取整、特征提取、數(shù)據(jù)量化、抖動判定、模型訓練與建立、模型匹配、結(jié)果輸出與控制等。用戶通過串口可以將接收到的加速度信息傳輸至上位機,便于對數(shù)據(jù)進行二次處理。系統(tǒng)工作流程圖如圖1所示。

圖1 系統(tǒng)工作流程圖
該方案與其他方案相比,其優(yōu)勢在于:
首先,克服了傳統(tǒng)的單傳感器手勢識別系統(tǒng)對手部動作檢測的局限性。系統(tǒng)采用多傳感器的設(shè)計,分別利用放置在五根手指和手背上的6個加速度傳感器,實時的感知每根手指和手掌的具體動作,從而更好更全面的獲取動作者盡可能多的信息,以便完整的還原用戶的意圖。
其次,由于ZigBee網(wǎng)絡(luò)的最大傳輸速度250 kb/s,能夠保證手勢數(shù)據(jù)的實時傳輸,另外CC2430采用8051F增強型內(nèi)核,其處理速度能夠滿足識別算法的基本要求。
最后,ZigBee技術(shù)的應(yīng)用可以方便的將該裝置進行移植和改進。眾所周知,許多手語是通過兩只手協(xié)同動作,表達一個固定的意思。而目前的手勢識別系統(tǒng)大都只考慮的單手的情況,對雙手的情況并未作出考慮,利用ZigBee的自組網(wǎng)特性,可以方便的使兩只手套組成一個網(wǎng)絡(luò),為后續(xù)擴展提供了極大的便利條件。
為了提高手勢數(shù)據(jù)識別處理能力,系統(tǒng)接收端對接收到的手勢數(shù)據(jù)進行了放大處理。轉(zhuǎn)換的數(shù)字量經(jīng)過100倍放大之后,雖然較之前已經(jīng)在動作信息的表現(xiàn)力上進一步得到了提高,但是數(shù)據(jù)依然帶有多位小數(shù),在數(shù)據(jù)處理的時候信息量會非常大,給處理帶來較大困難。考慮到已經(jīng)對加速度數(shù)據(jù)放大了100倍,小數(shù)點后的數(shù)據(jù)對該手勢動作信息并不存在影響,故將其進行取整處理,把小數(shù)點后的數(shù)濾掉,以減少大數(shù)據(jù)量運算給系統(tǒng)帶來的瓶頸。
設(shè) g(t)=[x(t),y(t),z(t)]是 t時刻某加速度傳感器的三軸加速度值,則經(jīng)過濾波取整后的值即為G(t)={[100×x(t)],[100×y(t)],[100×z(t)]}。系統(tǒng)采用X、Y、Z三個軸的連續(xù)時間序列作為特征點的數(shù)據(jù)值,并依次進行上述處理,之后將得到的數(shù)據(jù)作為動作信息提供給后續(xù)操作。
手勢動作的起點、終點檢測是手勢識別的第一個步驟,也是一個重要的步驟[12]。在識別過程中,若不能準確判斷動作起始點和終點,則不能完整的提取出該動作的一系列加速度特征序列,從而不能完整的還原出動作者的意圖,給后續(xù)處理帶來很多麻煩。
經(jīng)過研究發(fā)現(xiàn)人的手勢動作即具有連續(xù)性也有其分割性。每個手勢動作看起來是連續(xù)的,實際每個手勢都有短暫的停頓時間。在這段時間內(nèi),由于沒有手勢產(chǎn)生,所以各方向的加速度值也相對平穩(wěn)。當有手勢發(fā)生時,加速度值則突然變的劇烈,利用這個特點可以把一串連續(xù)手勢分割成一組單手勢組合[13]。
系統(tǒng)通過設(shè)置門限閥值來檢測單手勢模型的起點。當單手勢做完停頓的那一刻時,手部處于短暫的靜止狀態(tài),此時位于不同部位的六個傳感器數(shù)據(jù)值所體現(xiàn)出來瞬時特征用C(t)=[G1(t),G2(t)…G6(t)]來表示。假設(shè)下一時刻為t+1,則手部各加速度傳感器的特征值則為C(t+1)=[G1(t+1),G2(t+1)…G6(t+1)]。假設(shè)t+1時刻恰為手勢起點,則C(t)與C(t+1)各個數(shù)據(jù)間會有明顯的跳變。設(shè)定閥值為valve,對C(t)與C(t+1)中各特征采集點進行比較,若:

且同時有多個點存在突變則認為該手勢為動作起點。
人手在做每個動作的過程中難免會發(fā)生顫抖或偏移,不同的人在做同一手勢過程中也會存在細微的差別。如何斷定該動作是抖動還是動作者的手勢對于動作的完整性來說也是至關(guān)重要的一步,因此要在識別過程中加入抖動判定過程,以解決這些抖動帶來的干擾[14]。
系統(tǒng)在抖動判定方法的設(shè)計上,依據(jù)大量采集到手勢信息得出,從極限情況出發(fā),即由于人與人之間存在差異產(chǎn)生的最大抖動可能,得出的同一手勢,最大數(shù)據(jù)抖動范圍在-11—11之間。由此得出抖動判定模型為:

其中 M(t)=[m1(t),m2(t),…,m6(t)]為最佳手勢模型,C(t)為采集到的某個人的手勢數(shù)據(jù),Y(t)為經(jīng)過抖動判斷后輸出的決策信息。
系統(tǒng)所采用的手勢識別算法是基于隱馬爾可夫模型(HMM)識別算法,其核心思想是一種基于轉(zhuǎn)移概率和傳輸概率的隨機模型。在進行匹配算法之前,首先為每個手勢建立手勢模型,通過訓練得到狀態(tài)轉(zhuǎn)移概率矩陣A和輸出概率矩陣B。識別時通過最優(yōu)狀態(tài)序列Viterbi算法計算未知手勢在狀態(tài)轉(zhuǎn)移過程中的最大概率,根據(jù)最大概率對應(yīng)的模型進行判決。該算法的優(yōu)勢在于不需要時間規(guī)整,可節(jié)約判決時的計算時間和存儲量,但帶來的問題是訓練時計算量較大。
系統(tǒng)利用HMM模型對采集的手勢進行判別,具體實現(xiàn)步驟如下:①通過概率計算,把模型λ=f(a,A,B)中的參數(shù)初始狀態(tài)概率矢量a,狀態(tài)轉(zhuǎn)移概率矩陣A,概率分布函數(shù)矢量B求出。再通過前向概率算法和后向概率算法算出輸出Y的概率P(Y|λ);②得到輸出Y的概率P(Y|λ)和模型λ=f(a,A,B)后通過最優(yōu)狀態(tài)序列Viterbi搜索算法估計出系統(tǒng)模型產(chǎn)生Y時最可能經(jīng)歷的狀態(tài)序列X;③將概率最大的HMM模型為對應(yīng)的識別結(jié)果輸出。
以手勢模型庫容量為三的情況下手勢識別為例,實驗過程中首先定義手勢1~3三種手勢。
圖2為假設(shè)定義的三個手勢模型圖,其中每個手勢表示一種狀態(tài),共有3個狀態(tài)用Si(i=1,2,3)表示。在時刻n時,手勢所處的狀態(tài)用xn來表示,xn只能取S1~S3中一個。即xn∈{S1~S3}。

圖2 三個狀態(tài)跳轉(zhuǎn)示意圖
初始狀態(tài)概率矢量a位于時間起點,即n=1,此時狀態(tài)x1可能是S1~S3中的任何一個。如果在此時狀態(tài)x1取的是手勢1,則初始狀態(tài)概率矢量a為[1,0,0]。
狀態(tài)轉(zhuǎn)移概率矩陣A,是表示在當前狀態(tài)下可以以某種概率向任意的狀態(tài)跳轉(zhuǎn)。上圖定義了3個手勢(狀態(tài)),則共有33種跳轉(zhuǎn)狀態(tài)。得到的矩陣

概率函數(shù)分布矢量B,在上述三個狀態(tài)S1~S3下,每個狀態(tài)都有對應(yīng)的概率分布函數(shù)或密度函數(shù)PSi,三個狀態(tài)則構(gòu)成一個三維的行矢量 B=[PS1(y),PS2(y),PS3(y)]。
要得到輸出Y的概率P(Y|λ)則需求出前向概率αn(j)和后向概率βn(j)。
前向概率公式:

其中 α1(j)=ajbj(y1)(j=1,2,3)
后向概率公式:

其中 βN(j)=1(j=1,2,3)。得到

最后,通過最優(yōu)狀態(tài)序列Viterbi搜索算法估計出系統(tǒng)模型產(chǎn)生Y時最可能經(jīng)歷的狀態(tài)序列X的概率最大的HMM模型,那么該模型所對應(yīng)的手勢即為手勢識別的結(jié)果,即:

識別原理圖如圖3所示。

圖3 識別原理圖
系統(tǒng)共建立了0~9十個數(shù)字的手勢庫,其標準手勢如圖4所示。

圖4 手勢定義圖
選取20個人進行匹配,得到數(shù)據(jù)經(jīng)過測算如表1所示。

表1 手勢匹配值一覽表
表1中的數(shù)據(jù)中匹配值越大說明匹配度越好,0為極大值。通過MATLAB仿真可以算出手勢0到手勢9之間轉(zhuǎn)移矩陣和轉(zhuǎn)移概率。通過測算得出手勢數(shù)字0到數(shù)字9之間的識別率如表2所示。

表2 手勢識別率統(tǒng)計表
系統(tǒng)利用動作停頓時間門限閾值和抖動閾值的方法對抖動和細微動作做出相應(yīng)的區(qū)分,從實驗結(jié)果來看能夠達到準確判斷和識別的目的。同時系統(tǒng)采用隱馬爾可夫模型對訓練樣本數(shù)據(jù)和測試樣本數(shù)據(jù)進行識別,平均訓練樣本識別率達到99%。這個結(jié)果表明,采用多加速度傳感器中每個動作的三軸加速度數(shù)據(jù)作為特征量,之后利用HMM和Viterbi算法進行訓練、識別以及優(yōu)化的方法,在手勢交互過程中,能達到較好的識別效果。
本系統(tǒng)采用多個三軸加速度傳感器和ZigBee芯片作為手勢信息采集系統(tǒng),以數(shù)字0~9做為識別內(nèi)容,利用分布在五個手指和手背上的加速度傳感器,提取每個方向軸上的加速度信息作為HMM的數(shù)據(jù)輸入?yún)?shù),為HMM進行初始化及參數(shù)訓練,最后利用HMM進行手勢識別。為了得到較高的識別率,對HMM進行了優(yōu)化,從實驗結(jié)果上來看,識別率能達到98%以上,基本能夠?qū)崿F(xiàn)靜態(tài)手勢和簡單動態(tài)手勢的準確識別。同時ZigBee技術(shù)的引入,為為后續(xù)擴展提供了極大的便利條件。
[1] 王萬良,楊經(jīng)緯,蔣一波.基于運動傳感器的手勢識[J].傳感技術(shù)學報,2011,24(12):1723-1727.
[2] 荊雷,馬文君,常丹華.基于動態(tài)時間規(guī)整的手勢加速度信號識別[J].傳感技術(shù)學報,2012,25(1):72-75.
[3] 劉蓉,劉明.基于加速度傳感器的手勢識別研究[J].計算機工程,2011,37(16):141-143.
[4] 寧愛平,張雪英.人工蜂群算法改進DHMM的語音識別方法[J].計算機工程與應(yīng)用,2012,48(28):16-19.
[5] Hoffman F,HeyerP,HommelG.Velocity Profile-Based Recognition of Dynamic Gestures with Discrete Hidden Markov Models[C]//Proc of 1997 Gesture Workshop.Gif-sur-Yvette,F(xiàn)rance:[s.n.].1997:81-95.
[6] 吳江琴,高文.基于DGMM的中國手語識別系統(tǒng)[J].計算機研究與發(fā)展,2000,37(5):551-558.
[7] Jang I J,Park B. Signal Processing of the Accelerometer for Gesture Awareness on Handheld Devices[C]/ /Proceedings of the IEEE International Workshop on Robot and Human Interactive Communication, 2003: 139-144.
[8] Ferscha A,Resmrita S.Gestural Interaction in the Pervasive Computing Landscape[J].Electrotechnik and Informationstechnik,2007,124(1):17-25.
[9] Hoffman M,Varcholik P,La Viola J.Breaking the Status Quo:Improving 3D Gesture Recognition with Spatially Convenient Input Device[C]//Virtual Reality Conference(VR).IEEE,2010:59-66.
[10]薛洋.基于單個加速度傳感器的人體運到模式識別[D].廣州:華南理工大學,2011.
[11] 嚴焰,劉蓉,黃璐,陳婷.基于HMM的手勢識別研究[J].華中師范大學學報(自然科學版),2012,46(5):556-559.
[12] Jiho C,Kyohyun S,Seongil L.Enabling a Gesture Based Numeric Input on Mobile Phones[C]//IEEE International Conference on Consumer Electronics.Xi’an,2011:151-152.
[13]陳意,楊平,陳旭光.一種基于加速度特征提取的手勢識別方法[J].傳感技術(shù)學報,2012,25(8):1073-1078.
[14]顧偉宏,閔昆龍,張曉娜.新型數(shù)據(jù)手套及其手勢識別研究[J].自動化儀表,2011,32(2):56-59.