基于LabVIEW与MATLAB混合编程的手势识别系统
2017-04-25刘婷薇朱蓉蓉姜昊辰
徐 峰,刘婷薇,李 平,朱蓉蓉,姜昊辰
(吉林大学 通信工程学院,吉林 长春 130012)
基于LabVIEW与MATLAB混合编程的手势识别系统
徐 峰,刘婷薇,李 平,朱蓉蓉,姜昊辰
(吉林大学 通信工程学院,吉林 长春 130012)
本文针对传统手势识别系统难以应用于医疗领域的不足,基于LabVIEW与MATLAB的混合编程,设计了一种基于肌电信号的识别手势系统。对手势识别系统设计中的关键问题进行了探讨。利用医用电极片对肌电信号进行采集,经硬件电路放大滤波等预处理后通过高速采集卡送入电脑。将LabVIEW与Matlab相结合,提取和分析不同手势的时频特征分量,并进行归一化处理后,建立训练集,根据KNN算法设计并实现基于肌电信号的手势识别系统。该系统能够达到较高的识别准确率。
LaBVIEW;MATLAB节点;肌电信号;手势识别;KNN
20世纪60年代以来,随着微型计算机技术和新的电子技术的不断发展,手势识别作为一种应用十分广泛的人机交互技术也取得了很大的进步。目前手势识别领域研究较成熟的装置主要为视频捕捉型[1],这种类型已商用于娱乐设备及智能家居方面,但其识别准确度不高,不易识别三维空间的动作,且很少能应用于医疗或残疾人辅助设施上。针对这一现象,笔者将手势识别与人体自身产生的肌电信号相结合,来实现基于肌电信[2]的手势识别系统,这种系统由人体动作源头出发,可以较精确的识别出人体的动作手势。而且,人体的动作是由肌电信号所诱发的,因此,通过对肌电信号规律的探讨,可以将肌电信号手势识别系统应用至残疾人的辅助假肢设备。
采集肌电信号共分为插入式和贴片式两种,插入式采集虽然能采集到更稳定的肌电信号但会对使用者造成一定的伤害。因此,笔者将表面肌电信号(sEMG,surface electromyogram)与手势识别技术相结合,用医用电极片采集肌肉表面肌电信号,并基于LabVIEW和MATLAB混合编程,设计并实现人体手势识别系统,这种模式提高了手势识别的方便性及安全性,且考虑到了手势识别技术在临床医学、康复治疗方面的应用前景。研究成果可以扩展应用至残疾人的肌电假肢、聋哑人的手语翻译器、智能家居等方面,应用前景十分广泛。
1 手势识别系统的设计
手势识别系统的设计框图如图1所示。该系统总体功能分为采集部分、硬件处理部分以及软件识别部分。采集部分主要利用医用扣式电极片对人体做手势时的肌电信号进行采集。然后将采集到的肌电信号通过医用电极线送入硬件处理电路。硬件处理电路主要对采集的信号进行滤波放大的预处理。经过处理之后再将信号通过采集卡的模数转换送入电脑,在电脑中利用labVIEW软件对信号进行50 Hz工频滤波以及小波去噪,并提取出不同手势的肌电信号特征分量。再采用线性函数将特征分量归一化后,最终利用基于最小欧氏距离原理的K最近邻(KNN,K-NearestNeighbor)分类算法建立特征空间,并对不同手势信号进行分类,从而实现对当前人体手势进行实时识别。
图1 系统总框图
1.1 肌电信号采集部分
人体肌电信号属于复杂的生物电信号,频率一般在10~300 Hz之间,幅度在1~5 mV之间,比较微弱。它是在人体将要做出动作前,由人体的神经元发出并送至神经末梢引发肌肉的收缩,从而实现相应动作。因此只要人体的肌肉收缩,做出动作,电极片就可以在合适的位置采集到相应的肌电信号。本系统使用三组电极片来采集肌电信号。其中将两组电极片分别放置于前臂的指伸肌和桡侧腕长伸肌肉的不同位置以采集肌电电势差作为输入信号,经查询相关资料,得知这两块人体肌肉主要负责人体手部动作。另一组电极片放置在无肌肉的地方作为参考点。详细的肌肉采集点如图2所示。本系统的采集线采用了终端为三环耳机插头的电极线,并在硬件电路中焊接配套三环耳机插孔,这种方式利用了三环耳机左声道、右声道、参考点的原理,将电信号通过电极线的左右声道传至电路,作为信号输入。而且这种方式的采集端插头插孔能够紧密贴合,可以保持采集线的稳定,避免了因电极线的晃动而对肌电信号产生的干扰。
图2 肌肉采集部位
1.2 硬件电路设计
肌电信号经采集后不仅微弱不稳定,而且伴有有较大的噪声和干扰,因此需要对提取的信号进行放大,滤波,隔离等处理[3]。系统硬件电路整体框架的设计如图3所示。电路选取高精度仪表放大器AD620作为差分放大部分[4],该部分可以抑制零点漂移及噪声干扰。肌电信号通过差分放大电路的去噪后,再通过截止频率为300 Hz的低通滤波器将高频干扰分量除去,从而获得有效的肌电信号。为了更好地观察处理肌电信号,本系统用基于LM358的放大电路将其进行二次放大以便获取伏量级的电信号。此外,笔者还设计了截止频率为20 Hz的高通滤波电路,来减少测量过程中由皮肤和电极之间移动的伪差产生的低频干扰。最后添加入了光耦隔离电路部分,有效地防止了因有电的连接而引起的干扰,且保护了前端的硬件电路。经过以上硬件部分的处理,我们即可获取质量较高的有效肌电信号,为后期的处理和识别提供了基础。
图3 硬件处理整体结构框图
1.3 软件总体设计
LabVIEW是基于图形化编程语言(G语言)的开发环境,是由美国国家仪器(NI,National Instruments)公司研制开发。内含功能强大的函数库,而且提供很多外观与传统仪器的控件,可使用户更方便的创建用户界面。不仅如此,LabVIEW还含有DAQ助手控件,用户在软件程序面板中加入该控件后就可以直接从NI采集卡中获取输出的信号,无需进行接口联调,方便实用。因此,我们利用LabVIEW的强大功能设计了实时手势识别系统[5]。
采集到的肌电信号通过前期硬件预处理后,需要将其传至电脑端进行进一步的处理及算法识别。本系统采用了NI公司出品的USB-6008采集卡,该采集卡能在很短的时间内对数据进行基本的采集测量,能够满足本系统对实时识别的要求。肌电信号经过采集卡的A/D转换后经USB口传入电脑,在PC端可利用NI公司出品的LabVIEW软件,调用软件自带的DAQ助手[6],即可从采集卡中实时获取采集的信号,在DAQ助手后端添加处理控件,即可对其进行信号处理。LabVIEW软件不仅可以实现实时采集处理,还能够在软件程序面板中添加MATLAB节点,将MATLAB强大的计算功能应用至LabVIEW,实现LabVIEW与MATLAB的混合编程。笔者将LabVIEW与MATLAB的结合应用于本识别系统,可以实时有效地采集肌电信号并提取出肌电信号特征值,根据得到的特征量编写识别算法,能够较为准确地识别出人体的不同动作手势[7]。
1.4 50 Hz工频去噪
频率为50 Hz的市电电压,会以电磁波的形式对外辐射,此现象将对外界的电子设备造成干扰。肌电信号微弱且不稳定,更易被工频信号所影响。所以识别系统需要去除这一干扰对肌电信号造成的影响,并尽量保留附近频段的有效信息。考虑到以上原因,本系统在LabVIEW平台提供的控制程序框图中调用MATLAB节点,编写陷波器程序,能够基本滤除采集到的肌电信号中50 Hz工频的干扰。
1.5 小波去噪
近年来,小波变换的理论得到了非常迅速的发展。它拥有良好的时频特性,适合应用于sEMG等非稳定信号的分析。小波变换的原理思想与短时傅里叶变换(STFT,short-time Fourier transform)局部化的思想相类似,但是不同的是它能够为非稳定信号提供一个随着频率而变化的时频窗口。小波变换通过伸缩平移运算对信号进行多尺度细化,将信号高频部分时间细分,低频部分频率细分,自适应的对信号进行分析,能够提取信号的细节信息。基于小波变换这样的特点,将其应用至信号去噪的方面,小波去噪实质上类似于对信号进行滤波,它既可以滤去信号的高频干扰信号,还可以成功的保留有效信号的特征,即能抑制信号的无用部分,且可恢复信号的有用部分[8]。这种去噪方式也因此广泛应用于图像、声音等信号的处理。
本系统采用了给定阈值去噪处理的方法,并选取半软阈值函数。这种方法可以获取较为准确的阈值[6]且可以兼顾硬阈值与软阈值的优点[9]。其表达式如下:
其中,0 经过以上小波去噪的处理,采集到的信号,有用分量将强,其中的波形中覆盖的噪声和毛刺减少,提高了信号的有效性。 2.1 系统界面的实现 笔者在LabVIEW实验平台中设计并实现了手势识别系统,系统界面如图4所示。该界面可显示当前采集到的肌电信号滤前滤后的时域、频域波形和部分特征值,且可以显示出本系统对采集到的肌电信号类别的判断识别。 图4 识别系统界面 2.2 LabVIEW调用Matlab节点 Matlab具有强大的数值分析能力,我们在LabVIEW中调用MATLAB节点[10],利用MATLAB对肌电信号的特征分量进行算法编程,以实现手势的正确识别。调用过程为在LabVIEW中添加函数控件-数学-脚本与公式-MATLAB节点。LabVIEW调用MATLAB节点的部分程序如图5所示。 2.3 手势识别算法 本系统实现手势识别功能需要两部分。首先采用移动平均法来确定信号的起点和终点,以获取肌电信号的有效活动段。准确判断信号的起终点,可以使系统提取出有效的特征分量,以便系统准确的对不同手势进行分类识别。移动平均法是根据采集到的肌电信序列的幅值是否超过阈值来确定起终点,简单实用可以满足系统实时判别的要求。具体公式如下: 图5 部分程序框图 移动平均法即先求出不同手势信号幅度的均方值。H为采集通道数,SEMGraw(k)(i)为实时的采集信号。取窗W=64得SEMGM_A(i),即信号的移动平均值。TH为所设幅度阈值,当信号移动平均值大于幅度阈值,则为活动段信号,若小于则置为0去除[11]。 系统判断出信号的活动段后即可进行特征提取及识别算法分类。本系统的核心算法为KNN分类算法[12],即为了判定未知样本的类别,采集训练样本建立训练集,提取训练集中不同种类的归一化特征分量建立特征空间。系统采集到未知样本后,计算未知样本在特征空间中与各维的欧式距离,并以最邻近者的类别作为判断未知样本类别的依据。为了避免样本过大导致误判的情况,笔者采用权值的方法来进行改进,与该样本距离小的邻居权值大,与该样本距离大的邻居权值则相对较小。此算法主要分为3个步骤: 1)算距离:给定测试对象即采集到的肌电信号,计算它与训练集中的每个对象的距离; 2)找邻居:圈定距离最近的k个训练对象,作为测试对象的近邻; 3)做分类:根据这k个近邻归属的主要类别,来对送入的信号进行分类,判断动作类型[13]。 笔者经过大量的试验采集,对实验数据的时频特征进行分析后选定5个特征分量[14]来作为识别依据,具体公式[15]如下: 2.4 特征值处理 由于特征参量的变化范围及量级不同,运用KNN算法时需要对特征数据进行归一化的处理,否则较大量级的特征参数的变化就回掩盖住较小量级特征参数的变化[16]。目前,较为常见的方法有取线性函数转换、对数函数转换和反正切函数转换。其中对数函数和反正切函数的转换会导致小数据放大大数据缩小的效果,不能满足本系统线性处理的要求。因此,对于特征值的归一化处理需要用到线性函数转换,具体转换公式如下: 公式中 x,y分别是转换前后的值,MaxValue、MinValue分别为样本的最大值和最小值。通过以上线性函数对数据的归一化处理,可以实现对数据等比例的放大缩小,使其范围在0~1之间。 另外,每个特征参数对数据的分类贡献不一致,因此笔者利用数学建模中评价类纹理的解决方法,对每个特征参量的贡献度进行评估,确定出各自的权值。最后将各特征参量乘以对应权值以得到统计平均值。经过对数据的归一化及权值处理后,即可获得分类手势的特征阈值,以更准确的识别未知信号的手势类别。 在手势识别系统中,设置采样频率为1 000,采样点数为500。每类动作模式以1 s做一次动作,30 s为一组进行采集,采集多组数据建立训练集。之后对训练集中数据进行时频特征分析比较。经过大量的数据统计后,发现各手势的时频特征存在可以区分的差异。目前系统能够识别的手势种类为石头,剪刀,布,摆手4种手势,且识别率平均在92%以上,具体手势动作如图6所示。 图6 分类手势图 笔者对实验数据及结果进行了统计。手势特征数据对比及系统对手势识别成功率如表1所示,从表中可见,不同手势在时频域的特征参量有各自的特征。能够通过这些特征参量进行算法分类,来用于识别采集到的未知手势。 表1 各手势特征值及识别率 文中介绍了基于LabVIEW与MATLAB混合编程的肌电信号手势识别系统的设计实现过程。该系统不仅可以实现对肌电信号的实时采集处理,而且成功地利用LabVIEW与MATLAB的联调,提取出了有效的肌电信号特征值。在对特征值的分析利用中,考虑到多个参数变化范围较大的现象,笔者结合了数学建模中评价类纹理的解决方法,对特征值进行了归一化处理。最后,根据KNN识别分类算法实现了对不同手势的识别判断。大量实验数据表明,系统能够较为准确地识别出人体的不同动作手势,主要有石头、剪刀、布和摆手等几个动作,识别准确率能达到92%以上,具备高效性和实时性。同时,本系统是通过皮肤表面肌电信号对手势进行的识别,肌电信号是引起手势动作的源头。因此,本识别系统可以广泛地应用到医疗康复系统中,为人们的生活提供更多的便利,有更好的应用前景。 [1]侯祖贵.基于惯性传感器的人体动作分析与识别[D].哈尔滨:哈尔滨工程大学,2013. [2]丁其川,赵新刚,韩建达.基于肌电信号容错分类的手部动作识别[J].机器人,2015(1):9-16. [3]李成凯,席旭刚,王俊伟,等.表面肌电信号采集系统设计[J].杭州电子科技大学学报:自然科学版,2015(2):34-37. [4]张琳琳.表面肌电信号采集电路的设计与实现[J].硅谷,2015(2):28-29. [5]孟盈盈.基于LabVIEW的数据采集系统教学仪器的设计[D].南宁:广西大学,2012. [6]王春红.基于LABVIEW的表面肌电信号采集系统设计[J].河南科技,2013(13):6-7. [7]王红旗,毛啊敏,李林伟.基于线性判别分析的表面肌电信号特征识别 [J].河南理工大学学报:自然科学版,2015(6):831-835. [8]任杰.基于小波变换的表面肌电信号去噪方法[J].科技信息,2011(27):476-477. [9]张德峰.MATLAB小波分析[M].北京:机械工业出版社,2011. [10]王桔,丁锐,洪梅.基于LabVIEW的面部表情识别系统的设计[J].吉林大学学报:信息科学版,2015(6):714-718. [11]尚小晶.肌电-运动关系建模与运动模式识别研究[D].长春:吉林大学,2012. [12]RiilloF,QuitadamoLR,CavriniF,etal.Optimization of EMG-based hand gesture recognition:Supervised vs.unsupervised data preprocessing on healthy subjects and transradial amputees[J].Biomedical SignalProcessing&Control,2014,14(1):117-125. [13]何乐生,宋爱国.一种基于肌电信号的动作起始时刻识别方法[J].数据采集与处理,2006(3):266-271. [14]Kim J,Mastnik S,André E.EMG-based hand gesture recognition for realtime biosignal interfacing [C]//Proceedings of the 13th international conference on Intelligentuser interfaces.ACM,2008:30-39. [15]吴冬梅,孙欣,张志成,等.表面肌电信号的分析和特征提取 [J].中国组织工程研究与临床康复,2010,43:8073-8076. [16]徐仔波,陈文超,高静怀,等.一种改进的多通道盲信号解相关算法[J].工程数学学报,2011(1):15-20. A handgesture recognition system based on the hybrid programming of LabVIEW and MATLAB XU Feng,LIU Ting-wei,LI Ping,ZHU Rong-rong,JIANG Hao-chen The traditional gesture recognition system is difficult to apply to the medical filed.This paper designs a handgesture recognition system based on EMG with a hybrid programming of LabVIEW and matlab.This paper discusses the key problem about the design of Hand-gesture Recognition System,and proposes a method to collect electromyographic signals(EMG)with medical electrode slices,then make the pretreatments by the hardware circuits such as differential amplifier and filtering.After these processing,the EMG was sent to PC using the high-speed data acquisition card.This paper suggests that it should extract and analyze the time-frequency characteristics of different gestures,then establish a training set with LabVIEW and matlab combined.Finally the paper explains a way to design and set up a handgesture recognition system based on EMG according to the K-Nearest-Neighbor(KNN)algorithm. so as to achieve a higher recognition accuracy. LaBVIEW;MATLAB script;electromyographic signal(EMG);handgesture recognition;KNearest-Neighbor(KNN) TP391.4 :A :1674-6236(2017)08-0032-05 2016-04-10稿件编号:201604091 吉林大学2015年国家级"大学生创新创业训练计划"基金资助项目(2015520651) 徐 峰(1966—),男,江苏常熟人 ,硕士,工程师。研究方向:电子技术领域实验教学和科研。2 手势识别系统的实现
3 结果分析
4 结束语
(College of Communication Engineering,Jilin University,Changchun 130012,China)