肌电信号处理、外骨骼机器人控制方法及装置
技术领域
本申请涉及机器人领域,尤其涉及一种肌电信号处理方法、外骨骼机器人控制方法及装置。
背景技术
近年来,随着工业、交通事业的发展,人类因工业生产、工程施工、车祸等原因而导致截肢的患者呈逐年上升的趋势。对手部缺失的残疾人,带有仿生控制功能的多自由度肌电假手在一定程度上能够使他们更好的生活和融入社会,因而假肢需求变得更为迫切。
通过输入开关、力传感器、肌电信号等控制信号,假肢控制器能帮助使用者驱动假肢实现不同关节的动作。许多现代假体的一个基本组成部分是肌电控制系统,该系统利用来自于人体肌肉的肌电图信号来控制假体的运动。
为了实现假手的控制,肌电信号处理是最常用的控制信息提取方式。肌电信号(surface Electromyography,sEMG)是指在肌肉动作或静止状态下,在皮肤表面通过电极采集到的一定长度的信号,具有幅值小,易受干扰的特点。
目前少通道肌电信号的处理方法包括阈值开关控制、单自由度比例控制和编码控制等,其中阈值开关控制和单自由度比例控制通常是基于肌电信号幅度的阈值进行控制,一般一次只能控制一个自由度,可控自由度较少,无法适应当前灵巧假肢的运动功能,而编码控制虽然理论上可以控制任意多的自由度,但是随着运动功能的复杂化,编码方式也变得更加复杂,使假手控制变得不直观,且编码过程时延较大,由于肌电信号的微弱性、混叠性和低信噪比,导致从少通道肌电信号识别多模式动作变得比较困难。
发明内容
为了解决上述少通道肌电信号实现多模式动作识别困难的技术问题或者至少部分地解决上述技术问题,本申请提供了一种肌电信号处理、外骨骼机器人控制方法及装置。
第一方面,本申请提供了一种肌电信号处理方法,包括:
获取肌电信号;
从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征;
对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型。
在一种可能的实现方式中,对所述第一特征进行降维处理,得到所述第一特征对应的第二特征,包括:
采用主成分分析算法对所述第一特征进行降维处理,将降维处理后得到的特征作为第二特征。
在一种可能的实现方式中,将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型,包括:
将所述第二特征输入预先训练好的正则化判别分析分类器中,将所述正则化判别分析分类器输出的类型作为所述肌电信号对应的类型。
在一种可能的实现方式中,从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征,包括:
采用滑动窗口算法按照预设的窗口长度将所述活动段划分为多个子窗口;
分别提取各个子窗口内的肌电信号的特征;
根据各个子窗口内的肌电信号的特征,分别生成各个子窗口对应的特征向量;
将由所述各个子窗口对应的特征向量组成的特征矩阵作为所述活动段的第一特征。
在一种可能的实现方式中,从所述肌电信号的活动段中进行特征提取之前,所述方法还包括:
提取所述肌电信号的包络信号;
在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号;
在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号;
根据所述起点信号和终止点信号确定肌电信号的活动段。
在一种可能的实现方式中,提取所述肌电信号的包络信号,包括:
初始化核函数;
按照肌电信号采集时间从先到后的顺序,将肌电信号逐个导入核函数中;
每导入一个肌电信号后更新所述核函数,并采用梯形法计算更新后的核函数的单位等距积分;
将得到的单位等距积分作为该导入核函数的肌电信号对应的包络信号。
在一种可能的实现方式中,获取肌电信号后,所述方法还包括:
判断所述肌电信号的值是否大于基线阈值;
若不大于基线阈值,则对所述肌电信号的值进行调整;
若大于基线阈值,则所述肌电信号的值不变。
第二方面,本申请实施例还提供了一种外骨骼机器人控制方法,包括:
通过肌电信号采集模块采集肌电信号;
确定所述肌电信号对应的类型;
基于所述肌电信号的类型,生成控制所述外骨骼机器人的控制指令;
基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
在一种可能的实现方式中,确定所述肌电信号对应的类型,包括:
获取肌电信号;
从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征;
对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型。
第三方面,本申请实施例还提供了一种肌电信号处理装置,包括:
获取模块,用于获取肌电信号;
特征提取模块,用于从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征;
降维模块,用于对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
分类模块,用于将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型。
在一种可能的实现方式中,所述降维模块具体用于:
采用主成分分析算法对所述第一特征进行降维处理,将降维处理后得到的特征作为第二特征。
第四方面,本申请实施例还提供了一种外骨骼机器人控制装置,包括:
采集模块,用于通过肌电信号采集模块采集肌电信号;
类别确定模块,用于确定所述肌电信号对应的类型;
指令确定模块,用于基于所述肌电信号的类型,生成控制所述外骨骼机器人的控制指令;
控制模块,用于基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
在一种可能的实现方式中,所述类别确定模块具体用于:
获取肌电信号;
从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征;
对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型。
第五方面,本申请实施例还提供一种计算机设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现第一方面所述的肌电信号处理方法或第二方面所述的外骨骼机器人控制方法。
第六方面,本申请实施例还提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面所述的肌电信号处理方法或第二方面所述的外骨骼机器人控制方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
本申请实施例提供的一种肌电信号处理方法,获取肌电信号,对肌电信号活动段进行特征提取,得到肌电信号的第一特征,对第一特征进行降维,得到第一特征对应的第二特征,将第二特征输入到预先训练好的分类器,得到肌电信号对应的类型。在本方案中通过特征提取和降维的方式,降低了特征的维数,降低了计算量,减少了计算开销,通过分类器对属于不同类型的肌电信号进行分类,得到较高分类准确率,进一步的可以根据肌电信号的分类结果实现对外骨骼机器人的多自由度控制。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种肌电信号处理方法的流程图;
图2为本申请实施例提供的一种外骨骼机器人控制方法的流程图;
图3为本申请实施例提供的一种肌电信号处理装置的框图;
图4为本申请实施例提供的一种外骨骼机器人控制装置的框图;
图5为本申请实施例提供的一种电子设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
外骨骼机器人是由肌电信号控制的机器人,用户通过穿戴外骨骼机器人可以辅助用户运动,用户在运动之前通常会产生肌电信号,肌电信号是一种包含使用者潜在动作意识的综合生物电信号,外骨骼机器人基于肌电信号的动作超前性,来识别用户的动作意图,以此来控制外骨骼机器人的运动。
外骨骼机器人上通常设置有肌电信号采集模块(例如肌电传感器)、控制模块(例如cpu控制器)和外骨骼也就是机械结构(例如机械手臂、机械手、机械腿等),肌电信号采集模块通过安装在用户皮肤上的电极采集肌电信号,控制模块根据肌电信号采集模块采集的肌电信号确定是否产生动作电位(即检测肌电信号是否存在活动段),在产生动作电位时,根据动作电位确定用户的动作意图,进而根据动作意图控制机械结构运动。
目前现有的外骨骼机器人中为了降低硬件成本通常采用少通道(例如2通道)肌电系统作为肌电信号采集模块进行肌电信号采集,外骨骼机器人中控制模块根据少通道肌电系统采集的肌电信号对机械结构进行控制时通常采用阈值开关控制方法、单自由度比例控制方法或编程方式控制方法等,其中阈值开关控制方法和单自由度比例控制方法是基于肌电信号幅度的阈值控制,一般一次只能控制一个自由度,可控自由度较少,无法适应当前灵巧假肢的运动功能,而编码控制虽然理论上可以控制任意多的自由度,但是随着运动功能的复杂化,编码方式也变得更加复杂,使假手控制变得不直观,且编码过程时延较大。
由于肌电信号的微弱性、混叠性和低信噪比,导致从少通道肌电信号识别多模式动作变得比较困难,因而实时控制的多自由度外骨骼机器人商用化并不理想。
以肌电假手这一外骨骼机器人为例,传统的肌电假手控制方法主要为肌电信号输入之后经过整形滤波并经过信号处理后对假手中手掌的开合自由度的进行控制。此类肌电假手由于直接从手部采集肌肉电信号,控制假手电机带动假手的机械结构运动,只有开/合一个自由度。
本申请目的是在现有商业外骨骼机器人的基础上,采用较少通道数(2通道)采集肌电信号,通过特征提取和PCA(principal components analysis,主成分分析技术)投影的方式,降低特征维数,减少计算量,并最大限度的保持原有信息,通过正则化判别分析分类器,最大限度地对属于不同动作类别的肌电信号进行正确分类,从而可以根据少通道肌电信号实现对外骨骼机器人的多自由度控制,并提高准确率。
图1为本申请实施例提供的一种肌电信号处理方法的流程图,该方法可以应用于外骨骼机器人中的控制模块,如图1所示,该方法可以包括如下步骤:
S11.获取肌电信号。
通常若是需要通过对肌电信号的分类结果对外骨骼机器人进行控制,则可以获取肌电采集模块(例如肌电传感器)实时采集的肌电信号,若只是想对肌电信号进行分类则还可以获取预先存储的肌电信号。
在获取肌电信号采集模块实时采集的肌电信号时,可以通过有线或无线的方式获取肌电采集模块采集的肌电信号。
在一实施例中,获取的肌电信号可以是用户前臂的伸肌和屈肌的两路肌电信号。
S12.从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征。
其中第一特征是可以表征肌电信号的固有特性的数据。
因为本申请中提取肌电信号第一特征的目的是为了根据第一特征确定肌电信号对应的类型,所以优选的,提取的第一特征可以包含对肌电信号的分类影响较大的特征,例如肌电信号的波长特征、过零点数、斜率符号变化量、AR参数模型和/或偏度等。
S13.对所述第一特征进行降维处理,得到所述第一特征对应的第二特征。
对肌电信号的分类影响较大的特征的种类通常不是一个而是多个,也就是说第一特征中通常包含多个特征,这就使得若直接对第一特征进行分析通常需要较大的计算量,使得计算开销较大,所以为了减少计算量降低计算开销,本方案对提取第一特征进行降维处理,得到第一特征对应的第二特征。
S14.将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型。
分类器用于根据肌电信号的特征对肌电信号对应的类型进行识别,其中类型通常指动作类型,例如握拳、屈腕、伸腕、伸掌、拇指弯曲、食指弯曲、中指弯曲、无名指弯曲、小指弯曲、拇指弯曲,拇指食指组合弯曲等等,根据肌电信号的类型可以对相应的机械结构进行控制。
本申请实施例提供的一种肌电信号处理方法,获取肌电信号,对肌电信号活动段进行特征提取,得到肌电信号的第一特征,对第一特征进行降维,得到第一特征对应的第二特征,将第二特征输入到预先训练好的分类器,得到肌电信号对应的类型。在本方案中通过特征提取和降维的方式,降低了特征的维数,降低了计算量,减少了计算开销,通过分类器对属于不同类型的肌电信号进行分类,得到较高分类准确率,进一步的可以根据肌电信号的分类结果实现对外骨骼机器人的多自由度控制。
在上述实施例的基础上,S11中获取肌电信号时可以获取肌电信号采集模块采集的肌电信号,例如可以使用肌电信号采集模块采集前臂的伸肌和屈肌的两路肌电信号,将采集的肌电信号通过有线或无线的传输方式传输到控制模块中。
其中采集的肌电信号可以是针电极肌电信号也可以是表面电极肌电信号。
在上述实施例的基础上,在S12之前还可以包括:
确定肌电信号的活动段,具备的确定肌电信号的活动段可以包括下述步骤:
步骤1:提取所述肌电信号的包络信号。
在一种可能的实现方式中,可以采用下述步骤提取肌电信号的包络信号:
步骤1.1:初始化核函数。
其中核函数可以为包括获取的肌电信号的前序信号的数据集,核函数的初始状态为0,比如核函数为ke(jk)={j1,j2,j3,…,jn},则初始状态下的核函数中的j1,…,jn=0,其中j1,…,jn表示核函数中的数据点,在信号处理过程中逐渐丰富核函数中的数据。
步骤1.2:按照肌电信号采集时间从先到后的顺序,将肌电信号逐个导入核函数中。
比如按照获取的肌电信号的采集时间对肌电信号进行排序后肌电信号的顺序为:s1,s2,…si,si+1,…,则按照上述顺序分别将上述肌电信号导入到核函数中。
步骤1.3:每导入一个肌电信号后更新所述核函数,并采用梯形法计算更新后的核函数的单位等距积分。
比如将肌电信号s1导入核函数中,核函数就更新为kernel={j2,…,jn,s1},其中j2,…,jn=0,将s2导入核函数中,核函数就更新为kernel={j3,…,jn,s1,s2},其中j3,j4,…,jn=0,依次类推。
每导入一个肌电信号就采用梯形法对更新后的核函数计算一次单位等距积分,比如导入s1后,就采用梯形法按照下式计算kernel={j2,…,jn,s1}的单位等距积分envelopeSignal:
envelopeSignal=sum{j2,…,jn,s1}÷2;
导入si+1后,就采用梯形法按照下式计算kernel={j3,…,jn,s1,s2}的单位等距积分envelopeSignal:
envelopeSignal=sum{j3,…,jn,s1,s2}÷2;
步骤1.4:将得到的单位等距积分作为该导入核函数的肌电信号对应的包络信号。
即将肌电信号s1对应的单位等距积分作为肌电信号s1对应的包络信号y1,将肌电信号s2对应的单位等距积分作为肌电信号si+1对应的包络信号y2,以此类推,由肌电信号{s1,s2,…,si,si+1,…}计算得出包络信号{y1,y2,…,yi,,yi+1,…}。
步骤2:在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号。
步骤3:在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号。
其中预设阈值为预先设定的用于判断肌电信号是否处于活动段的信号值,当肌电信号大于预设阈值时可以确定该肌电信号处于活动段,当肌电信号不大于预设阈值时,则确定该肌电信号处于静息段,静息段为动作段之间平稳的部分。在一种可能的实现方式中,可以根据经验设定预设阈值的具体数值,并且可以根据需求对预设阈值进行调整,以提高活动段确定的准确性。
因为动作段内的肌电信号的信号值会高于静息段内肌电信号的信号值,所以通过判断当前包络信号与其之前的包络信号之间的信号值的变化确定当前包络信号是否为动作段的起点信号或终点信号。
步骤4:根据所述起点信号和终止点信号确定肌电信号的活动段。
因为肌电信号在刚刚进入活动段或者刚刚离开活动段时,其信号数据的幅度较小,难以根据肌电信号值区分静息段和活动段,容易误判,准确率低,而在本实施例中,首先对肌电信号进行基于核函数的处理,得到肌电信号对应的包络信号,包络信号在刚刚进入活动段或者刚刚离开活动段时都有较大的幅值变化,从而提高了活动段检测的准确性。
上述确定活动段的方式只是一个示例,除了上述方式还可以采用其他方式确定活动段,比如短时傅里叶方法、自组织人工神经网络方法、移动平均方法等。
在上述实施例的基础上,在S1获取肌电信号后,为了保证后续对活动段检测的准确性,在确定肌电信号的活动段之前,该肌电信号处理方法还可以包括:
对获取的肌电信号进行校正,具体的可以采用下述方式对肌电信号进行校正:
判断所述肌电信号的值是否大于基线阈值;若不大于基线阈值,则对所述肌电信号的值进行调整;若大于基线阈值,则所述肌电信号的值不变。
其中基线阈值可以根据静息态肌电信号数据确定,在一种可能的实现方式中,可以请被探测用户处于静息态并采集数据,该数据为确认的静息态肌电信号数据,在一种可能的实现方式中,可以根据下述公式计算基线阈值thr:
thr=mean{MAV1,MAV2,MAV3,…MAVK}+A
其中,mean取平均值操作的运算符,MAVi为对采集的静息态肌电信号数据利用滑动窗口算法进行分割后,滑动窗口内信号的最大值,i为1到k之间的正整数,k为静息态肌电信号数据分割得到的滑动窗口的个数,A为预设的常数,可以基于经验设定常数A,并在计算过程中可以调整A的值,以提高活动段确定的准确性。
获取肌电信号后基于下式对肌电信号进行校正:
其中xi为肌电信号si的信号值,如si的信号值小于基线阈值,则将si的信号值调整为0,若si的信号值不小于基线阈值,则不对si的信号值进行调整。
在本实施例中,通过对肌电信号进行校正减弱了个体差异对信号的影响,再对校正后的肌电信号提取包络信号,相当于对获取的肌电信号进行了二次转换,增大了静息段电位和活动段电位之间的差异值,提升了后续活动段检测的准确度。
在上述实施例的基础上,S12中对活动段进行特征提取得到第一特征可以包括下述步骤:
步骤1:采用滑动窗口算法按照预设的窗口长度将所述活动段划分为多个子窗口。
其中窗口长度可以根据需求或经验设定,具体不做限定。
因为一个太长的序列在进行相应的处理时,比如说提取特征会带来诸多不便,而且对序列的信息描述不准确,所以通过滑动窗口对活动段进行分割,是为了更方便和准确的提取活动段的特征。
步骤2:分别提取各个子窗口内的肌电信号的特征。
具体提取哪些特征可以根据需求设定,例如可以提取波长特征、过零点数、斜率符号变化数、AR模型、偏度等特征。
波长可以采用下式计算:
其中WL表示波长,k表示子窗口内肌电信号的个数,波长的长度是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表示模型阶数,w(n)表示随机白噪声。
偏度是衡量数据偏斜的方向及偏斜程度的特征向量。设是运动传感器传感器数据的一个样本x,则数据x的偏度可估计为:
式中SK为偏度,xi为样本观测值,n为样本个数,xmean为样本n次观测值的平均值,sd为样本标准差。
步骤3:根据各个子窗口内的肌电信号的特征,分别生成各个子窗口对应的特征向量。
在进行特征提取时,一个子窗口可能会提取多个特征,可以由这些特征组成该子窗口对应的特征向量。
步骤4:将由所述各个子窗口对应的特征向量组成的特征矩阵作为所述活动段的第一特征。
一个子窗口对应一个特征向量,多个子窗口就可以组成一个特征矩阵,将该特征矩阵作为活动段的第一特征,便于分析和计算。
在上述实施例的基础上,S13可以采用主成分分析算法PCA对第一特征进行降维处理,将降维处理后得到的特征作为第二特征。
特征降维就是对特征的投影变换,特征投影变换是模式识别中的一种重要工具,它常被用来提取冗余特征中的重要信息(如区分度信息,方差信息等),以提升分类器的泛化性能。
PCA是一种基于线性变换进行向量降维的方法,其核心思想是通过坐标旋转(即寻找新的正交基),将数据投影到使数据方差最大化的若干个坐标轴上,得到数据在新空间的表示,以消除原数据空间的多重共线性,从而达到数据降维的目的。
通常欲获得低维子空间,最简单的是对原始高维空间进行线性变化,给定d维空间中的样本集X{xi,x2,…xm}∈Rd*m,其中xi,x2,…xm均是d维的向量,变换之后得到的n维空间Z中的样本,其中n<<d。
Z=UT*X
式中,U∈Rd*m为变换矩阵(即找到的新的正交基),U是由X的协方差的特征最大的前n项所对应的特征向量构成的正交矩阵;Z为X{xi,x2,…xm}∈Rd*m在新空间中的投影,是高维X降维后的低维数据。
若第一特征为一个d行m列的特征矩阵X,其中m表示子窗口的个数,d表示每个子窗口提取的特征的个数(例如若能提取的特征是波长特征、过零点数、斜率符号变化数、AR模型和偏度,则n的值为5),在用PCA对第一特征进行降维的过程包括:
将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值,求出协方差矩阵,求出协方差矩阵的特征值及对应的特征向量,将特征向量按对应特征值大小从上到下按行排列成矩阵,取前n行组成矩阵U,U是由X的协方差的特征最大的前n项所对应的特征向量构成的正交矩阵,Z=UT*X即为降维到n维后的数据。
对特征进行降维的目标是要从输入的特征空间中提取出具有最佳区分度的信息。PCA是一种非监督的降维方法(无需分类标签),能够识别特征的线性投影与数据中主要变化一致的特征。PCA与LDA相比,不需要标签信息,在降低了维数的同时能最大限度的保持原有信息。PCA仅需要保留特征向量矩阵与样本的均值向量,即可通过简单的向量减法和矩阵向量的乘法将新样本投影至低维空间中,简单、方便。
虽然低维空间与原始的高维空间存在不同,但实际中舍弃高维信息中的部分信息往往是必要的:一方面,舍弃部分信息后消除了多重共线性,使样本的采集密度增大、数据更易使用,降低很多算法的计算开销,这也正是降维的重要动机;另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能在一定的程度上起到去噪的效果。
在上述实施例的基础上,S14中可以采用正则化判别分析分类器RDA进行分类,RDA通过拟合类特定的协方差矩阵来提供线性判别分析LDA和二次判别分析QDA之间的连续关系。通过在LDA和QDA之间提供一个连续体,RDA可以保证至少达到与其他两种方法相同的性能,而且采用RDA还可以避免过度拟合的问题。
在利用RDA进行分类之前先对RDA进行训练,以保证分类结果的准确性。
正则化判别分析(RDA)模型有两个参数(gamma和lambda),两个参数数值都在0和1之间,对RDA进行训练是需要先设定正则化超参数gamma和lambda,具体的可以使用在[0,1]范围内步长为0.025的线性搜索,选取验证集交叉损耗最小的参数值作为设定的超参数值。
超参数优化后,获取训练样本,训练样本为对应的类型已知的肌电信号的特征向量,将训练样本通过PCA降维后输入RDA分类器中进行分类,根据分类结果对RDA进行调整,然后通过验证集对训练后的RDA进行验证,在进行验证时可以采用10倍交叉验证来评估训练后的RDA分类器的性能,选取性能最好的RDA分类器作为S14中使用的分类器。
在一种可能的实现方式中,训练样本可以采用下述方式获取:
对被测试用户的相关位置(例如屈肌和伸肌等)佩戴上肌电信号采集装置(例如臂环、肌电采集传感器、肌电采集电极等),采集被测试用户包含握拳、屈腕、伸腕、伸掌、拇指弯曲、食指弯曲、中指弯曲、无名指弯曲、小指弯曲、拇指弯曲,拇指食指组合弯曲等多种手势多次重复动作的肌电信号。为了减小采集过程中带来的误差,每种手势测6次,每次测试之间休息5秒,为避免疲劳,各类手势之间休息30秒。提取采集的肌电信号活动段的特征作为训练样本。
在本实施例中,通过对分类器进行训练,保证了分类结果的准确性。
本申请还提供了一种外骨骼机器人的控制方法的实施例,应用于外骨骼机器人,外骨骼机器人中可以包括肌电信号采集模块、控制模块和机械结构,如图2所示,该方法可以包括如下步骤:
S21.通过肌电信号采集模块采集肌电信号。
S22.确定所述肌电信号对应的类型。
具体的确定肌电信号对应的类型可以包括如下步骤:
获取肌电信号,从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征,对所述第一特征进行降维处理,得到所述第一特征对应的第二特征,将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型。
具体的可以采用主成分分析算法对所述第一特征进行降维处理。
S23.基于所述肌电信号的类型,生成控制所述外骨骼机器人的控制指令。
在本实施例中可以预先设置肌电信号类型与控制指令之间的对应关系表,将对应关系表预先存储在外骨骼机器人的本地存储器中或外骨骼机器人的控制模块可以访问的数据节点中,从而使得在确定肌电信号对应的类型后可以通过查表的方式确定对应的控制指令。
S24.基于所述控制指令控制所述外骨骼机器人的外骨骼运行。
在本实施例提供的一种外骨骼机器人控制方法中,采集到肌电信号后,确定肌电信号的类型,并根据肌电信号的类型确定对应的控制指令,根据控制指令对外骨骼机器人的外骨骼也就是机械结构进行控制,从而使机械结构执行相应的动作。在确定肌电信号的类型时可以采用较少通道的肌电信号(例如2通道),通过特征集提取和PCA投影的方式,以确保最大限度的分离之间的手指运动,最大限度地对不同类型的肌电信号进行分类,进而根据类别实现对机械结构多自由度的控制。
在上述实施例的基础上,将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型,可以包括:
将所述第二特征输入预先训练好的正则化判别分析分类器中,将所述正则化判别分析分类器输出的类型作为所述肌电信号对应的类型。
在上述实施例的基础上,从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征,可以包括:
采用滑动窗口算法按照预设的窗口长度将所述活动段划分为多个子窗口;
分别提取各个子窗口内的肌电信号的特征;
根据各个子窗口内的肌电信号的特征,分别生成各个子窗口对应的特征向量;
将由所述各个子窗口对应的特征向量组成的特征矩阵作为所述活动段的第一特征。
在上述实施例的基础上,从所述肌电信号的活动段中进行特征提取之前,还可以包括:
提取所述肌电信号的包络信号;
在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号;
在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号;
根据所述起点信号和终止点信号确定肌电信号的活动段。
在上述实施例的基础上,提取所述肌电信号的包络信号,可以包括:
初始化核函数;
按照肌电信号采集时间从先到后的顺序,将肌电信号逐个导入核函数中;
每导入一个肌电信号后更新所述核函数,并采用梯形法计算更新后的核函数的单位等距积分;
将得到的单位等距积分作为该导入核函数的肌电信号对应的包络信号。
在上述实施例的基础上,获取肌电信号后,还可以包括:
判断所述肌电信号的值是否大于基线阈值;
若不大于基线阈值,则对所述肌电信号的值进行调整;
若大于基线阈值,则所述肌电信号的值不变。
在上述实施例的基础上,确定出肌电信号的活动段后,在对活动段进行特征提取之前,该肌电信号处理方法还可以包括:对活动段内的肌电信号进行预处理,具体的可以采用下述方式进行预处理:
利用陷波器去除50HZ功率干扰,然后再进行20~450Hz带通滤波。
通过对活动段进行预处理,提高了后续特征提取的准确性。
本申请还提供了一种肌电信号处理装置的实施例,如图3所示,该装置可以包括:
获取模块301,用于获取肌电信号;
特征提取模块302,用于从所述肌电信号的活动段中进行特征提取,得到所述活动段对应的第一特征;
降维模块303,用于对所述第一特征进行降维处理,得到所述第一特征对应的第二特征;
分类模块304,用于将所述第二特征输入预先训练好的分类器中,以使所述分类器输出所述肌电信号对应的类型。
在上述实施例的基础上,降维模块303具体用于:
采用主成分分析算法对所述第一特征进行降维处理,将降维处理后得到的特征作为第二特征。
在上述实施例的基础上,分类模块304具体用于:
将所述第二特征输入预先训练好的正则化判别分析分类器中,将所述正则化判别分析分类器输出的类型作为所述肌电信号对应的类型。
在上述实施例的基础上,特征提取模块302具体用于:
采用滑动窗口算法按照预设的窗口长度将所述活动段划分为多个子窗口;
分别提取各个子窗口内的肌电信号的特征;
根据各个子窗口内的肌电信号的特征,分别生成各个子窗口对应的特征向量;
将由所述各个子窗口对应的特征向量组成的特征矩阵作为所述活动段的第一特征。
在上述实施例的基础上,该装置还可以包括活动段检测模块,活动段检测模块具体用于:
提取所述肌电信号的包络信号;
在当前包络信号的前一个或多个包络信号不大于预设阈值的情况下,若当前包络信号大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的起点信号;
在当前包络信号的前一个或多个包络信号大于预设阈值的情况下,若当前包络信号不大于预设阈值,则确定当前包络信号对应的肌电信号为活动段的终止点信号;
根据所述起点信号和终止点信号确定肌电信号的活动段。
在上述实施例的基础上,提取所述肌电信号的包络信号,可以包括:
初始化核函数;
按照肌电信号采集时间从先到后的顺序,将肌电信号逐个导入核函数中;
每导入一个肌电信号后更新所述核函数,并采用梯形法计算更新后的核函数的单位等距积分;
将得到的单位等距积分作为该导入核函数的肌电信号对应的包络信号。
在上述实施例的基础上,该装置还可以包括校正模块,校正模块具体用于:
判断所述肌电信号的值是否大于基线阈值;
若不大于基线阈值,则对所述肌电信号的值进行调整;
若大于基线阈值,则所述肌电信号的值不变。
本申请还提供了一种外骨骼机器人控制装置,如图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可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口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)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请另一实施例中,还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述任一所述的肌电信号处理方法的步骤或任一所述的外骨骼机器人的控制方法。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。