简约支持向量机分类算法在下肢动作识别中的应用研究
2011-05-31吴剑锋孙守迁
吴剑锋 吴 群 孙守迁
1.浙江大学,杭州,310027 2.浙江理工大学,杭州,310018
0 引言
智能人体运动辅助系统可以增强行动受损人群的肢体运动能力,帮助其恢复正常的社会生活,改善其心理和生理状态,是目前智能机器人系统研究的一个热点。保持辅助系统的执行动作与使用者运动一致、避免对人体自由活动产生干扰、同时保证使用者的灵活性是智能辅助的重要目标[1],其中使用者肢体动作的有效识别是系统设计的关键技术之一。
从现有研究成果来看,根据研究重点的不同,不同研究学者完成动作识别的方法主要有三种。第一种方法试图直接从人体运动神经系统获取相关运动信息,例如非植入式诱发脑电分析[2-3],但其受人类大脑工作机理研究的限制,基于脑电的动作识别和控制多限于简单的肢体动作。第二种方法利用安装在使用者身上的信息传感装置,间接获取人体运动信息[4-5]。如何在控制系统复杂度和成本的前提下,尽可能多地获取运动信息是该研究方向的重点。第三种方法拟建立人体模型,通过数学建模的方法进行动作预测,以完成动作识别的目的[6]。如何解决人体关节冗余特性带来的影响是该类研究的主要内容。
中枢神经系统支配肌肉活动时伴随着生物电变化,肌电信号(electromyography,EMG)是肌肉电活动在时间和空间上综合特性的显示,反映人体动作中各肌肉的活动情况。表面肌电信号(surface electromyography:sEMG)是一种重要的运动生物力学信息源,测量时对人体无创伤。利用表面肌电信号分析技术提取反映运动意愿的有效特征,进行动作辨识已经广泛应用在类人机械和人工假肢的控制策略以及人体康复治疗中。另外,基于小样本统计理论的支持向量机(support vector machine,SVM)技术能够较好地解决小样本学习问题,具有良好的泛化能力。近年来较多的国内外学者以SVM和sEMG技术为基础,结合不同的特征提取方法,对人体运动辨识进行了深入研究,并取得了丰富成果。例如,Castellini等[7]证实了支持向量机技术对人体手部姿势判定的有效性;Yan等[8]则进一步提出模糊最小二乘支持向量机技术,完成了手部动作识别;Lucas等[9]结合SVM和小波分析的方法对人体前臂和手部动作进行了识别;罗志增等的研究小组,利用支持向量机技术,分别对人体手部运动和下肢行走等动作进行了识别研究[10-11];颜志国[12]也进行了类似的研究。
目前的研究多集中在人体上肢动作识别上,利用表面肌电信号快速准确地识别出下肢的动作模式存在一定的难度。一方面,相对上肢而言,下肢肌电信号是典型的时变非平稳信号,而且经常夹杂较大的下肢运动噪声。另一方面,利用SVM进行动作识别本质上是一个多元分类问题,在实际应用中则是将多元分类逐步归属到二元分类上。由于支持向量机的性能不仅受到核函数和参数选择的影响,同时也受到支持向量数目的影响,因此,本文构造了基于核聚类简化的多元支持向量分类方法,以提高对人体下肢多动作识别的准确性和实时性,并以起立、常速行走和上下楼梯等日常行为为例,对算法进行了验证。
1 简约支持向量机多元分类算法
本文将人体下肢运动的7个分解片段识别问题转化为利用支持向量机分类算法进行分类的问题。而使用SVM进行分类的主要思想是建立一个空间最优决策超平面,使处于该超平面两侧的样本到它的距离达到最大,以确保SVM模型具有良好的泛化性能。设给定样本为(xi,yi),其中,x i为训练样本,x i∈Rd,i=1,2,…,l,y i为目标类,y i∈{1,2,…,M};M为目标类的个数;l为训练样本个数;d为输入空间维数。通过构造最优超平面对该样本进行分类,实质上是在约束条件下求解一个二次规划问题,分类函数可表述为
其中,b为偏置,αi为对应的拉格朗日乘子,k(x i,x)为满足条件的核函数,其主要作用是针对复杂的模式分类问题,通过非线性映射变换到维数足够高的特征空间中,产生一个线性可分的高维特征空间,再在这个新的空间寻找具有最大Margin的最优决策超平面。但是SVM的分类思想是针对两类问题的分类,对于多类分类,必须重新构建SVM分类器来求解,即寻求一个把属于Rd的点划分为M个部分的规则。常用方法是将多元分类问题逐步转化为两元分类问题,即用多个两元分类支持向量机组成专用的多元分类器。本研究中采用两元分类方法中的1-a-r分类器(oneagainst-rest classifiers),通过构造M个两元目标子分类器的方法,将多元分类问题逐步转化为两元分类问题,从而建立多个两元分类支持向量机组成的专用多元分类器。
1-a-r分类虽然建立方法简单,但是在面对人体下肢多模式动作分类任务时,其正负训练样本不均衡性更加突出。传统SVM在面对这类不对称分类问题时,会因为建立划分正类和负类决策函数而产生最优分类面向负类集合偏移的情况,而且当支持向量数目很大时,分类器的分类速度会明显降低。而智能人体运动辅助系统在实际应用中又要求在有限的时间内完成动作辨识。因此传统的SVM多元分类算法在多模式下肢动作识别中应用受到限制。
针对该问题,在曾志强[13]研究的基础上,本研究提出精简分离器的方法以简化支持向量,加快分类效率。
在建立正类和负类集合时,首先在特征空间中对正负两类支持向量分别进行聚类,设待聚类的正(负)支持向量集为聚类半径设为r,φ为将输入空间中的点映射到特征空间F的非线性映射为特征空间中从属于类Ck的支持向量。设选择样本和第k个类的质心O k之间的距离:
如果d(φ(xi),Oj)≤r,则将 φ(xi)加入类Cj,重新计算质心位置。在此基础上找到距离最近的质心 Oj,即
其中,Cluster_num为求取O j过程中的分类数量,其初始值设定为 1,当迭代过程中 d(φ(x i),O j)>r时,增加一个分类数量,直至 d(φ(x i),O j)≤r。
在上述研究基础上用聚类后所形成的簇的质心代替簇内的支持向量来简化SVM分类器,从而降低因数据集合不平衡性引起的分类错误;另外,在基本保持原始分类器泛化性能的同时简化支持向量,以提高SVM分类器的分类速度。定义向量为Ok的原像z k和它的近邻x k在输入空间中的距离。质心Ok在输入空间中的原像的近似值可用下式表示:
其中,zk为质心原像为nk个近邻在输入空间中的原像的均值,E1=(e1,e2,…,eq)为由一组标准正交列向量ei组成的d×q矩阵,设列向量c i为向量在E 1上的投影,则
在上述算法中,聚类半径越大,所形成的簇的数量就越少,支持向量的削减率就越高,约简前后分类超平面之间差异就越大,泛化性能损失也就越多。因此,聚类半径的大小在支持向量的约简率和泛化性能损失之间起折中作用。在实际运算中,在设定差异阈值对简化前后分类超平面变化的最大值作出限制(即限制分类器的泛化性能损失)的情况下,以迭代方法增加聚类半径的大小来尽可能地约简支持向量。在每次迭代中,计算所形成的超平面和原始分类超平面之间的差异,超过差异阈值τ,则迭代简化过程终止,取上一次迭代所得的简化SVM分类器作为最终的精简SVM分类器,否则,增大聚类半径以进一步约简支持向量。
2 多模式下肢动作识别方法
2.1 下肢动作识别目标集的建立与分解
建立识别目标集是进行下肢动作识别的首要任务。从人体动作的运动学描述来看:一个复杂的肢体动作可以视为是由几种常见的简单动作片段根据一定的规则组合而成的。例如上楼梯动作可以简单分解为摆腿和支撑两个简单的动作片段。在实际应用中,如果可以有效识别这些简单的动作片段,就可以给智能辅助系统提供明确的控制指令。本研究采用动作分解方法,将起立、常速行走和上、下楼梯这四个日常下肢动作分解为如表1所示的7个动作片段,并以之建立识别目标集。
表1 日常人体下肢动作分解
在实际识别过程中,仅根据单一信息源对每一动作片段进行划分,其分类的效率和精度都会受到一定程度的影响。由于足底压力信息可以简单而准确地将各摆动动作与支撑动作(含起立动作)区分开来,因此我们引入足底压力信息,通过压力数据将下肢动作识别目标集分解为摆动动作集合和支撑动作集合,在此基础上利用肌电信号对每一个集合内的动作进行进一步的细分。
2.2 表面肌电信号特征值的选取
人体在完成不同下肢动作任务时,相应肌群各肌肉的兴奋持续时间和兴奋程度各不相同[14]。因此,本研究中特征向量空间由反映幅值变化的表面肌电信号时域特征值和反映趋势变化的表面肌电信号频域特征值共同组成。考虑到短时统计值计算量小,而且分段的信号统计特征可以近似反映统计特征随时间的变化规律[15],在时域特征值中选择均方根值(root mean square,RMS)、绝对值平均(mean of absolute value,MAV)以及方差(variance,VAR)三个分段统计值。另外,考虑到传统的傅里叶分析并不适合用于非平稳信号分析,而时频分析作为研究非平稳信号的一种有效方法,通过在时频平面上表述信号的时变特征,能够清晰地反映出信号的频率特性随时间的变化。其中,小波变换作为时频分析的工具,能够同时提供关于信号时域和频域两方面的信息,是分析肌电信号的一种有效手段。因此在本研究中通过Mallat小波分解获取肌电信号的时频特征,并选取dB2小波作为Mallat分解的小波基。在实际实验过程中,肌电信号的采样频率为256Hz,如果进行四层以上的分解,得到的点数将下降到10左右,影响分析精度,所以在实际处理过程中,Mallat分解的次数定为4。由于Mallat分解的结果代表了在不同带宽内信号的强度随时间的变化情况。在每级分解中,采用奇异值分解的方法将高频系数压缩成一个参数。这样,对于每段肌电信号可以得到4个频域特征参数。
2.3 基于PCA的向量空间降维处理
在建立动作识别向量特征空间时,每块下肢肌肉的表面肌电信号特征值包括3个短时时频特征值和4个Mallat小波分解特征值,因为由于过多的向量维数会极大地增加识别算法复杂度,因此在实际研究中,采用主元分析(principal component analysis,PCA)方法,对向量空间进行降维处理。整个下肢动作识别流程可以简单地用图1来表示。
图1 下肢动作识别流程图
3 人体下肢运动的识别实验研究
3.1 实验被试选择
为避免性别及年龄因素对肌电信号造成影响,本研究选择浙江大学6位男性在读硕士研究生作为实验被试,基本资料如表2所示。
表2 被试基本资料
所有被试在实验期间身体健康状况良好,体态正常,无任何下肢关节损伤或疾病,以及任何其他行动受限的病症。为避免肌肉疲劳对实验造成影响,确保实验数据的客观性,所有受试者在实验前24小时内未进行任何形式的剧烈运动,无肌肉疲劳现象。
3.2 实验过程
文献[14]研究结果表明,股直肌、股外侧肌、股内侧肌、股二头肌、半腱肌在下肢各个动作变化时信号变化明显,同时在动作变化之间保持了较强的稳定性,因此在实际应用中,我们选用该5块最具代表性的肌肉肌电信号作为信息源进行人体下肢动作识别研究。对选取的下肢肌肉,用细砂纸清除皮肤表面角质,并用医用酒精棉球清除油脂后,沿选取肌肉肌纤维方向贴好一次性导电电极。具体电极安放位置如图2所示。
图2 肌肉选取及电极安放位置示意图
被试贴好电极后,将加拿大XSensor公司提供的足底压力测量鞋垫置于足底,设定阈值,以简单区分摆动与支撑两个动作集合。
在实验指导员的蜂鸣节拍器的指引下,被试重复完成起立、行走与上下楼梯等各日常下肢动作。利用加拿大Thought Technology公司生产的BioGraph Infinity TM 20通道表面肌电分析及训练系统和XSensor压力测量系统同步采集各肌肉表面肌电信号和足底压力信号相关数据,采样频率为1k Hz。每名被试重复动作30次(每次实验中,常速行走完成3个步态周期,上下楼梯实验中台阶数目都设定为3个)。
完成所有规定动作后,实验结束。
在实验数据处理过程中,肌电信号的数据处理和特征提取及SVM简化算法均利用MATLAB7.0实现。
3.3 实验结果
在实验过程中,每名被试的7个动作状态都截取512个数据点。参考移动窗采样方法[15],RMS、MAV和VAR等三个分段统计特征值取值周期为64个采样点组成的数据段。设移动窗大小为64点,每采集256点后进行一次Mallat小波分解。因此,5块下肢肌肉在512个数据点内(通过移动窗获得5组数据),共得到特征向量5×30×7=1050组。将每个被试的每个运动状况中随机取10组信号,共70组信号组成测试集,其余980组信号组成训练集。将训练集分为10等份,每次留一份验证模型性能,其余9份用来训练模型。
在利用支持向量进行分类训练时,核函数选取为高斯核函数,差异阈值τ=0.15。采用交叉校验(cross validation)的方法,优化后确定两个学习参数值:C=156,σ=0.5。确定参数后,采用本文提出的简约SVM分类方法对数据集进行测试。图3给出使用本研究所用SVM核主元简化算法对6名被试不同下肢动作的分类结果(图中用圆点表示实际动作被识别出的结果)。
表3给出6名被试的下肢动作识别的正确率。
3.4 结果分析
图3 6名被试下肢动作识别结果
表3 6名被试下肢动作识别正确率表 %
为有效削减支持向量的数量,在基本保持SVM分类器分类精度的基础上提高SVM分类器的分类速度,以保证下肢运动状态快速识别,本文提出了简约SVM思想。从实验结果来看,每个被试的整体识别正确率在80.0%~87.1%之间,表明使用本文所述方法能够以较高的识别率识别多模式的下肢运动状况,但该结果与实际应用还有相当大的距离:首先,只有100%的识别率才能保证智能辅助系统不会由于辨识失误而产生误操作,甚至伤害使用者;其次,正常人的日常下肢动作包含了行走、跑、跳、上下台阶等多种模式的运动,本研究虽然选择了7种宏观差异性较大的人体下肢动作片段进行了分类与识别,但还未涉及精细动作的分析。例如仅根据足前掌、足后跟和地面的关系就可以将平地行走划分为双腿支撑、单腿足前掌支撑、小腿加速摆动、小腿减速摆动、足后跟支撑、全足支撑等多个细分动作。后续的研究将重点分析如何细分并描述多模式的下肢动作,并对这些细分动作进行识别。同时,由于在具体的下肢动作识别操作过程中,核函数的构建和分类器最优参数的选择还没有十分完美的方法,如何在保证最优的泛化能力、最大简约率和分类精度的前提下,选择最优的差异阈值等分类器参数以及优化核函数是未来简约SVM算法研究的重点。另外,如何获取更优的肌电信号特征向量,也是下阶段研究的主要内容之一。
6个被试对象所有7个不同动作片段的整体识别正确率在80%~90%之间,其中以起立和上楼梯支撑动作片段的识别精度最高,而平地匀速行走摆腿动作的识别精度最低。行走摆腿误判率高的原因主要可能在于人体腿部悬空前摆动作同时涉及到腿部肌群的向心收缩和离心收缩。虽然从绝对值上看,腿部各肌肉用于拉动腿从静止加速到某一速度后再减速到静止的过程中,腿部用于克服重力和提高加速度的肌肉施力并不大,但各肌肉在协同动作过程中肌电信号频率和幅值多变,增加了识别难度。受到表面肌电信号获取条件的限制,后续的研究将考虑引入其他人体生理信息传感器作为补充,采用多传感器信息融合技术,并将行走摆腿动作进一步细分,以提高识别精度。
为了避免性别、年龄、实验环境等因素对实验结果造成影响,而在研究中对被试对象进行了简单限制,但导电电极安放位置等其他因素也会对识别率产生一定的影响。未来的研究将考虑设计表面肌电信号“标定”方法,以降低该类影响的干扰,将基于肌电信号的智能人体运动辅助系统推向实用。
4 结束语
本文提出了基于简约支持向量机多元分类的下肢动作识别算法。以股直肌、股内侧肌、股外侧肌、股二头肌和半腱肌5块下肢肌肉的表面肌电信号为信息源,综合RMS、MAV和VAR等三个分段统计特征值和Mallat小波4层分解出的时频特征值建立了特征向量空间。通过将起立、常速平地行走和上下楼梯等日常下肢动作分解为7个动作片段,进行了动作识别。实验结果证明了本研究方法的有效性,丰富了人体下肢动作识别的方法,为人体下肢智能辅助设备的研发提供了理论基础。
[1] 陈鹰,杨灿军.人机智能系统理论与方法[M].杭州:浙江大学出版社,2006.
[2] Leuthardt E C,Schalk G,Wolpaw J R,et al.A Brain-computer Interface Using Electrocorticographic Signals in Humans[J].Journal of Neural Engineering,2004,1(2):63-71.
[3] Li Yong,Gao Xiaorong,Liu H,et al.Classification of Single-trial Electroencephalogram During Finger Movement[J].IEEE Transactions on Bio-medical Engineering,2004,51(6):1019-1025.
[4] Zhou H,Hu H,Harris N D,et al.Applications of Wearable Inertial Sensors in Estimation of Upper Limb M ovements[J].Journal of Biomedical Signal Processing and Control,2006,1(1):22-32.
[5] Sazonov E S,Bumpus T,Zeigler S,et al.Classification of Plantar Pressure and Heel Acceleration Patterns Using Neural Networks[C]//Proceedings of 2005 IEEE International Joint Conferenceon Neural Networks.Montreal,Canada,2005:3007-3010.
[6] Kuzelicki J,Zefran M,Burger H,et al.Synthesis of Standing-up Trajectories Using Dynamic Optimization[J].Gait&Posture,2005,21(1):1-11.
[7] Castellini C,Smagt P.Surface EMG in Advanced Hand Prosthetics[J].Biological Cybernetics,2009,100:35-47.
[8] Yan Zhiguo,Wang Zhizhong,Xie Hongbo.The Application of Mutual Information-based Feature Selection and Fuzzy LS-SVM Based Classifier in Motion Classification[J].Computer Methods and Programs in Biomedicine,2008,90:275-284.
[9] Lucas M F,Gaufriau A S,Pascual S,et al.M ultichannel Surface EMG Classification Using Support Vector Machines and Signal-based Wavelet Optimization[J].Biomedical Signal Processing and Control,2008,3(2):169-174.
[10] 席旭刚,李仲宁,罗志增.基于相关性分析和支持向量机的手部肌电信号动作识别[J].电子与信息学报,2008,30(10):2315-2319.
[11] 佘青山,孟明,罗志增,等.基于多核学习的下肢肌电信号动作识别[J].浙江大学学报(工学版),2010,44(7):1292-1297.
[12] 颜志国.基于粗糙集和支持向量机的表面肌电特征约简和分类研究[D].上海:上海交通大学,2008.
[13] 曾志强.支持分类向量机的训练与简化算法研究[D].杭州:浙江大学,2007.
[14] 吴剑锋.基于肌电信号的人体下肢运动信息获取技术研究[D].杭州:浙江大学,2008.
[15] 何乐生.基于肌电信号的人机接口技术的研究[D].南京:东南大学,2007.