王金虎 聂凯 刘黔璋
摘 要: 基于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.