王金虎 聶凱 劉黔璋



摘? 要: 基于BP神經網絡算法設計一種能夠實現對猜拳游戲和劃拳游戲成功判決的手勢識別裝置。該裝置具有訓練和判決兩種工作模式,對任意人員進行猜拳游戲和劃拳游戲的手勢訓練,經過有限次訓練后,生成深度BP神經網絡,進而在判決模式下實現對手勢識別的正確判定。該裝置由控制模塊、電容傳感器模塊、按鍵輸入模塊、顯示模塊以及探頭部分組成。經測試證明,該裝置具有成本低、響應時間短、正確率高的優點,擴展了手勢識別的應用范圍,具有良好的應用發展前景。
關鍵詞: 手勢識別; 神經網絡; 手勢訓練; 手勢判定; 電路設計; 模式測試
中圖分類號: 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? 引? 言
本文設計的手勢識別裝置是基于TI公司電容傳感芯片FDC2214設計制作而成,能夠實現對猜拳游戲和劃拳游戲的判決。該裝置具有訓練和判決兩種工作模式。猜拳游戲的判決是指對手勢比劃“石頭”“剪刀”“布”的判定,劃拳游戲的判定是指對手勢比劃“一”“二”“三”“四”“五”的判定。在訓練模式下能對任意人員進行猜拳游戲和劃拳游戲的手勢訓練,經過有限次訓練后,生成深度BP神經網絡[1],根據誤差信號修正每層的權重,進行更精確和準確的學習和檢測。經測驗,本裝置能進行正確的猜拳游戲和劃拳游戲的手勢判決。
1? 設計方案工作原理
1.1? 預期實現目標定位
本系統可實現對猜拳游戲和劃拳游戲的判決,并且在對任意人員進行有限次的手勢訓練后,能夠實現正確的猜拳游戲和劃拳游戲的手勢判決。
1.2? 技術方案分析比較
方案1:采用模糊控制。模糊控制器建立在專家經驗的基礎上,無需建立控制對象精確的數學模型,魯棒性高,但精確度有所降低[1]。
方案2:采用BP神經網絡算法。BP神經網絡是一種按誤差逆傳播算法訓練的多層前饋網絡,是目前應用最廣泛的神經網絡模型之一,能學習和存貯大量的輸入?輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程[2]。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網絡的權值和閾值,使網絡的誤差平方和最小[3]。
綜上所述,由于本系統需采用對手勢的訓練和學習,且對精度的要求較高,所以本文采用方案2——BP神經網絡算法。
1.3? 功能指標實現方法
訓練模式下,將FDC2214傳感器采集到的信息,通過卡爾曼濾波算法將數據處理,使得最終樣本數據穩定送入BP神經網絡進行學習和訓練。在按鍵程序中設定訓練模式與判決模式的切換,在判決模式下,根據采集的數據與相應學習訓練結果進行比對分析,最終完成對手勢的判定。
1.4? 測量控制分析處理
1.4.1? 卡爾曼濾波方法分析
卡爾曼濾波通過對未來預期值的分析與預測,能夠有效地減少系統噪聲對實際輸入數據的干擾,從而檢測出真實值[4]。在連續變化的系統中,卡爾曼濾波具有占用內存小、速度快的優點,適合應用于實時問題和嵌入式系統。
首先對觀測值、系統控制變量和噪聲進行建模:
[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時刻系統所在狀態;[z_t]是所謂觀測值;[u_t]是系統控制變量;[w_t],[v_t]都是噪聲。一個相對準確的系統值具有如下結構:
[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)
在此系統中,FDC2214輸出數據波動較大,噪聲干擾嚴重,通過在系統內部對FDC2214輸出值進行卡爾曼濾波,有效地減少了噪聲對真實值的干擾,使得讀入的電容數據更加趨于穩定。
1.4.2? BP神經網絡算法分析
BP神經網絡算法是利用輸出后的誤差來估計輸出層前一層的誤差,再用這層誤差來估計更前一層誤差,如此獲取所有各層誤差估計。這里的誤差估計可以理解為某種偏導數,根據這種偏導數來調整各層的連接權值,再用調整后的連接權值重新計算輸出誤差,多次進行調整,直到輸出的誤差達到符合的要求或者迭代次數溢出設定值[5]。神經網絡的學習主要蘊含在權重和閾值中, BP神經網絡算法即誤差逆傳播算法正是為學習多層前饋神經網絡而設計。
在此系統中,訓練模式下,將電容樣本值作為輸入值,將對應手勢作為輸出值,通過隱含層的計算分析,得出輸入與輸出之間的關系。判決模式下,根據手勢不同,輸入電容樣本值的變化,得出相應的手勢結果。
2? 核心部件電路設計
2.1? 主控模塊的論證與選擇
方案1:采用MSP430F169作為主控制模塊。MSP430F169單片機的功能較多,是16位單片機,超低功耗、精度高、資料全,豐富的外圍模塊簡化了系統的外圍電路。但運算速度稍顯不足,無法達到較高的精度。
方案2:采用STM32F103ZET6作為主控制模塊。STM32F103ZET6是一款性價比超高的單片機,基于專為要求高性能、低功耗的嵌入式應用專門設計的ARM Cortex?M3內核,存儲器內存相對較大,有多個定時器和通信接口,工作頻率高,運行速度快[6]。
綜上所述,由于系統中使用BP神經網絡算法,需要有較快的處理速度和較大的存儲器內存,選擇方案2——STM32F103ZET6作為主控制模塊。
2.2? 傳感器探頭的論證與選擇
方案1:采用整片單片銅板作為傳感器探頭,手勢變化時手的投影面積發生變化,根據測試者手與探頭之間的電容值的大小來判定手勢;但其精度低、誤差大、學習要求次數多,并極易受到外界干擾,會出現判斷失準的情況。
方案2:采用兩片銅板作為傳感器探頭,進行分塊檢測,進行綜合分析,從而來判定手勢;但對于檢測時測試者手的位置要求極高,進行輕微的移動會對結果造成較大影響,同時在學習時也要求從多角度分別進行記錄和學習,結果不穩定[7]。
方案3:采用立體二通道采集探頭,根據兩個通道的數據大小判斷投影面積,根據通道的不同判斷手指位置,對各個手勢的特征進行綜合性多角度的全面分析,確定邏輯關系,從而綜合判定手勢。此方法容錯率高,學習和訓練效率高,結果穩定,速度快。
綜上所述,由于對手勢的區分度、容錯率和學習訓練時間要求較高,結合題目對于FDC2214芯片數,探頭與手之間距離以及學習訓練時間的要求,選擇方案3——立體二通道采集探頭。
2.3? 顯示模塊的論證與選擇
方案1:采用LCD12864液晶顯示屏進行結果顯示。LCD12864液晶顯示屏的功耗低、體積小、重量輕,但性價比低,顯示信息量小,顏色單一,字體不清晰,無法滿足本設計對信息顯示的要求。
方案2:采用TFT顯示屏。TFT顯示屏顯示內容多,色彩豐富,響應速度快,顯示信息量更大,效果更好。
綜上所述,由于需要不斷地更新數據且方便,在此采用方案2——TFT顯示屏顯示結果和參數等信息。
2.4? FDC2214芯片分析以及電路設計
FDC2214是基于LC諧振電路原理的一個電容檢測傳感器。其基本原理如圖1所示。在芯片每個檢測通道的輸入端連接一個電感和電容,組成LC電路,被測電容傳感端與LC電路相連接,將產生一個振蕩頻率,根據該頻率值可計算出被測電容值[8]。
將傳感器探頭和被測手掌作為電容的兩個極板,根據電容計算公式
[C=εS4πkd] (8)
得:電容大小與極板之間的正對面積成正比,與極板間距離成反比。當控制極板之間距離不變時,手勢的不同會引起極板之間正對面積發生變化,從而改變其電容值。
3? 系統軟件設計分析
3.1? 系統總體工作流程
系統總體工作流程如圖2所示。測試區由傳感器探頭與透明有機玻璃板組成,探頭與有機玻璃板之間保持一定距離,測試時手掌緊貼在有機玻璃板上,在顯示區域顯示手勢判定結果。探頭用屏蔽線與FDC2214傳感器相連,以減少外界對結果的干擾。系統采用按鍵進行模式的切換以及數據記錄學習的確認,蜂鳴器用于訓練成功的確認[9]。
3.2? 主要模塊程序設計
圖3為本系統的程序流程圖。程序進行初始化后,通過按鍵進行模式的選擇。訓練模式下,通過數據的錄入進行BP神經網絡的生成。在判決模式下,系統根據生成的BP神經網絡對新錄入的數據進行神經網絡的匹配,最終做出判決。
3.3? 關鍵模塊程序
關鍵模塊程序如下:
Delay_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化延時函數
Key_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化按鍵
uart_init(9 600);? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//串口初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
//設置中斷優先級分組
TIM5_PWM_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化定時器5
LCD_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //初始化LCD
FDC2214_Init();? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化FDC2214
kalman1_ini()t;? ? ? ? ? ? ? ? ? ? ? ? //初始化卡爾曼濾波函數
initBPNetwork();? ? ? ? ? ? ? ? ? ? ? ? ? ?//初始化BP神經網絡
trainNetwork()? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//訓練BP神經網絡
4? 裝置成效總結分析
4.1? 裝置測試性能指標
傳感器探頭示意圖如圖4所示。
4.1.1? 猜拳訓練模式測試
用按鍵切換至猜拳訓練模式,引導測試人員進行手勢識別的訓練,使用按鍵控制輸入確定。在3種猜拳手勢訓練結束后,使用按鍵切換模式至猜拳判定模式,測試結果如表1所示。
4.1.2? 劃拳訓練模式測試
用按鍵切換至劃拳訓練模式,引導測試人員進行手勢識別的訓練,使用按鍵控制輸入確定。在5種猜拳手勢訓練結束后,使用按鍵切換模式至劃拳判定模式,測試結果如表2所示。
4.1.3? 猜拳判定模式測試
用按鍵切換至猜拳判定模式,分別對“石頭”“剪刀”“布”進行手勢識別測試,測試結果如表3所示。
4.1.4? 劃拳判定模式測試
用按鍵切換至劃拳判定模式,分別對“一”至“五”進行手勢識別測試,測試結果如表4所示。
4.2? 理論分析
對于傳感器樣本數據量大,且數據非線性的手勢識別系統,其處理難度較大。本文結合BP神經網絡算法對傳感器采集的數據進行學習處理。通過試驗結果表明,雖然BP神經網絡算法存在學習速度慢、樣本需求量大等問題,但對其隱含層參數進行調整后,具有較強的自學習能力、自適應能力和容錯能力[10]。
5? 結? 語
本文手勢識別裝置能夠實現對猜拳游戲和劃拳游戲的判決。該裝置具有訓練和判決兩種工作模式。在訓練模式下能對任意人員進行猜拳游戲和劃拳游戲的手勢訓練。經過有限次訓練后,生成深度BP神經網絡,根據誤差信號修正每層的權重,進行更精確和準確的學習和檢測。經測試結果證明,本裝置具有成本低、響應時間短、正確率高的優點,擴展了手勢識別的應用范圍,具有良好的應用發展前景。
參考文獻
[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] 姜亞東.卷積神經網絡的研究與應用[D].成都:電子科技大學,2018.
[3] 賈超.基于神經網絡的多模型自適應控制方法研究[D].北京:北京科技大學,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] 李旭然,丁曉紅.機器學習的五大類別及其主要算法綜述[J].軟件導刊,2019(7):4?9.
[6] 王宜懷.曹金華.嵌入式系統設計實踐[D].北京:北京航空航天大學,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手勢識別裝置的設計與實現[J].電子制作,2019(z1):12?14.
[10] 袁博,查晨東.手勢識別技術發展現狀與展望[J].科學技術創新,2018(32):95?96.