一种基于深度学习和特征图像的肌电信号手势识别方法
【技术领域】
[0001] 本发明属于计算机与生物信号相结合领域,具体基于深度卷积神经网络对从肌电 信号提取出的特征图像对应的手势进行识别。
【背景技术】
[0002] 随着计算机视觉、触摸交互、感知计算等新技术的迅猛发展,感知用户界面 (perceptual user interface,PUI)成为了人机交互领域的研究重点之一。感知用户界面 是一种人与人及人与现实世界之间的交互活动为原型的高度互动、多通道的用户界面,它 的目标是使人机交互和人与现实世界的互动变得一致来达到直观、自然的交互境界。作为 新型人机交互形式,PUI的终极目标是实现"以人为中心"的人机界面,即在人机交互过程 中,计算机能够适应人类的自然交互习惯,而不是要求人适应计算机的特定操作要求。为了 使计算机能够更好地判断和理解人类的交互意图,"生、机、电一体化"是未来人机交互发展 的重要趋势之一,即通过特定的传感设备将生物体的认知或感知信号(如肌电信号)数字 化,并与其他感知或认知通道的信号进行集成融合,自然、协同地完成各种人机交互任务。
[0003] 到目前为止,在国内外的研究中很多机器学习方法被用于肌电信号手势识别中, 比如人工神经网络、K近邻、线性判决分析、支持向量机和隐马尔可夫模型。而深度学习方法 很少被应用,本文所使用的卷积神经网路就是一种深度学习方法,这种方法的有点在于,不 需要进行大量的特征提取操作,少量的特征也可以获得很好的识别率。
[0004] 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的 人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积 神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神 经元间的连接是非全连接的,另一方面同一层中某些神经元之间的连接的权重是共享的。 它的非全连接和权值共享的网络结构使之更类似于生物神经网络,降低了网络模型的复杂 度,减少了权值的数量。
【发明内容】
[0005] 本发明的目的在于针对现有技术的不足,提供一种基于深度学习和特征图像的肌 电信号手势识别方法。
[0006] 本发明的目的是通过以下技术方案来实现的:一种基于深度学习和特征图像的肌 电信号手势识别方法,包括以下步骤:
[0007] (1)从公开数据集NinaPro中获取手势动作肌电数据;对肌电信号进行预处理,包 括去除噪声、信号整流及信号归一化等操作,具体包含如下子步骤:
[0008] (1.1)带通滤波(band-pass filter),原始表面肌电数据带宽为15-500HZ,滤波后 为0-25Hz;
[0009] (1.2)信号放大(amplification);
[0010] (1.3)均方根校正(RMS rectification);
[0011 ] (1 · 4) 1Hz低通滤波(零相位2阶巴特沃斯滤波,zero-phase second order Butterworth filter);
[0012] (1.5)去除带二义性标签的样本。
[0013] (2)特征图像生成,具体包含如下子步骤:
[0014] (2.1)使用50ms,100ms,150ms,三种长度的采样窗口对数据进行采样,其中采样窗 口的移动步长为窗口长度的25% ;
[0015] (2.2)将步骤2.1采样后的数据中每个通道的数据提取特征矩阵;
[0016] (2.3)将在同一个样本中提取出的所有的特征矩阵使用平行通道式的图像组成方 式作为颜色通道存储到图像中得到特征图像。
[0017] ⑶深度神经网络模型训练和手势识别,其具体包含如下子步骤:
[0018] (3.1)修改VGGNet网络使其适用于特征图像的深度神经网络模型;
[0019] (3.2)由于每个被试的每个手势动作有10次重复数据,因此将10次重复数据按照 5:3:2的比例分割为训练数据,测试数据,验证数据;
[0020] (3.3)使用训练数据样本和验证(validation)数据样本进行网络模型优化(手工 调整网络卷积层数和全连接层层数)和参数调整(手工调整卷积层的卷积核大小以及全连 接层输出数);
[0021] (3.4)运用步骤(3.1)和步骤(3.3)中得到的网络结构模型和优化后的参数进行网 络模型的训练,训练中至少迭代300次以上;
[0022] (3.5)将测试数据输入到步骤(3.3)中的训练好的网络模型中进行标签预测;
[0023] (3.6)将得到的标签按照所属的数据段按照多数同意规则(1&0〇1";^7¥〇1:;[1^1?1116) 进行投票,得到最后的分类结果。
[0024] 进一步地,步骤(2.2)中,使用了 10种单值特征对数据进行特征提取,分别是:两帧 信号幅值之差(D-Value),信号幅值的绝对值之和(IEMG),信号幅值的绝对平均值(MAV),改 进信号幅值的绝对平均值l(MMAVl),改进信号幅值的绝对平均值2(MMAV2),信号均方根 (RMS),估计肌肉收缩力非线性检测器(v-order),估测肌肉收缩力的对数检测器(LOG),小 波包变换后信号的均值(DWPT-MEAN),小波包变换后信号标准差(DWPT-SD)。
[0025] 进一步地,步骤(2.2)中,使用了一种特殊的特征矩阵生成方式,具体为:假设 Ninapro肌电数据片段Vi,Vi是一个f行c列的矩阵,f是数据片段中的帧数,c是数据片段的 通道数,首先要把Vi矩阵以行导向的方式转化成c个向量vi,每个vi的长度为f,用于生成特 征矩阵?1。?1是一个行数和列数都为找勺方阵,设?1中的元素 1)^,其中1^6?1,〇<_]_<€\ c,0 < k < f,分别为矩阵中的行编号和列编号。则。」,1< = (:〇:1,」,¥:1,1〇其中函数(:是特征函数, 目的是求解Vi中两个元素的差异来作为时序特征的表示。
[0026] 进一步地,步骤(2.3)中,使用了平行通道式的图像组成方式生成特征图像。平行 通道式的图像组成方式具体为:假设目前得到了 c种特征η个通道的f X f大小的特征矩阵, 如果把数据中的c个通道看成类似于图像中的颜色通道,则将其变成(nXc)XfXf的图像 作为输入,才可以充分利用卷积神经网络。
[0027] 本发明的有益效果是:本发明方法首先对采集手势肌电原始信号进行包括信号整 流和信号滤波的预处理;然后进行特征提取,通过不同尺寸和概率的采样窗口提取出包括 时域、时频域的特征,并将这些特征转换成图像(Cost Matrix),按照一定的排列方式存储; 第三步,将第二步特征提取获得的特征图像和这些特征图像对应的动作标签一起输入到深 度神经网络(DeepConvolutional Neural Networks)中进行训练,得到网络模型;第四步, 将测试数据和训练得到的网络模型输入深度卷积神经网络中进行预测,得到每段动作所有 图像的预测标签,最后将这些标签按照多数同意规则(MajorityVotingRule)进行投票,票 数最高者为该段动作类别。本发明基于特征图像对深度卷积神经网络分类器进行识别。使 用基于深度卷积神经网络的分类方法能够准确地识别同一被试的不同手势,较准确地识别 不同被试间手势。
【附图说明】
[0028]图1为本发明所述方法流程图;
[0029]图2为本发明实验选取的NinaPro数据集的3个手势集,(a)为5种腕部运动的手势 集,(b)为8种手部姿态手势集,(c)为12种手指运动手势集;
[0030] 图3为本发明平行通道排布方式示意图;
[0031] 图4为本发明所使用的深度卷积神经网络结构。
【具体实施方式】
[0032]下面结合附图和具体实施例对本发明作进一步详细说明。
[0033]本发明提供的一种基于深度学习和特征图像的肌电信号手势识别方法,包括以下 步骤:
[0034] (1)从公开数据集NinaPro中获取手势动作肌电数据;对肌电信号进行预处理,包 括去除噪声、信号整流及信号归一化等操作,具体包含如下子步骤:
[0035] (1 · 1)带通滤波(band-pass filter),原始表面肌电数据带宽为15-500HZ,滤波后 为0-25Hz;
[0036] (1 ·2)信号放大(amplification);
[0037] (1.3)均方根校正(RMS rectification);
[0038] (1 · 4) 1Hz低通滤波(零相位2阶巴特沃斯滤波,zero-phase second order Butterworth filter);
[0039] (1.5)去除带二义性标签的样本。
[0040] (2)特征图像生成,具体包含如下子步骤:
[00411 (2.1)使用50ms,100ms,150ms,三种长度的采样窗口对数据进行采样,其中采样窗 口的移动步长为窗口长度的25% ;
[0042] (2.2)将步骤2.1采样后的数据中每个通道的数据提取特征矩阵;
[0043] 本发明使用了 10种单值特征对数据进行特征提取,如表1所示,分别是:两帧信号 幅值之差(D-Value),信号幅值的绝对值之和(IEMG),信号幅值的绝对平均值(MAV),改进信 号幅值的绝对平均值l(MMAVl),改进信号幅值的绝对平均值2(MMAV2),信号均方根(RMS), 估计肌肉收缩力非线性检测器(v-order),估测肌肉收缩力的对数检测器(L0G),小波包变 换后信号的均值(DWPT-MEAN),小波包变换后信号标准差(DWPT-SD)。
[0044] 表1新特征集包含特征描述
[0045]
[(
[0047]特征矩阵的生成方式如下:假设Ninapro肌电数据片段Vi,Vi是一个f行c列的矩 阵,f是数据片段中的帧数,c是数据片段的通道数,首先要把Vi矩阵以行导向的方式转化成 c个向量vi,每个vi的长度为f,用于生成特征矩阵Pi 是一个行数和列数都为f的方