本发明属于计算机与生物信号相结合领域,尤其涉及一种基于深度学习和注意力机制的肌电信号手势识别方法。
背景技术:
:表面肌电信号(surfaceelectromyography,semg)是一种通过非侵入式的电极贴在皮肤表面来记录肌肉活动的生物信号。通过记录和分析表面肌电信号能够为辅助和康复技术提供更多有效的信息,对于体育科学研究、人机交互、康复医学临床和基础研究等具有重要的学术价值和应用意义。在这些应用中,基于肌电信号的手势识别技术担当重要的角色。一个经典的肌电信号手势识别流程由数据预处理、特征空间构建和分类组成。数据预处理部分主要对信号进行整流和滤波来减少噪声,特征空间构建部分将预处理后的信号变换到特征空间使得类间有更大的区分度,最后用一个机器学习方法训练好模型用于分类。特征空间的构建部分和手势类别的识别部分是提高识别准确率十分重要的两个部分。因此有很多研究人员致力于通过他们的领域知识来提出新的特征,如phinyomark特征集。另一方面,在国内外的研究中,很多机器学习分类器被用于肌电信号手势识别中,比如人工神经网络、k近邻、线性判决分析、支持向量机和隐马尔可夫模型。其中支持向量机和线性判决分析是两种最常用的分类器。在近几年国内外的研究进展中,深度学习方法在许多领域都获得了目前最好的表现。其中最著名的卷积神经网络也已被成功应用于肌电信号的手势识别中,获得了目前最好的识别效果。注意力机制是一种十分有效的增强循环神经网络建模能力的方法,目前已在机器翻译等领域取得了较好的效果。但目前没有使用循环神经网络结合卷积神经网络的方法对肌电信号手势进行识别,并且本发明将注意力机制加入到循环神经网络中对模型进行增强。技术实现要素:本发明的目的在于针对现有技术的不足,提供一种基于深度学习和注意力机制的肌电信号手势识别方法,通过设计基于卷积神经网络、循环神经网络和注意力机制的模型结构,提高了手势识别的准确性。本发明的目的是通过以下技术方案来实现的:一种基于深度学习和注意力机制的肌电信号手势识别方法,包括如下步骤:(1)获取肌电数据,数据预处理,包括以下子步骤:(1.1)从公开数据集ninaprodb1、ninaprodb2、biopatrec子集、capgmyo子集和csl-hdemg中获取手势动作肌电数据;(1.2)分别对不同数据集采用不同的预处理方法进行滤波降噪;(2)原始信号训练数据集和原始信号测试数据集的划分,包括以下子步骤:(2.1)根据获取到的肌电信号标签,将每个肌电信号文件中的数据分割为若干个肌电信号手势段,每个手势段包含一次动作重复;(2.2)按照不同的评估方法,将手势的多次动作重复分别划分到原始信号训练数据集和原始信号测试数据集中,完成原始训练和测试数据集的划分;(3)数据分割与特征提取,包括以下子步骤:(3.1)用滑动窗口将每个手势段分割为多个固定长度的信号段;(3.2)对每个窗口内的定长信号段的每个通道进行特征提取,提取多种特征;(4)构建新肌电图像,包括以下子步骤:(4.1)将窗口内每个通道的特征向量重新排布,使得每两个通道都能够相邻;(4.2)构建新肌电图像,新肌电图像的宽为1,高为重新排列后的通道数,颜色通道数为特征向量维度;(5)基于深度学习和注意力机制的肌电信号多类手势识别,包括以下步骤:(5.1)设计深度学习和注意力机制的模型结构,模型结构由卷积神经网络、循环神经网络和基本注意力机制构成;卷积神经网络对输入的新肌电图像进行高层特征提取,循环神经网络对新肌电图像序列每帧之间的关系进行建模,基本注意力机制对循环神经网络的输出进行重要性加权,t时刻注意力权重αt的计算公式为:mt=tanh(whht)αt=softmax(wtmt)其中,ht是循环神经网络的输出,wh和wt是待训练的权重矩阵,t是一个手势段的时间长度,r是基本注意力机制部分的输出;softmax函数是归一化指数函数;(5.2)原始信号训练数据集中每个样本进行新肌电图像的构建,得到新肌电图像训练数据集作为整个网络的输入,对卷积神经网络和循环神经网络的网络参数逐一进行优化,得到最优模型参数;(5.3)由步骤(5.2)训练得到的最优模型参数和新肌电图像训练数据集训练获得分类模型;(5.4)将测试数据集中每个样本进行新肌电图像的构建,得到新肌电图像测试数据集,输入步骤(5.3)得到的分类模型,输出分类结果。进一步地,所述步骤(1.2)中,对ninaprodb1采用低通butterworth滤波,对ninaprodb2采用低通butterworth滤波并降采样到100hz,biopatrec子集和capgmyo子集不进行滤波,对csl-hdemg进行整流和低通butterworth滤波。进一步地,所述步骤(2.1)中,原始信号训练数据集和原始信号测试数据集的划分使用被试内评估;不同数据集采用不同的划分方法:ninaprodb1将每个被试的第1,3,4,6,8,9和10次重复作为训练数据,第2,5,7次作为测试数据;ninaprodb2将第1,3,4,6次重复作为训练数据,第2,5次作为测试数据;biopatrec子集将第一次重复作为训练数据,另外两次重复作为测试数据;capgmyo子集将一半的重复作为训练数据,即5次重复,另外5次重复作为测试数据;csl-hdemg数据集将单个被试的数据划分为10份,并进行10折交叉验证。进一步地,所述步骤(3.1)中,不同的数据集使用不同的滑动窗口长度及滑动步长;ninaprodb1的滑动窗口长度为150ms和200ms,滑动步长为10ms;ninaprodb2的滑动窗口长度为200ms,滑动步长为100ms;biopatrec子集的滑动窗口长度为50ms和150ms,滑动步长为50ms;capgmyo子集的滑动窗口长度为40ms和150ms,滑动步长为1ms;csl-hdemg的滑动窗口长度为150ms和170ms,滑动步长为0.5ms。进一步地,所述步骤(3.2)中,对窗口内的肌电信号基于经典特征集phinyomark进行特征向量提取,包含特征信号幅值绝对均值mav、波形长度wl、自回归系数ar、绝对均值斜率mavslp、平均频率mnf、功率谱最大值附近能量与总能量比率psr和willison幅值wamp;capgmyo子集和csl-hdemg是高密度肌电信号,不进行特征提取,直接在原始信号上构建图像。进一步地,所述步骤(5.1)中,循环神经网络部分,选择长短时记忆单元(lstm)来解决梯度消失和梯度爆炸问题。进一步地,所述步骤(5.2)中,最优模型中卷积神经网络包含2层卷积层,后接2层局部连接层,最后连接3层全连接层,循环神经网络层由输出大小为512的长短时记忆单元(lstm)构成,最后识别部分由一个g-way全连接层和softmax层构成。进一步地,所述步骤(5.3)中,分类模型的训练过程为:新肌电图像训练数据集与该数据集每个样本对应手势标签共同作为模型的输入,经过训练得到模型参数进行存储。进一步地,所述步骤(5.4)中,分类模型的输出为标签,即对应测试样本的标签,用识别准确率对识别结果进行衡量,识别准确率为识别正确的样本数除以所有测试样本数。本发明的有益效果是:本发明提出一种基于卷积神经网络和循环神经网络的肌电信号手势识别方法,能够同时对肌电信号的空间和时间特征进行提取和建模,与已有发明中的单纯基于卷积神经网络的方法相比,该方法能够有效提升识别率。将注意力机制加入到基于卷积神经网络和循环神经网络的模型结构中,能够增强模型结构的表现。提取传统肌电信号构建新肌电图像作为模型的输入,能够有效提升肌电信号手势识别的准确率。附图说明图1为本发明方法流程图;图2为本发明网络结构图。具体实施方式下面结合附图和具体实施方式对本发明作进一步详细说明。如图1所示,本发明提供的一种基于深度学习和注意力机制的肌电信号手势识别方法,具体实施步骤如下:步骤(1)从公开数据集ninaprodb1、ninaprodb2、biopatrec子集、capgmyo子集和csl-hdemg中获取手势动作肌电数据;对ninaprodb1采用低通butterworth滤波,对ninaprodb2采用低通butterworth滤波并降采样到100hz,biopatrec子集和capgmyo子集不进行滤波,对csl-hdemg进行整流和低通butterworth滤波。步骤(2)原始信号训练数据集和原始信号测试数据集的划分,根据获取到的肌电信号标签,将每个肌电信号文件中的数据分割为一个个肌电信号手势段,每个手势段包含一次动作重复;我们的测试使用被试内评估,不同数据集采用不同的划分方法:ninaprodb1将每个被试的第1,3,4,6,8,9和10次重复作为训练数据,第2,5,7次作为测试数据;ninaprodb2将第1,3,4,6次重复作为训练数据,第2,5次作为测试数据;biopatrec子集将第一次重复作为训练数据,另外两次重复作为测试数据;capgmyo子集将一半的重复作为训练数据,即5次重复,另外5次重复作为测试数据;csl-hdemg数据集将单个被试的数据划分为10份,并进行10折交叉验证。步骤(3)对数据进行分割与特征提取,不同的数据集使用不同的滑动窗口长度及滑动步长。ninaprodb1的滑动窗口长度为150ms和200ms,滑动步长为10ms;ninaprodb2的滑动窗口长度为200ms,滑动步长为100ms;biopatrec子集的滑动窗口长度为50ms和150ms,滑动步长为50ms;capgmyo子集的滑动窗口长度为40ms和150ms,滑动步长为1ms;csl-hdemg的滑动窗口长度为150ms和170ms,滑动步长为0.5ms。对窗口内的肌电信号基于经典特征集phinyomark进行特征向量提取,包含特征信号幅值绝对均值(mav)、波形长度(wl)、自回归系数(ar)、绝对均值斜率(mavslp)、平均频率(mnf)、功率谱最大值附近能量与总能量比率(psr)和willison幅值(wamp)。步骤(5)设计深度学习和注意力机制的模型结构,模型结构由卷积神经网络、循环神经网络和基本注意力机制构成。卷积神经网络对输入的新肌电图像进行高层特征提取,循环神经网络对新肌电图像序列每帧之间的关系进行建模,基本注意力机制对循环神经网络的输出进行重要性加权,从而得到最终的表达用于肌电信号手势识别。对卷积神经网络和循环神经网络的网络参数逐一进行优化,最优的网络结构如下表所示:层名称参数1卷积层164核,核大小(3*3)2卷积层264核,核大小(3*3)3局部连接层164核4局部连接层264核5全连接层1512维输出6全连接层2512维输出7全连接层3128维输出8循环神经层长短时记忆(lstm)512维隐含状态输出9全连接层4和softmax层循环神经网络部分,我们选择长短时记忆单元(lstm)来解决梯度消失和梯度爆炸问题。注意力机制增加在循环神经网络的后面,即循环神经网络的输出是注意力机制部分的输入,计算公式为:mt=tanh(whht)αt=softmax(wtmt)其中,ht是循环神经网络的输出,wh和wt是待训练的权重矩阵,t是一个手势段的时间长度,r是基本注意力机制部分的输出;softmax函数是归一化指数函数。训练过程为:原始信号训练数据集中每个样本进行新肌电图像的构建,得到新肌电图像训练数据集,将新肌电图像训练数据集与该数据集每个样本对应手势标签共同作为模型的输入,经过训练得到模型参数并进行存储。测试过程为:将测试数据集中每个样本进行新肌电图像的构建,得到新肌电图像测试数据集,加载由新肌电图像训练数据集训练好的模型,输入新肌电图像测试数据集,输出为手势类别标签,用识别准确率对识别结果进行衡量,识别准确率为识别正确的样本数除以所有样本数。对ninaprodb1、ninaprodb2、biopatrec子集、capgmyo子集和csl-hdemg数据集的手势全集进行识别。ninaprodb1包含52手势,ninaprodb2包含50手势,biopatrec子集包含26手势,capgmyo子集包含8手势,csl-hdemg包含27手势。使用本发明基于深度学习和注意力机制的肌电信号手势识别方法的识别率结果为:当前第1页12