发明内容
本申请实施例的目的在于提供一种肌电假肢控制方法、装置、电子设备和计算机可读介质,以解决待执行动作不准确的问题。具体技术方案如下:
第一方面,本申请提供了一种肌电假肢控制方法,所述方法包括:
检测人体的表面肌电信号;
对所述表面肌电信号进行信号激活处理;
确定信号激活处理后的表面肌电信号的激活段信号,并获取所述激活段信号的轨迹序列;
在多个预设轨迹序列中,确定与所述轨迹序列满足预设匹配条件的第一轨迹序列;
根据预设的所述第一轨迹序列与动作的对应关系,确定所述轨迹序列对应的目标动作,并控制所述假肢执行所述目标动作。
可选的,所述在多个预设轨迹序列中,确定与所述轨迹序列满足预设匹配条件的第一轨迹序列包括:
分别计算多个预设轨迹序列与所述轨迹序列的路径差值;
选取多个所述路径差值中的最小路径差值,并将所述最小路径差值对应的预设轨迹序列作为第一轨迹序列。
可选的,所述多个预设轨迹序列包括类型相同速度不同的多个手势动作的轨迹序列。
可选的,所述获取所述激活段信号的轨迹序列之前,所述方法还包括:
判断信号激活通道数量是否超过预设通道数量,以及所述激活段信号的序列数据是否超过预设长度;
若信号激活通道数量超过预设通道数量,或所述激活段信号的序列数据超过预设长度,则执行所述获取所述激活段信号的轨迹序列的步骤。
可选的,所述判断信号激活通道数量是否超过预设通道数量之前,所述方法还包括:
获取通过信号通道的激活信号;
判断所述激活信号是否处于递增状态;
若所述激活信号处于递增状态,则判定所述信号通道为信号激活通道。
可选的,所述确定信号激活处理后的表面肌电信号的激活段信号包括:
通过所述表面肌电信号的均值和标准差值,计算第一阈值;
选取大于所述第一阈值的表面肌电信号作为激活段信号。
可选的,所述对所述表面肌电信号进行信号激活处理包括:
将所述表面肌电信号进行去噪处理;
计算去噪处理后的表面肌电信号的均方根;
将计算均方根后的表面肌电信号作为信号激活处理后的表面激活信号。
第二方面,本申请提供了一种肌电假肢控制装置,所述装置包括:
检测模块,用于检测人体的表面肌电信号;
处理模块,用于对所述表面肌电信号进行信号激活处理;
获取模块,用于确定信号激活处理后的表面肌电信号的激活段信号,并获取所述激活段信号的轨迹序列;
确定模块,用于在多个预设轨迹序列中,确定与所述轨迹序列满足预设匹配条件的第一轨迹序列;
控制模块,用于根据预设的所述第一轨迹序列与动作的对应关系,确定所述轨迹序列对应的目标动作,并控制所述假肢执行所述目标动作。
第三方面,本申请提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现任一所述的方法步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一所述的方法步骤。
本申请实施例有益效果:
本申请实施例提供了一种肌电假肢控制方法,假肢检测人体的表面肌电信号,然后对表面肌电信号进行信号激活处理,确定信号激活处理后的表面肌电信号的激活段信号,并获取激活段信号的轨迹序列,再在多个预设轨迹序列中,确定与轨迹序列满足预设匹配条件的第一轨迹序列,并根据预设的第一轨迹序列与动作的对应关系,确定轨迹序列对应的目标动作,并控制假肢执行目标动作。本申请中,采用轨迹序列确定目标动作,由于轨迹序列对速度不敏感,不同速度的手势动作的轨迹序列很接近,因此,采用轨迹序列可以减少速度对动作的影响,具有低错误率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上的所有优点。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供了一种肌电假肢控制方法,可以应用于假肢,用于根据检测到的人体的表面肌电信号执行相应的动作。
下面将结合具体实施方式,对本申请实施例提供的一种肌电假肢控制方法进行详细的说明,如图1所示,具体步骤如下:
步骤101:检测人体的表面肌电信号。
在本申请实施例中,表面肌电信号是肌肉收缩时伴随的电信号,记录了在肌肉自主收缩时由肌肉纤维产生的电生理活动。假肢与人体的残肢连接,可以检测到人体的表面肌电信号。
步骤102:对表面肌电信号进行信号激活处理。
在本申请实施例中,表面肌电信号包括静息电位和动作电位,其中,静息电位是细胞在静息(未受刺激)状态下膜两侧的电位差称静息电位;动作电位是可兴奋组织接受刺激而发生兴奋时,细胞膜原有的极化状态立即消失,并在膜的内外两侧发生一系列的电位变化,这种变化的电位称为动作电位。静息电位和动作电位产生的信号是不同的。
图2为包括静息电位和动作电位的表面肌电信号。如图2所示,具有明显起伏的信号为动作电位,比较平稳的信号为静息电位,动作电位和静息电位是交替出现的。对表面肌电信号进行信号激活处理,即是将动作电位的信号提取出来,并将其转化为较平滑的信号。
可选的,对表面肌电信号进行信号激活处理的过程为:将所述表面肌电信号进行去噪处理;计算去噪处理后的表面肌电信号的均方根将计算均方根后的表面肌电信号作为信号激活处理后的表面激活信号。
在本申请实施例中,如图2所示,图2为采集到的表面肌电信号,由于受采集仪器、周围环境以及自身生理复杂性等众多因数的影响,采集到的表面肌电信号不可避免会引入大量的噪声,工频干扰,采集表面肌电信号时,市电产生的电磁场会通过人体分布电容或者连接导线将50Hz及其高次谐波干扰引入到表面肌电信号中,工频干扰的幅值可能比表面肌电信号的幅值还要大,因此需要用50Hz陷波器滤除工频干扰,减少噪声。
另外,表面肌电信号具有低频性、微弱性和交变性的特点,频率范围大致在10Hz~500Hz,信号能量主要集中在50Hz~150Hz。根据表面肌电信号的频率特性,还应采用带通滤波器保留肌电的主要能量频率,其中,带通滤波器的构成方法包括两种:一种是采用单个集成运放构成的压控电压源二阶带通滤波器,另外一种是将低通滤波器与高通滤波器串联得到带通滤波器。
在对表面肌电信号进行去噪和保留主要能量频率后,还需要计算表面肌电信号的均方根。
具体的计算均方根的公式为:
其中,RMS(root mean square)为均方根,T为表面肌电信号的窗口长度,sEMG(t)为表面肌电信号,t为窗口起始时刻。
可以看到,通过上述公式计算每个时刻表面肌电信号的均方根,可以得到一段时长内表面肌电信号的变化曲线,该曲线包括曲线的幅值。
步骤103:确定信号激活处理后的表面肌电信号的激活段信号,并获取激活段信号的轨迹序列。
在本申请实施例中,图3为激活处理后的表面肌电信号示意图。可以看出,表面肌电信号包括平滑的曲度大的曲线和曲度小的曲线,其中,曲度大的曲线部分为动作电位产生的信号,由于假肢要执行动作时,人体残肢一定发生运动,就会产生动作电位,因此,需要检测动作电位的信号,即检测曲度大的曲线部分的信号。
选取曲度大的曲线中的部分信号作为激活段信号,选取过程为:通过表面肌电信号的均值和标准差值,计算第一阈值;选取大于第一阈值的表面肌电信号作为激活段信号。
在本申请实施例中,选取激活段信号的公式为:
其中,ai(t)是激活段信号,γ为样本活性因子,一般为1~15之间的整数,i为信号通道号,是基于训练集样本训练所得到的,σrest(i)为激活段信号中第i个信号通道的信号均值,σrest为激活段信号中第i个信号通道的信号标准差。
选取大于第一阈值的表面肌电信号作为激活段信号后,获取激活段信号的轨迹序列。其中,轨迹序列是假肢的运动轨迹数据。
步骤104:在多个预设轨迹序列中,确定与轨迹序列满足预设匹配条件的第一轨迹序列。
在本申请实施例中,在多个预设轨迹序列中,确定与检测到的轨迹序列相距最近的轨迹序列为第一轨迹序列。
可选的,在多个预设轨迹序列中,确定与轨迹序列满足预设匹配条件的第一轨迹序列包括:分别计算多个预设轨迹序列与轨迹序列的路径值;选取多个路径差值中的最小路径差值,并将最小路径差值对应的预设轨迹序列作为第一轨迹序列。
在本申请实施例中,数据库中包含多个预设轨迹序列,可以分别计算多个预设轨迹序列与检测到的表面肌电信号的轨迹序列的路径差值,并选取多个路径差值中的最小路径差值,最小路径差值对应的预设轨迹序列即是与表面肌电信号轨迹序列距离最近的轨迹序列,表示该两个轨迹序列最相似,其对应的动作也是最为相似的,则将该预设轨迹序列作为第一轨迹序列。
具体的,可以采用动态时间归整算法计算两个轨迹序列之间的路径差值,计算公式为:
Xk和Xl分别是两个轨迹序列,d(<aj,bj>)是Xk和Xl之间的轨迹距离,i是轨迹序列的横坐标值,t是轨迹序列的纵坐标值,aj和bj是数字表示符号。
对比序列P=<P(1)=<a1,b1>,…,P(j)=<aj,bj>,…,P(|P|)=<a|P|,b|P|>>;
P是最佳路径距离,j是通道标号,如P(1)是通道1的最佳路径距离,P(j)就是通道j的最佳路径距离,<aj,bj>是d(<aj,bj>)的缩写。
最小化所定义的累积距离为:
ρ(<aj,bj>)=d(<aj,bj>)+min(ρ(<aj-1,bj-1>),ρ(<aj,bj-1>),ρ(<aj-1,bj>))。
步骤105:根据预设的第一轨迹序列与动作的对应关系,确定轨迹序列对应的目标动作,并控制假肢执行目标动作。
在本申请实施例中,由于第一轨迹序列与表面肌电信号轨迹序列最相似,因此,可以根据第一轨迹序列与动作的对应关系,将第一轨迹序列对应的动作作为表面肌电信号轨迹序列对应的目标动作,并控制假肢执行目标动作。由于轨迹序列对速度不敏感,因此,采用轨迹序列可以减少速度对动作的影响,具有低错误率。
其中,多个预设轨迹序列可以包括同一类型不同速度的手势动作的轨迹序列,也可以包括不同类型的手势动作的轨迹序列,每个类型的手势动作包括不同速度的轨迹序列,类型具体为手势动作的类型。同一类型的手势动作中,不同速度的手势动作的轨迹序列很接近,不同速度的轨迹序列对应不同速度的动作,计算表面肌电信号轨迹序列与不同速度的轨迹序列的路径差值,并选取多个路径差值中的最小路径差值,将最小路径差值对应的预设轨迹序列作为第一轨迹序列,即是选取与检测到的轨迹序列最接近的轨迹序列作为第一轨迹序列,选取与第一轨迹序列对应的动作最接近的目标动作,可以进一步的减少速度对动作的影响。
可选的,如图4所示,获取激活段信号的轨迹序列之前,方法还包括:
步骤401:判断信号激活通道数量是否超过预设通道数量,以及激活段信号的序列数据是否超过预设长度。
在本申请实施例中,信号通道是假肢检测表面肌电信号的通道,信号激活通道是检测到激活段信号的通道,通道的数量可以为多个,信号激活通道数量越多,表明激活段信号越多。激活段信号的序列数据是手势动作持续一定时间内,激活段信号产生的序列数据,激活段信号产生的序列数据越多,表明手势动作持续的时间越长。
若信号激活通道数量超过预设通道数量,或激活段信号的序列数据超过预设长度,则执行步骤402;若信号激活通道数量没超过预设通道数量,或激活段信号的序列数据没超过预设长度,则执行步骤403。
步骤402:获取激活段信号的轨迹序列。
在本申请实施例中,若信号激活通道数量超过预设通道数量,或激活段信号的序列数据超过预设长度,表示激活段信号足够多,或手势动作持续的时间足够长,那么轨迹序列是准确的,则获取激活段信号的轨迹序列。
人体与假肢之间设有8个信号通道用于传递表面肌电信号,若预设通道数量为5,若信号激活通道为6,表明目前有6个信号通道检测到了激活段信号,信号激活通道数量大于预设通道数量,表明检测到的激活段信号足够多,那么可以认为轨迹序列是准确的;或者,若检测到的激活段信号的序列数据长度为N,预设的序列数据长度为X,序列数据长度N超过预设序列数据长度X时,表明检测到的激活段信号的序列数据足够多,那么手势动作维持的时间足够长,检测到的轨迹序列越准确。
步骤403:继续对表面肌电信号进行信号激活处理。
在本申请实施例中,若信号激活通道数量没超过预设通道数量,或激活段信号的序列数据没超过预设长度,表示激活段信号不够多,或手势动作持续的时间不够长,那么轨迹序列是不准确的,则继续对表面肌电信号进行信号激活处理。
可选的,判断信号激活通道数量是否超过预设通道数量之前,方法还包括:获取通过信号通道的激活信号;判断激活信号是否处于递增状态;若激活信号处于递增状态,则判定信号通道为信号激活通道。
在本申请实施例中,检测通过信号通道的表面肌电信号,并获取其中的激活信号,判断激活信号是否处于递增状态,若激活信号处于递增状态,表示持续有动作电位输出,则该信号通道为信号激活通道;若激活信号处于未递增状态,表示非持续有动作电位输出,则该信号通道不是信号激活通道。
本申请对上述整体执行过程进行举例,数据库中包含6种不同的手势动作,每类手势动作持续5s时间,重复6次,则每种手势动作包含6次不同速度的表面肌电信号。假肢将检测到的表面肌电信号进行50Hz陷波器处理,去除信号中的噪声,然后用2阶20~450Hz巴特沃斯滤波器进行滤波,再选取表面肌电信号中的激活段信号,通过动态时间归整算法获取激活段信号的轨迹序列,并计算激活段信号的轨迹序列与数据库中36个预设轨迹序列的路径差值,确定最小路径差值,将最小路径差值对应的预设轨迹序列的动作,作为获取到的激活段信号的轨迹序列的目标动作,控制假肢执行目标动作。
可选的,本申请实施例还提供了一种肌电假肢控制方法的处理流程,如图5所示,具体步骤如下。
步骤501:检测人体的表面肌电信号。
在本申请实施例中,假肢与人体的残肢连接,可以检测到人体的表面肌电信号。
步骤502:去除表面肌电信号中的噪声。
在本申请实施例中,通过50Hz陷波器滤除工频干扰,减少噪声。
步骤503:计算去除噪声后的表面肌电信号的均方根。
在本申请实施例中,通过公式:计算去除噪声后的表面肌电信号的均方根。
步骤504:确定信号激活处理后的表面肌电信号的激活段信号。
在本申请实施例中,通过表面肌电信号的均值和标准差值,计算第一阈值;选取大于第一阈值的表面肌电信号作为激活段信号。
步骤505:确定信号激活通道。
在本申请实施例中,获取通过信号通道的激活信号;判断激活信号是否处于递增状态;若激活信号处于递增状态,则判定信号通道为信号激活通道。
步骤506:判断信号激活通道数量是否超过预设通道数量,和激活段信号的序列数据是否超过预设长度。
步骤507:获取激活段信号的轨迹序列。
在本申请实施例中,若信号激活通道数量超过预设通道数量,或激活段信号的序列数据超过预设长度,表示激活段信号足够多,或手势动作持续的时间足够长,那么轨迹序列是准确的,则获取激活段信号的轨迹序列。
步骤508:选取多个预设轨迹序列与轨迹序列的路径差值中的最小路径差值,并将最小路径差值对应的预设轨迹序列作为第一轨迹序列。
在本申请实施例中,数据库中包含多个预设轨迹序列,可以分别计算多个预设轨迹序列与检测到的表面肌电信号的轨迹序列的路径差值,并选取多个路径差值中的最小路径差值。
步骤509:根据预设的第一轨迹序列与动作的对应关系,确定轨迹序列对应的目标动作,并控制假肢执行目标动作。
在本申请实施例中,由于第一轨迹序列与表面肌电信号轨迹序列最相似,因此,可以根据第一轨迹序列与动作的对应关系,将第一轨迹序列对应的动作作为表面肌电信号轨迹序列对应的目标动作,并控制假肢执行目标动作。
基于相同的技术构思,本申请实施例还提供了一种肌电假肢控制装置,如图6所示,该装置包括:
检测模块601,用于检测人体的表面肌电信号;
处理模块602,用于对表面肌电信号进行信号激活处理;
第一获取模块603,用于确定信号激活处理后的表面肌电信号的激活段信号,并获取激活段信号的轨迹序列;
确定模块604,用于在多个预设轨迹序列中,确定与轨迹序列满足预设匹配条件的第一轨迹序列;
控制模块605,用于根据预设的第一轨迹序列与动作的对应关系,确定轨迹序列对应的目标动作,并控制假肢执行目标动作。
可选的,确定模块604具体用于:
分别计算多个预设轨迹序列与轨迹序列的路径差值;
选取多个路径差值中的最小路径差值,并将最小路径差值对应的预设轨迹序列作为第一轨迹序列。
可选的,多个预设轨迹序列包括类型相同速度不同的手势动作的轨迹序列。
可选的,装置还包括:
第一判断模块,用于判断信号激活通道数量是否超过预设通道数量,和激活段信号的序列数据是否超过预设长度;
执行模块,用于若信号激活通道数量超过预设通道数量,或激活段信号的序列数据超过预设长度,则执行获取激活段信号的轨迹序列的步骤。
可选的,装置还包括:
第二获取模块,用于获取通过信号通道的激活信号;
第二判断模块,用于判断激活信号是否处于递增状态;
判定模块,用于若激活信号处于递增状态,则判定信号通道为信号激活通道。
可选的,第一获取模块603具体用于:
通过表面肌电信号的均值和标准差值,计算第一阈值;
选取大于第一阈值的表面肌电信号作为激活段信号。
可选的,处理模块602具体用于:
将所述表面肌电信号进行去噪处理;计算去噪处理后的表面肌电信号的均方根;将计算均方根后的表面肌电信号作为信号激活处理后的表面激活信号。
本申请实施例提供了一种肌电假肢控制方法,假肢检测人体的表面肌电信号,然后对表面肌电信号进行信号激活处理,确定信号激活处理后的表面肌电信号的激活段信号,并获取激活段信号的轨迹序列,再在多个预设轨迹序列中,确定与轨迹序列满足预设匹配条件的第一轨迹序列,并根据预设的第一轨迹序列与动作的对应关系,确定轨迹序列对应的目标动作,并控制假肢执行目标动作。本申请中,采用轨迹序列确定目标动作,由于轨迹序列对速度不敏感,不同速度的手势动作的轨迹序列很接近,因此,采用轨迹序列可以减少速度对动作的影响,具有低错误率。
基于相同的技术构思,本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现上述步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended IndustryStandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(RandomAccess Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。