王 博, 闫 娟, 杨慧斌, 徐春波, 吴 晗
(上海工程技术大学机械与汽车工程学院, 上海 201620)
目前,国内人口老龄化的问题较为严峻,老年人的健康问题已经逐渐成为人们关注的焦点。 研究可知,老年人往往行动不便或者难以表达,因此通过手势表达内心想法便成为非常重要的一种途径。 目前,主要的手势识别方式有视觉识别[1]和人体生物信号[2]识别两种,其中表面肌电信号(SEMG)识别方式作为一种生物信号显得尤为重要,因为其中蕴含着大量的信息。基于此,本文中通过人体表面肌电信号进行手势识别,通过手势识别的研究为后续研究提供基础。 迄今为止,关于肌电信号对人体手势识别的研究已经取得较多成果,但大多研究对手势识别研究不够深入,赵诗琪等学者[3]使用了支持向量机来识别4 种手势,识别结果为99.92%。隋修武等学者[4]通过非负矩阵分解与支持向量机的联合模型识别6 种手势动作,识别结果为93%。 江茜等学者[5]通过多通道相关性特征识别8 种手势动作,识别结果为94%。 当识别的手势种类增多时,分类器的识别精度将会随之降低,大量学者对分类器进行优化以利于提高识别精度。 Leon 等学者[6]对9种手势进行识别,识别精度为94%。 Lian 等学者[7]通过K 最邻近和决策树算法识别10 种手势动作,识别率仅为89%。 综上所述,为了满足当前医疗康复设备的需求,多手势识别的精确度还有待提高。
使用SEMG 信号进行手势识别时,特征提取和模式识别是提高手势识别精度的关键。 典型的特征提取方法主要包括时域特征提取、频域特征提取和时频域特征提取[8]。 模式识别主要通过搭建分类器实现,基于SEMG 识别常用的分类器主要包括BP(Back Propagation)神经网络[9]、极限学习机(Extreme Learning Machine,ELM)[10]、卷积神经网络(Convolutional Neural Networks, CNN)[11]和支持向量机(Support Vector Machine,SVM)[12]等分类模型。 但以上方法均存在一定程度的不足:BP 神经网络在识别手势时准确率较低;由于极限学习机要经过反复的迭代学习,因此其训练速度在一定程度上相对缓慢;KNN 计算量较大,计算时间长;SVM 分类思想简单、分类效果较好,但训练参数值的选取会影响分类器的效果[13]。
基于上述分析,本文中提出一种基于粒子群算法(Particle Swarm Optimization, PSO)优化支持向量机的多手势识别方法,以提高多手势的识别精度。首先,利用主成分分析法对提取的表面肌电信号特征进行降维处理;然后,利用PSO 对SVM 的惩罚参数C和核函数半径参数g迭代寻优;最后,使用PSO优化的SVM(PSO-SVM)分类模型识别了16 种手势,并与未优化的SVM 分类模型和遗传算法(Genetic Algorithm, GA)优化的SVM 分类模型进行对比,从而验证本文所提方法的准确性。
受试者为实验室中3 名男生和1 名女生。 受试者年龄在23 ~28 岁,平均身高在170 cm,均为右手使用者且无神经肌肉骨骼疾病。 实验前24 h 内没有进行高强度运动并且身心舒适。
用磨砂膏和75%酒精棉清洁右肢掌长肌、桡侧腕屈肌、尺侧腕屈肌、指伸肌、指浅屈肌和肱桡肌皮肤表面皮肤,减少皮肤阻抗干扰。 通过Delsys 无线肌电设备对6 块肌肉的表面肌电信号同时进行采集。 受试者端坐于试验台前,背部保持90°,左手臂自然垂下。 实验时,共采集16 个手势动作,每个动作维持6 s,休息4 s,进行6 次循环,重复以上动作直至4 名受试者全部采集完成。
SEMG 信号是由人体内神经肌肉系统产生的一种特别微弱的生物电信号。 SEMG 信号的电压幅度范围是0~5 mV,频率范围是20~1 000 Hz,其主要能量集中在50~150 Hz 范围内。 因此,首先设计陷波滤波去除原始信号中50 Hz 的工频干扰,再设计30~300 Hz 的巴特沃斯带通滤波器去除肌电信号中的基线漂移及其他噪声信号。 图1 分别为滤波前后的时域波形及频域振幅谱,较好地滤除了有效范围外的噪声信号。
图1 肌电信号滤波图Fig. 1 Filtering diagram of SEMG signal
为了能更全面地分析SEMG 信号中所包含的信息,本文分别提取了肌电信号中的时域特征、频域特征和时频域特征三种特征模型。
1.3.1 时域特征提取
本文选用的时域特征有均方根值(RMS) 和绝对平均值(ARV)。 时域特征值的计算公式为:
其中,xi(i=1,2,…,N) 是信号的时间序列。
1.3.2 频域特征提取
本文选用的频域特征是平均功率频率(MPF)和中值频率(MF)。 频域特征值的计算公式为:
其中,f是SEMG 信号的频率,PSD(f) 是SEMG 信号的功率谱密度函数。
1.3.3 时频域特征提取
时频分析法可以对信号在时域和频域内的能量信号同时进行展现,这对于分析非平稳信号相当重要。 其中,小波变换具有较好的准确性, 本文采用小波变换计算时频域特征瞬时平均功率(IMPF) 和瞬时中值频率(IMF),公式具体如下:
其中,f是SEMG信号的频率,PSD(t,f)是频率和时间的二维函数。
本文利用6 通道SEMG 信号,以此对36 个维度的特征参数进行提取。 高维数据由于存在很多冗余特征,使得实验过程中的计算量增多,并因此对分类器产生极大的影响。 同时,在此过程会产生“过拟合”、“维数灾难”等系列问题,从而降低分类器的性能[14]。 因此,本文中使用主成分分析法进行降维处理。 对其步骤流程可做分述如下。
(1)首先,将计算得到的特征值进行处理构建样本矩阵,样本矩阵通过m行n列的矩阵X表示,得到:
(3)分解协方差矩阵C并计算协方差矩阵的特征值λ1≥λ2≥…≥λn和特征向量a1,a2,…,an。
(4)确定特征矩阵主成分的个数v并构建主成分矩阵:
其中,An×v=[a1,a2,…,av], 最后得到SEMG手势特征降维后的主成分特征Ym×v。
支持向量机(SVM)是基于统计学领域的VC 维理论和结构风险学最小理论基础上的一种机器学习算法,常用于模式分类和非线性回归[15]。 通常,通过将向量映射到高维空间,以此来解决输入量与输出量之间的非线性问题。 同时,通过设定的核函数g,将输入空间利用非线性变换转变到高维空间,从而通过高维空间得到最优线性分类面。
对于给定的训练样本集{(xi,yi)},i=1,2,…,n,x∈Rn,y∈(-1,1),设最优平面为ωTx+b=0,分类间隔为:
判别模型为:
若要找到最大间隔,即找到参数和使得最大,等价于最小化,因此求解问题最终转化为带约束的凸二次规划问题:
其中,εi=1-yi(ωTxi+b)为损失函数,C是惩罚参数,C的值与错误分类的惩罚程度成正比,其值越小,则惩罚程度越小;反之,惩罚程度越大。 同时,利用凸优化理论,将约束问题通过引入的拉格朗日乘子法转化为无约束问题:
因此,最终得到:
粒子群优化算法(PSO)是一种设计无质量的粒子来模拟鸟群中的鸟不断迭代寻优来解决优化问题的方法[16]。 粒子的速度和位置通过迭代进行更新,粒子群优化算法公式为:
其中,ω表示惯量因子;d=1,2,…,D表示空间维数;i=1,2,…,n表示粒子数;k表示当前迭代次数;表示第i个粒子在第k次迭代速度;表示第i个粒子在第k次迭代位置;表示第i个粒子的个体最优解;表示第i个粒子的全局最优解;c1,c2表示学习因子;r1,r2表示随机数。
空间中的粒子不断搜寻其自身的最优解,将自身最优解传递给其他粒子,在所有传递的个体最优解中寻找全局最优解,所有粒子根据自身最优解及全局最优解不断调整位置及速度。
为了使SVM 能够对肌电信号特征进行快速精确地识别,通过PSO 对SVM 中分类识别影响最大的2 个元素进行优化,即惩罚参数C和核函数半径参数g,将SVM 结果中误差最小的一组惩罚参数和核函数半径参数用于预测分类。 图2 是PSO 优化SVM 的流程图。 由图2 可知,m个粒子在D维空间中不断更新运动速度及自身所处位置,通过反复迭代寻优得到SVM 的最优参数。
图2 PSO-SVM 流程图Fig. 2 PSO-SVM flow chart
PSO 优化SVM 主要包括初始化种群、寻找初始极值、迭代寻优等操作,其步骤为:
(1)在D维空间中,随机对m个粒子进行初始化,即对SVM 参数编码,形成初始种群。
(2)初始化的种群输入到SVM 分类器中,通过训练得到适应度值。
(3)评估计算得到的粒子适应度值。
(4)寻找全局最优参数,并判断是否满足终止条件。
(5)若寻找得到的最优参数不满足终止条件,则更新迭代过程中的全局最优速度和全局最优位置,形成新的种群返回到步骤2 继续计算;当结束条件得到满足时,通过将最优参数对SVM 重新训练,并将其作为最终分类器对特征识别分类。
通过上述PSO 优化算法得到SVM 中惩罚参数C和核函数半径g的最优解,对分类器进行训练和分类预测。
实验将从2 方面对所提出方法模型进行分析验证:
(1)分别使用本文设计的算法模型与传统SVM模型、遗传算法优化SVM 模型对相同的实验数据进行实验对比,验证模型的有效性。
(2)为判断模型的识别性能,使用交叉验证,将训练样本与验证样本的数据来源分割开来用于实验,以评估方法的通用性,使用不同人的训练样本去验证其他人的测试样本。
将PCA 降维后的特征矩阵按照5 ∶1 的比例分类参与分类器的训练和验证,训练和测试的样本不重叠且从实验者中平均调取。 测试结果如图3 所示。 表2 是关于分类器识别性能在不同方法下的对比。
表2 不同数据源实验结果对比表Tab. 2 Comparison table of experimental results of different data sources
图3 测试结果对比图Fig. 3 Comparison table of results of different models
表1 不同模型结果对比表Tab. 1 Comparison table of results of different models
由上述实验结果可以得出分析如下,不同方法表现出不同的分类效果。 其中,传统的SVM 方法,分类效果易受到干扰,分类精度不高;GA-SVM 虽然能够提高手势的识别精度,但在分类过程中需要经过31 次的迭代才能够达到分类的效果;对于本文中的方法,不仅对手势识别的准确率保持最高,同时也大大缩减了算法的复杂度,极大地提高了运算处理效率,表现出较好的分类识别性能。
考虑模型的通用性,即模型中训练的数据是基于部分受试者肌电信号进行训练,但手势识别对其他受试者的肌电信号同样适用。 同时,为了分析所提出的模型在相同被试和不同被试下的识别性能,实验设计了男女混合验证的方式以消除性别的影响,按照2 位男性同学的肌电信号进行训练,另外2位同学的肌电信号用于识别。 分别使用SVM 和POS-SVM 进行实验对比,验证本文中所提方法的有效性。 得到的训练结果性能对比见表2。
由表2 中的结果可知:不同数据源的实验比同一数据源降低了3.61%,而SVM 下降程度更高,也进一步说明了本文中所提出的优化方法具有较好的识别性。
为了提高多手势识别的精度,文中提出了基于PSO-SVM 的识别方法。 结果表明,通过肌电信号的陷波滤波和带通滤波进行预处理,并对其从时域、频域和时频域提取信号特征,再经过PCA 降维后使用本文所构建的PSO-SVM 分类模型对16 种手势识别准确率达到94.253%,将其与未被优化的SVM 模型和GA-SVM 模型进行对比,可知其识别效果有非常明显的改善。 后续可将PSO-SVM 分类模型应用于机械运动控制、外骨骼控制等领域。