王鵬+丁任之+何天翔+雷汝霖
摘 要:基于智能手機(jī)上的加速度傳感器,設(shè)計(jì)并實(shí)現(xiàn)了一種手勢(shì)識(shí)別系統(tǒng)。采用時(shí)間數(shù)列方法對(duì)加速度數(shù)據(jù)樣本建模,對(duì)數(shù)據(jù)進(jìn)行降噪和優(yōu)化處理,包括使用抽取突變消除平緩強(qiáng)調(diào)動(dòng)作的變化;利用門限值差分方法進(jìn)行手勢(shì)動(dòng)作動(dòng)態(tài)自截??;利用特征提取簡(jiǎn)化數(shù)據(jù),提高識(shí)別正確率;利用模板匹配方式,基于動(dòng)態(tài)時(shí)間規(guī)整(DTW)算法進(jìn)行手勢(shì)檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)方便可行,具有較高的識(shí)別率。
關(guān)鍵詞關(guān)鍵詞:加速度傳感器;動(dòng)態(tài)時(shí)間規(guī)整;手勢(shì)識(shí)別
DOIDOI:10.11907/rjdk.161536
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2016)008-0062-03
0 引言
智能手機(jī)已廣泛使用,但目前單純基于觸屏和按鍵操作的二維手勢(shì)操作方法卻不能滿足人們對(duì)手機(jī)操作體驗(yàn)越來(lái)越高的要求。筆者設(shè)計(jì)了一款可以在3維空間中識(shí)別用戶特定動(dòng)作的手勢(shì)識(shí)別系統(tǒng),該系統(tǒng)具有以下優(yōu)點(diǎn):①手勢(shì)識(shí)別時(shí)直接以人手的動(dòng)作作為輸入,省去了中間媒介,相較于語(yǔ)音識(shí)別減少了冗余因素不必要的影響;②用于數(shù)據(jù)獲取的加速度傳感器廣泛內(nèi)置于智能手機(jī)中,成本低且具有較高的靈敏度和較小的體積,便于獲取和使用。
基于加速度傳感器的手勢(shì)識(shí)別技術(shù)主要包括隱馬爾科夫模型、模糊神經(jīng)網(wǎng)絡(luò)、模板匹配等方法。本文實(shí)現(xiàn)了基于DTW算法的動(dòng)態(tài)手勢(shì)識(shí)別系統(tǒng)。為了減少臟數(shù)據(jù)獲取,本文使用一系列方法進(jìn)行優(yōu)化。主要包括:使用抽取突變的方法來(lái)強(qiáng)調(diào)數(shù)據(jù)的突變并忽略數(shù)據(jù)的平緩;使用基于門限的動(dòng)態(tài)手勢(shì)截取方法,對(duì)手勢(shì)進(jìn)行實(shí)時(shí)識(shí)別,提升了系統(tǒng)對(duì)個(gè)體差異的適應(yīng)性,增強(qiáng)了連續(xù)動(dòng)態(tài)手勢(shì)輸入的實(shí)時(shí)性;使用特征提取方法,簡(jiǎn)化了手勢(shì)識(shí)別的分析模式,提高了手勢(shì)識(shí)別的準(zhǔn)確性。
1 系統(tǒng)流程
本系統(tǒng)流程如圖1所示[1]。首先,用戶手握手機(jī)做出相應(yīng)手勢(shì),手勢(shì)數(shù)據(jù)被智能手機(jī)的加速度傳感器所獲取。經(jīng)過(guò)數(shù)據(jù)處理(包括抽取突變、手勢(shì)截?。┖螅瑢?duì)得到的時(shí)間序列進(jìn)行特征提取。經(jīng)過(guò)特征提取的數(shù)據(jù)再通過(guò)DTW算法進(jìn)行手勢(shì)匹配,最后得到識(shí)別結(jié)果。
2 數(shù)據(jù)采集
筆者通過(guò)Android手機(jī)內(nèi)置的三軸加速度傳感器進(jìn)行數(shù)據(jù)采集,設(shè)定三軸加速度傳感器數(shù)據(jù)獲取間隔為5000 μs,單位為m/s2。同時(shí),需要獲取每個(gè)軸的重力加速度,為之后的特征提取進(jìn)行數(shù)據(jù)準(zhǔn)備,因此還需使用手機(jī)的重力傳感器。設(shè)定重力加速度傳感器數(shù)據(jù)獲取間隔為SENSOR_DELAY_NORMAL,即20000 μs,單位為m/s2。最后,對(duì)獲取到的三軸加速度數(shù)據(jù)進(jìn)行建模[2]:
3 數(shù)據(jù)處理
3.1 抽取突變
對(duì)于用戶手勢(shì)數(shù)據(jù)的獲取,需要采集加速度數(shù)據(jù)變化劇烈的點(diǎn)(通常是手勢(shì)進(jìn)行的標(biāo)志),同時(shí)應(yīng)忽略變化平穩(wěn)的數(shù)據(jù)樣本(通常是臟數(shù)據(jù))。本文使用了抽取突變[3]這種強(qiáng)調(diào)傳感器數(shù)據(jù)的瞬間變化,初步去除靜態(tài)和緩慢變化的數(shù)據(jù)背景方法,見(jiàn)公式(1)。
定義權(quán)值A(chǔ)lpha,則有:
其中,currentAcc表示某個(gè)方向軸經(jīng)過(guò)抽取突變處理的數(shù)值,x表示該方向軸傳回的原始數(shù)據(jù),preData表示上個(gè)時(shí)間幀經(jīng)過(guò)抽取突變得到的冗余值,Alpha值為0.8。
3.2 手勢(shì)截取
本系統(tǒng)采用基于門限的手勢(shì)動(dòng)態(tài)截取方法[4],通過(guò)將加速度的變化量與設(shè)置好的門限進(jìn)行比較,判斷手勢(shì)的開(kāi)始和結(jié)束。公式(2)實(shí)時(shí)獲取了每個(gè)時(shí)間幀加速度變化量之和。其中x(t),y(t)、z(t)分別表示在t時(shí)刻(即當(dāng)前時(shí)間幀)x軸、y軸、z軸方向的加速度值,x(t-1)、y(t-1)、z(t-1)分別表示在t-1時(shí)刻(即上個(gè)時(shí)間幀)x軸、y軸、z軸方向的加速度值。
為了減少誤差消除噪聲,采取N個(gè)采樣數(shù)據(jù)的差分結(jié)果求均值,如公式(3)所示。
最后使用門限值進(jìn)行數(shù)據(jù)截取,其中定值Start和End分別表示判斷手勢(shì)開(kāi)始和手勢(shì)結(jié)束的門限值。結(jié)合通過(guò)公式(3)得到的ai,則有截取過(guò)程如下:①ai >Start,標(biāo)志手勢(shì)已開(kāi)始,開(kāi)始記錄三軸加速度傳感器獲取的數(shù)據(jù)并轉(zhuǎn)換為時(shí)間序列;②ai 圖2表示用本方法獲取的手勢(shì)1樣本數(shù)據(jù),可以發(fā)現(xiàn)在無(wú)手勢(shì)時(shí),各方向加速度趨于穩(wěn)定,變化較小,在有手勢(shì)動(dòng)作時(shí),則劇烈變化。 4 特征提取 由于手勢(shì)數(shù)據(jù)過(guò)于復(fù)雜且類型多樣,直接作為分類標(biāo)準(zhǔn)無(wú)法實(shí)現(xiàn),為此本文使用特征提取方法,該方法有助于減少數(shù)據(jù)處理工作量并提高手勢(shì)識(shí)別準(zhǔn)確性。 通過(guò)特征提取作為手勢(shì)識(shí)別的判別標(biāo)準(zhǔn),就必須明確反映出使用者手勢(shì)的運(yùn)動(dòng)學(xué)特性并且與其它手勢(shì)有明顯差異[5]。在這樣的前提下,本文以可分性、可靠性、獨(dú)立性作為特征的選取標(biāo)準(zhǔn),得到如下3個(gè)手勢(shì)特征: (1)時(shí)間長(zhǎng)度:即該手勢(shì)所花費(fèi)的時(shí)間T,是最基本的手勢(shì)判定標(biāo)準(zhǔn)。 其中tend為手勢(shì)結(jié)束時(shí)間,tsta為手勢(shì)開(kāi)始時(shí)間。 (2)手勢(shì)能量:即進(jìn)行該手勢(shì)所用的能量E,通過(guò)能量可以判斷手勢(shì)的劇烈程度。 其中T為時(shí)間序列長(zhǎng)度; axi、ayi、azi分別為i時(shí)間點(diǎn)x方向、y方向、z方向的加速度數(shù)值;gxi、gyi、gzi分別為i時(shí)間點(diǎn)x方向、y方向、z方向的重力加速度數(shù)值。 (3)波峰數(shù):X、Y、Z三個(gè)方向加速度時(shí)間圖像中,波峰的數(shù)量P反映了加速度的變化 通過(guò)統(tǒng)計(jì)不同方向的加速度變化,從而判斷手勢(shì)運(yùn)動(dòng)軌跡。 Px、Py、Pz分別為X方向、Y方向、Z方向加速度圖中的波峰數(shù)量。 5 手勢(shì)識(shí)別 事先在手機(jī)中存儲(chǔ)一系列的標(biāo)準(zhǔn)動(dòng)作模板,當(dāng)檢測(cè)到手機(jī)有動(dòng)作發(fā)生時(shí)便將該動(dòng)作的傳感器波形與標(biāo)準(zhǔn)動(dòng)作模板庫(kù)中的動(dòng)作波形進(jìn)行匹配處理,以此來(lái)判斷動(dòng)作類型。采用DTW(Dynamic Time Warping,動(dòng)態(tài)時(shí)間歸整)算法來(lái)實(shí)現(xiàn)波形匹配[6]。DTW相對(duì)于HMM算法,在訓(xùn)練階段不需要大量數(shù)據(jù)。R={R(1),R(2),……,R(m)},測(cè)試模板T={T(1),T(2),……,T(n)}, n=1為起點(diǎn)語(yǔ)音幀,n=N為終點(diǎn)語(yǔ)音幀。為了比較相似度,可以計(jì)算它們之間的距離 D[T,R],距離越小則相似度越高[7]。對(duì)齊可以采用線性擴(kuò)張方法,動(dòng)態(tài)規(guī)劃(DP)方法,采用歐式距離,d(Ri, Tj)= (Ri-Tj)2。
為了對(duì)齊這兩個(gè)序列,需要構(gòu)造一個(gè)n、x、m的矩陣網(wǎng)格,矩陣元素(i,j)表示Ri和Tj兩個(gè)點(diǎn)的距離d(Ri,Tj)(也就是序列R的每一個(gè)點(diǎn)和T的每一個(gè)點(diǎn)之間的相似度,距離越小則相似度越高,這里先不管順序),一般采用歐式距離,d(Ri,Tj)= (Ri-Tj)2(也可以理解為失真度)。每個(gè)矩陣元素(i,j)表示點(diǎn)Ri和Tj的對(duì)齊。DP算法可以歸結(jié)為尋找一條通過(guò)此網(wǎng)格中若干格點(diǎn)的路徑,路徑通過(guò)的格點(diǎn)即為兩個(gè)序列進(jìn)行計(jì)算對(duì)齊的點(diǎn)。為了使路徑不過(guò)于傾斜,可以約束斜率在0.5~2的范圍內(nèi),如果路徑已經(jīng)通過(guò)了格點(diǎn)(n,m),那么下一個(gè)通過(guò)的格點(diǎn)(n,m)只可能是下列3種情況之一:1(n,m)=(n+1,m);2(n,m)=(n+1,m+1);3(n,m)=(n,m+1)。所以,
實(shí)踐中對(duì)此思路做了測(cè)試,以空間手勢(shì)為例 ,主要根據(jù)三軸加速度來(lái)對(duì)敲擊動(dòng)作進(jìn)行識(shí)別 ,加速度能夠很好地反映作用于手機(jī)力的變化率和手機(jī)空間位置的變化。手勢(shì)定義:①在系統(tǒng)中定義有意義的手勢(shì);②手勢(shì)建模: 根據(jù)手勢(shì)中三軸加速度的大小來(lái)建立模型;③手勢(shì)動(dòng)作模型訓(xùn)練: 反復(fù)采集各個(gè)手勢(shì)動(dòng)作信號(hào)數(shù)據(jù),訓(xùn)練改進(jìn)模板;④手勢(shì)識(shí)別: 使用DTW算法為識(shí)別方法,計(jì)算各個(gè)模型和模板之間的距離。
6 實(shí)驗(yàn)數(shù)據(jù)與結(jié)果分析
為了驗(yàn)證算法的有效性,選擇MOTO G Android 系統(tǒng)智能手機(jī)和Sony C6603 Android系統(tǒng)智能手機(jī)分別作為實(shí)驗(yàn)的樣機(jī)1和樣機(jī)2。用戶使用手機(jī)在空間中進(jìn)行手勢(shì)動(dòng)作的書(shū)寫。圖3為阿拉伯?dāng)?shù)字2的手勢(shì)分解到x軸的原始數(shù)據(jù),訓(xùn)練者各操作100次用于訓(xùn)練模板。
圖4、圖5、圖6分別為阿拉伯?dāng)?shù)字2手勢(shì)訓(xùn)練100次后x軸、y軸、z軸加速度的模板數(shù)據(jù)。
模板建立后,訓(xùn)練者操作不同手勢(shì)用于測(cè)試,使用DTW算法計(jì)算距離:
通過(guò)公式(8)判定結(jié)果 ,若D>1 500則為否,否則為是,結(jié)果如表1所示。實(shí)驗(yàn)證明:所構(gòu)建的識(shí)別算法對(duì)連續(xù)動(dòng)態(tài)手勢(shì)具有識(shí)別能力。
7 結(jié)語(yǔ)
基于手機(jī)內(nèi)置三軸加速度傳感器的手勢(shì)識(shí)別系統(tǒng),通過(guò)內(nèi)置的三軸加速度傳感器采集用戶手勢(shì)加速度樣本數(shù)據(jù),抽取突變實(shí)現(xiàn)數(shù)據(jù)優(yōu)化。通過(guò)門限差分實(shí)現(xiàn)用戶手勢(shì)的動(dòng)態(tài)自截取,通過(guò)特征提取獲取手勢(shì)的時(shí)間長(zhǎng)度、手勢(shì)能量和波峰數(shù)等特征進(jìn)行樣本評(píng)估,利用 DTW算法實(shí)現(xiàn)手勢(shì)驗(yàn)證。實(shí)驗(yàn)結(jié)果表明系統(tǒng)具有良好的手勢(shì)識(shí)別效果,能很好地應(yīng)對(duì)傳感器數(shù)據(jù)的差異性和不精確性。由于DTW算法的局限,對(duì)過(guò)度復(fù)雜手勢(shì)的識(shí)別不高,如何提高算法的計(jì)算速度、精確性等問(wèn)題有待進(jìn)一步研究。
參考文獻(xiàn):
[1]BILL PHILLIPS, BRIAN HARDY. Android編程權(quán)威指南[M]. 王明發(fā),譯.北京:人民郵電出版社,2014:30-31.
[2]KATE, ROHIT J. Using dynamic time warping distances as features for improved time series classification[J]. Data Mining & Knowledge Discovery, 2016, 30(2): 283-312.
[3]GREG MILETTE,ADAM STROUD. Android傳感器高級(jí)編程[M].裴佳迪,譯.北京:清華大學(xué)出版社,2013:99-114.
[4]陳鵬展,羅漫,李杰.基于加速度傳感器的連續(xù)動(dòng)態(tài)手勢(shì)識(shí)別[J].傳感器與微系統(tǒng),2016(1):39-42.
[5]陳意,楊平,陳旭光,等.一種基于加速度特征提取的手勢(shì)識(shí)別方法[J].傳感技術(shù)學(xué)報(bào),2012,25(8):1073-1078.
[6]王杰鋒,周治平,苗敏敏.移動(dòng)終端手勢(shì)識(shí)別中DTW匹配算法研究 [J].計(jì)算機(jī)工程與應(yīng)用,2013(9)254-259.
[7]SRIVASTAVA, RUPIKA, SINHA, et al. Hand movements and gestures characterization using quaternion dynamic time warping technique[J]. IEEE Sensors Journal,2016, 16(5): 1333-1341.
(責(zé)任編輯:杜能鋼)