基于表面肌电信号的手写识别方法
技术领域
本发明涉及的是一种信号处理技术领域的识别方法,具体是一种基于表面肌电信号的手写识别方法。
背景技术
肌电信号在人造假肢控制、抓取识别、人机接口等领域有着重要的应用。对于肌电信号识别,大致可分为信号的探测、分解、处理及分类等部分。
现有的识别方法通常将非平稳的肌电信号看作分段平稳信号来处理,研究一些静态动作的识别,例如展拳,握拳,上翻,下翻,上切,下切。近些年来由于信号处理技术和数学模型的发展,各种数学方法以及人工智能技术在肌电信号处理上得到了应用,例如小波变换,时频分析,Fourior变换,AR系数、神经网络、模糊系统,遗传算法等。
经过对现有技术的检索发现,2000年Chan等(Fuzzy EMGclassification forprosthesis control,《基于肌电信号模糊聚类的假肢控制》IEEE。TransactionsRehabilitation Engineering 2000;8(3):305-311)比较了AR系数、神经网络、模糊系统等主要方法的效果,AR系数法效果最佳识别率能达到99%;模糊系统略优于神经网络,分别为85%和84%,但模糊系统更容易造成过训练。而然这样的处理方法离实际应用仍有一段距离。首先人们日常生活中的动作方式并不是静态的。其次动作的类别数有限,一般在十个左右。在实际应用中人们需要一定时间的训练适应,而且各个动作彼此分别不大,人们实际操作时容易混淆,很难掌握。例如人的书写动作,上述方法就无法识别。目前对这类动态连续动作的整体识别研究还比较少,尚未引起广泛重视。
发明内容
本发明针对现有技术存在的上述不足,提供一种基于表面肌电信号的手写识别方法,通过采集前臂上的表面肌电信号识别需要输入的字符,从而与用户终端交互。使人机交互系统更接近自然状态。
本发明是通过以下技术方案实现的,本发明包括以下步骤:
第一步、将肌电信号采集装置设置于人体前臂肌肉群表面,然后将标准字符集中的字符分别书写两遍后由肌电信号采集装置获得表面肌电信号,对表面肌电信号进行工频干扰陷波处理,得到实时肌电信号;
第二步、对实时肌电信号进行带通滤波得到带通滤波信号S1,;然后对带通滤波信号S1进行平方计算后进行连续循环平均计算,得到带通功率谱信号S1_e及其信号平均值Ld,再进行通道对比值计算,获得对比值最大的通道序号d_max及该通道的信号平均值Ld_max
所述的带通滤波是指采用Butterworth IIR数字滤波器进行滤波;
所述的连续循环平均计算是指对于每一时刻t0的前后连续时间长度t1内的信号求平均,获得带通功率谱信号S1_e;并将带通功率谱信号S1_e中每通道的信号平均值记为Ld,其中:d表示对应通道,即采集装置的个数,4≤d≤8;所述的时间长度t1的取值范围为:50一250ms:
所述的通道对比值计算是指:将带通功率谱信号S1_e中每通道的信号中高于Ld、低于Ld的部分分别求平均记为Ld1和Ld2,选出Ld1/Ld2比值最大的通道d_max并得到该通道对应的信号平均值Ld_max。
第三步、由用户将任一字符书写若干遍并由肌电信号采集装置获得表面肌电样本信号,对表面肌电样本信号进行工频干扰陷波处理,得到实时样本信号;
第四步、对实时样本信号进行带通滤波得到带通滤波信号S2,然后对带通滤波信号S2进行平方计算后进行样本循环平均计算,得到带通功率谱信号S2_e及其信号平均值Ld,再进行通道对比值计算,获得对比值最大的通道序号d_max及该通道的信号平均值Ld_max,然后确定开始时间tstart和结束时间tend。
所述的开始时间tstart是指当S2_e中d_max通道的信号值高于阈值Ld_max的时刻,所述的结束时间tend是指信号平均值Ld持续200ms低于Ld_max的时刻。
所述的样本循环平均计算是指对于每一时刻t0的前后连续时间长度t2内的信号求平均,获得带通功率谱信号S2_e;并将带通功率谱信号S2_e中每通道的信号平均值记为Ld,其中:d表示对应通道,即采集装置的个数,4≤d≤8;所述的时间长度t12的取值范围为:20一60ms;
第五步、按开始时间tstart和结束时间tend截取带通滤波信号S2,将截取信号进行滑动窗口处理,获得对应每个滑动窗的窗口序列,对窗口序列的绝对值求平均得到字符样本,最后对字符样本进行动态时间规整处理,从而得到该字符对应的模版Tc,其中:c表示对应的字符;
所述的滑动窗口处理是指:以时间长度t2作为滑动窗宽度,每隔一个时间间隔k在截取信号上进行时间滑动得到窗口序列w[n],n为1到N,N为自然常数;
所述的字符样本是指:对应每个滑动窗的窗口序列w[n]的绝对值求平均得到v[n],其中n为1到N,N为自然数;
所述的时间长度t2的取值范围为:20一60ms;
所述的滑动窗间隔k的取值范围为:8一15ms;
所述的动态时间规整处理是指:首先将字符样本的长度的平均值作为模版长度,然后再将所有的字符样本等度扩充至模版长度,模版中每一时刻对应的数值为所有字符样本经扩充的对应时刻的平均值。
第六步、用户每书写一个字符,由肌电信号采集装置获得肌电信号,对肌电信号进行工频干扰陷波处理及带通滤波处理得到待处理信号S3,对待处理信号S3进行平方计算后进行连续循环平均计算,得到带通功率谱信号S3_e及其信号平均值Ld,再进行通道对比值计算,获得对比值最大的通道序号d_max及该通道的信号平均值Ld_max,然后确定开始时间tstart和结束时间tend。
第七步、按开始时间tstart和结束时间tend截取带通滤波信号S3,将截取的信号进行滑动窗口处理,获得对应每个滑动窗的窗口序列,对窗口序列的绝对值求平均得到字符识别对象,最后对字符识别对象进行动态时间规整处理,得到该字符的书写特征;将书写特征与各个字符对应的模板Tc逐一进行距离比对,得到识别结果。
所述的距离比对是指:将书写特征与各个字符对应的模版Tc逐一进行欧氏距离比较,确定最小欧氏距离及其对应的字符,当该最小欧氏距离小于距离阈值M则识别结果为判定用户书写即为对应的字符,否则识别结果为否并返回第六步。
所述的距离阈值M为max(3δc),其中δc为每个字符对应的模版Tc的标准差。
与通常的静态动作的识别方法相比较,本发明提出的基于肌电信号的手写识别方法,可以对动态的连续动作进行整体识别;并利用动态时间规整技术有效地解决了因为个人每次书写速度力度不一而带来的不易识别得问题。
附图说明
图1为本发明方法示意图。
图2为实施例中时间方向上的特征提取方式。
图3为实施例中多通道时间序列示意图。
图4为实施例中动态时间规整方法示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
如图1所示,本实施例包括以下步骤:
第一步、通过肌电信号采集装置采集人体前臂主要肌肉群的表面肌电信号,采集的信号由6个通道组成,分别对应肱桡肌、旋前圆肌、挠侧腕屈肌、掌长肌、尺侧腕屈肌、指浅屈肌的前臂主要肌肉群。
第二步、预设参数阶段100:
(1)对50Hz的工频干扰进行陷波,并使用Butterworth IIR数字滤波器对信号进行10一200Hz带通滤波记为带通滤波信号S1。
(2)对S1的平方前后连续150ms求平均记为带通功率谱信号S1,并将带通功率谱信号S1每通道的信号平均值记为Ld,其中:d表示对应通道。
(3)对于带通功率谱信号S1中每通道的信号中高于Ld、低于Ld的部分分别求平均记为Ld1和Ld2,选出Ld1/Ld2比值最大的通道d_max,并记下对应的平均值Ld_max。
第三步、训练阶段101:
(1)步骤200,对50Hz的工频干扰进行陷波,并使用Butterworth IIR数字滤波器对信号进行10一200Hz带通滤波记为带通滤波信号S2。
(2)步骤201,对带通滤波信号S2的平方前后连续150ms求平均记为带通功率谱信号S2_e,并利用带通功率谱信号S2_e中通道d_max的信号判断每次书写动作的开始和结束时间。
(3)步骤202,按照每次动作的开始和结束时间截取带通滤波信号S1,将截取的信号按照40ms的滑动窗间隔15ms进行滑动(图2示出),将窗口内信号的绝对值的平均值作为该字符的一个样本。图3示出了字符’2’的某一次书写过程对应的各通道时间序列特征。
(4)步骤203,利用动态时间规整技术根据同一字符对应的所有样本来制作该字符的模版Tc:首先将这些样本的长度的平均值作为模版的长度。然后再将所有的样本等度拉长至模版的长度。模版上每一时刻的数值,都是所有样本拉长后对应时刻的平均值。所求出来的模版再与每个样本做一次动态时间规整,找出每个时刻具体每个样本所对应时间点,将所有样本对应时刻的数值求平均做为该模版对应时刻的具体数值,重复步骤203多次以得到更佳效果。
第四步、识别阶段102:
(1)步骤200,对50Hz的工频干扰进行陷波,并使用Butterworth IIR数字滤波器对信号进行10一200Hz带通滤波记为带通滤波信号S3。
(2)步骤201,对S3的平方前后连续150ms求平均记为带通功率谱信号S3_e,并利用带通功率谱信号S3_e中通道d_max的信号判断每次书写动作的开始和结束时间。
(3)步骤202,按照每次动作的开始和结束时间截取带通滤波信号S3,将截取的信号按照40ms的滑动窗间隔15ms进行滑动,将窗口内信号的绝对值的平均值作为特征,看作某字符的一个样本。
(4)步骤204,利用动态时间规整技术,将步骤202所得特征与字符集中所有的字符的模版相比较。找出距离最小的模版对应的字符,如果该距离小于预设的阈值,就判断用户此时书写了该字符,否则系统认为用户所写的字符不在字符集中,无法做出判断。
在步骤201,首先在某一时刻如果S2_e、S3_e中d_max通道的信号值高于阈值Ld_max则认为书写动作开始;如果平均值持续200ms低于Ld_max,则认为书写动作结束。由此,判断出书写动作的开始和结束。
本实施例在实际应用中,对7名受试者针对下列三个不同字符集(a)数字’0’一’9’(b)26个英文字母’A’一’Z’(c)汉字’一’一’十’进行了测试,训练样本数为520个/字符不等,结果正确率分别为:84.34%、80.00%、97.89%。