一種基于BP神經(jīng)網(wǎng)絡(luò)的手勢識(shí)別系統(tǒng)設(shè)計(jì)
0 引 言
本文引用地址:http://www.ex-cimer.com/article/256537.htm隨著科技的發(fā)展和進(jìn)步,計(jì)算機(jī)已經(jīng)漸漸適應(yīng)人的需求。人類在利用計(jì)算機(jī)解決問題時(shí),并沒有將主觀能動(dòng)性和計(jì)算機(jī)的高效性有機(jī)地結(jié)合起來。研究新型的人機(jī)交互工具能夠打破這一障礙。當(dāng)虛擬現(xiàn)實(shí)越來越被人熟知時(shí),可以使用手勢作為載體進(jìn)行人機(jī)交互。
目前,手勢輸入的種類有基于圖像的和基于加速度傳感器的。由于圖像的手勢識(shí)別對外部環(huán)境的依賴比較大,而加速度傳感器識(shí)別就不受外部條件的限制,甚至可以依靠單手完成操作,因此,基于加速度傳感器的方法能有效地識(shí)別手勢動(dòng)作,完成人機(jī)交互。本文采用ADXL335 三軸加速度傳感器分別采集五個(gè)手指和手背上的加速度信息,實(shí)現(xiàn)手勢的輸入。
1 手勢識(shí)別方法
手勢的執(zhí)行是一個(gè)動(dòng)態(tài)的過程,主要表現(xiàn)在手指彎曲引起的手的形狀和手在空間的位置和方位的變化,需要從時(shí)間和空間兩方面來描述。根據(jù)手勢的時(shí)變特征,可將手勢分為靜態(tài)手勢和動(dòng)態(tài)手勢。從測量的角度看,靜態(tài)手勢可用某一時(shí)刻手的空間特征的測量值來表示,而動(dòng)態(tài)手勢是指需要使用隨時(shí)間變化的空間特征來描述的手勢。靜態(tài)手勢可以用各個(gè)關(guān)節(jié)測得的特征值來表示,而動(dòng)態(tài)手勢需用一段時(shí)間內(nèi)手的空間特征的一組測量序列值來表示。人的手有多個(gè)自由度,運(yùn)動(dòng)十分靈活、復(fù)雜,而且不同的人,手的大小不同。因此,同樣的手勢,不同的人作出時(shí)手的運(yùn)動(dòng)會(huì)存在差別;同一個(gè)人在不同的時(shí)間、地點(diǎn)作出手勢也不一樣。所以,本文主要針對靜態(tài)手勢的數(shù)據(jù)手套進(jìn)行分析研究。
2 手勢的識(shí)別技術(shù)
目前,比較流行的手勢識(shí)別技術(shù)有模板匹配法、特征提取和BP 算法等。
模板匹配法:主要是將傳感器輸入的原始數(shù)據(jù)與預(yù)先存儲(chǔ)的模板進(jìn)行匹配,通過測量兩者之間的相似度來完成識(shí)別任務(wù)。由于需要大量的基礎(chǔ)數(shù)據(jù)作為匹配對象,所以受到噪聲、光照、復(fù)雜環(huán)境影響較大,并且匹配速度慢。但是,模板匹配法簡單、易掌握,普及程度高。
特征提取:在特征提取過程中,輸入數(shù)據(jù)中的低層特征被提取出來,經(jīng)過分析而轉(zhuǎn)化成包含手形語義的高層特征,然后用高層特征進(jìn)行手形識(shí)別。
BP 算法:是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò)。
BP 網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小。
3 BP 算法
BP 神經(jīng)網(wǎng)絡(luò)是一種前向傳播的多層網(wǎng)絡(luò),網(wǎng)絡(luò)除了輸入節(jié)點(diǎn)以外,還有一層或多層隱含節(jié)點(diǎn)。其訓(xùn)練方法被稱為誤差反傳播算法,它利用實(shí)際輸出和期望輸出之差對網(wǎng)絡(luò)的多層連接權(quán)由后向前逐層進(jìn)行校正。BP 網(wǎng)絡(luò)的最大缺點(diǎn)是樣本訓(xùn)練的收斂速度慢。為提高網(wǎng)絡(luò)的收斂速度,同時(shí)防止網(wǎng)絡(luò)的振蕩發(fā)散,本次選取的BP 神經(jīng)網(wǎng)絡(luò)是1 個(gè)3 層BP 網(wǎng)絡(luò)結(jié)構(gòu)( 含1 個(gè)隱層),隱單元及輸出單元用sigmoid 函數(shù)輸出,輸出共分為10 類,即輸出神經(jīng)元個(gè)數(shù)為10.由于輸入矢量為處理后的手部加速度傳感器( 用18×10 的數(shù)字矩陣表示) ,因此第一層為240 個(gè)神經(jīng)元,第二層為隱含層。根據(jù)經(jīng)驗(yàn),其神經(jīng)元數(shù)目一般為輸入矢量維數(shù)的10 %,為26 個(gè)神經(jīng)元,采用改進(jìn)的BP 算法。將每個(gè)樣本對應(yīng)的矩陣元素值輸入神經(jīng)網(wǎng)絡(luò)的各個(gè)輸入單元,并為每個(gè)輸出單元指定期望輸出,計(jì)算每個(gè)輸出單元的實(shí)際輸出與期望輸出的誤差以及隱含層誤差。計(jì)算實(shí)際輸出與期望輸出的誤差公式為:
式中的負(fù)號表示梯度下降,常數(shù)η ∈(0,1)代表學(xué)習(xí)速率。
由于BP 神經(jīng)網(wǎng)絡(luò)算法的收斂速度慢,優(yōu)化的目標(biāo)函數(shù)非常復(fù)雜,所以需要優(yōu)化學(xué)習(xí)速率。三層感知器的BP 學(xué)習(xí)算法權(quán)值調(diào)整計(jì)算公式為:
將每個(gè)加速度傳感器中每個(gè)軸的數(shù)據(jù)特征向量作為神經(jīng)網(wǎng)絡(luò)的輸入,所以神經(jīng)的輸入層神經(jīng)元個(gè)數(shù)等于特征向量的維數(shù),即9×18=162 個(gè)輸入神經(jīng)元。輸出層神經(jīng)元個(gè)數(shù)的確定因?yàn)橐R(shí)別10 個(gè)數(shù)字,因此輸出選擇為10×1 的矩陣,即輸出節(jié)點(diǎn)數(shù)為l0.當(dāng)0 ~ 9 輸入神經(jīng)網(wǎng)絡(luò)后在輸出神經(jīng)元對應(yīng)的位置上為1,其他的位置為0.輸入數(shù)字0,第1 個(gè)輸出神經(jīng)元為1,其他為0 ;輸入數(shù)字1,第2 個(gè)輸出神經(jīng)元為1,其他為0 ;依此類推。
隱含層數(shù)越多, 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速度就越慢。根據(jù)Kosmogorov 定理,在合理的結(jié)構(gòu)和恰當(dāng)?shù)臋?quán)值條件下,3 層BP 網(wǎng)絡(luò)可以逼近任意的連續(xù)函數(shù)。因此,我們選取結(jié)構(gòu)相對簡單的3 層BP 網(wǎng)絡(luò)。
一般情況下,神經(jīng)元個(gè)數(shù)與函數(shù)收斂程度有關(guān)。根據(jù)經(jīng)驗(yàn)公式s=sqrt(n×m),其中,m 為輸入神經(jīng)元個(gè)數(shù),n 為輸出神經(jīng)元個(gè)數(shù),得出隱含層神經(jīng)元個(gè)數(shù)為40 個(gè)。
采用定義學(xué)習(xí)速率和采用帶動(dòng)量因子算法兩種改進(jìn)方法。
識(shí)別內(nèi)容為數(shù)字0 ~ 9,利用手勢特征,提取每個(gè)加速度傳感器中每個(gè)軸的數(shù)據(jù)作為BP 的數(shù)據(jù)輸入?yún)?shù),為BP 進(jìn)行初始化及參數(shù)訓(xùn)練,可以提高數(shù)據(jù)的識(shí)別率。在學(xué)習(xí)收斂的情況下,增大η,以縮短學(xué)習(xí)時(shí)間;當(dāng)η 偏大致使不能收斂時(shí),要及時(shí)減小η,直到收斂為止。將上一次權(quán)值調(diào)整量的一部分迭加到按本次誤差計(jì)算所得的權(quán)值調(diào)整量上,作為本次的實(shí)際權(quán)值調(diào)整量,即:
4 實(shí)驗(yàn)結(jié)果分析
通過Matlab 計(jì)算所得出得神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)誤差曲線和數(shù)字識(shí)別結(jié)果如圖1 所示。
本文將0 ~ 9 共10 類數(shù)據(jù)中的每類取20 個(gè)做測試樣本,共200 個(gè)測試樣本對系統(tǒng)進(jìn)行性能測試。測試結(jié)果如表1 所列。由表1 中的數(shù)據(jù)可知,數(shù)字識(shí)別的正確率為98.5%,正確率較高,拒識(shí)率為6.5%,也比較高??傮w數(shù)字識(shí)別有效率為94.5%.Kadous 用Power Gloves 作為手語輸入設(shè)備,這樣的識(shí)別率僅為80%.
5 結(jié) 語
實(shí)際上,數(shù)字識(shí)別的正確率和拒識(shí)率與數(shù)字識(shí)別的判斷值有關(guān),本文的判斷值設(shè)置為0.7.判斷值設(shè)置得高,數(shù)字識(shí)別的正確率就高,同時(shí)數(shù)字的拒識(shí)率也相應(yīng)地就高,反之亦然。因此,判斷值的選擇需要根據(jù)實(shí)際情況來定。
矢量控制相關(guān)文章:矢量控制原理
評論