肌电信号分类、外骨骼机器人控制方法及装置
技术领域
本申请涉及机器人领域,尤其涉及一种肌电信号分类、外骨骼机器人控制方法及装置。
背景技术
手部运动在日常生活活动中起着至关重要的作用,对手部运动的识别一直是一个趋势性的研究课题。除了有助于在人与人和人与物的相互作用中更好地识别健全人的手部运动,对肢体残疾的受试者也有积极的需求,他们将从改进的手部运动识别和执行中受益更多。因此,近几十年来,外骨骼机器人和假肢的设计及相应的控制策略得到了迅速的发展。
在所有可行的无创传感模式中,表面肌电信号(surface electromyography,sEMG)因其便携性和鲁棒性,仍是主要采用的获取肢体运动意图的方法。运动意图的准确识别是外骨骼机器人和假肢直观控制的基础,这在机器人领域已得到深入研究。
目前的运动意图识别即肌电信号类别识别的过程主要包括肌电信号预处理,特性提取和分类。其中特征提取在肌电信号类别识别中显得尤为重要。目前对肌电信号进行特征提取时通常以肌电信号的整个活动段为一个整体进行特征提取,这使得提取到的特征的准确性不是很高,导致识别结果不够准确。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种肌电信号分类、外骨骼机器人控制方法及装置、电子设备及存储介质。
第一方面,本申请提供了一种肌电信号分类方法,包括:
获取肌电信号,以及确定所述肌电信号对应的活动段;
采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段;
对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征;
对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。
在一种可能的实现方式中,采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段,包括:
获取第一滑动窗口的配置信息,所述配置信息包括窗口长度和窗口滑动步长;
根据所述第一滑动窗口的配置信息对所述活动段进行分割处理,得到多个初始信号段;
获取多个候选滑动窗口的配置信息;
根据多个候选滑动窗口的配置信息分别对每个初始信号段进行分割处理,得到每个初始信号段对应的子信号段;
将初始信号段和初始信号段对应的子信号段作为所述活动段对应的子信号段。
在一种可能的实现方式中,对所述第一特征进行降维处理,得到所述第一特征对应的第二特征,包括:
采用细菌文化基因算法对所述第一特征进行降维处理,得到所述第一特征对应的第二特征。
在一种可能的实现方式中,将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型,包括:
将所述第二特征输入预先训练好的线性判别分析分类器,将所述线性判别分析分类器输出的类型作为所述肌电信号对应的类型。
在一种可能的实现方式中,所述确定所述肌电信号对应的活动段包括:
提取所述肌电信号的包络信号;
在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号;
在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号;
根据所述起点信号和终止点信号确定肌电信号的活动段。
在一种可能的实现方式中,提取所述肌电信号的包络信号,包括:
获取核函数;
初始化所述核函数;
按照肌电信号采集时间从先到后的顺序将肌电信号逐个导入核函数中;
每导入一个肌电信号后更新所述核函数,并采用梯形法计算更新后的核函数的单位等距积分;
将得到的单位等距积分作为该导入核函数的肌电信号对应的包络信号。
第二方面,本申请实施例还提供了一种外骨骼机器人控制方法,包括:
获取肌电信号采集模块采集用户的肌电信号;
基于预先训练好的分类器,确定所述肌电信号对应的类型;
基于所述肌电信号对应的类型,生成控制所述外骨骼机器人的控制指令;
基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
在一种可能的实现方式中,基于预先训练好的分类器,确定所述肌电信号对应的类型,包括:
确定所述肌电信号对应的活动段;
采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段;
对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征;
对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。
第三方面,本申请实施例还提供了一种肌电信号分类装置,包括:
信号处理模块,用于获取肌电信号,以及确定所述肌电信号对应的活动段;
分割模块,用于采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段;
特征提取模块,用于对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征;
降维模块,用于对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
分类模块,用于将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。
第四方面,本申请实施例还提供了一种外骨骼机器人控制装置,包括:
获取模块,用于获取肌电信号采集模块采集用户的肌电信号;
分类模块,用于基于预先训练好的分类器,确定所述肌电信号对应的类型;
指令生成模块,用于基于所述肌电信号对应的类型,生成控制所述外骨骼机器人的控制指令;
控制模块,用于基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
在一种可能的实现方式中,所述分类模块包括:
信号处理子模块,用于确定所述肌电信号对应的活动段;
分割子模块,用于采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段;
特征提取子模块,用于对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征;
降维子模块,用于对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
分类子模块,用于将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。
第五方面,本申请实施例还提供了一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现第一方面所述的肌电信号分类方法或第二方面所述的外骨骼机器控制方法。
第六方面,本申请实施例还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面所述的肌电信号分类方法或第二方面所述的外骨骼机器控制方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的一种肌电信号分类方法,获取肌电信号,采用多个长度不同的滑动窗口对肌电信号的活动段进行分割处理,从而得到多个与活动段对应的子信号段,对各个子信号段分别进行特征提取,对各个子信号段的特征进行组合,得到活动段对应的第一特征,对第一特征进行降维处理,得到第二特征,然后将第二特征输入到预先训练好的分类器中,以使分类器输出肌电信号的类型。在本方案中,采用多个长度不同的滑动窗口对活动段进行分割,从而可以将活动段划分成多个长度不同的子信号段,对多长度的信号段进行特征提取得到的特征,会比对单长度的信号段进行特征提取得到的特征更全面,更准确,从而使得最后得到的肌电信号的分类结果也更准确。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种肌电信号分类方法的流程图;
图2为本申请实施例提供的一种外骨骼机器人控制方法的流程图;
图3为本申请实施例提供的一种肌电信号分类装置的框图;
图4为本申请实施例提供的一种外骨骼机器人控制装置的框图;
图5为本申请实施例提供的一种电子设备示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
外骨骼机器人,外骨骼机器人是由肌电信号控制的机器人,用户通过穿戴外骨骼机器人可以辅助用户运动,用户在运动之前通常会产生肌电信号,肌电信号是一种包含使用者潜在动作意识的综合生物电信号,外骨骼机器人基于肌电信号的动作超前性,来识别用户的动作意图,以此来控制外骨骼机器人的运动。外骨骼机器人上通常设置有肌电信号采集模块(例如肌电传感器)、控制模块(例如cpu控制器)和外骨骼也就是机械结构(例如机械手臂、机械手、机械腿等),肌电信号采集模块通过安装在用户皮肤上的电极采集肌电信号,控制模块根据肌电信号采集模块采集的肌电信号确定是否产生动作电位(即检测肌电信号是否存在活动段),在产生动作电位时,根据动作电位确定用户的动作意图,进而根据动作意图控制机械结构运动。
肌电假肢,肌电假肢就是用微小的肌电电位差信号来作为控制和操纵肌电假肢各种功能的初始信号。肌电电压信号通常是通过安置在残肢皮肤表面上的电极来测取的。通过电极中的放大器,可以对测取的电压信号进行放大,然后,这个经放大的电压信号就可以被用来控制肌电假手的张开、合闭和旋转等动能了。
肌电信号,肌电信号(EMG)是众多肌纤维中运动单元动作电位(MUAP)在时间和空间上的叠加。表面肌电信号(SEMG)是浅层肌肉EMG和神经干上电活动在皮肤表面的综合效应,能在一定程度上反映神经肌肉的活动;相对于针电极EMG,SEMG在测量上具有非侵入性、无创伤、操作简单等优点。
细菌文化基因算法(Bacterial Memetic Algorithm,简称BMA),BMA是一种进化模因算法,其灵感来自于微生物进化的本质,结合了全局和局部优化。BMA包括变异、转移和局部搜索等基本算子,它们利用了进化和模因两种方法。特征选择的优化问题是寻找由染色体编码的最优或准最优特征组合。每个染色体的评估都是基于预先定义的适应度来衡量分类问题的准确性。随机染色体初始化后,变异、转移和局部搜索算子将根据计算出的适应度对染色体起作用。三个操作的循环将持续进行,直到满足终止条件,然后检索最合适的染色体作为最终输出。最优的染色体将作为最终输出被检索。
滑动窗口(sliding window),顾名思义,就像一个滑动的窗口,套在一个序列中,“滑动窗口”通过在序列数据中左右的滑动可以截取序列片段,从而将原始数据重塑为指定长度的样本。
活动段(Active Segments),活动段指肌电信号中对应于动作执行时的信号。
线性判别分类器(Linear Discriminant Analysis,简称LDA),线性判别分类器是对费舍尔的线性鉴别方法(FLD)的归纳,属于监督学习的方法,LDA的基本思想是将高维的特征样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证特征样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够使投影后特征样本的类间散布矩阵最大,并且同时类内散布矩阵最小。就是说,它能够保证投影后特征样本在新的空间中有最小的类内距离和最大的类间距离,即模式在该空间中有最佳的可分离性。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种肌电信号分类方法的实施例。
图1为本发明实施例提供的一种肌电信号分类方法的流程图,在一个例子中,如图1所示,该方法包括以下步骤:
S11.获取肌电信号,以及确定所述肌电信号对应的活动段。
在一实施例中,在不同的应用场景下,可以采用不同的方式获取肌电信号。
在一个例子中,在对历史肌电信号进行分析研究这一应用场景下对肌电信号进行分类,则可以通过从本地调取或从网络中下载的方式来获取肌电信号。
在另一个例子中,在通过肌电信号控制肌电假肢或外骨骼机器人这一应用场景下对肌电信号进行分类,则可以通过设置在用户身上的肌电信号采集模块(例如肌电信号传感器)实时采集用户肌电信号的方式来获取肌电信号,而为了保证控制的精准性,通常会采集多通道肌电信号,即通过在用户的多个部分设置肌电信号采集模块同时进行肌电信号采集,一个肌电信号采集模块采集一个通道的肌电信号,多个肌电信号采集模块采集的就是多通道的肌电信号,例如:在用户的四肢或其他等16个部位佩戴肌电信号采集模块,通过用户佩戴的肌电信号采集模块可以采集到16个通道肌电信号。
需要说明的是,上述两个例子仅仅是对如何获取肌电信号的举例性说明,并非用作限定。
至于是如何确定肌电信号的活动段的,在下文中进行描述,此处先不详述。
S12.采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段。
在一实施例中,采用多个长度不同的滑动窗口对活动段进行分割可以得到多个长度不同的子信号段,其中长度指时间长度。
因为肌电信号是众多肌纤维中运动单元动作电位在时间和空间上的叠加,所以可以采用滑动窗口算法根据肌电信号的采集时间将肌电信号划分为多个子信号段,而是如何对活动段进行分割处理的,下文中在进行描述,此处先不详述。
S13.对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征。
在一实施例中,在执行S13之前,先获取需要提取的特征的类型,下面称为预设特征类型。
在一实施例中,预设特征类型可以是预先设置并存储在本地文件中的,在获取预设特征类型时直接从本地文件中调用即可。
在另一实施例中,预设特征类型也可以是用户输入的,例如生成输入特征类型的提示,以提醒用户输入需要提取的特征类型,从而将获取到的用户输入的特征类型作为预设特征类型。
需要说明的是,上述两个例子仅仅是对如何获取预设特征类型的举例性说明,并非用作限定。
其中,预设特征类型可以根据用户需求或历史经验设置,例如预设特征类型可以包括:平均绝对值(MAV)、波形长度(WL)、过零点(ZC)、斜率符号变化(SSC)和四阶自回归系数(AR),当然除了上述几种特征类型之外,用户还可以设置其他特征类型为预设特征类型此处不做具体限定。
在一实施例中,因为活动段会对应多个子信号段,而对每个子信号段进行特征提取都会得到多个维度的特征,又因为活动段对应的第一特征是多个子信号段对应的特征的组合,所以第一特征的数据量会很大,例如一个一通道的肌电信号的活动段共分为m个子信号段,每个子信号段都可以提取到n维的特征,则该活动段对应的第一特征的数据量就会是m×n。
在一实施例中,为了对肌电假肢或外骨骼机器人进行控制,通常需要采集多个通道的肌电信号,若肌电信号是多通道的,则活动段对应的第一特征的数据量会更大,比如肌电信号是s个通道的肌电信号,该肌电信号的活动段共分为m个子信号段,提取的特征的维度为n,则每个子信号段都可以提取到s×n个特征,而该活动段对应的第一特征的数据量就是s×m×n,其中s的值即为设置在用户身体上的肌电信号采集模块的数量值,n的值则根据预设特征类型确定,m的值则根据S12的分割结果中子信号段的数量值。
例如:在用户身上设置了16个肌电信号采集模块,一个肌电信号采集模块采集一个通道的肌电信号,16个肌电信号采集模块就采集16个通道的肌电信号,则s的值就是16,根据S12将肌电信号的活动段划分为了17段,也就是有17个子信号段,则n的值就是17,需要提取的特征类型为平均绝对值(MAV)、波形长度(WL)、过零点数(ZC)、斜率符号变化(SSC)和四阶自回归系数(AR),因为四阶自回归系数中包含4个参数,所以上述几个特征类型对应的特征维度为8,所以一个子信号段会提取到16×8共218个特征,而活动段对应的第一特征的特征量就是17×218共2176个特征。
其中平均绝对值(MAV)可以采用下式计算:
其中xn表示肌电信号,N表示肌电信号的总数。
波形长度(WL)可以采用下式计算:
其中k表示子窗口内肌电信号的个数,xn+1和xn表示相邻的两个肌电信号,波形长度是k个肌电信号的长度的简单累加,反映了肌电信号波形的复杂度,也反映了肌电信号幅值、频率以及持续时间等共同作用的效果。
过零点数(zeros crossing,ZC)是一种简单的频率统计特征,计算在一段时间内信号波形通过时间轴(也就是零)的次数。给定两个相邻的样本xi,xi+1满足以下条件,过零点数的值加一:
xixi+1≤0,|xi-xi+1|≥ε
斜率符号变化数(slope sign changes,SSC),该统计量是描述信号频率信息的另一个特征量。给定信号的三个连续样本值,xi-1,xi,xi+1满足以下条件,斜率符号变化数的值加一:
(xi+1-xi)*(xi-xi-1)≤0,|xi-xi+1|≥ε,|xi-xi-1|≥ε
AR模型是一种常用的时间序列模型,
其中s(n)表示肌电信号,ai(i=1,2,3…p)表示AR模型系数,p表示模型阶数,例如AR模型是四阶则P的值就是4,w(n)表示随机白噪声。
S14.对所述第一特征进行降维处理,得到所述第一特征对应的第二特征。
根据S13的描述可知,活动段对应的第一特征的维度会很高,若直接将高维的特征数据输入到分类器中进行分类处理,会使得计算量特别大,耗费过多的时间,因此为了减少计算量,在执行S15之前,先对第一特征进行降维处理,得到低维度的第二特征,然后利用第二特征进行分类,减少了计算量,节省了计算时间。
对于是如何对第一特征进行降维处理的,在下文中进行描述,此处先不详述。
S15.将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。
分类器是预先根据样本肌电信号的特征训练得到的,其可以根据肌电信号的特征得到肌电信号对应的类型,其中肌电信号的类型通常指动作类型,例如握拳、屈腕、伸腕、伸掌、拇指弯曲、食指弯曲、中指弯曲、无名指弯曲、小指弯曲、拇指弯曲,拇指食指组合弯曲等等。
其中样本肌电信号可以采用下述方式获取:
被测试的用户按要求佩戴肌电信号采集模块(例如臂环或肌电采集电极等)于相关位置(例如手臂、手腕等位置)。采集被测试的用户的包含握拳、屈腕、伸腕、伸掌、内旋、外旋、指、对捏、放松等9种手势多次重复动作的肌电信号数据,为减小数据采集过程中带来的误差,每种手势测6次,间隔休息5秒,为避免疲劳,每类手势间隔休息30秒。
在一实施例中,分类器可以为线性判别分类器(LDA),线性判别分类器的训练方法为现有成熟技术,此处不再赘述。
当然,除了LDA还可以采用其他可以根据特征进行分类的分类器,此处不再一一列举。
本申请实施例提供的一种肌电信号分类方法,获取肌电信号,采用多个长度不同的滑动窗口对肌电信号的活动段进行分割处理,从而得到多个与活动段对应的子信号段,对各个子信号段分别进行特征提取,对各个子信号段的特征进行组合,得到活动段对应的第一特征,对第一特征进行降维处理,得到第二特征,然后将第二特征输入到预先训练好的分类器中,以使分类器输出肌电信号的类型。在本方案中,采用多个长度不同的滑动窗口对活动段进行分割,从而可以将活动段划分成多个长度不同的子信号段,对多长度的信号段进行特征提取得到的特征,会比对单长度的信号段进行特征提取得到的特征更全面,更准确,从而使得最后得到的肌电信号的分类结果也更准确。
以上从整体上对本申请实施例提供的肌电信号分类方法进行了说明,下面将对上述S11、S12和S14作进一步的解释说明。
在上述实施例的基础上,S11获取到肌电信号后,在确定肌电信号对应的活动段之前,还可以对肌电信号进行预处理,去除一些不需要的信号的干扰,从而提升最终分类结果的准确性。
在一实施例中,可以采用下述方式对肌电信号进行预处理:
采用陷波器去除所述肌电信号中频率为预设第一频率的肌电信号,采用带通滤波器对去除了频率为预设第一频率的肌电信号后的其他肌电信号进行滤波,得到频率在预设频率范围内的肌电信号,对频率在预设频率范围内的肌电信号执行确定所述肌电信号的活动段的步骤。
S11中确定肌电信号对应的活动段可以采用如下步骤:
步骤1:提取所述肌电信号的包络信号。
在一种可能的实现方式中,可以采用下述步骤提取肌电信号的包络信号:
步骤1.1:获取核函数。
其中核函数可以为包括获取的肌电信号的前序信号的数据集,核函数可以存储在本地文件中,在获取核函数时直接从本地中调用即可,核函数还可以存储在外部设备中,在获取核函数时向外部设备发送核函数请求,从而接收到外部设备发送的核函数。
步骤1.2:初始化核函数。
核函数的初始状态为0,比如核函数为ke(jk)={j1,j2,j3,…,jn},则初始状态下的核函数中的j1,…,jn=0,其中j1,…,jn表示核函数中的数据点,在信号处理过程中逐渐丰富核函数中的数据。
步骤1.3:按照肌电信号采集时间从先到后的顺序将肌电信号逐个导入核函数中。
比如按照获取的肌电信号的采集时间对肌电信号进行排序后肌电信号的顺序为:s1,s2,…si,si+1,…,则按照上述顺序分别将上述肌电信号导入到核函数中。
步骤1.4:每导入一个肌电信号后更新所述核函数,并采用梯形法计算更新后的核函数的单位等距积分。
比如将肌电信号s1导入核函数中,核函数就更新为kernel={j2,…,jn,s1},其中j2,…,jn=0,将s2导入核函数中,核函数就更新为kernel={j3,…,jn,s1,s2},其中j3,j4,…,jn=0,依次类推。
每导入一个肌电信号就采用梯形法对更新后的核函数计算一次单位等距积分,比如导入s1后,就采用梯形法按照下式计算kernel={j2,…,jn,s1}的单位等距积分envelpeSignal:
envelopeSignal=sum{j2,…,jn,s1}÷2;
导入si+1后,就采用梯形法按照下式计算kernel={j3,…,jn,s1,s2}的单位等距积分envelopeSignal:
envelopeSignal=sum{j3,…,jn,s1,s2}÷2;
步骤1.5:将得到的单位等距积分作为该导入核函数的肌电信号对应的包络信号。
即将肌电信号s1对应的单位等距积分作为肌电信号s1对应的包络信号y1,将肌电信号s2对应的单位等距积分作为肌电信号si+1对应的包络信号y2,以此类推,由肌电信号{s1,s2,…,si,si+1,…}计算得出包络信号{y1,y2,…,yi,,yi+1,…}。
步骤2:在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号。
步骤3:在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号。
其中预设阈值为预先设定的用于判断肌电信号是否处于活动段的信号值,当肌电信号大于预设阈值时可以确定该肌电信号处于活动段,当肌电信号不大于预设阈值时,则确定该肌电信号处于静息段,静息段为动作段之间平稳的部分。在一种可能的实现方式中,可以根据经验设定预设阈值的具体数值,并且可以根据需求对预设阈值进行调整,以提高活动段确定的准确性。
因为动作段内的肌电信号的信号值会高于静息段内肌电信号的信号值,所以通过判断当前包络信号与其之前的包络信号之间的信号值的变化确定当前包络信号是否为动作段的起点信号或终点信号。
步骤4:根据所述起点信号和终止点信号确定肌电信号的活动段。
因为肌电信号在刚刚进入活动段或者刚刚离开活动段时,其信号数据的幅度较小,难以根据肌电信号值区分静息段和活动段,容易误判,准确率低,而在本实施例中,首先对肌电信号进行基于核函数的处理,得到肌电信号对应的包络信号,包络信号在刚刚进入活动段或者刚刚离开活动段时都有较大的幅值变化,从而提高了活动段检测的准确性。
上述确定活动段的方式只是一个示例,除了上述方式还可以采用其他方式确定活动段,比如短时傅里叶方法、自组织人工神经网络方法、移动平均方法、标准差与绝对均值检测、统计判据决策法等现有成熟算法。
S12中采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段,可以包括如下步骤:
步骤1:获取第一滑动窗口的配置信息,所述配置信息包括窗口长度和窗口滑动步长。
在一实施例中,第一滑动窗口的配置信息可以是用户预先设置好并存储在本地文件中的,在获取第一滑动窗口的配置信息时可以直接从本地文件中调取。
在一实施例中,肌电信号分类方法应用于电子设备,电子设备的界面中设置有滑动窗口配置信息的输入窗口,当需要获取第一滑动窗口的配置信息时,可以生成输入第一滑动窗口配置信息的相关提示,然后用户可以通过输入窗口将第一滑动窗口的配置信息输入到电子设备中,当第一滑动窗口的配置信息输入到电子设备中后就认为获取到了第一滑动窗口的配置信息。
其中窗口长度表示窗口的大小,而窗口滑动步长则表示窗口每次移动的距离。
步骤2:根据所述第一滑动窗口的配置信息对所述活动段进行分割处理,得到多个初始信号段。
通过第一滑动窗口对活动段进行分割,相当于将第一滑动窗口嵌套在活动段对应的肌电信号序列中,通过将第一滑动窗口在肌电信号序列中按照窗口滑动步长向指定的方向移动,来将活动段划分成多个初始信号段,窗内的内容就是初始信号段对应的内容。
例如:活动段的总长为300ms,第一滑动窗口的配置信息为窗口长度为250ms,窗口滑动步长为50ms,也就是说每次滑动窗口内的内容会有200ms的重叠,根据上述第一滑动窗口的配置信息对活动段进行分割处理,会将活动段划分成2个长度均为250ms的信号段也就是2个长度为250ms的初始信号段。
步骤3:获取多个候选滑动窗口的配置信息。
在一实施例中,候选滑动窗口的配置信息包含的是候选滑动窗口的窗口长度和窗口滑动步长。
在一实施例中,获取候选滑动窗口的配置信息的方式与获取第一滑动窗口的配置信息的获取方式类似,此处不再赘述。
在本实施例中会获取到多个候选滑动窗口的配置信息,优选的每个候选滑动窗口的窗口长度均不相同,且窗口长度均小于第一滑动窗口的窗口长度。
步骤4:根据多个候选滑动窗口的配置信息分别对每个初始信号段进行分割处理,得到每个初始信号段对应的子信号段。
在一实施例中根据多个候选滑动窗口分别对每个初始信息段进行分割处理,可以采用如下方式:
从初始信号段中选取一个待分割初始信号段,可以采用随机选取的方式,也可以根据初始信号段中包含的肌电信号的采集时间的先后顺序进行选取。
分别采用各个候选滑动窗口按照候选滑动窗口的配置信息对待分割初始信号段进行分割,从而得到待分割初始信号段对应的子信号段。
重复上述步骤,直至利用候选滑动窗口分割完所有初始信号段。
一个具体的例子:
共有三个候选滑动窗口,分别为第一候选滑动窗口、第二候选滑动窗口和第三候选滑动窗口,其中第一候选滑动窗口的窗口长度为200ms,窗口滑动步长为10ms,第二候选滑动窗口的窗口长度为150ms,窗口滑动步长为20ms,第三候选滑动窗口的窗口长度为100ms,窗口滑动步长为50ms,采用三个候选滑动窗口分别对长度为250ms的初始信号段进行分割,则第一候选滑动窗口会将初始信号段分割成6个子信号段、第二候选滑动窗口会将初始信号段分割成6个子信号段、第三候选滑动窗口会将初始信号段分割成4个子信号段,则初始信号段共有16个子信号段。
步骤5:将初始信号段和初始信号段对应的子信号段作为所述活动段对应的子信号段。
例如若有活动段包含2个初始信号段,每个初始信号段包含16个子信号段,则活动段共包含34个子信号段。
在上述实施例的基础上,S13中对每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征,可以采用下述任一种方式:
第一种方式:可以将每个初始信号段对应的子信号段的特征及该初始信号段的特征组成一个子特征矩阵,然后有几个初始信号段就会有几个子特征矩阵,将这些子特征矩阵组成的矩阵集合作为第一特征。
例如:肌电信号的通道数为16,提取的特征维度为8,一个初始信号段对应的子信号段为16,再加上其自身,共17个信号段,则该初始信号段的特征数为16×8×17共2176个,也就是说该初始信号段对应的子特征矩阵中共包含2176个特征。
第二种方式:将活动段对应的所有子信号的特征共同组成一个特征矩阵,将该特征矩阵作为第一特征。
通过第一种方式对特征进行组合,后续在进行降维时分别对每个子特征矩阵进行降维,使得每次降维的计算量比较小,而采用第二中方式进行组合,在降维时由于数据更全,使得降维的效果更好。
在上述实施例的基础上,S14可以采用细菌文化基因算法对第一特征进行降维处理,在采用细菌文化基因算法进行降维处理时,采用代表候选特征(也就是第一特征中包含的特征)的非负整数对染色体进行编码,并采用基于模式识别的日间手部运动精度作为适应度。染色体长度由正则化子约束如下,以避免过度拟合:
式中σi为第i染色体/特征子集的适配度,S为待测手部运动样本数,(x,t)为来自测试域T的样本,f(x)为产生标签的运动类型分类,L为染色体长度,U为染色体长度的预定义上边界,λ是正则化参数,δ(k)是Kronecker delta函数(克罗内克函数)。
变异算子作用于每个循环中的每个染色体以导入新信息。随着随机位置的突变,原始染色体将产生多次重复。将评估沉默的染色体和未改变的染色体。然后用最适合的染色体替换原来的染色体。在本实施例中,染色体长度在包含新的候选特征或排除当前候选特征方面是可变的,并且长度变化只会发生在突变阶段。此操作所需的参数包括长度变化和变异的概率。转移操作交换两条染色体的片段以从上一条染色体获得更多信息。首先根据染色体的适应度将其分类并分成两半,其中优势集包括适应度较好的染色体,反之亦然。
然后从这两组染色体中随机选出一对染色体,在其固定长度的片段上进行点交换。染色体的改变会导致一个较低的适应度将被消除。当一个有效的交换发生时,这两个集合将以它们的新适应度重新排序。
在应用场景中,局部搜索算子基于先验知识作用于每个染色体。首先根据每个特征的邻域候选值定义局部搜索区域。然后进行评估,在区域内寻找每个循环的局部最优。在本实施例中,确定搜索区域的标准仅限于检测点的分布和特征类型。例如,通道的局部搜索将在其邻近通道之间进行,而特征类型的搜索候选将保持在同一个域中,这将充分利用大多数临床环境并提高收敛速度。
基于在基于表面肌电的手部运动识别特征选择中的先验知识,配置BMA的参数,对第一特征进行降维。
本实施例提出了融合多窗口长度的特征,在肌电信号的类型识别中多长度分割子窗口间的特征选择方案,可提高平均识别准确率。
图2为本申请实施例提供了一种外骨骼机器人控制方法的流程图,该方法可以通过外骨骼机器人中的控制模块执行,如图2所示包括如下步骤:
S21.获取肌电信号采集模块采集用户的肌电信号。
其中肌电信号采集模块可以是由一个或多个肌电传感器组成的用于采集用户肌电信号的装置,通过将肌电信号采集模块设置在用户的身体上来采集用户的肌电信号。
S22.基于预先训练好的分类器,确定所述肌电信号对应的类型。
在一实施例中,可以S22可以采用上述任一实施例提供的肌电信号分类方法来确定肌电信号的类型。
S23.基于所述肌电信号对应的类型,生成控制所述外骨骼机器人的控制指令。
在一实施例中,可以预先设置肌电信号类型与控制指令之间的对应关系表,将对应关系表预先存储在外骨骼机器人的本地存储器中或外骨骼机器人的控制模块可以访问的数据节点中,从而使得在确定肌电信号对应的类型后可以通过查表的方式确定对应的控制指令。
S24.基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
在一实施例中,外骨骼机器人的控制模块与外骨骼(即外骨骼机器人的机械结构)连接,控制模块通过将控制指令发送至外骨骼从而实现对外骨骼的控制,使得外骨骼根据控制指令运行。
本申请提供的一种外骨骼机器人控制方法中,采集到肌电信号后,确定肌电信号的类型,并根据肌电信号的类型确定对应的控制指令,根据控制指令对外骨骼机器人的外骨骼也就是机械结构进行控制,从而使机械结构执行相应的动作。在确定肌电信号的类型时可以多个长度不同的滑动窗口对肌电信号的活动段进行分割,得到多个子信号段,然后再对子信号段分别进行特征提取,从而使得提取的特征更加准确和全面,使得最终的分类结果更准确,通过多提取的特征进行降维处理,然后根据降维后的特征进行分类,使得分类器的计算量变小,进一步的提高了分类速度。
图3为本申请实施例提供了一种肌电信号分类装置的框图,如图3所示该装置可以包括:
信号处理模块301,用于获取肌电信号,以及确定所述肌电信号对应的活动段;
分割模块302,用于采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段;
特征提取模块303,用于对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征;
降维模块304,用于对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
分类模块305,用于将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。
在一实施例中,分割模块302具体用于:
获取第一滑动窗口的配置信息,所述配置信息包括窗口长度和窗口滑动步长;
根据所述第一滑动窗口的配置信息对所述活动段进行分割处理,得到多个初始信号段;
获取多个候选滑动窗口的配置信息;
根据多个候选滑动窗口的配置信息分别对每个初始信号段进行分割处理,得到每个初始信号段对应的子信号段;
将初始信号段和初始信号段对应的子信号段作为所述活动段对应的子信号段。
在一实施例中,所述降维模块304具体用于:
采用细菌文化基因算法对所述第一特征进行降维处理,得到所述第一特征对应的第二特征。
在一实施例中,所述分类模块305具体用于:
将所述第二特征输入预先训练好的线性判别分析分类器,将所述线性判别分析分类器输出的类型作为所述肌电信号对应的类型。
在一实施例中,所述信号处理模块包括信号获取模块和活动段提取模块,其中活动段提取模块具体用于:
提取所述肌电信号的包络信号,在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号,在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号,根据所述起点信号和终止点信号确定肌电信号的活动段。
在一实施例中,提取所述肌电信号的包络信号,可以包括:
获取核函数,初始化所述核函数,按照肌电信号采集时间从先到后的顺序将肌电信号逐个导入核函数中,每导入一个肌电信号后更新所述核函数,并采用梯形法计算更新后的核函数的单位等距积分,将得到的单位等距积分作为该导入核函数的肌电信号对应的包络信号。
图4为本申请实施例提供的一种外骨骼机器人控制装置的框图,如图4所示,该装置可以包括:
获取模块401,用于获取肌电信号采集模块采集用户的肌电信号;
分类模块402,用于基于预先训练好的分类器,确定所述肌电信号对应的类型;
指令生成模块403,用于基于所述肌电信号对应的类型,生成控制所述外骨骼机器人的控制指令;
控制模块404,用于基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
在一种可能的实现方式中,所述分类模块402可以包括:
信号处理子模块,用于确定所述肌电信号对应的活动段;
分割子模块,用于采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段;
特征提取子模块,用于对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征;
降维子模块,用于对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
分类子模块,用于将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。
在一实施例中,信号处理子模块具体用于:
提取所述肌电信号的包络信号,在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号,在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号,根据所述起点信号和终止点信号确定肌电信号的活动段。
在一实施例中,分割子模块,具体用于:
获取第一滑动窗口的配置信息,所述配置信息包括窗口长度和窗口滑动步长,根据所述第一滑动窗口的配置信息对所述活动段进行分割处理,得到多个初始信号段,获取多个候选滑动窗口的配置信息,根据多个候选滑动窗口的配置信息分别对每个初始信号段进行分割处理,得到每个初始信号段对应的子信号段,将初始信号段和初始信号段对应的子信号段作为所述活动段对应的子信号段。
在一实施例中,降维子模块具体用于:
采用细菌文化基因算法对所述第一特征进行降维处理,得到所述第一特征对应的第二特征。
在一实施例中,分类子模块,具体用于:
将所述第二特征输入预先训练好的线性判别分析分类器,将所述线性判别分析分类器输出的类型作为所述肌电信号对应的类型。
在本申请另一实施例中,还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信;
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下任一种方法的步骤:
获取肌电信号,以及确定所述肌电信号对应的活动段,采用长度不同的滑动窗口对所述活动段进行分割处理,得到所述活动段对应的多个子信号段,对每个所述子信号段进行特征提取,将每个所述子信号段对应的特征进行组合,得到所述活动段对应的第一特征,对所述第一特征进行降维处理,得到所述第一特征对应的第二特征,将所述第二特征输入预先训练好的分类器,以使所述分类器输出所述肌电信号对应的类型。或者
获取肌电信号采集模块采集用户的肌电信号,基于预先训练好的分类器,确定所述肌电信号对应的类型,基于所述肌电信号对应的类型,生成控制所述外骨骼机器人的控制指令,基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
上述电子设备提到的通信总线504可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线504可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口502用于上述电子设备与其他设备之间的通信。
存储器503可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器501可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请另一实施例中,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有方法程序,所述方法程序被处理器执行时实现上述任一实施例提供的肌电信号分类方法的步骤或任一实施例提供的外骨骼机器人控制方法的步骤。
本发明实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。