?

手勢識別實驗系統設計

2019-04-03 07:51黃曉鈺吳朝陽譚智強
實驗技術與管理 2019年3期
關鍵詞:極板卡爾曼濾波手勢

劉 恒, 黃曉鈺, 吳朝陽, 譚智強

(南京信息工程大學 電子與信息工程學院, 江蘇 南京 210044)

作為自然交互方式的重要組成部分,手勢交互在人機接口、聾啞人手語識別、虛擬現實、智能家電等領域都起著重要作用,它在表情識別、唇讀、步態識別、機器人視覺、圖像拼接和三維重建等方面都有直接推廣的意義[1-4]。目前主要的手勢識別方法有兩種:一種是基于圖像設備獲取人的手勢動作圖像,然后利用各種方法進行圖像分析和識別;另一種是基于微傳感器獲取手不同部位的動作信息,進而通過與模型的匹配得到動作者的實時手勢信息[5]。圖像設備獲取手勢動作要受采集環境影響,特別是環境光照影響,加之人手是復雜的變形體,手勢具有多樣性、多意性及空間上的差異性等特點,基于圖像設備的手勢識別技術在一定程度上存在局限性?;谖鞲衅鞯氖謩葑R別系統只需獲取人手各部位的動作數據,通過算法便可還原動作者的意圖。該類系統在任何環境和空間里都能間接獲得動作者的手勢信息,基本能夠克服基于圖像設備識別的受環境和手勢形體影響,基于微傳感器的手勢識別研究逐漸得到重視。

目前,基于加速度傳感器的手勢識別方法主要有動態時間規整( DTW)和隱馬爾科夫模型( HMM)。然而由于個體差異,同一手勢的加速度數據( 如幅值、手勢長度等) 存在較大差異;即使同一個體,同一手勢的加速度數據也存在差異。因此上述方法難以建立準確的手勢模板和隱馬爾卡夫模型,識別準確率較低,個體適應性較差[6]。另外,DTW算法計算量大,隨著手勢數量的增加,算法實時性將大大降低;并且由于加速度傳感器無法獲取設備姿態信息[7],用戶只能嚴格地在給定的設備姿態下操作,這給用戶造成了極大的不便。

由于不同手勢對應的手指形態不一,有研究者開始關注采用電容式傳感器來敏感手部動作[8]。電容式傳感器對應的設備結構簡單、成本低、接口電路芯片靈活多樣,系統容易集成,但電容式傳感器噪聲較大,對位置變化較敏感[9]。本文設計了一種基于電容探頭的手勢識別裝置,探頭采用4通道,其中3個通道敏感靜態手指位置的變化,另1個通道敏感手掌接觸面積的變化;采用FDC2214芯片將檢測電容的變化轉換為振蕩頻率的變化,減少輸出信號的干擾。利用卡爾曼濾波方法提取了手勢變化產生的有效信號,通過神經網絡對待測者手勢特征進行訓練記憶,訓練好的網絡就可用于測試者手勢識別。

1 手勢識別裝置

設計的手勢識別系統包括電容探頭、數字電容/頻率轉換模塊FDC2214、STM32F103ZET6單片機、TFT顯示屏、矩陣按鍵、藍牙收發模塊、電源模塊。整個系統硬件結構見圖1(電源模塊未給出)。

圖1 手勢識別裝置硬件結構

FDC2214數字電容轉換器具有內部LC振蕩電路,振蕩頻率被內部轉換成對應數字量,手勢改變檢測電容大小,電容再通過振蕩電路轉換為頻率,通過頻率不同就可識別不同的手勢。主控單片機STM32F103讀取對應的頻率數值并進行處理和分類,利用采集分類的數據訓練好神經網絡,再利用建立的網絡識別不同的手勢。其中TFT屏顯示手勢識別結果,矩陣按鍵設置交互參數和切換功能模式,TFT屏模塊擴展的SD卡記錄識別過人的網絡參數。由于按鍵、顯示屏及藍牙模塊均為成熟通用電路,本文主要討論探頭極板及接口傳感器設計。

1.1 電容探頭及測試輔助設備

識別系統將人手作為一個電容極板,另一個極板為固定面積的金屬。電容C的表達式:

(1)

式中,ε為空氣介電常數,d為手和極板間距,在識別時保持d不變,S為手和金屬極板的正對面積,不同的手勢對應的正對面積S不一樣。

考慮加工尺寸精確和導電性,探頭采用了PCB的覆銅,為了保證手勢和覆銅極板間距不變,采用測試輔助設備,如圖2所示。測試輔助設備包括放置測試手的硬質亞克力板,覆銅電極附著在FR-4絕緣板上,亞克力板和FR-4絕緣板通過塑料螺柱連接固定。覆銅電極與FDC2214的接口通過射頻線連接,實驗裝置及顯示設備放置于測試區域外。測試時手緊貼亞克力板放置。

圖2 電容探頭及測試輔助裝置

由于單手手勢涉及到5個手指和手掌,正對的覆銅的設計就有多種方案,包括每個手指和手掌均對應一個區域覆銅,單手就需要檢測6個電容的變化量;5個手指共用一個覆銅區域,手掌單獨使用一個覆銅區域;整個手指和手掌共用一個覆銅區域等方案。

采用單通道整體矩形極板,極板面積大,雖然檢測靈敏度較高,結構簡單,占用通道數少;但對于不同手勢的電容數值變化特征不一樣,數據難以線性擬合,且受環境影響較大,不同手勢特征重疊,檢測誤判率高。

如圖3所示,采用兩通道圓弧形極板,極板區域的設計符合手指分布區域,圓形區域貼合手掌,靈敏度較高,但手掌大小以及擺放方式很大程度影響識別準確率。

圖3 二分式覆銅

如圖4所示,采用交叉4通道鋸齒狀極板,一片FDC2214傳感器包含4個電容檢測通道,極板各通道響應輸出曲線近似正態分布,同一手勢在觸摸極板不同位置時,其手指通道輸出的數值和近似相等,使用該極板僅需將各通道輸出求和,即可識別不同手勢,且不受接觸區域限制,魯棒性強。

圖4 4通道覆銅

1.2 電容/頻率轉換模塊

FDC2214是低功耗、低成本且高分辨率的非接觸式電容傳感器芯片,適用于接近檢測、手勢識別等應用,有4個外接通道,每個通道內置有LC諧振電路。FDC2214電氣連接見圖5。

圖5 FDC2214傳感器電氣連接

內部電路將諧振頻率轉換為數字量存儲在存儲器中,外接MCU通過IIC協議配置存儲器的初值及讀取轉換的頻率量。使用時,人手作為一個極板,同時通過人體連接大地,另外一個極板為覆銅極板,不同手勢就形成可變電容??勺冸娙菖c內置的諧振LC元件相并聯,改變諧振頻率。

第x個通道諧振頻率經過m分頻后進入內核轉換,頻率fINx設定為

(2)

式中:L0為內置諧振電感,其值為18 μH;C0為內置諧振電容,其值為33 pF;接口線的電容為20 pF,通道最大諧振頻率為5.15 MHz;Cx為第x個通道外接手勢變化電容,根據fINx就可以推導出Cx的大小。

FDC2214采用參考信號對轉換頻率fIN進行計數度量,參考信號可以來自內部也可來自外部晶振,外部晶振典型為40 MHz,外部振蕩電路比內部振蕩電路穩定,一般配置外部晶振。FDC2214有高達28位的精度,轉換的數據Dx為

(3)

外部MCU通過IIC通信協議就可以獲得Dx,結合參考信號和轉換頻率的分頻比就可得手勢變化電容Cx。

2 信號處理及BP網絡建立

2.1 卡爾曼濾波

FDC2214傳感器讀取頻率時數據有噪聲,包括50 Hz工頻干擾、中高頻隨機噪聲等??柭鼮V波用來處理含噪聲的頻率數據。算法原理是用上一個狀態和當前狀態的測量值來估計當前狀態,因為上一個狀態估計此時狀態值會有誤差,而測量當前狀態時也有測量誤差,根據2個誤差重新估計一個最接近真實狀態的值[10]。

引入一個離散控制過程的系統,系統用一個線性隨機微分方程來描述:

X(k)=A·X(k-1)+B·U(k)+W(k)

(4)

系統的測量值Z(k):

Z(k)=H·X(k)+V(k)

(5)

式(4)和式(5)中,X(k)是k時刻的系統狀態,U(k)是k時刻系統的控制量,k-1表示前一時刻。A、B、H是系統的可調參數,W(k)和V(k)分別表示過程噪聲和測量噪聲。假設它們是高斯白噪聲,對應的協方差分別是Q、R(假設Q和R)不隨系統狀態變化)。

利用系統的過程模型預測下一狀態的系統。假設現在的系統狀態是X(k),根據系統的模型,可以基于系統的上一狀態而預測出現在的狀態;

X(k|k-1)=A·X(k-1|k-1)+B·U(k)

(6)

式(6)中,X(k|k-1)是用上一狀態預測的結果,X(k-1|k-1)是上一狀態最優結果,U(k)為現在狀態的控制量。

用P表示協方差:

P(k|k-1)=A·P(k-1|k-1)·A′+Q(7)

式中,P(k|k-1)是X(k|k-1)對應的協方差,P(k-1|k-1)是X(k-1|k-1)對應的協方差,A′表示A的轉置矩陣,Q是系統過程的協方差。式(6)和式(7)也就是對系統的預測。

有了現在狀態的預測結果,結合現在狀態的測量值,可以得到現在狀態的最優化估算值X(k|k):

X(k|k)=X(k-1|k-1)+Kg(k)·

(Z(k)-H·X(k|k-1))

(8)

式中,Kg為卡爾曼增益,表示為

Kg(k)=P(k|k-1)·H′/(H·

P(k|k-1)·H′+R)

(9)

P(k|k)=(I-Kg(k)·H)·P(k|k-1) (10)

式中,I為單位矩陣,對于單模型單測量,I=1。當系統進入k+1狀態時,P(k|k)就是式子(7)中的P(k-1|k-1),這樣算法就可以自回歸的運算下去。

圖6中藍色線為直接采集轉換后的原始電容值時域曲線,紅色為卡爾曼濾波后的電容值對應曲線,卡爾曼濾波后,靜態電容變化平穩,為后續的數據處理提供了穩定的信號。

圖6 卡爾曼濾波前后的電容值

2.2 數據歸一化和BP神經網絡

2.2.1 數據歸一化

不同手勢對應的檢測電容大小不一樣,差異較大,為了減小后續神經網絡由于權值的跳變引起的精度誤差,需對卡爾曼濾波后電容值進行歸一化。本文采用最大-最小值歸一化。對于濾波后的電容值x,歸一化后為X,即

(11)

式中,xmin為卡爾曼濾波后作為訓練的樣本中最小值,xmax為卡爾曼濾波后作為訓練的樣本中最大值,歸一化后數據值在0~1區間。

2.2.2 BP神經網絡

BP神經網絡是一種按誤差逆向傳播算法進行網絡訓練的多層前饋型神經網絡,是一種有效的分類和識別工具[11]??梢詫κ謩葑兓鸬碾娙葑兓M行分類,設計使用的BP神經網絡結構見圖7。

圖7 BP神經網絡結構

BP神經網絡包括3層:輸入層、隱含層、輸出層。根據圖7,隱含層第i個節點的輸入neti表示為

(12)

隱含層第i個節點的輸出yi:

(13)

輸出層第k個節點的輸入netk:

(14)

輸出層第k個節點的輸出ok為

(15)

式(12)—式(15)中:Xj表示輸入層第j個節點的輸入,j=1,…,M;wij表示隱含層第i個節點到輸入層第j個節點之間的權值;φ(x)表示隱含層的激勵函數;wki表示輸出層第k個節點到隱含層第i個節點之間的權值,i=1,…,q;Ψ(x)表示輸出層的激勵函數;Ok表示輸出層第k個節點的輸出。

系統對p個訓練樣本的總誤差準則函數E[12]為:

(16)

輸出層權值的修正量Δwki,隱含層權值的修正量Δwij表示為:

(17)

wki·φ′(neti)·Xj

(18)

wki=A·wki+B·Δwki

(19)

wij=a·wij+b·Δwij

(20)

式中,A、B、a、b為權值調整系數。

應用中輸入層含2個神經元,隱含層為20個神經元,輸出層1個神經元。手指部分對應的3個通道累加后求平均值,再歸一化作為一個輸入神經元,手掌部檢測電容作為另外一個輸入神經元。在網絡訓練中,采集8種手勢(猜拳和劃拳)對應的電容值,每個手勢采集5次。對于8種手勢,采用編碼形式來區分,在訓練網絡中,石頭、剪刀、布、“1”“2”“3”“4”“5”手勢依次對應輸出數值為10、20、30、40、50、60、70、80,這樣就構成40組訓練樣本。網絡訓練流程見圖8,開始利用傳感器探頭和硬件電路結合卡爾曼濾波獲得手勢對應的電容值并進行歸一化處理,利用編碼規則對不同手勢進行輸出數值編碼;神經網絡參數初始化,包括訓練次數、學習精度、隱含層節點數、權值的初值、調整系數;計算隱含層和輸出層的輸入和輸出值;根據輸入樣本和對應的目標編碼值來計算誤差,并對訓練次數自增運算;網絡訓練過程中調整權值和閾值的規則是當訓練次數小于規定次數且網絡輸出相對誤差的絕對值大于某百分比,滿足規則則調整權值,否則網絡訓練結束,保存訓練好的權值。

圖8 BP神經網絡訓練流程圖

3 實驗測試及分析

利用EDA軟件繪制探頭的PCB版圖,利用熱轉印機及化學腐蝕方法獲得電容探頭單面板。為了減小線纜和連接寄生電容的影響,采用射頻連接線及同軸射頻接插件。整個硬件樣機固定在亞克力板上,跟主控單片機相連TFT屏背面帶有SD卡,用來存儲已經訓練過測試者的網絡參數信息,便于下次直接調用測試,無需再訓練網絡參數。擴展的另一塊TFT屏與第2個單片機相連,通過藍牙模塊通信,顯示判定的手勢結果,測試系統硬件見圖9。

圖9 測試系統硬件

訓練時,每個手勢緊貼在探頭上方的亞克力板上,利用按鍵輸入不同手勢的編碼值,每個手勢記錄5次作為訓練樣本。全部樣本輸入完成后開始網絡訓練,訓練好的網絡參數存入SD卡中。測試時,直接調用SD卡中的網絡參數。

3.1 網絡訓練時間

神經網絡在硬件上的運行速度影響手勢判定時間。STM32F103單片機主頻為72 MHz,電容傳感器每采集一次電容值,然后通過卡爾曼濾波方法得到平穩的電容值,每個手勢對應的目標輸出編碼通過按鍵輸入。訓練設定的相對誤差為目標值減去網絡輸出值的絕對值,此絕對值然后與目標值的比為相對誤差。wij和wki在網絡訓練中設置的初值一樣,利用rand()函數產生20個隨機數,并找出其中最大的數值,然后這些隨機數分別除以最大數值減1后的值,再依次分別賦給權值,權值變化量初始均為0。網絡權值調整系數A為0.2,B為0.4,a為0.2,b為0.3。

網絡訓練的判據相對誤差有1%、2%、5%、10%,同時約定訓練最大次數為200次、300次、500次,表1為對應條件下神經網絡訓練所需要的時間。在容許相對誤差為5%和10%時,少于200次調整權值可以滿足要求,網絡訓練時間少于30 s。當容許相對誤差為1%和2%時,由于權值調整系數的設置,容許調整的次數越多,需要的訓練時間越長,但均小于60 s,改變權值調整系數,對應網絡訓練時間會發生變化,合適的系數可以縮短訓練時間。

表1不同訓練精度和訓練次數下的網絡訓練時間s

相對誤差/%次數20030050012333472203139522222210191919

3.2 極板高度對手勢識別影響

對8種手勢,每個手勢20次,隨機順序測試同一測試者,表2給出了測試正確率。

表2 不同間距下的手勢識別精度 %

根據理想平板電容原理知,極板電容反比于間距大小。覆銅極板和亞克力板距離為1.1 cm,測試對應1根手指完全緊貼亞克力板帶來的電容是80 pF左右,內部等效電容為55 pF,極板間距越小,對應不同手勢電容區分度越大,誤判率越低。但極板間距過小時,手勢檢測電容越大,檢測靈敏度提高,抗干擾性降低,易產生誤判。

4 結論

本文通過設計和制造電容式傳感器探頭,結合電容數字轉換傳感器來敏感手勢變化電容,利用卡爾曼濾波和歸一化對電容數據進行處理,結合BP神經網絡實現了手勢識別硬件系統,在極板間距為1.1~1.5 cm范圍內,多次測試8種手勢正確識別率在95%以上,可作為手勢識別的一個參考方案。

致謝:感謝德州儀器 (TI) 公司對本實驗提供的免費傳感器芯片支持,本實驗設計獲得2018年江蘇省大學生電子設計競賽一等獎。

猜你喜歡
極板卡爾曼濾波手勢
基于深度強化學習與擴展卡爾曼濾波相結合的交通信號燈配時方法
扇區水泥膠結測井儀DTMX 和DTMN 響應異常典型案例分析
一種新型微球聚焦測量極板設計及應用*
挑戰!神秘手勢
鉛酸電池管式正極添加四堿式硫酸鉛晶種的研究
卡爾曼濾波在信號跟蹤系統伺服控制中的應用設計
V字手勢的由來
基于遞推更新卡爾曼濾波的磁偶極子目標跟蹤
勝利的手勢
基于有色噪聲的改進卡爾曼濾波方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合