基于DTW算法的sEMG手势识别控制系统设计

2025-01-17 00:00:00韩团军雷栋元黄朝军卢超
现代电子技术 2025年2期
关键词:手势识别机械臂特征提取

摘" 要: 人体在运动过程中会产生微弱的生物电信号,其中蕴含着大量的控制信息。为了使用生物电信号中的信息控制机械臂动作,提出一种基于DTW算法的sEMG手势识别控制系统,利用该系统对采集的原始信号进行滤波和放大。为了确定有效的sEMG,采用移动平均法对处理信号进行划分。使用平均绝对值从数据片段中提取有效段数据,应用DTW算法将3路表面肌电信号融合,计算样本与模型之间的相似度,实现手势识别;再将识别后的信号通过无线模块发送到控制指令,以控制机械臂的动作;最后,采用提出的算法并结合6种类型的手势分类模型创建最佳特征模型。实验测试结果表明,使用动态时间规整(DTW)算法进行手势识别的平均准确率为93.752%,6种手势的平均模型匹配率达到92%,实现了肌电信号对机械臂的精确控制。由此证明所提方法的手势识别比传统的阈值控制开关更准确。

关键词: 手势识别; DTW算法; 表面肌电图(sEMG); 特征提取; 机械臂; 手势检测

中图分类号: TN911.71⁃34; TP242" " " " " " " 文献标识码: A" " " " " " " " " " " "文章编号: 1004⁃373X(2025)02⁃0131⁃06

Design of sEMG gesture recognition control system based on DTW algorithm

HAN Tuanjun, LEI Dongyuan, HUANG Chaojun, LU Chao

(School of Physics amp; Telecommunications Engineering, Shanxi University of Technology, Hanzhong 723000, China)

Abstract: The human body can produce weak bioelectric signals during movement, which contains a large amount of control information. In order to use the information from bioelectric signals to control the movement of robotic arms, a sEMG (surface electromyography) gesture recognition control system based on DTW (dynamic time warping) algorithm is proposed, which can be used to filter and amplify the collected original signal. In order to determine the effective sEMG, the moving average method is used to partition the processed signal. The MAV (mean absolute value) is used to extract the valid segment data from data fragments, the DTW algorithm is used to fuse three sEMG, and the similarity between the sample and the model is calculated, so as to realize the gesture recognition. The recognized signal is used to send the control command by means of the wireless module to control the action of the robotic arm. The proposed algorithm is used to create the optimal feature model by combining with 6 gesture classification models. The experimental results show that the average accuracy of the gesture recognition using the DTW algorithm is 93.752%, and the average model matching rate of 6 gestures can reach 92%, achieving the precise control of the robotic arm by sEMG. It proves that the gesture recognition of the proposed method is more accurate than traditional threshold controlled switches.

Keywords: gesture recognition; DTW algorithm; surface electromyography; feature extraction; mechanical arm; gesture detection

0" 引" 言

肌电信号是肌肉活动状态中产生的动作电位序列,不同序列对应不同的肌肉收缩模式,不同肌肉收缩模式对应不同的sEMG信号特征,通过对肌电信号特征差异性研究,可以将肌电信号应用于人工智能控制等领域[1⁃3]。本文提出了一种基于DTW算法的sEMG手势识别控制系统,系统通过肌电传感器采集原始肌电信号,对原始肌电信号进行滤波和放大;为了确定有效的sEMG,采用移动平均法对信号进行处理并划分信号段。然后使用平均绝对值(MAV)从数据片段中提取有效段数据。应用DTW算法将3路表面肌电信号融合,计算出样本与模型之间的相似度,实现手势识别,识别后的信号通过无线模块发送控制指令来控制机械臂进行动作。通过测试证明该手势识别比传统的阈值控制开关更准确,控制动作成功率在90%以上。

1" 系统的硬件模型

基于DTW算法的sEMG手势识别控制系统可分为两部分:一部分是以Arduino系列为微处理器的sEMG信号处理和手势识别系统;另一部分是以Cortex⁃M3系列为微处理器的机械手臂执行系统。系统首先对肌电信号进行预处理、数据分割、特征提取和模板匹配识别,识别的手势信息通过无线模块发送给机械臂,机械臂执行相应动作。整个系统的框图如图1所示。

2" 实验步骤设计及数据采集处理

2.1" 数据预处理

针对表面肌电信号的原始信号复杂性,对采集到的数据进行去噪处理,利用4阶的巴特沃斯高通滤波器(f=10 Hz)去除运动伪迹和电缆引起的电噪声,再利用带通滤波(f=500 Hz)去除高频噪声[4]。通过陷波处理可以有效地消除电磁场引起的50 Hz工频噪声。系统设计了调零稳压电路确保系统的输入和输出能够达到平衡,有效地减少系统的零点偏差。

2.2" 信号数据分割

为了满足系统的实时需求,设计使用阈值比较法和移动平均法相结合的方法提取出有效数据的起始和终止时刻,移动平均法通过使用固定的滑动窗口,以获取当前区域的平均能量,从而获取当前区域的状态。通过肌电信号把手势动作分割出来,实现手势识别的有效性。移动平均法示意图如图2所示。

每个人肌肉纤维的特性和肌肉信号的能量变化幅度不同,影响系统判断动作的有效性。通过能量法可以得到不同的肌电信号中的有效动作段,可以提高诊断的准确性。图3是握拳动作3个连续动作的能量图,第一列显示了每个动作的滑动平均值,第二列显示了每个动作的滑动平均探测能量。图中的虚线代表一个特定的阈值(T=0.76),由于人体肌肉纤维组织的差异性,不同人之间的阈值不同,所以每个人需要根据自身产生的表面肌电信号的动态范围和噪声水平,计算信号的移动平均值和标准差,然后根据标准差和一个可调节的系数来调整合适的阈值。如果一个动作的连续度超过了这个阈值,判断其是一个有效的动作。经过与阈值信号T的比较分析可得到有效的动作点,可以将其从整个时间序列信号中准确提取[5⁃8]。

2.3" 数据特征提取

由于分割后的肌电信号比较微弱,系统采用时域法对5种动作肌电信号进行特征提取。该方法不需要系统进行其他数据转换操作及数据加工,方便系统计算,系统的负载工作量也比较小。该方法的基本思想是通过改变窗口信号的长度和宽度,获得一个更加精确的平均能量[9]。式(1)~式(5)的运算可以提取到肌电信号对应的时域特征值。

平均绝对值(MAV)反映了信号曲线函数偏离的程度,公式如下:

[MAV=1Ni=1Nxi] (1)

均方根(RMS)反映了肌肉活动产生的肌电信号能量的强弱,公式为:

[RMS=1Ni=1Nx2i] (2)

积分肌电值(IEMG)反映了肌肉运动时的活动强度,公式为:

[IEMG=i=1Nxi] (3)

标准偏差(STD)反映了肌电信号数据间的离散程度,公式为:

[STD=1Ni=1N(xi-x)2] (4)

Willison振幅(WA)反映了肌肉运动时的收缩能力,公式为:

[WA=i=1N-1fxi-xi-1] (5)

2.4" DTW算法实现

实验采集的信号序列是离散的时间序列,人体的每一组动作执行肌肉动作信号序列、肌肉运动的力度大小及频率、肌肉动作时间节奏相差较小,算法设计可以控制数据稳定在同一运动时间频率范围。使用动态时间规整(DTW)算法来实现直接对人体这些离散肌电信号序列进行快速的识别,可以避免因特征序列长短强弱不统一在某一阶段引起无法正确有效地识别信号序列的问题。此方法可以大幅度提高肌电信号识别检测的整体准确度。文中使用DTW算法来实现对特征序列的自动识别,生成准确的信号值序列[10⁃14]。设参考模板R中动作总帧数为M,即[Ri={r1,r2,…,rm,…,rM},i=1,2,…,8],rm表示第m帧的动作特征矢量,每个分量是一个3维的向量;设测试模板为T,[Tj={t1,t2,…,tn,…,tN},j=1,2,…,8],其是一个N维向量。其中,M和N的长度可以不同,但它们的维度值应当保持一致。对于每一维向量,参考模板和测试模板之间的帧匹配距离用公式(6)计算得出。

[ditn,rm=tn-rm, i=1,2,…,8]" " "(6)

DTW算法示意图如图4所示。在一个二维的直角坐标系中,横轴数为N位,即表示每一个被测试的样本,纵轴数为M位,则表示其为一参考的测试样本,而图中的整数坐标点即表示每一个被参考的测试样本和上一个参考测试的样本坐标间关系的另一个交汇点。DTW算法就是寻找在每完成一条动作,通过坐标网格点之前的最后一条的最短路径。由于在每个动作的变化轨迹之间的动作先后顺序之间并不可能会随时发生任何变化,因此路径的选择一定是从左下角开始到右上角结束。

路径所通过的格点依次为(t1,r1),(t2,r2),…,(tN,rM) 。为了确保每一个点都不会出现太大的偏差,把斜率的大小设定为0.5~2,并且确保每一个点都不会超出设定的阈值,以便最终实现第一个(n,m)的目标,则前一个点只可能为(n-1,m)或(n-1,m-1)或(n-1,m-2)。通过计算Di(tN,rM)可以确定出各维度的特征向量之间的最短间隔,具体表现在公式(7)中。根据公式(7)和公式(8),表示出各维度的第3维度的特征向量之间的最短间隔DTW。

通过DTW算法可以将肌电信号中的两个活动段进行定位,并将它们的两个有效运动段进行匹配,从而得到更接近实际情况的结果。此外,由于干电极传感器臂上有一个3维的输出信息,可以利用DTW算法自动完成匹配,从而有效地减少由于测量角度不准等原因导致的精度误差。

3" 设计结果分析

3.1" 模板制作与匹配

创建手势模板的目的是提高对手势动作的有效识别率,克服视觉偏差、位置的不同、个体差异产生的影响。模板在制作模型的整个过程考虑了各种组织差异,为了构建一个有效的模型,需要先从训练阶段的训练样本中提取数据,然后估计它们的平均长度。识别出信号序列的有效部分,并选择长度相似的样本进行平均训练,以确定最佳的样本长度。对于每个训练动作,选择8个长度与其平均动作长度相差最小的样本,然后使用这些样本来匹配其他动作,以确保能够找到最大、最小或最低的运动样本。通过DTW算法可以从7个动作样本中筛选出与之最匹配的时间序列点,并将其取平均,从而获得每个练习动作的初始模板。该方法可以更好地参考和比较不同的动作,从而更有效地提高训练效果。在实验测试中仅使用了一个模板。表1所示为模板的匹配距离。

最终的识别结果用混淆矩阵表示,如表2所示。

从表2的实验数据结果分析可得,手势识别平均准确率为93.752%。在这6个动作中,握拳和展拳动作的特征最为明显,握拳手势和展拳手势两个动作的手势准确率为100%,OK手势的手势准确率较低为84.38%。

3.2" 特征值提取结果分析

图5a)是点赞手势动作时获取的一组较原始的肌电数据,图5b)是通过对图例中的数据图进行特征提取运算处理后而获得的这一组原始数据图。

图中:横坐标轴上为移动窗口后所对应的序列号;图上的散点表示特征提取运算结束后序列号所对应的特征值。

从图中可以清楚地看出,特征值的变化趋势和实际变化的幅度都有明显的差异。因此,在提取或处理特征信号数据时,应当考虑到这些变化的实际情况,以便更好地分析出原始信号数据的幅度。

3.3" 实验硬件控制效果

机械手臂使用3D打印进行实现,动作执行依靠无线传输数据指令来控制机械臂内部舵机进行动作。整个测试平台如图6所示。

按照之前的采集数据操作过程进行模型匹配。测试动作的模板顺序依次为握拳、展拳、手腕左旋、手腕右旋、OK手势、点赞手势,6种手势所对应的机械手臂动作如图7所示。

实验中,通过手部的动作和机械手的动作进行对比,来判断识别是否准确,如果机械手的动作和对应手部动作相同,认为识别成功。实验共进行600次,每个动作识别100次。手部的动作和机械手的动作对比结果如表3所示。

由表3可以得出,握拳手势和展拳手势识别控制的准确率为96%,手势控制平均准确率为92%,握拳手势和展拳手势准确率高是选取的测试肌肉区域对这两种手势反应比较强烈,其他的手势的反应较小。

4" 结" 论

本文设计了一种基于DTW算法的sEMG手势识别控制系统。对于肌电信号的采集、处理、识别和机械手臂的控制,使用动态时间规整算法进行手势检测,平均准确率为93.752%,6种手势的平均准确率达92%,实现了肌电信号对机械手臂的精确控制。结果表明,所提系统具有一定的实际应用价值。

参考文献

[1] 韩团军,张晶,黄朝军,等.基于sEMG信号和BPNN算法的机械臂控制系统设计[J].机床与液压,2023,51(19):106⁃111.

[2] 王金玮,曹乐,阚秀,等.基于表面肌电信号的LDA⁃BPNN双臂手势识别算法[J].传感器与微系统,2023,42(6):158⁃160.

[3] 冯凯,董秀成,刘栋博.基于多域融合与特征选择的手势识别研究[J].传感器与微系统,2023,42(5):37⁃40.

[4] 谷中历,张霞,徐梓桓,等.一种基于sEMG信号多重分形的肌肉疲劳特征分析方法[J].河北科技大学学报,2023,44(2):103⁃111.

[5] 侯一帆,文斌,徐进,等.基于CC3200和ADS1299表面肌电无线采集系统[J].中国医疗器械杂志,2023,47(2):150⁃153.

[6] 李宏伟,张淑亮.DTW算法在地震时间序列信息挖掘中的应用[J].山西地震,2023(1):37⁃40.

[7] 常铭,许孟华,杨建宏,等.面向动物机器人的新型可充电表面肌电信号采集系统设计与应用[J].现代电子技术,2022,45(24):136⁃140.

[8] 刘强,李玉榕,杜国川,等.基于sEMG信号的关节力矩NARX预测模型[J].仪器仪表学报,2022,43(11):123⁃131.

[9] 钱美超,黄琰,章芳,等.基于DTW算法的台风运动轨迹相似性研究[J].电子技术与软件工程,2022(19):230⁃233.

[10] 李林丰,薛波.基于改进DTW算法的窨井盖盗损检测方法[J].电声技术,2022,46(9):111⁃116.

[11] 刘光达,许蓝予,肖若兰,等.基于FGNN算法的sEMG肌肉疲劳分类方法[J].科学技术与工程,2022,22(19):8370⁃8377.

[12] 谢小雨,刘喆颉.基于DTW算法的肌电信号手势识别方法[J].计算机工程与应用,2018,54(5):132⁃137.

[13] 张应祥,位少聪,张茜茜,等.基于迁移学习的表面肌电信号手势识别[J].南京理工大学学报,2023,47(3):304⁃310.

[14] 杜妍辰,孙洁,汪晓铭,等.基于肌电信号的人体下肢运动意图映射研究进展[J].上海理工大学学报,2023,45(2):128⁃136.

猜你喜欢
手势识别机械臂特征提取
基于Daubechies(dbN)的飞行器音频特征提取
电子制作(2018年19期)2018-11-14 02:37:08
Bagging RCSP脑电特征提取算法
基于智能车技术的图书馆书籍整理机器人
机械臂平面运动控制与分析
基于手势识别的工业机器人操作控制方法
基于红外的非接触式手势识别系统设计
基于嵌入式的智能手表设计
机械臂工作空间全局相对可操作度图的构建方法
人机交互课程创新实验
计算机教育(2016年7期)2016-11-10 09:01:27
复杂背景下的手势识别方法