发明内容
本申请提供了一种手势识别方法、人机交互方法、装置、设备及存储介质,用以简化手势识别过程,提高手势识别效率。
第一方面,本申请提供了一种手势识别方法,包括:
获取表面肌电信号;
从所述表面肌电信号中获取有效表面肌电信号,其中,所述有效表面肌电信号为肌肉活动时间段内的表面肌电信号;
提取所述有效表面肌电信号的信号特征;
根据所述信号特征,获得所述表面肌电信号对应的手势。
可选地,所述表面肌电信号是由前臂肌群运动产生的,且不同的手势对应的表面肌电信号不同。
可选地,从所述表面肌电信号中获取有效表面肌电信号之前,还包括:
滤除所述表面肌电信号中预设频率的噪声。
可选地,提取所述有效表面肌电信号的信号特征,包括:
采用M个数据窗对所述表面肌电信号进行截取,获得M段表面肌电信号,相邻两段所述表面肌电信号的间隔为预设步进,其中,一个所述数据窗包括n个数据点,所述预设步进包括m个数据点;
分别对每段所述表面肌电信号进行以下特征提取操作:计算第p段所述表面肌电信号中每对相邻的数据点的差值的绝对值,对计算的所有的所述差值的绝对值进行求和处理,获得求和结果,所述p大于或等于1,且小于或等于M;
对获得的M段所述表面肌电信号的所述求和结果进行求和,并将获得结果作为所述有效表面肌电信号的信号特征。
可选地,根据所述信号特征,获得所述表面肌电信号对应的手势,包括:
确定所述信号特征对应的前臂肌群;
根据确定的所述前臂肌群,和,预先配置的前臂肌群与手势的对应关系,获得所述表面肌电信号对应的所述手势。
可选地,从所述表面肌电信号中获取有效表面肌电信号,包括:
对所述表面肌电信号进行校正处理,获得校正信号;
对获得的所述校正信号进行积分运算,获得包络信号;
将幅度大于预设阈值的包络信号对应的表面肌电信号,作为所述有效表面肌电信号。
第二方面,本申请提供了一种人机交互方法,包括:第一方面所述的手势识别方法。
第三方面,本申请提供了一种手势识别装置,包括:
第一获取模块,用于获取表面肌电信号;
第二获取模块,用于从所述表面肌电信号中获取有效表面肌电信号,其中,所述有效表面肌电信号为肌肉活动时间段内的表面肌电信号;
提取模块,用于提取所述有效表面肌电信号的信号特征;
处理模块,用于根据所述信号特征,获得所述表面肌电信号对应的手势。
第四方面,本申请提供了一种电子设备,包括:处理器和存储器,所述处理器,用于执行所述存储器中所存储的程序,以实现所述的手势识别方法。
可选地,所述电子设备为臂环设备,所述臂环设备用于佩戴在上肢前臂靠近肘关节三分之一处。
第五方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述的手势识别方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,获取表面肌电信号,从该表面肌电信号中获取有效表面肌电信号,避免了无效表面肌电信号的干扰。进一步的,提取有效表面肌电信号的信号特征,根据该信号特征,直接获取表面肌电信号对应的手势。该方法无需预先采集大量的手势样本进行训练,再根据训练结果获取表面肌电信号对应的手势,可直接提取有效表面肌电信号的信号特征,根据信号特征快速有效的获取表面肌电信号对应的手势,操作过程简便,效率高。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种手势识别方法,该方法可以应用于单独的电子设备,该电子设备采集表面肌电信号,并识别出该表面肌电信号所对应的手势。另外,该方法还可以应用于智能终端设备,通过采集设备采集表面肌电信号,然后该采集设备将采集的表面肌电信号传输给智能终端设备,由智能终端设备识别获得该表面肌电信号所对应的手势。当然,该方法也可以应用于服务器,通过采集设备采集表面肌电信号,然后该采集设备将采集的表面肌电信号传输给服务器,由服务器识别获得该表面肌电信号所对应的手势。该方法的具体实现过程如图1所示:
步骤101,获取表面肌电信号。
具体地,表面肌电信号是放置于皮肤表面的电极采集到的一种生物电信号,是一种非平稳、非线性的微弱电信号,其具有随机性,极易受到外界干扰,信噪比较低。另外,表面肌电信号可以反映人体关节的伸屈状况以及肢体的形状和位置。
本申请实施例中,用于采集表面肌电信号的电极佩戴在人体上肢的前臂,以能够监测手势动作所带动的前臂肌肉的运动情况。
佩戴在前臂上的电极所监测到的表面肌电信号,是由前臂肌群运动产生,不同的手势带动不同的前臂肌群运动,也就是说,每个手势的产生是由整个前臂肌群中的一部分前臂肌群起到主导作用,而不同的前臂肌群运动会产生不同的表面肌电信号。
例如,假设OK的手势是由前臂肌肉A运动产生,握拳的手势是由前臂肌肉B运动产生,剪刀手的手势是由前臂肌肉C运动产生,金属礼的手势是由前臂肌肉D和前臂肌肉E共同运动产生的。所以,当被测对象做OK的手势时,监测到表面肌电信号A;当被测对象做握拳的手势时,监测到表面肌电信号B;当被测对象做剪刀手的手势时,监测到表面肌电信号C;当被测对象做金属礼的手势时,监测到表面肌电信号DE。
步骤102,从表面肌电信号中获取有效表面肌电信号,其中,有效表面肌电信号为肌肉活动时间段内的表面肌电信号。
一个具体实施例中,在获取表面肌电信号之后,从表面肌电信号中获取有效表面肌电信号之前,需要对该表面肌电信号进行预处理操作,以滤除该表面肌电信号中的干扰,提高后续手势手别的准确性。
具体地,预处理过程中滤除表面肌电信号中预设频率的噪声。
例如,由于表面肌电信号容易受50Hz工频的干扰,因此,利用陷波器去除表面肌电信号中频率为50赫兹(Hz)的噪声。然后,将陷波器过滤后得到的表面肌电信号,输入到6阶巴特沃斯滤波器,获得该滤波器滤除后的频率20~200Hz的表面肌电信号。其中,频率为20~200Hz的表面肌电信号在该手势识别方法中为有用的表面肌电信号。通过对表面肌电信号进行预处理,降低了信号的噪声含量,且获得了更符合该手势识别方法的表面肌电信号。
一个具体实施例中,肌电信号是众多肌纤维中运动单元动作电位在时间和空间上的叠加,表面肌电信号是浅层肌肉和神经干上电活动在皮肤表面的综合效应。表面肌电信号分为两种,一种是静息电位对应的表面肌电信号,另一种是动作电位对应的表面肌电信号。其中,有效表面肌电信号为肌肉活动时间段内的表面肌电信号,即有效表面肌电信号为动作电位对应的表面肌电信号。
另外,静息电位对应的表面肌电信号对该方法的手势识别是没有用处的,静息电位是指肌肉处于放松状态,没有执行动作执行。且,对于本方法来说属于噪声类的无用信号。因此,需要获取表面肌电信号的活动段,即,需要检测表面肌电信号的动作电位的起始位置和结束位置,来获得有效表面肌电信号。
具体地,如图2所示,检测表面肌电信号的动作电位的起始位置和结束位置,获得有效表面肌电信号的具体过程如下:
步骤201,对表面肌电信号进行校正处理,获得校正信号。
一个具体实施例中,对表面肌电信号进行校正处理,是对经过预处理的表面肌电信号进行校正处理。
首先,对预处理的表面肌电信号执行转换操作,获得转换信号。通过对表面肌信号进行转换操作,来针对不同的被测对象进行有效校正,降低了阻抗以及肌肉紧张对基线阈值的影响。
然后,基于基线阈值校正该转换信号,获得校正信号。具体地,确定基线阈值为:thr=mean{MAV1,MAV2,MAV3,...,MAVm}+A
其中,thr为基线阈值,MAVi为表面肌电信号的静息态数据中滑动窗口的最大值,i为表面肌电信号的静息态数据中滑动窗口的最大值的下标,且取值范围为1到k之间的正整数,m为滑动窗口个数,A为常数。根据基线阈值对表面肌电信号进行校正处理,有效的降低了个体差异对表面肌电信号的影响。
步骤202,对获得的校正信号进行积分运算,获得包络信号。
一个具体实施例中,将获得的校正信号逐个导入核函数中,并在每导入一个校正信号后更新核函数。具体操作如下:
对核函数进行初始化。
初始化的核函数表示为:kernel(jk)=0,j1,j2,j3,...jn。
将校正信号si导入核函数中,核函数更新为kernel={j2,...jn,si},j2,...jn=0,基于梯形法计算该核函数单位等距积分,得到包络信号yi;
将校正信号si+1导入核函数中,核函数更新为kernel={j3,...jn,si,si+1},j3,j4...jn=0,基于梯形法计算该核函数单位等距积分,得到包络信号yi+1;
以此类推,由校正信号{s1,s2,s3,...si,...}计算得到包络信号{y1,y2,y3,...yi,...}。
基于梯形法计算该核函数单位等距积分,得到与校正信号对应的包络信号。
通过利用基线阈值对经过表面肌电信号转换得到的转换信号进行校正,然后利用核函数对校正信号进行处理得到包络信号,该包络信号增大了表面肌电信号中动作电位段与静息电位段之间的微小差异,减弱了由于肌肉紧张造成的表面肌电信号的波动,降低了由肌肉紧张造成的活动段的误判。
步骤203,将幅度大于预设阈值的包络信号对应的表面肌电信号,作为有效表面肌电信号。
具体地,包络是随机过程的振幅随着时间变化的曲线。包络信号是一个高频调幅信号,它幅度是按低频调制信号变化的。如果把高频调幅信号的峰点连接起来,就可以得到一个与低频调制信号相对应的曲线。另外,包络信号也是一个新的脉冲信号(周期更大),这个脉冲信号在时间上观察也会有一定的宽度(每个周期内会有一段时间为0),这是时间上宽度就是脉冲包络宽度。脉冲的带宽和脉冲宽度成反比,即脉冲时间上的宽度越窄,频谱上的带宽越大。
具体地,活动段包括起始位置和结束位置。如果前一个或多个包络信号幅度不大于预设阈值,当包络信号的幅度大于预设阈值时,则确定该包络信号幅度开始大于预设阈值的初始位置对应的表面肌电信号的位置,作为活动段的起始位置;如果前一个或多个包络信号幅度大于预设阈值,当包络信号的幅度不大于预设阈值时,则确定该包络信号幅度开始小于预设阈值的初始位置对应的表面肌电信号的位置,作为活动段的结束位置。该起始位置到结束位置中间的表面肌电信号为有效表面肌电信号。
例如,设定的该预设阈值为零。如果前一个或多个包络信号幅度不大于零,当包络信号的幅度大于零时,则确定该包络信号幅度开始大于零的初始位置对应的表面肌电信号的位置,作为活动段的起始位置;如果前一个或多个包络信号幅度大于零,当包络信号的幅度不大于零时,则确定该包络信号幅度开始小于零的初始位置对应的表面肌电信号的位置,作为活动段的结束位置。该起始位置到结束位置中间的表面肌电信号为有效表面肌电信号。
步骤103,提取有效表面肌电信号的信号特征。
一个具体实施例中,采用M个数据窗对表面肌电信号进行截取,获得M段表面肌电信号,相邻两段表面肌电信号的间隔为预设步进,分别对每段表面肌电信号进行特征提取操作,其中,一个所述数据窗包括n个数据点,所述预设步进包括m个数据点。如图3所示,以对第p段表面肌电信号进行特征提取为例进行说明如下:
步骤301,计算第p段表面肌电信号中每对相邻的数据点的差值的绝对值,其中,p大于或等于1,且小于或等于M。
具体地,一个数据窗的信号波长包括n个数据点,用公式表示为:DV={S1,S2,S3,...,Si,...,Sn-1,Sn},其中,Si为数据点。
分别计算每对相邻的数据点的差值的绝对值,即|S2-S1|,|S3-S2|,...,|Si-Si-1|,...,|Sn-Sn-1|。
步骤302,对计算的所有的差值的绝对值进行求和处理,获得求和结果。
具体地,对计算的所有的差值的绝对值进行求和处理,获得求和结果为:
将步骤302所获得的求和结果作为第p段表面肌电信号的特征提取结果。
在获得M段表面肌电信号各自的特征提取结果后,对获得的M段表面肌电信号的特征提取结果(即M个求和结果)进行求和,并将获得的结果作为整个有效表面肌电信号的信号特征。
具体地,对M段表面肌电信号各自的特征提取结果进行求和,获得的结果可以表示为:
通过对M段表面肌电信号的信号波长的简单叠加,提取表面肌电信号的信号特征,体现了肌电信号波形的复杂度,最后的获得结果是肌电信号幅值、频率以及持续时间等共同作用的效果。
步骤104,根据信号特征,获得表面肌电信号对应的手势。
一个具体实施例中,每种手势对应的的前臂肌群有所不同,根据信号特征,确定该信号特征对应的前臂肌群。进一步的,根据确定的前臂肌群和预先配置的前臂肌群与手势的对应关系,获得表面肌电信号对应的手势。
例如,通过信号特征,确定该信号特征对应的前臂肌群为前臂肌肉B;根据该预先配置的前臂肌群与手势的对应关系前臂肌肉B对应握拳的手势,获得该表面肌电信号对应的手势为握拳。
具体地,在根据信号特征获得表面肌电信号对应的手势之后,将该对应关系保存为匹配模板,并将该匹配模板作为不同手势识别的标准模板。当获得一个新的表面肌电信号后,可以将该表面肌电信号输入到匹配模板中,直接获取该表面肌电信号对应的手势。其中,该匹配模板无论是在网络环境下还是非网络环境下都可以进行手势识别,不受网络的限制。
例如,该匹配模板存储在任一智能设备中,在没有网络或者弱网环境下,可以通过数据线或者蓝牙的形式将获得的表面肌电信号输入到智能设备中。智能设备根据输入的表面肌电信号在匹配模板中进行匹配,即可获得该表面肌电信号对应的手势。进一步的,解决了在无网环境或弱网环境下无法进行手势识别的问题。
具体地,结合图4对该手势识别过程进行详细说明:
步骤401,获得表面肌电信号。
步骤402,对表面肌电信号进行预处理操作,获得处理后的表面肌电信号。
步骤403,对处理后的表面肌电信号进行活动段检测。
步骤404,利用滑窗算法,提取表面肌电信号的波形长度特征,获得提取特征结果。
步骤405,根据获取的提取特征结果和匹配模板进行特征匹配。
步骤406,获得表面肌电信号对应的手势。
本申请实施例提供的该方法,获取表面肌电信号,从该表面肌电信号中获取有效表面肌电信号,避免了无效表面肌电信号的干扰。进一步的,提取有效表面肌电信号的信号特征,根据该信号特征,直接获取表面肌电信号对应的手势。该方法无需预先采集大量的手势样本进行训练,再根据训练结果获取表面肌电信号对应的手势,可直接提取有效表面肌电信号的信号特征,根据信号特征快速有效的获取表面肌电信号对应的手势,操作过程简便,效率高。
本申请实施例还提供了一种手势识别装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图5所示,该装置主要包括:
第一获取模块501,用于获取表面肌电信号。
第二获取模块502,用于从表面肌电信号中获取有效表面肌电信号,其中,有效表面肌电信号为肌肉活动时间段内的表面肌电信号。
提取模块503,用于提取有效表面肌电信号的信号特征。
处理模块504,用于根据信号特征,获得表面肌电信号对应的手势。
一个具体实施例中,提取模块503,具体用于采用M个数据窗对表面肌电信号进行截取,获得M段表面肌电信号,相邻两段表面肌电信号的间隔为预设步进,其中,一个所述数据窗包括n个数据点,所述预设步进包括m个数据点;
分别对每段表面肌电信号进行以下特征提取操作:计算第p段表面肌电信号中每对相邻的数据点的差值的绝对值,对计算的所有的差值的绝对值进行求和处理,获得求和结果,所述p大于或等于1,且小于或等于M;
对获得的M段表面肌电信号的求和结果进行求和,并将获得结果作为有效表面肌电信号的信号特征。
一个具体实施例中,处理模块504,具体用于确定信号特征对应的前臂肌群;根据确定的前臂肌群,和,预先配置的前臂肌群与手势的对应关系,获得表面肌电信号对应的所述手势。
一个具体实施例中,第二获取模块502,具体用于对表面肌电信号进行校正处理,获得校正信号;对获得的校正信号进行积分运算,获得包络信号;将幅度大于预设阈值的包络信号对应的表面肌电信号,作为有效表面肌电信号。通过利用基线阈值对经过表面肌电信号转换得到的转换信号进行校正,然后利用核函数对校正信号进行处理得到包络信号,该包络信号增大了初始表面肌电信号中动作电位段与静息电位段之间的微小差异,减弱由于肌肉紧张造成的表面肌电信号的波动,降低了由肌肉紧张造成的活动段的误判。
本申请实施例提供的该装置,通过第一获取模块501,获取表面肌电信号;并利用第二获取模块502,从表面肌电信号中获取有效表面肌电信号,避免了无效表面肌电信号的干扰。进一步的,利用提取模块503,提取有效表面肌电信号的信号特征。最后,利用处理模块504,根据该信号特征,直接获取表面肌电信号对应的手势。该装置无需预先采集大量的手势样本进行训练,再根据训练结果获取表面肌电信号对应的手势,可直接提取有效表面肌电信号的信号特征,根据信号特征快速有效的获取表面肌电信号对应的手势,操作过程简便,效率高。
基于同一构思,本申请实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601和存储器602。具体地,该电子设备还包括:通信组件603和通信总线604,其中,处理器601、通信组件603和存储器602通过通信总线604完成相互间的通信。其中,存储器602中存储有可被处理器601执行的程序,处理器601执行存储器502中存储的程序,实现如下步骤:获取表面肌电信号;从表面肌电信号中获取有效表面肌电信号,其中,有效表面肌电信号为肌肉活动时间段内的表面肌电信号;提取有效表面肌电信号的信号特征;根据信号特征,获得表面肌电信号对应的手势。
上述电子设备中提到的通信总线604可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信组件603用于上述电子设备与其他设备之间的通信。
存储器602可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。
上述的处理器601可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
一个具体实施例中,该电子设备可以为臂环设备,该臂环设备佩戴在上肢前臂靠近肘关节三分之一处。该臂环设备上可以设置一开关,被测对象在做手势之前,打开开关,在被测对象做出手势后,识别该手势。
本申请实施例还提供了一种人机交互方法,该方法包括以上实施例所描述的实施方法,具体实施可参见手势识别方法实施例部分的描述,重复之处不再赘述。
具体地,该臂环设备可以应用在仿生假肢中,为一些特殊人群服务,可以让该部分人群通过自己的意志及肌肉控制仿生假肢的运动。以某被测对象的左腿安装仿生假肢为例进行说明:
首先,在该臂环设备中预先保存不同的手势和腿部运动之间的关系,例如,握拳的手势对应的是左腿向前一步。当被测对象在行走时,当右腿向前一步后,需要左腿也向前一步,此时,被测对象只需握拳即可,臂环设备采集获得被测对象的前臂肌群产生的表面肌电信号。然后,根据采集的表面肌电信号经过提取等操作获得该被测对象的手势为握拳,最后,根据握拳的手势与左腿向前一步的对应关系,获得左腿向前一步的指令。
该臂环设备在获得向前一步的指令之后,向仿生假肢发送该指令。仿生假肢接收臂环设备发出的指令,并完成被测对象的行走。其中,该臂环设备与仿生假肢已建立通信连接。
另外,该臂环设备还可以应用在演示文稿(PPT)中,可以预先设置不同的手势和PPT的执行动作之间的关系。例如,OK的手势对应是执行下一页的动作,剪刀手的手势对应的是执行自动播放的动作,握拳的手势对应的是执行上一页的动作。具体实现,也是通过臂环设备与电脑建立通信连接,电脑根据臂环设备发送的具体操作指令,完成PPT的播放。
本申请实施例提供的该设备,通过处理器601,获取表面肌电信号;从表面肌电信号中获取有效表面肌电信号;提取有效表面肌电信号的信号特征;根据该信号特征,直接获取表面肌电信号对应的手势。在处理过程中,从表面肌电信号中获取有效表面肌电信号,避免了无效表面肌电信号的干扰。该设备无需预先采集大量的手势样本进行训练,再根据训练结果获取表面肌电信号对应的手势,可直接提取有效表面肌电信号的信号特征,根据信号特征快速有效的获取表面肌电信号对应的手势,操作过程简便,效率高。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的手势识别方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。