董玉華,孫炎輝,徐國(guó)凱*,宋 鵬
(1.大連民族學(xué)院信息與通信工程學(xué)院,遼寧大連116600;2.大連民族學(xué)院機(jī)電信息工程學(xué)院,遼寧大連116600)
語(yǔ)言是人們思想交流和感情傳遞的工具,人們?cè)诮涣鞯臅r(shí)候通常除了使用有聲語(yǔ)言外還經(jīng)常借助人體語(yǔ)言(包括手勢(shì)語(yǔ)言)來(lái)輔助交流,手勢(shì)語(yǔ)的直觀形象是有聲語(yǔ)言的重要補(bǔ)充。近些年,隨著移動(dòng)計(jì)算技術(shù)和微機(jī)電系統(tǒng)的發(fā)展,手勢(shì)識(shí)別技術(shù)逐漸成為人機(jī)交互[1]領(lǐng)域研究的熱點(diǎn),其自然便捷、形象直觀等諸多優(yōu)點(diǎn)也成為其發(fā)展的一個(gè)主要因素。目前主流的手勢(shì)識(shí)別方法有兩種:一種是基于圖像設(shè)備[2]獲取人的手勢(shì)動(dòng)作圖像,之后進(jìn)行圖像分析并識(shí)別。另一種是基于微傳感器獲取手部不同部位的動(dòng)作信息,進(jìn)而通過(guò)與模型的匹配得到動(dòng)作者的實(shí)時(shí)手勢(shì)信息。由于人手是復(fù)雜的變形體,同時(shí)手勢(shì)具有多樣性、多意性以及空間上的差異性等特點(diǎn),所以基于圖像設(shè)備的手勢(shì)識(shí)別技術(shù)在一定程度上存在局限性[3]。而基于微傳感器的手勢(shì)識(shí)別系統(tǒng)只需獲取手部各部位的動(dòng)作數(shù)據(jù),通過(guò)算法便可還原動(dòng)作者的意圖。該類(lèi)系統(tǒng)在任何環(huán)境和空間里都能間接獲得動(dòng)作者的手勢(shì)信息,基本能夠克服基于圖像設(shè)備識(shí)別的弊端,故基于微傳感器的手勢(shì)識(shí)別研究逐漸得到重視。
從20世紀(jì)的90年代末開(kāi)始已有大量的研究者從事基于微傳感器的手勢(shì)識(shí)別研究,并且取得了顯著的成效。1997年,Hoffman F等人使用數(shù)據(jù)手套和離散隱馬爾可夫模型[4]進(jìn)行德語(yǔ)識(shí)別,識(shí)別率達(dá)到96%[5];2000年,哈爾濱工業(yè)大學(xué)的吳江琴、高文將ANN-HMM混合方法應(yīng)用于有18個(gè)傳感器的CyberGlove型號(hào)數(shù)據(jù)手套的中國(guó)手語(yǔ)識(shí)別系統(tǒng)中,孤立詞識(shí)別率為90%,簡(jiǎn)單語(yǔ)句級(jí)識(shí)別率為92%[6];2004 年,Jang I J和Park W B 對(duì)手持設(shè)備中加速度信號(hào)處理的問(wèn)題進(jìn)行了研究。為了準(zhǔn)確地識(shí)別出用戶(hù)的手勢(shì),將測(cè)量的加速度分為靜態(tài)和動(dòng)態(tài),并且分別提供了識(shí)別方法[7];2007年,F(xiàn)erscha A和Resmrita S將手勢(shì)的概念泛化。根據(jù)手勢(shì)的語(yǔ)法規(guī)則將手勢(shì)分為原子手勢(shì)和復(fù)雜手勢(shì)兩種,并建立了手勢(shì)庫(kù)Glib,可供基于加速度傳感器的系統(tǒng)使用[8];2010年Michael Hoffmand等人分別用Linear分類(lèi)器和AdaBoost分類(lèi)器對(duì)25種手勢(shì)進(jìn)行識(shí)別。Linear分類(lèi)器的識(shí)別率為98.5%,AdaBoost分類(lèi)器的識(shí)別率比Linear分類(lèi)器識(shí)別率約少3%[9]。
現(xiàn)有的基于微傳感器的手勢(shì)識(shí)別研究大概分為兩類(lèi):一類(lèi)是基于多類(lèi)型傳感器陣列的數(shù)據(jù)手套研究。另外一類(lèi)是基于單傳感器的研究[10]。前者研究計(jì)算復(fù)雜度高并且數(shù)據(jù)量大,無(wú)法應(yīng)用在現(xiàn)有的移動(dòng)平臺(tái)中[11]。后者雖然能夠解決數(shù)據(jù)量大的問(wèn)題,但是無(wú)法準(zhǔn)確反應(yīng)動(dòng)作者的手指信息,進(jìn)而無(wú)法準(zhǔn)確判斷細(xì)微的手勢(shì)。
文中給出了一種基于ZigBee和多加速度傳感器的手勢(shì)識(shí)別方法。該方案采用ADXL335三軸加速度傳感器分別采集五個(gè)手指和手背上的加速度信息,信息通過(guò)多路開(kāi)關(guān)依次送到終端節(jié)點(diǎn)進(jìn)行A/D轉(zhuǎn)換,并將處理后的數(shù)據(jù)整理發(fā)送。接收端收到數(shù)據(jù)后對(duì)手勢(shì)動(dòng)作依次進(jìn)行濾波取整、抖動(dòng)判定以減少因?yàn)樵肼暫投秳?dòng)帶來(lái)的差異。同時(shí)利用單個(gè)動(dòng)作之間停頓時(shí)間的門(mén)限閾值檢測(cè)動(dòng)作的起始。最后對(duì)手勢(shì)信息特征進(jìn)行提取,構(gòu)建離散隱馬爾可夫模型以實(shí)現(xiàn)對(duì)手勢(shì)的識(shí)別。
系統(tǒng)所采用的手勢(shì)信息采集芯片主要采用TI公司生產(chǎn)的CC2430和三軸加速度傳感器ADXL335。整個(gè)系統(tǒng)兩個(gè)部分:發(fā)送端模塊和接收端模塊。發(fā)送端模塊包括加速度數(shù)據(jù)的采集、A/D轉(zhuǎn)換以及數(shù)據(jù)發(fā)送。利用位于手指和手背上的六個(gè)加速度傳感器,通過(guò)MAX338多路開(kāi)關(guān),分別將各傳感器的X軸、Y軸、Z軸分量分別送給CC2430。該芯片利用其內(nèi)部的A/D對(duì)模擬量進(jìn)行轉(zhuǎn)換,并將信息通過(guò)射頻方式發(fā)給接收端??紤]到用戶(hù)佩戴位置的偏差對(duì)識(shí)別率的影響,系統(tǒng)對(duì)其硬件結(jié)構(gòu)進(jìn)行了相應(yīng)的改善。為了保證佩帶位置沒(méi)有太大變化,將各傳感器固定于一個(gè)軟質(zhì)手套上,并將手指位置用膠帶固定牢,使用時(shí)以指甲蓋為各傳感器的參考點(diǎn),以保證每次佩戴時(shí),各加速度傳感器位置基本保持一致。
接收端模塊采用與發(fā)送端相同的核心芯片CC2430,其主要完成包括:數(shù)據(jù)接收、濾波取整、特征提取、數(shù)據(jù)量化、抖動(dòng)判定、模型訓(xùn)練與建立、模型匹配、結(jié)果輸出與控制等。用戶(hù)通過(guò)串口可以將接收到的加速度信息傳輸至上位機(jī),便于對(duì)數(shù)據(jù)進(jìn)行二次處理。系統(tǒng)工作流程圖如圖1所示。
圖1 系統(tǒng)工作流程圖
該方案與其他方案相比,其優(yōu)勢(shì)在于:
首先,克服了傳統(tǒng)的單傳感器手勢(shì)識(shí)別系統(tǒng)對(duì)手部動(dòng)作檢測(cè)的局限性。系統(tǒng)采用多傳感器的設(shè)計(jì),分別利用放置在五根手指和手背上的6個(gè)加速度傳感器,實(shí)時(shí)的感知每根手指和手掌的具體動(dòng)作,從而更好更全面的獲取動(dòng)作者盡可能多的信息,以便完整的還原用戶(hù)的意圖。
其次,由于ZigBee網(wǎng)絡(luò)的最大傳輸速度250 kb/s,能夠保證手勢(shì)數(shù)據(jù)的實(shí)時(shí)傳輸,另外CC2430采用8051F增強(qiáng)型內(nèi)核,其處理速度能夠滿(mǎn)足識(shí)別算法的基本要求。
最后,ZigBee技術(shù)的應(yīng)用可以方便的將該裝置進(jìn)行移植和改進(jìn)。眾所周知,許多手語(yǔ)是通過(guò)兩只手協(xié)同動(dòng)作,表達(dá)一個(gè)固定的意思。而目前的手勢(shì)識(shí)別系統(tǒng)大都只考慮的單手的情況,對(duì)雙手的情況并未作出考慮,利用ZigBee的自組網(wǎng)特性,可以方便的使兩只手套組成一個(gè)網(wǎng)絡(luò),為后續(xù)擴(kuò)展提供了極大的便利條件。
為了提高手勢(shì)數(shù)據(jù)識(shí)別處理能力,系統(tǒng)接收端對(duì)接收到的手勢(shì)數(shù)據(jù)進(jìn)行了放大處理。轉(zhuǎn)換的數(shù)字量經(jīng)過(guò)100倍放大之后,雖然較之前已經(jīng)在動(dòng)作信息的表現(xiàn)力上進(jìn)一步得到了提高,但是數(shù)據(jù)依然帶有多位小數(shù),在數(shù)據(jù)處理的時(shí)候信息量會(huì)非常大,給處理帶來(lái)較大困難??紤]到已經(jīng)對(duì)加速度數(shù)據(jù)放大了100倍,小數(shù)點(diǎn)后的數(shù)據(jù)對(duì)該手勢(shì)動(dòng)作信息并不存在影響,故將其進(jìn)行取整處理,把小數(shù)點(diǎn)后的數(shù)濾掉,以減少大數(shù)據(jù)量運(yùn)算給系統(tǒng)帶來(lái)的瓶頸。
設(shè) g(t)=[x(t),y(t),z(t)]是 t時(shí)刻某加速度傳感器的三軸加速度值,則經(jīng)過(guò)濾波取整后的值即為G(t)={[100×x(t)],[100×y(t)],[100×z(t)]}。系統(tǒng)采用X、Y、Z三個(gè)軸的連續(xù)時(shí)間序列作為特征點(diǎn)的數(shù)據(jù)值,并依次進(jìn)行上述處理,之后將得到的數(shù)據(jù)作為動(dòng)作信息提供給后續(xù)操作。
手勢(shì)動(dòng)作的起點(diǎn)、終點(diǎn)檢測(cè)是手勢(shì)識(shí)別的第一個(gè)步驟,也是一個(gè)重要的步驟[12]。在識(shí)別過(guò)程中,若不能準(zhǔn)確判斷動(dòng)作起始點(diǎn)和終點(diǎn),則不能完整的提取出該動(dòng)作的一系列加速度特征序列,從而不能完整的還原出動(dòng)作者的意圖,給后續(xù)處理帶來(lái)很多麻煩。
經(jīng)過(guò)研究發(fā)現(xiàn)人的手勢(shì)動(dòng)作即具有連續(xù)性也有其分割性。每個(gè)手勢(shì)動(dòng)作看起來(lái)是連續(xù)的,實(shí)際每個(gè)手勢(shì)都有短暫的停頓時(shí)間。在這段時(shí)間內(nèi),由于沒(méi)有手勢(shì)產(chǎn)生,所以各方向的加速度值也相對(duì)平穩(wěn)。當(dāng)有手勢(shì)發(fā)生時(shí),加速度值則突然變的劇烈,利用這個(gè)特點(diǎn)可以把一串連續(xù)手勢(shì)分割成一組單手勢(shì)組合[13]。
系統(tǒng)通過(guò)設(shè)置門(mén)限閥值來(lái)檢測(cè)單手勢(shì)模型的起點(diǎn)。當(dāng)單手勢(shì)做完停頓的那一刻時(shí),手部處于短暫的靜止?fàn)顟B(tài),此時(shí)位于不同部位的六個(gè)傳感器數(shù)據(jù)值所體現(xiàn)出來(lái)瞬時(shí)特征用C(t)=[G1(t),G2(t)…G6(t)]來(lái)表示。假設(shè)下一時(shí)刻為t+1,則手部各加速度傳感器的特征值則為C(t+1)=[G1(t+1),G2(t+1)…G6(t+1)]。假設(shè)t+1時(shí)刻恰為手勢(shì)起點(diǎn),則C(t)與C(t+1)各個(gè)數(shù)據(jù)間會(huì)有明顯的跳變。設(shè)定閥值為valve,對(duì)C(t)與C(t+1)中各特征采集點(diǎn)進(jìn)行比較,若:
且同時(shí)有多個(gè)點(diǎn)存在突變則認(rèn)為該手勢(shì)為動(dòng)作起點(diǎn)。
人手在做每個(gè)動(dòng)作的過(guò)程中難免會(huì)發(fā)生顫抖或偏移,不同的人在做同一手勢(shì)過(guò)程中也會(huì)存在細(xì)微的差別。如何斷定該動(dòng)作是抖動(dòng)還是動(dòng)作者的手勢(shì)對(duì)于動(dòng)作的完整性來(lái)說(shuō)也是至關(guān)重要的一步,因此要在識(shí)別過(guò)程中加入抖動(dòng)判定過(guò)程,以解決這些抖動(dòng)帶來(lái)的干擾[14]。
系統(tǒng)在抖動(dòng)判定方法的設(shè)計(jì)上,依據(jù)大量采集到手勢(shì)信息得出,從極限情況出發(fā),即由于人與人之間存在差異產(chǎn)生的最大抖動(dòng)可能,得出的同一手勢(shì),最大數(shù)據(jù)抖動(dòng)范圍在-11—11之間。由此得出抖動(dòng)判定模型為:
其中 M(t)=[m1(t),m2(t),…,m6(t)]為最佳手勢(shì)模型,C(t)為采集到的某個(gè)人的手勢(shì)數(shù)據(jù),Y(t)為經(jīng)過(guò)抖動(dòng)判斷后輸出的決策信息。
系統(tǒng)所采用的手勢(shì)識(shí)別算法是基于隱馬爾可夫模型(HMM)識(shí)別算法,其核心思想是一種基于轉(zhuǎn)移概率和傳輸概率的隨機(jī)模型。在進(jìn)行匹配算法之前,首先為每個(gè)手勢(shì)建立手勢(shì)模型,通過(guò)訓(xùn)練得到狀態(tài)轉(zhuǎn)移概率矩陣A和輸出概率矩陣B。識(shí)別時(shí)通過(guò)最優(yōu)狀態(tài)序列Viterbi算法計(jì)算未知手勢(shì)在狀態(tài)轉(zhuǎn)移過(guò)程中的最大概率,根據(jù)最大概率對(duì)應(yīng)的模型進(jìn)行判決。該算法的優(yōu)勢(shì)在于不需要時(shí)間規(guī)整,可節(jié)約判決時(shí)的計(jì)算時(shí)間和存儲(chǔ)量,但帶來(lái)的問(wèn)題是訓(xùn)練時(shí)計(jì)算量較大。
系統(tǒng)利用HMM模型對(duì)采集的手勢(shì)進(jìn)行判別,具體實(shí)現(xiàn)步驟如下:①通過(guò)概率計(jì)算,把模型λ=f(a,A,B)中的參數(shù)初始狀態(tài)概率矢量a,狀態(tài)轉(zhuǎn)移概率矩陣A,概率分布函數(shù)矢量B求出。再通過(guò)前向概率算法和后向概率算法算出輸出Y的概率P(Y|λ);②得到輸出Y的概率P(Y|λ)和模型λ=f(a,A,B)后通過(guò)最優(yōu)狀態(tài)序列Viterbi搜索算法估計(jì)出系統(tǒng)模型產(chǎn)生Y時(shí)最可能經(jīng)歷的狀態(tài)序列X;③將概率最大的HMM模型為對(duì)應(yīng)的識(shí)別結(jié)果輸出。
以手勢(shì)模型庫(kù)容量為三的情況下手勢(shì)識(shí)別為例,實(shí)驗(yàn)過(guò)程中首先定義手勢(shì)1~3三種手勢(shì)。
圖2為假設(shè)定義的三個(gè)手勢(shì)模型圖,其中每個(gè)手勢(shì)表示一種狀態(tài),共有3個(gè)狀態(tài)用Si(i=1,2,3)表示。在時(shí)刻n時(shí),手勢(shì)所處的狀態(tài)用xn來(lái)表示,xn只能取S1~S3中一個(gè)。即xn∈{S1~S3}。
圖2 三個(gè)狀態(tài)跳轉(zhuǎn)示意圖
初始狀態(tài)概率矢量a位于時(shí)間起點(diǎn),即n=1,此時(shí)狀態(tài)x1可能是S1~S3中的任何一個(gè)。如果在此時(shí)狀態(tài)x1取的是手勢(shì)1,則初始狀態(tài)概率矢量a為[1,0,0]。
狀態(tài)轉(zhuǎn)移概率矩陣A,是表示在當(dāng)前狀態(tài)下可以以某種概率向任意的狀態(tài)跳轉(zhuǎn)。上圖定義了3個(gè)手勢(shì)(狀態(tài)),則共有33種跳轉(zhuǎn)狀態(tài)。得到的矩陣
概率函數(shù)分布矢量B,在上述三個(gè)狀態(tài)S1~S3下,每個(gè)狀態(tài)都有對(duì)應(yīng)的概率分布函數(shù)或密度函數(shù)PSi,三個(gè)狀態(tài)則構(gòu)成一個(gè)三維的行矢量 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)。得到
最后,通過(guò)最優(yōu)狀態(tài)序列Viterbi搜索算法估計(jì)出系統(tǒng)模型產(chǎn)生Y時(shí)最可能經(jīng)歷的狀態(tài)序列X的概率最大的HMM模型,那么該模型所對(duì)應(yīng)的手勢(shì)即為手勢(shì)識(shí)別的結(jié)果,即:
識(shí)別原理圖如圖3所示。
圖3 識(shí)別原理圖
系統(tǒng)共建立了0~9十個(gè)數(shù)字的手勢(shì)庫(kù),其標(biāo)準(zhǔn)手勢(shì)如圖4所示。
圖4 手勢(shì)定義圖
選取20個(gè)人進(jìn)行匹配,得到數(shù)據(jù)經(jīng)過(guò)測(cè)算如表1所示。
表1 手勢(shì)匹配值一覽表
表1中的數(shù)據(jù)中匹配值越大說(shuō)明匹配度越好,0為極大值。通過(guò)MATLAB仿真可以算出手勢(shì)0到手勢(shì)9之間轉(zhuǎn)移矩陣和轉(zhuǎn)移概率。通過(guò)測(cè)算得出手勢(shì)數(shù)字0到數(shù)字9之間的識(shí)別率如表2所示。
表2 手勢(shì)識(shí)別率統(tǒng)計(jì)表
系統(tǒng)利用動(dòng)作停頓時(shí)間門(mén)限閾值和抖動(dòng)閾值的方法對(duì)抖動(dòng)和細(xì)微動(dòng)作做出相應(yīng)的區(qū)分,從實(shí)驗(yàn)結(jié)果來(lái)看能夠達(dá)到準(zhǔn)確判斷和識(shí)別的目的。同時(shí)系統(tǒng)采用隱馬爾可夫模型對(duì)訓(xùn)練樣本數(shù)據(jù)和測(cè)試樣本數(shù)據(jù)進(jìn)行識(shí)別,平均訓(xùn)練樣本識(shí)別率達(dá)到99%。這個(gè)結(jié)果表明,采用多加速度傳感器中每個(gè)動(dòng)作的三軸加速度數(shù)據(jù)作為特征量,之后利用HMM和Viterbi算法進(jìn)行訓(xùn)練、識(shí)別以及優(yōu)化的方法,在手勢(shì)交互過(guò)程中,能達(dá)到較好的識(shí)別效果。
本系統(tǒng)采用多個(gè)三軸加速度傳感器和ZigBee芯片作為手勢(shì)信息采集系統(tǒng),以數(shù)字0~9做為識(shí)別內(nèi)容,利用分布在五個(gè)手指和手背上的加速度傳感器,提取每個(gè)方向軸上的加速度信息作為HMM的數(shù)據(jù)輸入?yún)?shù),為HMM進(jìn)行初始化及參數(shù)訓(xùn)練,最后利用HMM進(jìn)行手勢(shì)識(shí)別。為了得到較高的識(shí)別率,對(duì)HMM進(jìn)行了優(yōu)化,從實(shí)驗(yàn)結(jié)果上來(lái)看,識(shí)別率能達(dá)到98%以上,基本能夠?qū)崿F(xiàn)靜態(tài)手勢(shì)和簡(jiǎn)單動(dòng)態(tài)手勢(shì)的準(zhǔn)確識(shí)別。同時(shí)ZigBee技術(shù)的引入,為為后續(xù)擴(kuò)展提供了極大的便利條件。
[1] 王萬(wàn)良,楊經(jīng)緯,蔣一波.基于運(yùn)動(dòng)傳感器的手勢(shì)識(shí)[J].傳感技術(shù)學(xué)報(bào),2011,24(12):1723-1727.
[2] 荊雷,馬文君,常丹華.基于動(dòng)態(tài)時(shí)間規(guī)整的手勢(shì)加速度信號(hào)識(shí)別[J].傳感技術(shù)學(xué)報(bào),2012,25(1):72-75.
[3] 劉蓉,劉明.基于加速度傳感器的手勢(shì)識(shí)別研究[J].計(jì)算機(jī)工程,2011,37(16):141-143.
[4] 寧愛(ài)平,張雪英.人工蜂群算法改進(jìn)DHMM的語(yǔ)音識(shí)別方法[J].計(jì)算機(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的中國(guó)手語(yǔ)識(shí)別系統(tǒng)[J].計(jì)算機(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]薛洋.基于單個(gè)加速度傳感器的人體運(yùn)到模式識(shí)別[D].廣州:華南理工大學(xué),2011.
[11] 嚴(yán)焰,劉蓉,黃璐,陳婷.基于HMM的手勢(shì)識(shí)別研究[J].華中師范大學(xué)學(xué)報(bào)(自然科學(xué)版),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]陳意,楊平,陳旭光.一種基于加速度特征提取的手勢(shì)識(shí)別方法[J].傳感技術(shù)學(xué)報(bào),2012,25(8):1073-1078.
[14]顧偉宏,閔昆龍,張曉娜.新型數(shù)據(jù)手套及其手勢(shì)識(shí)別研究[J].自動(dòng)化儀表,2011,32(2):56-59.