基于FDC2214芯片的手势识别系统设计
2019-11-06杨世伟王泽鹏陈锦钰
杨世伟 王泽鹏 陈锦钰
摘 要:文中设计了一种基于FDC2214芯片的手势识别系统。在芯片的外接极板上方摆放不同手型会影响极板外界环境从而影响频率值,FDC2214芯片将接收到的频率值转变为电容信号以I2C通信方式发送至STM32单片机,单片机通过比对录入手势与测试手势数据差异,可实现对剪刀、石頭、布以及1~5的精确识别。实验测试表明:在指定极板间距下,系统对任意测试者的猜拳和划拳手势识别正确率超过91.6%,识别响应时间小于1 s,新测试者的手势特征训练时间小于1 min。文中设计的手势识别系统解决了当今手势识别领域普遍存在的成本高昂、技术复杂等问题,可在大众化消费应用中普及。
关键词:手势识别;FDC2214芯片;STM 32单片机;覆铜板;电容传感器;操作器
中图分类号:TP39;TN702文献标识码:A文章编号:2095-1302(2019)09-00-04
0 引 言
手势识别技术是当今人机交互领域的一项关键技术,这项技术涉及范围广泛,如模式识别、智能分析、三维图像处理、计算机视觉等。使用手势识别方便人们与机器通信,且无需任何机械设备即可自然交互,使得常规输入设备如鼠标、键盘甚至触摸屏变得冗余。
目前,手势识别流程基本可划分为图像获取、手势检测和分割、手势分析、手势识别四部分,其核心技术大致分为手势分割、手势分析和手势识别等。当前手势识别的实现需要特别的硬件和较为复杂的算法得以支持,且造价高昂。
基于此,本文设计了以FDC2214芯片为核心的手势识别系统,解决了当今手势识别领域普遍存在的成本高昂、技术复杂等问题,可在大众化消费应用中普及。其应用范围广阔,无论是智能家居、智能可穿戴或VR等应用领域,若增加手势识别控制功能,就可极大程度优化人与机器间的通信交流。
1 功能与结构
手势识别系统的构造主要包括传感器芯片(FDC2214)及外接极板、系统控制模块(STM32单片机)、显示模块以及电源模块等。
识别操作前需对系统进行训练,单片机将各手势对应的数值保存作为比对参考量。进行识别时,因不同手势的覆盖面积不同,会不同程度地影响测试区外接极板的外部环境,使得外部极板接收到不同的频率值,FDC2214传感器芯片可将频率值转换为等效电容值经I2C通信形式传递至STM32单片机,之后单片机通过比对识别操作和训练操作的数值进行准确的手势判断,并在显示模块显示。电源模块为系统供电,维持系统的正常工作[1-3]。系统模块如图1所示。
2 硬件电路
2.1 FDC2214
FDC2214芯片是由德州仪器(TI)推出的一款高分辨率多通道电容感测集成电路产品,其不受来自无线电、电源、光照和电机等环境噪声的影响。与现有电容感测解决方案相比,在噪声出现时,FDC2214系列的性能提升约60倍,在任何环境下均可实现基于低成本电容方式的人体和物体感测。且FDC2214将电容感测的优点引入到之前依赖其他感测技术的应用中,使其具有更好的外观、更低的系统成本和更可靠的解决方案,适用于汽车、消费类和工业应用。系统电路如图2所示,芯片如图3所示。
本文所设计的手势识别系统,芯片接收引脚可与外接极板相连,极大程度上扩大接收信号的面积,且极板能根据不同要求制作成不同形状,以增强准确性。当其上方有人或者物体接近时,该极板接收到的频率值改变,经由芯片转换的等效电容值(数量级可达百万)也随机发生变化。经实验测得:当距离约为1 cm、覆盖面积约为5 cm2(大致等于最小手指覆盖面积)时其变化量近十万。
同时,系统支持高速率传输,经试验验证:当波特率设为921 600时传输速率可达每秒约120组数据,从而在极短时间内测出相应手势,并保证较高准确率。
2.2 STM32F1单片机
STM32F1系列属于中低端32bARM微控制器,该系列芯片由意法半导体(ST)公司出品,其内核为Cortex-M3处理器。该系列芯片有多达9个通信接口,3个USART接口,低功耗、性能稳定,工作的温度范围为-40~105 ℃。
STM32单片机的GPIOC11引脚与FDC2214芯片的SDA相连,用以发送与接收数据;GPIOC12引脚与芯片的SCL相连,定义该口的模式为复用功能的推挽输出。
2.3 显示模块
LCD1602液晶显示屏与单片机连接,由于本设计模式简单、显示文字少,故采用1602液晶屏,可最大程度减少系统体积,同时1602相对于12864或TFT彩屏耗电更低,更加节约能源。
3 软件设计思想
3.1 核心算法
根据硬件平台及所测数据,综合考虑后,采用求平均差值匹配的方法进行数据分析。
平均差是所有单位与其算术平均数离差绝对值的算术平均数。离差是总体各单位的标志值与算术平均数之差。因离差和为零,离差的平均数不能将离差和除以离差的个数求得,而必须将离差取绝对数来消除正负号。平均差是反映各标志值与算术平均数之间的平均差异。平均差越大,表明各标志值与算术平均数的差异程度越大,该算术平均数的代表性就越小;平均差越小,表明各标志值与算术平均数的差异程度越小,该算术平均数的代表性就越大。
3.2 功能描述
本系统软件部分主要实现数据的分析、按键设置和显示。系统设有四个按键,可进行模式选择。按压“录入手势”按键后单片机执行录入手势的程序并保存数值;按压“判决”按键后单片机执行数据分析程序以判决当前手势,并通过LCD1062液晶显示屏输出当前所选择的模式和判决结果,完成识别。
3.3 程序设计思路
主程序设有猜拳训练、划拳训练、猜拳判定和划拳判定四个模式。通过按键键值的调节可以控制模式转换。在硬件设计中,我们考虑到手掌的生理构造及普遍的摆放习惯,将芯片通道通过引线连接到不同位置、不同大小、不同形状的极板,并测试出最准确、最稳定的模式。即将IN0,IN1,IN2三个监测通道分别对应手掌、大拇指及其余四根手指的位置,可通过分段数据分析逐步判断是否有手掌、是否伸出大拇指以及其余四根手指伸出几根。通过伸出手指的根数实现判断当前手势的功能。程序设计流程如图4所示。
4 算法的程序实现
4.1 录入阶段
系统需要录入一次空值作为基础初值,该值是对当下环境的实时描述。因为FDC2214芯片对环境变化较为敏感、分辨率较高,因此在不同环境下各通道外接极板的数据接收值会存在較大差异,导致简单常数通常无法精准表示实时的环境状况。而通过初值录入,可在最大程度上避免此类误差的出现。
训练阶段,芯片三通道引出的对应外接极板可监测到因手型差异而引起的环境变化。单片机将获得的近百组数据进行求均值计算并存放,所求得的值即该手型的特征数据描述,可作为后期判定模式下数据比对的基础。
4.2 判定阶段
识别系统处于训练阶段时,由系统直接测量一组数据,并求平均值记为B。将同一手势几次测得的数据取平均值。1~5五种手势可分别得到通道3的平均值Fre1,Fre2,Fre3,Fre4,Fre5。将这5组平均值分别与B作差,得到的结果记为ave12,ave22,ave32,ave42,ave52。这组数据同时代表在除大拇指外的四指中,有一根手指伸出时,数据变化均值为ave12;有两根手指伸出时,数据变化均值为ave22,依次类推。
4.3 判决阶段
在判决阶段,对于通道3,将当前手势测得的数据平均值记为m2。令变量m02=m2-B。判断m02与ave12,ave22,ave32,ave42,ave52的近似程度,若与ave12最接近,则判断当前在除大拇指外的四指中,只有一根手指伸出;若与ave22最接近,则有两根手指伸出。依次类推,则可以得出在除大拇指外的四指中伸出的手指数量。判决流程如图5所示。
5 设计过程
5.1 材料选用
通过serialplot软件对用锡箔纸做传感平面和用铜片做传感平面的两种方式进行比较,发现若设计方案相同,铜片的效果相较锡箔纸更加明显,所以选择铜片做传感平面。
5.2 传感平面面积选择
通过serialplot软件对不同大小的传感平面进行比较,发现面积较大的平面,测试者的每个手势数据差别较大,有利于识别,同时测试距离较长,但噪声(稳定期间内波动幅度)较大。采用小型铜片做传感平面,测试噪声较小,但距离限制增加。最终决定选用15 cm×20 cm的铜板。
5.3 形状选用
本文对四种不同的方案进行了比较。首先第一种方案为单块铜板,波形较明显;第二种方案为四通道的波浪形铜板,波形变化幅度可明显观测,但是干扰较大;第三种方案为四通道12×12的正方形矩阵,设计难度较大,波形变化幅度较小;第四种方案为三通道区域形,即手掌划分一片区域,四手指划分一片区域,大拇指划分一片区域,此方案相较于前三种方案波形变化明显且设计简单,故选择第四种方案。
5.4 结论
选择三通道区域形15 cm×20 cm的铜片作为最终使用传感平面。
6 实验结果
首先对某一位测试者进行训练,每种手势训练3次,当训练结束后对其放置的手势进行判决,实验结果显示,对于1~5以及石头、剪刀、布的判读不超过1 s,且在100次的测试中,错误率小于8.4%。系统实物如图6所示。
7 结 语
本文基于STM32单片机和FDC2214芯片设计了一款手势识别装置,可实现对剪刀、石头、布以及1~5的精确识别,解决了当今手势识别领域普遍存在的成本高昂、技术复杂等问题,可在大众化消费应用中普及。
参 考 文 献
[1]戴蓉,刘波峰.传感器原理与工程应用[M].北京:电子工业出版社,2014:1-5.
[2]顾立忠.基于表达的手势识别及人机交互研究[D].上海:上海交通大学,2008:45-67.
[3]覃文军.基于视觉信息的手势识别跟踪算法与模型研究[D].沈阳:东北大学,2010:13-41.
[4]杜堃,谭台哲.复杂环境下通用的手势识别方法[J].计算机应用,2016,36(7):1965-1970.
[5]吕蕾,张金玲,朱英杰,等.一种基于数据手套的静态手势识别方法[J].计算机辅助设计与图形学学报,2015,27(12):2410-2418.
[6]曹莹,苗启广,刘家辰,等.Ada Boost算法研究进展与展望[J].自动化学报,2013,39(6):745-758.
[7]张洪明,赵德斌,高文.基于肤色模型、神经网络和人脸结构模型的平面旋转人脸检测[J].计算机学报,2002,25(11):1250-1256.
[8]王茂吉.基于视觉的静态手势识别系统[D].哈尔滨:哈尔滨工业大学,2006.
[9]蔡娟,蔡坚勇,廖晓东,等.基于卷积神经网络的手势识别初探[J].计算机系统应用,2015,24(4):113-117.
[10]李腾.基于视角手势识别的车载音乐系统控制[D].天津:天津工业大学,2017.
[11]赫文强,艾矫燕,赫银峰.动态手势识别及在PPT播放当中的应用研究[J].自动化技术与应用,2014,33(2):59-63.
[12]张墨逸,张秋宇,芦俊池,等.移动单目相机下基于单应的动态手势轨迹识别[J].华中科技大学学报 (自然科学版),2016,44(5):7-12.
[13]刘怡明,王伟明,张雯薏.非接触式手势识别智能控制器设计[J].电子测试,2018(24):13-15.