基于表面肌电信号分解的手部动作识别方法
【技术领域】
[0001] 本发明设计生物信号识别技术领域,具体涉及一种基于表面肌电信号分解的手部 动作识别方法。
【背景技术】
[0002] 手部动作识别已经成为人机交互的重要方法之一,广泛应用于手语识别、假肢控 制、体感游戏控制、遥操作等领域。基于肌电信号(SEMG)的手部动作识别方法,具有实时、 便捷、无创的特点,且更适用于助老助残等康复领域,目前已经得到越来越广泛的关注。
[0003] 传统的手部动作识别方法,常利用多个通道的sEMG数据[1-8],提取相应的时域 [4,5]、频域[6, 7]、时频域[8]的特征,利用特定的数据分类算法[9-11],完成动作分类。
[0004] 目前,国内东南大学宋爱国(中国专利CN103006358)提出一种基于sEMG最大值与 最小值比例因子的方法,通过两通道的sEMG,实现两个动作识别。杭州电子科技大学张启忠 (中国专利CN102930284)提出基于经验模态分解与分形的表面肌电信号模式识别方法,利 用一个通道sEMG信号,识别展拳动作。太原科技大学郭一娜(中国专利CN102631185A)提 出利用经验模态分解与独立成分分析的方法,对多路sEMG信号进行分离,从而降低硬件复 杂度。综上所述,目前的研究与应用中,未见到基于单通道sEMG分解的手势识别。
[0005] 由此可知,在实际应用中,要精确识别出多个不同手势,则需要多个通道sEMG信 号。而传感器数量的增加,一方面造成系统复杂度提升,另一方面也带来了更大的噪声干 扰,且由于肌肉形状与传感器体积的限制,使用更少的传感器,识别出更多的手势,是目前 亟需解决的重要问题。
[0006] [1]张旭,基于表面肌电信号的人体动作识别与交互,生物医学工程,中国科学 技术大学,2010年博士学位论文
[0007] [2]赵章琰,表面肌电信号检侧和处理中若干关键技术研究,生物医学工程,中 国科学技术大学,2010年博士学位论文
[0008] [3]杨大鹏,仿人型假手多运动模式的肌电控制研究,机械电子工程,哈尔滨工 业大学,2011年博士论文
[0009] [4]Ding,Q.C. ,Xiong,A.B. ,Zhao,X.G. ,andHan,J.D. (2011,October). AnovelEMG-drivenstatespacemodelfortheestimationofcontinuous jointmovements.In2011IEEEInternationalConferenceonSystems,Man,and Cybernetics(SMC),pp. 2891-2897.
[0010] [5]Xiong,A. ,Chen,Y. ,Zhao,X. ,Han,J. ,andLiu,G. (2011,December).Anovel HCIbasedonEMGandIMU.In2011IEEEInternationalConferenceonRoboticsand Biomimetics(R0BI0),pp. 2653-2657.
[0011] [6]Chang,K.M.,Liu,S.H.,Wang,J.J.,andCheng,D.C. (2013,July). Exercisemusclefatiguedetectionsystemimplementationviawireless surfaceelectromyographyandempiricalmodedecomposition.In35thAnnual InternationalConferenceoftheIEEEEngineeringinMedicineandBiology Society(EMBC),pp. 1001-1004.
[0012] [7]Singh,V.P. ,Kumar,D.K. ,Polus,B. ,andFraser,S. (2007).Strategiesto identifychangesinSEMGduetomusclefatigueduringcycling.Journalof medicalengineering&technology,31 (2), 144-151.
[0013] [8]Li,W.G. ,andLuo,Z.Z. (2008,June).Wavelettransformandindependent componentanalysisapplicationtomulti-channelSEMGprocessing.InIEEE InternationalConferenceonInformationandAutomation, 2008.ICIApp. 826-830.
[0014][9]Xiong,A.,Lin,G.,Zhao,X.,Han,J.,&Liu,G. (2012,October). FeasibilityofEMG-basedANNcontrollerforareal-timevirtualreal itysimulation.In2012_38thAnnualConferenceonIEEEIndustrialElectronics Society,pp. 2699-2704.
[0015] [10]Naik,G.R. , &Kumar,D.K. (2010).TwinSVMforgestureclassification usingthesurfaceelectromyogram.IEEETransactionsonInformationTechnologyin Biomedicine,14(2),301-308.
[0016][ll]Al_Timemy,A.,Bugmann,G.,Escudero,J.,&Outram,N. (2013). ClassificationofFingerMovementsfortheDexterousHandProsthesis ControlwithSurfaceElectromyography.IEEEJournalofBiomedicalandHealth Informatics, 608-618.
【发明内容】
[0017] 针对现有技术的不足,本发明提供一种基于单通道SEMG分解的高准确率手部动 作识别方法。能够利用一个通道的sEMG信号,准确识别握拳、伸掌、捏食指、中指等手势动 作。
[0018] 本发明为实现上述目的所采用的技术方案是:一种基于sEMG分解的手部动作识 别方法,
[0019] 采集旋前方肌处sEMG信号;
[0020] 采用二阶差分滤波方法对采集到的sEMG信号进行滤波;
[0021] 对滤波后的sEMG信号,进行尖峰检测,得到的所有尖峰组成样本矩阵;
[0022] 对样本矩阵采用PCA方法降维;
[0023] 将降维后的样本矩阵采用高斯混合模型进行聚类,得到MUAPT;
[0024] 将得到的MUAPT,采用滑动平均方法进行处理,提取相应特征,并组成特征向量;
[0025] 对特征向量采用PCA降维;
[0026] 降维后的样本利用LDA进行分类,得到不同的手部动作。
[0027] 所述采用的二阶差分滤波方法如下:
[0028]xt =Yt+a-yt+rYt+yt-!
[0029] 其中yt是采集到的原始sEMG信号,xt是滤波后的sEMG信号,t为采样时间。
[0030] 所述对滤波后的sEMG信号进行尖峰检测包括以下过程:
[0031] 阈值的计算公式如下:
[0033] 其中,Cl=3. 5,xt是滤波后的sEMG信号,
[0034] 记录滤波后的sEMG信号中,由下向上穿越阈值a的采样点Xi,以及与之邻近的由 上向下穿越阈值的采样点xi+k;Xi到xi+k中的最大值即为尖峰峰值:
[0035] peak;= max (xi; xi+1, . . . , xi+k)
[0036] 其中,peaki为尖峰峰值;
[0037] 确定尖峰峰值位置后,则一个尖峰由其相邻的八个采样点组成:
[0038] spike;= {peaki_3, ? ? ? , peak;, . . . , peaki+4}
[0039] 其中spikei为一个尖峰。
[0040] 所述所有尖峰组成样本矩阵:
[0042] 其中,SPIKE是所有尖峰组成样本矩阵,peaki为尖峰峰值,q指sEMG信号中检测 到的尖峰的个数。
[0043] 所述对样本矩阵采用PCA方法降维包括:
[0044] [pci,score,latent] =princomp(SPIKE)
[0045]pcaSPIKEpXD =SPIKEpX8*pcl(:,1:D)
[0046] 其中,princomp(?)是主元分析函数,pc2是主元分析投影矩阵,latent是协方差 矩阵的特征值,score是SPIKE在主成分空间的投影表示,SPIKE与pci的前D列相乘,得到 pcaSPIKE矩阵。
[0047] 所述将降维后的样本矩阵采用高斯混合模型进行聚类,得到MUAPT包括以下过 程:
[0048] 〇bj = gmdistribution. fit(pcaSPIKE, k)
[0049] label = cluster(obj, pcaSPIKE)
[0050] 其中,gmdistribution. fit(?)为高斯混合模型训练函数,obj为训练得到的高 斯混合模型,其中包含M个组元,即将原始的sEMG信号分成了M类,cluster(?)是聚类函 数,能够根据obj将pcaSPIKE样本分为不同的类别,以不同的label表示出来,其中label 是类别的标记;
[0051] 将属于同一个类别的尖峰spikei按照其在原来sEMG信号中的先后顺序排列,小 于阈值的sEMG信号用0代替,就分别构成了M个MUAPT。
[0052] 所述滑动平均方法中,采用的时间窗为N,滑动窗为N/4。
[0053] 所述相应特征包括绝对值积分(IAV),最大值(MAX),非零中值(NonZeroMed),非 零中值序号(Ind),其计算公式如下:
[0056]NonZeroMed=median(nonzeros(x1;x2, . . . ,xi; . . . ,xN))
[0057] Ind = index of the NonZeroMed
[0058] 其中Xi是sEMG的第i个采样值,N为时间窗的长度,median(?)表示计算序列的 中值,nonzeros(?)表示计算序列的非零值,Ind表示非零中值在原时间窗中所在的位置。
[0059] 所述特征向量为:
[0061] 其中,M表示分解得到的MUAPT的个数,p为时间窗的个数,IAV是绝对值积分,MAX 是最大值,NonZeroMed是非零中值,Ind是非零中值序号。
[0062] 所述对特征向量采用PCA降维过程包括:
[0063] [pc2,score,latent] =princomp(FV)
[0064]pcaFVpXr =FVpX4M*pc2 (:,l:r)
[0065]其中,princomp( ?)是主元分析函数,pc2是主元分析投影矩阵,latent是协方差 矩阵的特征值,score是SPIKE在主成分空间的投影表示,特征向量FV与pc2的前r列相 乘,得到降维后的矩阵pcaFV。
[0066] 所述对降维后的样本利用LDA进行分类包括:
[0067] class=classify (sample, pcaFV, group)
[0068] 其中,classify(?)是LDA分类函数,sample是待分类的数据样本,pcaFV是降维 后的矩阵,group是对应所属的类别。
[0069] 本发明具有以下有益效果及优点:
[0070] 1.本发明利用一个通道的sEMG信号,正确识别五个手部动作,在实际应用中,能 够有效减少传感器数量,提高系统的实用性。
[0071] 2.本发明采用二阶差分滤波对肌电信号进行预处理,能够有效滤除环境噪声对表 面肌电的影响;
[0072] 3.本发明利用阈值检测的方法,检测有效的MUAP尖峰,并进行PCA降维及GMM聚 类,将一个通道sEMG分
解为多个MUAPT;
[0073] 4.本发明提取MUAPT的时频域特征,组建特征向量,并使用PCA算法对特征向量降 维,减小计算量,提高数据的稳定性;
[0074] 5.本发明利用分解得到的多个MUAPT及LDA分类方法进行手势动作分类,提高了 单通道sEMG分类的精度,能够应用于假肢控制等等场合,具有较高的实际应用价值。
【附图说明】
[0075]图1是本发明方法流程图;
[0076] 图2是本发明的滤波后的sEMG及检测到的尖峰;
[0077] 图3是本发明的属于5个不同类别的MUAP;
[0078] 图4是本发明的spikes形成MUAPT示意图;
[0079] 图5是本发明的5个不同类别对应的MUAPT;
[0080] 图6是本发明的手部动作分类结果。
【具体实施方式】
[0081] 下面结合附图及实施例对本发明做进一步的详细说明。
[0082] 如图1所示为本发明的方法流程图,采集旋前方肌处的sEMG信号yt,并进行二阶 差分滤波,方法如下:
[0083] xt=Yt+a-yt+rYt+yt-!
[0084] 其中xt是滤波之后的sEMG信号,下标t为采样时间。
[0085] 对滤波后的sEMG信号xt,进行尖峰检测,其阈值a的计算公式如下:
[0087] 其中,Cl是经验常数,等于3. 5,
,超过该阈值即认为有尖 峰spike出现。
[0088] 记录xt由下向上穿越阈值a的采样点Xi,以及与之邻近的由上向下穿越阈值的 采样点xi+k。尖峰峰值即为Xi到xi+k中的最大值:
[0089]peak;=max(xi;xi+1, . . . ,xi+k)
[0090] 确定尖峰峰值位置后,则一个尖峰由其相邻的八个采样点组成:
[0091] spike;= {peaki_3, ? ? ? , peak;, . . . , peaki+4}
[0092] 而小于阈值的sEMG信号,将由0代替。图2点划线即为检测到的sEMG尖峰。
[0093] 将检测到的所有尖峰组成样本矩阵:
[0095] 其中,q指sEMG信号中检测到的尖峰的个数。
[0096] 对样本矩阵SPIKE采用PCA方法降成3维:
[0097] [pci,score,latent] =princomp(SPIKE)
[0098]pcaSPIKEpX3 =SPIKEpX8*pcl(:,1:3)
[0099] 其中,princomp( ?)是主元分析函数,能够计算得到SPIKE矩阵的降维投影矩阵 pci;latent是协方差矩阵的特征值;score是SPIKE在主成分空间的投影表示。
[0100]SPIKE与pci的前D列相乘,得到pcaSPIKE矩阵,以达到降维的目的。
[0101] 对降维后的样本矩阵pcaSPIKE采用高斯混合模型进行聚类:
[0102] 〇bj=gmdistribution.fit(pcaSPIKE,k)
[0103]label=cluster(obj,pcaSPIKE)
[0104] 其中,gmdistribution.fit( ?)为高斯混合模型训练函数,obj即为训练得到的 高斯混合模型,其中包含M个组元,即聚类类别的个数为M,本实验中M=5。cluster( ?)根 据obj将pcaSPIKE样本分为不同的类别,以不同的label(label=l,2,…,5)表示出来。图 3 (a-e)即是属于不同类别的MUAP,图例中的数字分别表示属于这一个类别的尖峰的数量, 圈划线是这个类别所有MUAP的平均值,也称为该类别的MUAP模板(Template)。
[0105] 将属于同一个类别(label)的尖峰spikei按照其在原来sEMG的位置顺序排列,可 形成不同的运动单元动作电位序列(MUAPT),示意图见图4,在本发明中,sEMG分解将构成5 个MUAPT,可认为sEMG由最显著的5个MUAPT组成。见图5.
[0106] 将得到的5个MUAPT提取特征,以800ms的时间窗,200ms的滑动窗进行处理,提取 相应特征,包括绝对值积分(IAV),最大值(MAX),非零中值(NonZeroMed),非零中值序号 (Ind),其计算公式如下:
[0109]NonZeroMed=median(nonzeros(x1;x2, . . . ,xi; . . . ,xN))
[0110] Ind=indexoftheNonZeroMed
[0111] 其中Xi是sEMG的第i个采样值,N为时间窗的长度。median( ?)计算序列的中 值,nonzeros( ?)计算序列的非零值,Ind表示非零中值在原时间窗中所在的位置。
[0112] 将上述特征组成特征向量(FeatureVector)
[0114] 其中,20=4X5,表示分解得到的5个MUAPT,每个提取4个特征,p为时间窗的个 数。
[0115] 将FV利用pea降到r维,本实验中r=7 :
[0116] [pc2,score,latent,tsquare] =princomp(FV)
[0117]pcaFVpX7 =FVpX20*pc2(:, 1:7)
[0118]降维后的样本pcaFV利用Lineardiscriminationanalysis(LDA)进行分类,得 到不同的手部动作。
[0119]class=classify(sample,pcaFV,group)
[0120] 其中,classify(?)是LDA分类函数,sample是待分类的数据样本,pcaFV是待分 类的训练样本和group是对应所属的类别。分类的结果见图6和表1。
[0122] 表 1
[0123] 其中黑点表示LDA分类出的手势动作,虚线表示实际的手势动作,纵坐标中 MFC,IFC,PS,FC,Rest分别表示捏中指、捏食指、伸掌、握拳以及休息等五个手部动作。可以 看到,应用基于sEMG分解的手部动作识别方法的精度很高,达到83. 1%。
【主权项】
1. 一种基于SEMG分解的手部动作识别方法,其特征在于: 采集旋前方肌处sEMG信号; 采用二阶差分滤波方法对采集到的sEMG信号进行滤波; 对滤波后的sEMG信号,进行尖峰检测,得到的所有尖峰组成样本矩阵; 对样本矩阵采用PCA方法降维; 将降维后的样本矩阵采用高斯混合模型进行聚类,得到MUAPT ; 将得到的MUAPT,采用滑动平均方法进行处理,提取相应特征,并组成特征向量; 对特征向量采用PCA降维; 降维后的样本利用LDA进行分类,得到不同的手部动作。2. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述采用 的二阶差分滤波方法如下: xt = yt+2_yt+ryt+yt-i 其中yt是采集到的原始sEMG信号,xt是滤波后的sEMG信号,t为采样时间。3. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述对滤 波后的sEMG信号进行尖峰检测包括以下过程: 阈值的计算公式如下:其中,Cl=3. 5, Xt是滤波后的sEMG信号记录滤波后的sEMG信号中,由下向上穿越阈值α的采样点Xi,以及与之邻近的由上向 下穿越阈值的采样点xi+k ;Xi到xi+k中的最大值即为尖峰峰值: Peaki = max (Xi, xi+1, . . . , xi+k) 其中,Peaki为尖峰峰值; 确定尖峰峰值位置后,则一个尖峰由其相邻的八个采样点组成: Spikei = {peaki_3, · · · , Peaki, . . . , peaki+4} 其中Spikei为一个尖峰。4. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述所有 尖峰组成样本矩阵:其中,SPIKE是所有尖峰组成样本矩阵,Peaki为尖峰峰值,q指sEMG信号中检测到的 尖峰的个数。5. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述对样 本矩阵采用PCA方法降维包括: [pci, score, latent] = princomp(SPIKE) pcaSPIKEpXD = SPIKEpX8*pcl(:,1:D) 其中,princomp( ·)是主元分析函数,pc2是主元分析投影矩阵,latent是协方差矩 阵的特征值,score是SPIKE在主成分空间的投影表示,SPIKE与pci的前D列相乘,得到 pcaSPIKE 矩阵。6. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述将降 维后的样本矩阵采用高斯混合模型进行聚类,得到MUAPT包括以下过程: 〇bj = gmdistribution. fit(pcaSPIKE, k) label = cluster (obj, pcaSPIKE) 其中,gmdistribution. fit ( ·)为高斯混合模型训练函数,obj为训练得到的高斯混合 模型,其中包含M个组元,即将原始的sEMG信号分成了 M类,cluster (·)是聚类函数,能 够根据obj将pcaSPIKE样本分为不同的类别,以不同的label表示出来,其中label是类 别的标记; 将属于同一个类别的尖峰Spikei按照其在原来sEMG信号中的先后顺序排列,小于阈 值的sEMG信号用0代替,就分别构成了 M个MUAPT。7. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述滑动 平均方法中,采用的时间窗为N,滑动窗为N/4。8. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述相应 特征包括绝对值积分(IAV),最大值(MAX),非零中值(NonZeroMed),非零中值序号(Ind), 其计算公式如下:NonZeroMed = median (nonzeros (X1, x2, ···,Xi, ···,xN)) Ind = index of the NonZeroMed 其中Xi是sEMG的第i个采样值,N为时间窗的长度,median( ·)表示计算序列的中值, nonzeros( ·)表示计算序列的非零值,Ind表示非零中值在原时间窗中所在的位置。9. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述特征 向量为:其中,M表示分解得到的MUAPT的个数,p为时间窗的个数,IAV是绝对值积分,MX是 最大值,NonZeroMed是非零中值,Ind是非零中值序号。10. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述对 特征向量采用PCA降维过程包括: [pc2,score, latent] = princomp(FV) PcaFVpxr = FVpX4M*pc2(:, l:r) 其中,princomp ( ·)是主元分析函数,pc2是主元分析投影矩阵,latent是协方差矩阵 的特征值,score是SPIKE在主成分空间的投影表示,特征向量FV与pc2的前r列相乘,得 到降维后的矩阵pcaFV。11. 根据权利要求1所述的基于sEMG分解的手部动作识别方法,其特征在于:所述对 降维后的样本利用LDA进行分类包括: class=classify (sample, pcaFV, group) 其中,classify ( ·)是LDA分类函数,sample是待分类的数据样本,pcaFV是降维后的 矩阵,group是对应所属的类别。
【专利摘要】本发明涉及一种基于表面肌电(sEMG)分解的手部动作识别方法,所述方法包括两部分:sEMG信号分解得到运动单元动作电位序列(MUAPT);以及基于MUAPT手部动作识别方法。其中sEMG信号分解由sEMG信号预处理、sEMG尖峰检测及高斯混合模型(GMM)聚类组成;而基于MUAPT的手部动作识别包括特征提取、主成分分析(PCA)降维,LDA分类等。本发明在仅仅使用一个通道sEMG的条件下,利用sEMG信号分解得到的运动单元动作电位信息,对手部动作进行识别,有效提高了单通道sEMG识别率,具有重要的理论意义和实际应用价值。
【IPC分类】G06K9/62
【公开号】CN104899594
【申请号】CN201410081238
【发明人】韩建达, 赵新刚, 熊安斌, 丁其川, 赵忆文
【申请人】中国科学院沈阳自动化研究所
【公开日】2015年9月9日
【申请日】2014年3月6日