王金虎 聶凱 劉黔璋
摘? 要: 基于BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計一種能夠?qū)崿F(xiàn)對猜拳游戲和劃拳游戲成功判決的手勢識別裝置。該裝置具有訓(xùn)練和判決兩種工作模式,對任意人員進行猜拳游戲和劃拳游戲的手勢訓(xùn)練,經(jīng)過有限次訓(xùn)練后,生成深度BP神經(jīng)網(wǎng)絡(luò),進而在判決模式下實現(xiàn)對手勢識別的正確判定。該裝置由控制模塊、電容傳感器模塊、按鍵輸入模塊、顯示模塊以及探頭部分組成。經(jīng)測試證明,該裝置具有成本低、響應(yīng)時間短、正確率高的優(yōu)點,擴展了手勢識別的應(yīng)用范圍,具有良好的應(yīng)用發(fā)展前景。
關(guān)鍵詞: 手勢識別; 神經(jīng)網(wǎng)絡(luò); 手勢訓(xùn)練; 手勢判定; 電路設(shè)計; 模式測試
中圖分類號: TN915?34; TP212? ? ? ? ? ? ? ? ? ?文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)10?0141?04
A gesture recognition device based on neural network
WANG Jinhu1,2,3, NIE Kai2,3, LIU Qianzhang2,3
(1. Key Open Laboratory of Aerosol and Cloud Precipitation of China Meteorological Administration, Collaborative Innovation Center on Forecast and Evaluation of Meteorological Disasters, Nanjing University of Information Science & Technology, Nanjing 210044, China; 2. National Experimental Teaching Demonstration Center for Atmospheric Science and Environmental Meteorology, Nanjing University of Information Science & Technology, Nanjing 210044, China; 3. Jiangsu Key Laboratory of Meteorological Observation and Information, Nanjing University of Information Science & Technology, Nanjing 210044, China)
Abstract: A gesture recognition device based on BP neural network algorithm is designed, which can realize the gesture recognition device for the successful decision of finger?guessing game. The device has two working modes of training and judgment.? A deep BP neural network is generated after the limited times gesture training of finger?guessing game for any personnel, and then the correct judgment of gesture recognition is realized in the judgment mode. The device is composed of control module, capacitance sensor module, key input module, display module and probe part. The testing results show that the device has the advantages of low cost, short response time and high accuracy. It expands the application scope of gesture recognition and has good application prospects.
Keywords: gesture recognition; neural network; gesture training; gesture judging; circuit design; mode test
0? 引? 言
本文設(shè)計的手勢識別裝置是基于TI公司電容傳感芯片F(xiàn)DC2214設(shè)計制作而成,能夠?qū)崿F(xiàn)對猜拳游戲和劃拳游戲的判決。該裝置具有訓(xùn)練和判決兩種工作模式。猜拳游戲的判決是指對手勢比劃“石頭”“剪刀”“布”的判定,劃拳游戲的判定是指對手勢比劃“一”“二”“三”“四”“五”的判定。在訓(xùn)練模式下能對任意人員進行猜拳游戲和劃拳游戲的手勢訓(xùn)練,經(jīng)過有限次訓(xùn)練后,生成深度BP神經(jīng)網(wǎng)絡(luò)[1],根據(jù)誤差信號修正每層的權(quán)重,進行更精確和準確的學(xué)習(xí)和檢測。經(jīng)測驗,本裝置能進行正確的猜拳游戲和劃拳游戲的手勢判決。
1? 設(shè)計方案工作原理
1.1? 預(yù)期實現(xiàn)目標定位
本系統(tǒng)可實現(xiàn)對猜拳游戲和劃拳游戲的判決,并且在對任意人員進行有限次的手勢訓(xùn)練后,能夠?qū)崿F(xiàn)正確的猜拳游戲和劃拳游戲的手勢判決。
1.2? 技術(shù)方案分析比較
方案1:采用模糊控制。模糊控制器建立在專家經(jīng)驗的基礎(chǔ)上,無需建立控制對象精確的數(shù)學(xué)模型,魯棒性高,但精確度有所降低[1]。
方案2:采用BP神經(jīng)網(wǎng)絡(luò)算法。BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),是目前應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一,能學(xué)習(xí)和存貯大量的輸入?輸出模式映射關(guān)系,而無需事前揭示描述這種映射關(guān)系的數(shù)學(xué)方程[2]。它的學(xué)習(xí)規(guī)則是使用最速下降法,通過反向傳播來不斷調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值,使網(wǎng)絡(luò)的誤差平方和最小[3]。
綜上所述,由于本系統(tǒng)需采用對手勢的訓(xùn)練和學(xué)習(xí),且對精度的要求較高,所以本文采用方案2——BP神經(jīng)網(wǎng)絡(luò)算法。
1.3? 功能指標實現(xiàn)方法
訓(xùn)練模式下,將FDC2214傳感器采集到的信息,通過卡爾曼濾波算法將數(shù)據(jù)處理,使得最終樣本數(shù)據(jù)穩(wěn)定送入BP神經(jīng)網(wǎng)絡(luò)進行學(xué)習(xí)和訓(xùn)練。在按鍵程序中設(shè)定訓(xùn)練模式與判決模式的切換,在判決模式下,根據(jù)采集的數(shù)據(jù)與相應(yīng)學(xué)習(xí)訓(xùn)練結(jié)果進行比對分析,最終完成對手勢的判定。
1.4? 測量控制分析處理
1.4.1? 卡爾曼濾波方法分析
卡爾曼濾波通過對未來預(yù)期值的分析與預(yù)測,能夠有效地減少系統(tǒng)噪聲對實際輸入數(shù)據(jù)的干擾,從而檢測出真實值[4]。在連續(xù)變化的系統(tǒng)中,卡爾曼濾波具有占用內(nèi)存小、速度快的優(yōu)點,適合應(yīng)用于實時問題和嵌入式系統(tǒng)。
首先對觀測值、系統(tǒng)控制變量和噪聲進行建模:
[z_t=H*x_t+v_t] (1)
[x_t=A*x_t-1+B*u_t-1+w_t-1] (2)
式中:[x_t]是t時刻系統(tǒng)所在狀態(tài);[z_t]是所謂觀測值;[u_t]是系統(tǒng)控制變量;[w_t],[v_t]都是噪聲。一個相對準確的系統(tǒng)值具有如下結(jié)構(gòu):
[x&_t=x&-_t+Kz_t-H*x_t-1] (3)
式中:“&”表示估計值;“_”表示用前面式子算出來的估計值。解得K為:
[K=P-_t*HT*(H*P-_t*HT+R)(-1)] (4)
給出迭代的公式:
[x-_t=A*x&_(t-1)+B*(t-1)] (5)
[P-_t=A*P(t-1)*AT+Q] (6)
[P_t=I-K_t*HP-_t-1] (7)
在此系統(tǒng)中,F(xiàn)DC2214輸出數(shù)據(jù)波動較大,噪聲干擾嚴重,通過在系統(tǒng)內(nèi)部對FDC2214輸出值進行卡爾曼濾波,有效地減少了噪聲對真實值的干擾,使得讀入的電容數(shù)據(jù)更加趨于穩(wěn)定。
1.4.2? BP神經(jīng)網(wǎng)絡(luò)算法分析
BP神經(jīng)網(wǎng)絡(luò)算法是利用輸出后的誤差來估計輸出層前一層的誤差,再用這層誤差來估計更前一層誤差,如此獲取所有各層誤差估計。這里的誤差估計可以理解為某種偏導(dǎo)數(shù),根據(jù)這種偏導(dǎo)數(shù)來調(diào)整各層的連接權(quán)值,再用調(diào)整后的連接權(quán)值重新計算輸出誤差,多次進行調(diào)整,直到輸出的誤差達到符合的要求或者迭代次數(shù)溢出設(shè)定值[5]。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)主要蘊含在權(quán)重和閾值中, BP神經(jīng)網(wǎng)絡(luò)算法即誤差逆?zhèn)鞑ニ惴ㄕ菫閷W(xué)習(xí)多層前饋神經(jīng)網(wǎng)絡(luò)而設(shè)計。
在此系統(tǒng)中,訓(xùn)練模式下,將電容樣本值作為輸入值,將對應(yīng)手勢作為輸出值,通過隱含層的計算分析,得出輸入與輸出之間的關(guān)系。判決模式下,根據(jù)手勢不同,輸入電容樣本值的變化,得出相應(yīng)的手勢結(jié)果。
2? 核心部件電路設(shè)計
2.1? 主控模塊的論證與選擇
方案1:采用MSP430F169作為主控制模塊。MSP430F169單片機的功能較多,是16位單片機,超低功耗、精度高、資料全,豐富的外圍模塊簡化了系統(tǒng)的外圍電路。但運算速度稍顯不足,無法達到較高的精度。
方案2:采用STM32F103ZET6作為主控制模塊。STM32F103ZET6是一款性價比超高的單片機,基于專為要求高性能、低功耗的嵌入式應(yīng)用專門設(shè)計的ARM Cortex?M3內(nèi)核,存儲器內(nèi)存相對較大,有多個定時器和通信接口,工作頻率高,運行速度快[6]。
綜上所述,由于系統(tǒng)中使用BP神經(jīng)網(wǎng)絡(luò)算法,需要有較快的處理速度和較大的存儲器內(nèi)存,選擇方案2——STM32F103ZET6作為主控制模塊。
2.2? 傳感器探頭的論證與選擇
方案1:采用整片單片銅板作為傳感器探頭,手勢變化時手的投影面積發(fā)生變化,根據(jù)測試者手與探頭之間的電容值的大小來判定手勢;但其精度低、誤差大、學(xué)習(xí)要求次數(shù)多,并極易受到外界干擾,會出現(xiàn)判斷失準的情況。
方案2:采用兩片銅板作為傳感器探頭,進行分塊檢測,進行綜合分析,從而來判定手勢;但對于檢測時測試者手的位置要求極高,進行輕微的移動會對結(jié)果造成較大影響,同時在學(xué)習(xí)時也要求從多角度分別進行記錄和學(xué)習(xí),結(jié)果不穩(wěn)定[7]。
方案3:采用立體二通道采集探頭,根據(jù)兩個通道的數(shù)據(jù)大小判斷投影面積,根據(jù)通道的不同判斷手指位置,對各個手勢的特征進行綜合性多角度的全面分析,確定邏輯關(guān)系,從而綜合判定手勢。此方法容錯率高,學(xué)習(xí)和訓(xùn)練效率高,結(jié)果穩(wěn)定,速度快。
綜上所述,由于對手勢的區(qū)分度、容錯率和學(xué)習(xí)訓(xùn)練時間要求較高,結(jié)合題目對于FDC2214芯片數(shù),探頭與手之間距離以及學(xué)習(xí)訓(xùn)練時間的要求,選擇方案3——立體二通道采集探頭。
2.3? 顯示模塊的論證與選擇
方案1:采用LCD12864液晶顯示屏進行結(jié)果顯示。LCD12864液晶顯示屏的功耗低、體積小、重量輕,但性價比低,顯示信息量小,顏色單一,字體不清晰,無法滿足本設(shè)計對信息顯示的要求。
方案2:采用TFT顯示屏。TFT顯示屏顯示內(nèi)容多,色彩豐富,響應(yīng)速度快,顯示信息量更大,效果更好。
綜上所述,由于需要不斷地更新數(shù)據(jù)且方便,在此采用方案2——TFT顯示屏顯示結(jié)果和參數(shù)等信息。
2.4? FDC2214芯片分析以及電路設(shè)計
FDC2214是基于LC諧振電路原理的一個電容檢測傳感器。其基本原理如圖1所示。在芯片每個檢測通道的輸入端連接一個電感和電容,組成LC電路,被測電容傳感端與LC電路相連接,將產(chǎn)生一個振蕩頻率,根據(jù)該頻率值可計算出被測電容值[8]。
將傳感器探頭和被測手掌作為電容的兩個極板,根據(jù)電容計算公式
[C=εS4πkd] (8)
得:電容大小與極板之間的正對面積成正比,與極板間距離成反比。當控制極板之間距離不變時,手勢的不同會引起極板之間正對面積發(fā)生變化,從而改變其電容值。
3? 系統(tǒng)軟件設(shè)計分析
3.1? 系統(tǒng)總體工作流程
系統(tǒng)總體工作流程如圖2所示。測試區(qū)由傳感器探頭與透明有機玻璃板組成,探頭與有機玻璃板之間保持一定距離,測試時手掌緊貼在有機玻璃板上,在顯示區(qū)域顯示手勢判定結(jié)果。探頭用屏蔽線與FDC2214傳感器相連,以減少外界對結(jié)果的干擾。系統(tǒng)采用按鍵進行模式的切換以及數(shù)據(jù)記錄學(xué)習(xí)的確認,蜂鳴器用于訓(xùn)練成功的確認[9]。
3.2? 主要模塊程序設(shè)計
圖3為本系統(tǒng)的程序流程圖。程序進行初始化后,通過按鍵進行模式的選擇。訓(xùn)練模式下,通過數(shù)據(jù)的錄入進行BP神經(jīng)網(wǎng)絡(luò)的生成。在判決模式下,系統(tǒng)根據(jù)生成的BP神經(jīng)網(wǎng)絡(luò)對新錄入的數(shù)據(jù)進行神經(jīng)網(wǎng)絡(luò)的匹配,最終做出判決。
3.3? 關(guān)鍵模塊程序
關(guān)鍵模塊程序如下:
Delay_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化延時函數(shù)
Key_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化按鍵
uart_init(9 600);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//串口初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//設(shè)置中斷優(yōu)先級分組
TIM5_PWM_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化定時器5
LCD_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化LCD
FDC2214_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化FDC2214
kalman1_ini()t;? ? ? ? ? ? ? ? ? ? ? ? //初始化卡爾曼濾波函數(shù)
initBPNetwork();? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化BP神經(jīng)網(wǎng)絡(luò)
trainNetwork()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)
4? 裝置成效總結(jié)分析
4.1? 裝置測試性能指標
傳感器探頭示意圖如圖4所示。
4.1.1? 猜拳訓(xùn)練模式測試
用按鍵切換至猜拳訓(xùn)練模式,引導(dǎo)測試人員進行手勢識別的訓(xùn)練,使用按鍵控制輸入確定。在3種猜拳手勢訓(xùn)練結(jié)束后,使用按鍵切換模式至猜拳判定模式,測試結(jié)果如表1所示。
4.1.2? 劃拳訓(xùn)練模式測試
用按鍵切換至劃拳訓(xùn)練模式,引導(dǎo)測試人員進行手勢識別的訓(xùn)練,使用按鍵控制輸入確定。在5種猜拳手勢訓(xùn)練結(jié)束后,使用按鍵切換模式至劃拳判定模式,測試結(jié)果如表2所示。
4.1.3? 猜拳判定模式測試
用按鍵切換至猜拳判定模式,分別對“石頭”“剪刀”“布”進行手勢識別測試,測試結(jié)果如表3所示。
4.1.4? 劃拳判定模式測試
用按鍵切換至劃拳判定模式,分別對“一”至“五”進行手勢識別測試,測試結(jié)果如表4所示。
4.2? 理論分析
對于傳感器樣本數(shù)據(jù)量大,且數(shù)據(jù)非線性的手勢識別系統(tǒng),其處理難度較大。本文結(jié)合BP神經(jīng)網(wǎng)絡(luò)算法對傳感器采集的數(shù)據(jù)進行學(xué)習(xí)處理。通過試驗結(jié)果表明,雖然BP神經(jīng)網(wǎng)絡(luò)算法存在學(xué)習(xí)速度慢、樣本需求量大等問題,但對其隱含層參數(shù)進行調(diào)整后,具有較強的自學(xué)習(xí)能力、自適應(yīng)能力和容錯能力[10]。
5? 結(jié)? 語
本文手勢識別裝置能夠?qū)崿F(xiàn)對猜拳游戲和劃拳游戲的判決。該裝置具有訓(xùn)練和判決兩種工作模式。在訓(xùn)練模式下能對任意人員進行猜拳游戲和劃拳游戲的手勢訓(xùn)練。經(jīng)過有限次訓(xùn)練后,生成深度BP神經(jīng)網(wǎng)絡(luò),根據(jù)誤差信號修正每層的權(quán)重,進行更精確和準確的學(xué)習(xí)和檢測。經(jīng)測試結(jié)果證明,本裝置具有成本低、響應(yīng)時間短、正確率高的優(yōu)點,擴展了手勢識別的應(yīng)用范圍,具有良好的應(yīng)用發(fā)展前景。
參考文獻
[1] HAN Xiaojing, MA Yuechao. Finite?time extended dissipative control for fuzzy systems with nonlinear perturbations via sampled?data and quantized controller [J]. ISA transactions, 2019, 89: 21?27.
[2] 姜亞東.卷積神經(jīng)網(wǎng)絡(luò)的研究與應(yīng)用[D].成都:電子科技大學(xué),2018.
[3] 賈超.基于神經(jīng)網(wǎng)絡(luò)的多模型自適應(yīng)控制方法研究[D].北京:北京科技大學(xué),2017.
[4] JIANG Hailong, LIU Gonghui, LI Jun, et al. An innovative diagnosis method for lost circulation with unscented Kalman filter [J]. Journal of petroleum science & engineering, 2018, 166: 731?738.
[5] 李旭然,丁曉紅.機器學(xué)習(xí)的五大類別及其主要算法綜述[J].軟件導(dǎo)刊,2019(7):4?9.
[6] 王宜懷.曹金華.嵌入式系統(tǒng)設(shè)計實踐[D].北京:北京航空航天大學(xué),2011.
[7] KAMBALI P N, PANDEY A K. Capacitance and force computation due to direct and fringing effects in MEMS/NEMS arrays [J]. IEEE sensors journal, 2016, 16(2): 375?382.
[8] 匿名.抗噪聲電容感測系列[J].今日電子,2015(12):63?64.
[9] 周孟強,劉會衡.基于FDC2214手勢識別裝置的設(shè)計與實現(xiàn)[J].電子制作,2019(z1):12?14.
[10] 袁博,查晨東.手勢識別技術(shù)發(fā)展現(xiàn)狀與展望[J].科學(xué)技術(shù)創(chuàng)新,2018(32):95?96.