表面肌电信号(sEMG)是一种不平稳非周期的微弱信号,基于时域和频域特征提取的 sEMG 信号分类方法识别率低、稳定性差。本文通过对 sEMG 信号能量核特征的建模分析,提出一种利用卷积神经网络(CNN)对 sEMG 信号能量核相图进行分类的新架构,来对人体手势动作进行识别。首先,利用矩阵计数方法将 sEMG 信号能量核相图处理为灰度图像;其次,利用移动平均对灰度图进行预处理;最后,采用 CNN 对手势 sEMG 信号进行识别。利用手势 sEMG 信号数据集进行了实验验证,结果表明选用 CNN 识别框架的有效性以及 CNN 结合能量核相图的识别方法相比于能量核面积提取方法,在识别精度和计算效率上具有明显的优势。本文算法为 sEMG 信号的建模分析与实时识别问题提供了新的可行方法。
引用本文: 许留凯, 张克勤, 徐兆红, 杨根科. 基于表面肌电信号能量核相图的卷积神经网络人体手势识别算法. 生物医学工程学杂志, 2021, 38(4): 621-629. doi: 10.7507/1001-5515.202010080 复制
引言
随着人口老龄化现象的加剧,老年运动障碍患者也急速增多,辅助康复以及助力助行外骨骼机器人的需求增大。外骨骼机器人是模仿生物界外骨骼而提出的一种新型机电一体化装置,结合传感、控制、信息融合、移动计算等技术,不仅可为穿戴者提供支撑与保护,还能辅助人体完成适度动作,执行特定任务等[1]。通过获取表面肌电信号(surface electromyography,sEMG)并进一步识别穿戴者的运动意图是实现外骨骼机器人辅助运动功能的重要基础,是人机交互研究热点问题[2]。当前 sEMG 信号采集技术成熟,蕴含信息丰富,且可以在体表对活动肌肉进行无创检测,现已广泛使用[1]。基于 sEMG 信号的意图识别主要包含 sEMG 信号特征提取与分类器设计两大问题。常用的 sEMG 信号特征包括时域、频域和时频分析三大类[3]。时域与频域特征虽然计算方便,但是 sEMG 信号的不平稳性导致这些特征稳定性较差[4],时频特征分析虽然稳定性较好,但是其计算复杂,无法满足运动意图识别对实时性的要求[5]。
由于时域、频域等特征在 sEMG 信号特征识别中存在不稳定性,一些学者开始对肌肉生物机制建模分析。Chen 等[5]提出了能量核方法来估计肌肉收缩力及肌肉的一些固有特征,并通过实验证明该特征的鲁棒性和较强的泛化能力。对于 sEMG 信号能量核特征的研究,主要集中在如何更高效地计算能量核相图椭圆分布面积的方法上,Chen 等[5]提出的线性围栏法(linear fencing,LF)利用倾角变化的直线去拟合椭圆边界,并以此计算面积,但是该方法计算效率较低,无法满足实时性的要求。为此,Chen 等[6]又提出了离散盒矩阵计数法(discrete box counting,DBC),利用矩阵覆盖散点并设定阈值计数的方法来计算椭圆面积,计算效率显著提高。Zeng 等[7]通过改进 LF 法,只用四条相互垂直的直线来确定椭圆边界,可实现与文献[6]相近的识别准确率,且椭圆面积的计算更方便。石欣等[8]对 DBC 进行了改进,提出了阈值矩阵计数法(threshold matrix count,TMC)设定两个阈值来计数,相比于 DBC 考虑了椭圆边界处的分散点。上述方法都是手动计算能量核椭圆面积,缺乏统一的参数标准,还会遗漏能量核相图的其它特征,或者对特征的提取不够充分。
在分类器设计上,人工神经网络(artificial neural network,ANN)是一种模仿生物神经网络的数学模型,广泛应用在图像处理、语音识别等领域[9-10]。针对手动提取 sEMG 信号特征带来的不足,自然引入 ANN 进行训练与学习,其中卷积神经网络(convolutional neural network,CNN)、多层感知器(multilayer perceptron,MLP)、循环神经网络(recurrent neural network,RNN)和长短期记忆网络(long short-term memory,LSTM)应用较为广泛[11-17]。Atzori 等[12]将一段时间窗覆盖的多通道 sEMG 信号幅值形成的二维矩阵作为 CNN 输入,通过设置时间窗的大小与移动步长来提取 sEMG 信号的幅值特征,利用 CNN 对幅值矩阵进行特征提取与分类。Geng 等[13]利用 8×16 高密度肌电阵列采集手臂 sEMG 信号,将瞬时 sEMG 信号的幅值当作矩阵每个元素值,以此形成 sEMG 信号幅值阵列图像作为 CNN 网络输入。Wei 等[14]利用多流 CNN 对高密度 sEMG 信号瞬时幅值图进行训练,将多通道 sEMG 信号幅值图分别输入多个 CNN,后将多流 CNN 学习到的特征进行融合并识别分类。相比于高密度肌电图,Zhai 等[15]对稀疏多通道的 sEMG 信号进行快速傅里叶变换(fast Fourier transform,FFT),获得 sEMG 信号频谱图像来进行 CNN 训练,利用 CNN 进一步提取频谱特征信息并识别。He 等[16]分别利用 MLP 与 LSTM 对 sEMG 信号时序及幅值矩阵进行特征提取,再将网络学习到的特征融合为新的特征向量进行分类识别。Wu 等[17]利用 LSTM 网络对 sEMG 信号提取时序特征,后利用 CNN 对 LSTM 的输出特征进行二次特征提取与识别。上述网络大多采用 sEMG 信号原始时序数据或频域信息作为网络输入,但是由于 sEMG 信号时域、频域特征的不稳定性可能会导致运动意图识别的稳定性下降[4]。
本文提出一种 sEMG 信号能量核模型的识别框架,该框架通过引入 CNN,对能量核相图进行网络学习与特征提取。新框架在处理能量核相图中,省去计算面积的步骤,直接对能量核相图进行网络自动学习与训练,这相比单纯提取能量核相图的椭圆面积可学习到更全面的特征且速度也更快,同时以能量核相图作为网络输入也避免了 sEMG 信号时域、频域特征不稳定所带来的局限。本研究进一步利用公开的多通道手势 sEMG 数据集进行手势识别实验,以验证本文所提识别框架的有效性和实用性。本文提出的识别算法为人体 sEMG 信号的建模分析提供了新的思路,或可为基于人体生物学的人机交互研究带来新的启发。
1 sEMG 信号能量核模型
1.1 数据集来源
本文所有实验数据来自非侵入自适应假肢肌电 2 号数据集(non-invasive adaptive prosthetics database 2,NinaPro DB2)(网址:http://datadryad.org/stash/dataset/doi:10.5061/dryad.1k84r),该数据集已经公开,可用于科学研究。NinaPro DB2 数据集制作时使用 sEMG 信号采集设备 Delsys(Trigno,Delsys Inc.,美国),采样频率是 2 000 Hz,共使用 12 个电极采集健康受试者手势动作 sEMG 信号,要求受试者每个动作重复 6 次,每两次动作间隔 3 s,共采集 49 种手势动作,动作主要包含抓握物体、多类手指动作、手腕翻转等。
1.2 sEMG 信号能量核相图
区别于 sEMG 信号时域、频域和时频分析等特征,能量核模型是建立在对 sEMG 信号建模基础之上的新方法。sEMG 信号可以看作是均值为零的统计时序信号,其信号幅值具有往复运动的特征[18],这种运动可以描述为振子模型 [5-8],利用振子模型可将其表示为微分方程[19]。将 sEMG 信号的幅值作为横坐标,幅值对时间的导数作为纵坐标,在平面直角坐标系下可以将一段 sEMG 信号绘制成一幅相图。如图 1 所示为一段两通道手势 sEMG 信号与对应能量核相图,两通道 sEMG 信号中蓝色线条表示通道 1 信号,橙色曲线表示通道 2 信号,将绿色虚线框包围的 sEMG 数据(400 采样点)坐标化处理,绘制成能量核相图,相图中蓝色点与橙色点分别是通道 1 和通道 2 信号对应相图散点分布,虚线表示对应相图散点的分布边界。这些相图散点在坐标平面近似呈椭圆分布[5-8],Zeng 等[7]利用 LF 法对椭圆边界进行了定位,经过多次实验得出了椭圆长轴在大部分时间与横坐标轴垂直或平行,只有少数采样点偏离坐标轴的结论。
1.3 sEMG 信号能量核振子模型
能量核相图的绘制依据 sEMG 信号的振子模型,假设存在一个质量为 m,弹簧刚度为 k 的简谐弹簧振子,x、y 分别表示振子幅值和速度,、 分别表示振子幅值及速度的一阶导数,根据牛顿运动方程得到如式(1)所示:
在短时间 Δt 内,可以将 sEMG 信号近似建模为弹簧振子,对于弹簧振子模型,其能量是动能与弹性势能的累加,则 sEMG 信号振子模型的能量 E 可以表示为如式(2)所示:
对于 sEMG 信号振子模型,k、m 只与 sEMG 信号内部的特性有关,将(2)式表述为椭圆方程如式(3)所示:
由式(3)得出相图散点分布边界所围成的椭圆面积 S 与 sEMG 信号振子模型的能量 E 之间的正比关系如式(4)所示,因此可以把 sEMG 信号的平面椭圆分布称为 sEMG 信号的能量核特征。
sEMG 信号是肌肉收缩过程中所有活动运动单元产生的运动单元动作电位列 (motor unit action potential train,MUAPT) 相叠加的结果,可以将其视作肌肉纤维上的传播波[20],MUAPT 中包含不同的谐波,每个谐波都在 sEMG 信号中生效,sEMG 信号振子的能量实际上是所有谐波能量的总和,谐波的平均能量密度如式(5)所示[5]:
其中,Aj 表示第 j 个分量的幅值,ρ 表示质量密度,振动源主角频率记为 ω。学术界已经认可 sEMG 信号的均方根特征(root mean square,RMS)与肌肉的等长收缩力在短时间 Δt 内存在一定的线性关系[21],包含 RMS 和动作单元的频率特征,因此在 Δt 时间内肌肉力与存在一定的线性关系。再由式(4)可得 sEMG 信号相图椭圆面积的根号值与肌肉收缩力有一定的线性关系,因此可以用椭圆面积来表征 sEMG 信号内部的肌肉力特征。
综上可知 sEMG 信号的能量核相图椭圆面积是一种肌肉力特征,研究者提出了很多计算能量核相图椭圆面积的识别算法,并应用在 sEMG 信号识别中。能量核相图蕴含着椭圆面积和样本点分布等丰富信息,单纯提取面积的识别算法忽略了相图中信号采样点分布趋势和稀疏性等特征,这是手动提取特征的局限。本文提出 CNN 对 sEMG 信号能量核相图进行特征学习与识别的算法,省去了椭圆面积计算带来的时间复杂度,利用网络来自动学习相图更多的分布特征。
2 基于 sEMG 信号能量核相图的 CNN 识别算法
2.1 sEMG 信号能量核相图图像构造
根据 sEMG 信号能量核模型理论,每个 sEMG 信号采集通道对应一幅包含 N 个采样点的散点分布图,滤除离坐标原点相差较大的干扰点,再利用 N1×N2 的网格对相图上的散点进行覆盖,统计落在每个网格内部的散点个数,将统计数作为 N1×N2 矩阵对应位置的元素大小,此二维数字矩阵便构成一幅 N1×N2 的灰度数字图像,矩阵各元素对应图像像素大小。每个网格长度 l 与宽度 w 计算如式(6)所示,其中 xmax、ymax、xmin、ymin 分别为能量核相图直角坐标的最大值与最小值,N1、N2 表示计数矩阵的尺寸。
由于不同计数网格的单元网格面积存在差异,本文将单元格面积作为权重系数加入 sEMG 信号能量核相图灰度图像中,如式(7)所示,其中I表示处理后的灰度图像,M表示计数网格对应的数字矩阵,α 表示每个矩形网格单元的面积。
此外,根据 Chen 等[5]提出的能量核模型理论,能量核相图中各点围绕坐标原点呈椭圆分布,且由内到外分布密度逐步减小。由于能量核相图散点绘制误差等因素可能会导致靠近坐标原点的网格计数为 0,在图像中出现像素凹陷现象,使得能量核相图椭圆面积特征得不到较好体现,因此采用如式(8)所示的移动平均方法对矩阵图像进行了滑动滤波,该滤波方法可以有效避免像素凹陷现象,使得由网格计数方法获得的矩阵图像更加合理,同时也会去掉图像上的一些干扰噪声。
(i = 1, , N1, j = 1, , N2) 表示计数网格每个单元的统计数值。经过上述预处理获得的单通道 sEMG 信号能量核相图是 N1×N2 尺寸的灰度图,本文用到的 NinaPro DB2 数据集中每个手势对应 12 通道 sEMG 信号,这里根据多次实验测试经验和 sEMG 信号采集电极的空间相对位置对各灰度图像按照通道顺序进行了图像拼接,使图像包含电极的空间位置信息,最终将其处理成 4N1 × 3N2 大小的灰度图像来进行 CNN 的学习训练。为保证特征的连续性,采用如图 2 所示的“时间窗 + 增量窗”的方式对 sEMG 信号分段进行特征提取,WT 与 ST 分别表示 K 时刻的时间窗长度和增量窗长度。
2.2 CNN 识别 sEMG 信号能量核相图算法
CNN 是一种包含卷积计算且具有深度结构的前馈神经网络,能够自动学习有效特征,使研究者摆脱手动构造特征的繁琐过程[22]。本文受到对分类问题性能优越的亚历克斯网络 (Alexnet) 的启发[23],搭建如图 3 所示的 CNN 识别网络,该网络主要由卷积层、池化层以及全连接层组成,卷积层中卷积核通过对输入样本进行卷积运算来提取特征,池化层通过空间上的运算和池化规则来减小卷积层产生的特征图尺寸,全连接层用来收集卷积、池化后的样本特征空间扩散信息。作为一种端到端的网络,CNN 在卷积提取特征以及全连接层分类输出方面有很强的学习能力[11]。
基于 sEMG 信号能量核相图的 CNN 识别算法框架如图 4 所示,其主要包含数据预处理、能量核相图构造、CNN 模型训练及参数整定模块,经过图像化等预处理的 sEMG 信号能量核相图作为 CNN 网络的输入,卷积、池化等多层结构对输入图像进行特征提取与学习,训练好的 CNN 模型可以根据能量核相图识别出 sEMG 信号所属的手势动作类别。
本文提出的基于 sEMG 信号能量核相图的识别算法相比于文献[5-8]在特征提取方面,省去了计算能量核相图椭圆面积的步骤,同时对能量核相图进行了干扰点过滤、移动平均、添加面积因子等优化预处理,使得能量核相图分布更加合理。在分类器设计方面,本文算法搭建了 CNN 结构,输入为二维灰度图像格式,区别于文献[5-6]设计的一维面积向量输入格式。
3 实验与结果分析
3.1 实验配置与测试结果
为验证 CNN 识别 sEMG 信号能量核相图方法的有效性,本文从 NinaPro DB2 数据集中分别提取 2、4、8、16 种手势进行测试,将每一种手势前 5 次动作作为训练集,第 6 次动作作为测试集,为确保模型的可靠性,对训练集数据使用 5 折交叉验证方法来整定分类器参数,计数网格尺寸为 N1=N2=20,提取 sEMG 信号的能量核相图制作 80×60 尺寸的灰度图像训练集。本文使用程序开发环境 Pycharm 2018.3.5(JetBrains Inc.,捷克)与数学软件 MATLAB 2018a(MathWorks Inc.,美国),Pycharm 2018.3.5 用于样本制作和 CNN 搭建测试,MATLAB 2018a 用于对比实验和数据分析。分别取 WT=100 ms、ST=100 ms 和 WT=200 ms、ST=150 ms 来进行样本制作。预处理与训练过程如图 5 所示,具体识别结果如表 1 所示。本文 CNN 识别网络损失函数是交叉熵函数,使用自适应优化器(Adam),采用随机梯度下降优化算法,初始学习率为 0.000 1。网络结构包含输入层、3 层卷积层、3 层池化层、2 层全连接层以及 1 个分类输出层,3 层卷积层分别包含 8、16、32 个卷积核,卷积核主要是 3×3 尺寸,移动步长为 1。激活函数采用修正线性单元(rectified linear unit,ReLU),池化层采用最大池化规则,池化核尺寸为 2×2,移动步长为 1,输出层采用归一化指数函数(softmax)。根据交叉验证结果和损失函数变化判断过拟合程度,进而确定 CNN 的迭代次数,每次训练随机丢弃 50% 的输出特征来降低过拟合程度。
如表 1 所示,CNN 结合 sEMG 信号能量核相图的识别方法在 2、4、8 种手势的识别实验中均达到 93% 以上的识别精度。训练好的 CNN 模型识别单张能量核相图的平均时间为 0.1 ms 数量级,在实际外骨骼机器人设备人机交互中可以忽略不计,因此在计算效率上本方法满足实时性要求。根据文献[7],使用 LF 与 DBC 方法提取 100 个 sEMG 信号数据段(WT=300 ms)能量核椭圆面积的计算时间分别是 1.051 s 和 0.789 s,本文采用文献[7]中能量核特征提取效率计算方式,对 100 个 sEMG 信号数据段(WT=300 ms)记录相图绘制时间,取 6 次的平均值为 0.298 s,由于 sEMG 信号的肌肉来源对处理算法的时间复杂度影响可忽略不计,因此可以得出结论:省去面积计算步骤,本文算法对能量核相图预处理的计算效率比 DBC 和 LF 方法明显提高。
3.2 对比实验与效果分析
3.2.1 多通道时间窗 sEMG 信号与能量核相图对比实验
为了验证能量核相图的识别性能,本文与文献[12]中利用时间窗覆盖 12 通道 sEMG 信号并提取信号幅值作为训练图像的方法进行了对比。时间窗长度分别取 200 采样点(100 ms 信号数据)与 400 采样点(200 ms 信号数据),分别形成 200×12 与 400×12 尺寸的灰度图像。与时间窗信号幅值方法对比的实验结果如图 6 所示,在手势类别数为 4、8、16 时基于能量核相图的 CNN 识别方法准确率较高,在 2 类手势的识别中两种方法识别精度接近。该对比实验结果可以证明能量核相图的提取相比于未经特征提取的时间窗信号幅值数据具有较好的识别性能,进一步说明能量核相图特征的有效性。
3.2.2 CNN 与经典分类器识别能量核相图对比实验
为了验证 CNN 识别 sEMG 信号的性能,本文对能量核相图分别采用 CNN 与经典分类器进行分类对比,这里选用的经典分类器包括支持向量机(support vector machines,SVM)、K 最近邻(k-nearest neighbor,KNN)、稀疏表示分类(sparse-based representation classification,SRC)和判别式 k 奇异值分解(discriminative k-singular value decomposition,DKSVD)。识别结果如图 7 所示,可以看出时间窗是 100 ms 或 200 ms 时,采用 CNN 的识别精度都要高于上述经典分类器,在手势类别数增多时 CNN 识别优势更加明显。这说明利用 CNN 识别网络结合 sEMG 信号能量核相图在识别精度上要优于一些非网络学习的分类器,也验证了采用 CNN 网络进行分类的合理性。
3.2.3 CNN 与典型神经网络分类器识别能量核相图对比实验
为了证明选用 CNN 分类器的优势,本文进行了能量核相图结合常用 ANN 分类器的对比实验,进行对比的 ANN 分类器网络包含 MLP、RNN 和 LSTM,其中 RNN、LSTM 网络的输入均为二维能量核相图,将能量核相图处理成一维向量形式作为 MLP 的输入。对比实验结果如图 8 所示,可以看出在手势类别不超过 4 时,CNN 与其它网络识别效果相近,但手势类别大于 4 时,CNN 网络识别体识别精度最高,此实验证明了本文选用 CNN 网络识别 sEMG 信号能量核相图的合理性。
3.2.4 能量核面积特征识别与 CNN 识别能量核相图对比实验
本文提出的 CNN 结合能量核相图的识别算法省去了计算能量核分布椭圆面积的步骤,为了对比该方法与文献[5-8]通过计算椭圆面积作为特征的识别方法的性能,本文进行了提取能量核椭圆面积为特征的识别实验。面积提取方式采用文献[6]中的 DBC 方法,分别采用 SVM、KNN、SRC 对面积特征进行分类识别,识别精度对比如图 9 所示。可以看出提取面积特征的方法在手势类别小于 4 种时识别性能较好,但是在手势类别数增加时,CNN 结合能量核相图的识别精度比基于能量核面积特征的分类方法高。结合表 1 中 CNN 识别时间很短可忽略不计以及 CNN 与 LF、DBC 计算效率对比的结论,说明省去计算面积的步骤直接利用能量核相图的 CNN 识别方法不仅满足运动意图识别对实时性的要求,而且在识别精度上有所提升。
4 结语
文章提出了一种基于 sEMG 信号能量核相图 CNN 手势识别算法,为了验证该算法的有效性,文章搭建了 CNN 识别框架并对手势 sEMG 信号数据集进行了识别测试。为了对比该分类算法的性能,文章主要进行了 4 类对比实验,分别是能量核相图提取与否、经典分类器种类、ANN 分类器种类和能量核椭圆面积计算与否。CNN 识别能量核相图的算法在上述的对比中均显现出优越性能,在手势类别多于 2 种时,平均识别精度提高超过 10%,并且 CNN 模型在线识别时间满足人体运动意图识别对实时性的要求,验证了本文识别算法的可行性与有效性,也为目前基于 sEMG 信号的人机交互研究提供了新的思路。本文仅针对手势 sEMG 信号数据集进行了测试,接下来将面向下肢助行外骨骼机器人,采集腿部肌肉的 sEMG 信号,同时融入力、加速度等传感器信息来研究更加可靠的人体运动意图识别方法。
利益冲突声明:本文全体作者均声明不存在利益冲突。
引言
随着人口老龄化现象的加剧,老年运动障碍患者也急速增多,辅助康复以及助力助行外骨骼机器人的需求增大。外骨骼机器人是模仿生物界外骨骼而提出的一种新型机电一体化装置,结合传感、控制、信息融合、移动计算等技术,不仅可为穿戴者提供支撑与保护,还能辅助人体完成适度动作,执行特定任务等[1]。通过获取表面肌电信号(surface electromyography,sEMG)并进一步识别穿戴者的运动意图是实现外骨骼机器人辅助运动功能的重要基础,是人机交互研究热点问题[2]。当前 sEMG 信号采集技术成熟,蕴含信息丰富,且可以在体表对活动肌肉进行无创检测,现已广泛使用[1]。基于 sEMG 信号的意图识别主要包含 sEMG 信号特征提取与分类器设计两大问题。常用的 sEMG 信号特征包括时域、频域和时频分析三大类[3]。时域与频域特征虽然计算方便,但是 sEMG 信号的不平稳性导致这些特征稳定性较差[4],时频特征分析虽然稳定性较好,但是其计算复杂,无法满足运动意图识别对实时性的要求[5]。
由于时域、频域等特征在 sEMG 信号特征识别中存在不稳定性,一些学者开始对肌肉生物机制建模分析。Chen 等[5]提出了能量核方法来估计肌肉收缩力及肌肉的一些固有特征,并通过实验证明该特征的鲁棒性和较强的泛化能力。对于 sEMG 信号能量核特征的研究,主要集中在如何更高效地计算能量核相图椭圆分布面积的方法上,Chen 等[5]提出的线性围栏法(linear fencing,LF)利用倾角变化的直线去拟合椭圆边界,并以此计算面积,但是该方法计算效率较低,无法满足实时性的要求。为此,Chen 等[6]又提出了离散盒矩阵计数法(discrete box counting,DBC),利用矩阵覆盖散点并设定阈值计数的方法来计算椭圆面积,计算效率显著提高。Zeng 等[7]通过改进 LF 法,只用四条相互垂直的直线来确定椭圆边界,可实现与文献[6]相近的识别准确率,且椭圆面积的计算更方便。石欣等[8]对 DBC 进行了改进,提出了阈值矩阵计数法(threshold matrix count,TMC)设定两个阈值来计数,相比于 DBC 考虑了椭圆边界处的分散点。上述方法都是手动计算能量核椭圆面积,缺乏统一的参数标准,还会遗漏能量核相图的其它特征,或者对特征的提取不够充分。
在分类器设计上,人工神经网络(artificial neural network,ANN)是一种模仿生物神经网络的数学模型,广泛应用在图像处理、语音识别等领域[9-10]。针对手动提取 sEMG 信号特征带来的不足,自然引入 ANN 进行训练与学习,其中卷积神经网络(convolutional neural network,CNN)、多层感知器(multilayer perceptron,MLP)、循环神经网络(recurrent neural network,RNN)和长短期记忆网络(long short-term memory,LSTM)应用较为广泛[11-17]。Atzori 等[12]将一段时间窗覆盖的多通道 sEMG 信号幅值形成的二维矩阵作为 CNN 输入,通过设置时间窗的大小与移动步长来提取 sEMG 信号的幅值特征,利用 CNN 对幅值矩阵进行特征提取与分类。Geng 等[13]利用 8×16 高密度肌电阵列采集手臂 sEMG 信号,将瞬时 sEMG 信号的幅值当作矩阵每个元素值,以此形成 sEMG 信号幅值阵列图像作为 CNN 网络输入。Wei 等[14]利用多流 CNN 对高密度 sEMG 信号瞬时幅值图进行训练,将多通道 sEMG 信号幅值图分别输入多个 CNN,后将多流 CNN 学习到的特征进行融合并识别分类。相比于高密度肌电图,Zhai 等[15]对稀疏多通道的 sEMG 信号进行快速傅里叶变换(fast Fourier transform,FFT),获得 sEMG 信号频谱图像来进行 CNN 训练,利用 CNN 进一步提取频谱特征信息并识别。He 等[16]分别利用 MLP 与 LSTM 对 sEMG 信号时序及幅值矩阵进行特征提取,再将网络学习到的特征融合为新的特征向量进行分类识别。Wu 等[17]利用 LSTM 网络对 sEMG 信号提取时序特征,后利用 CNN 对 LSTM 的输出特征进行二次特征提取与识别。上述网络大多采用 sEMG 信号原始时序数据或频域信息作为网络输入,但是由于 sEMG 信号时域、频域特征的不稳定性可能会导致运动意图识别的稳定性下降[4]。
本文提出一种 sEMG 信号能量核模型的识别框架,该框架通过引入 CNN,对能量核相图进行网络学习与特征提取。新框架在处理能量核相图中,省去计算面积的步骤,直接对能量核相图进行网络自动学习与训练,这相比单纯提取能量核相图的椭圆面积可学习到更全面的特征且速度也更快,同时以能量核相图作为网络输入也避免了 sEMG 信号时域、频域特征不稳定所带来的局限。本研究进一步利用公开的多通道手势 sEMG 数据集进行手势识别实验,以验证本文所提识别框架的有效性和实用性。本文提出的识别算法为人体 sEMG 信号的建模分析提供了新的思路,或可为基于人体生物学的人机交互研究带来新的启发。
1 sEMG 信号能量核模型
1.1 数据集来源
本文所有实验数据来自非侵入自适应假肢肌电 2 号数据集(non-invasive adaptive prosthetics database 2,NinaPro DB2)(网址:http://datadryad.org/stash/dataset/doi:10.5061/dryad.1k84r),该数据集已经公开,可用于科学研究。NinaPro DB2 数据集制作时使用 sEMG 信号采集设备 Delsys(Trigno,Delsys Inc.,美国),采样频率是 2 000 Hz,共使用 12 个电极采集健康受试者手势动作 sEMG 信号,要求受试者每个动作重复 6 次,每两次动作间隔 3 s,共采集 49 种手势动作,动作主要包含抓握物体、多类手指动作、手腕翻转等。
1.2 sEMG 信号能量核相图
区别于 sEMG 信号时域、频域和时频分析等特征,能量核模型是建立在对 sEMG 信号建模基础之上的新方法。sEMG 信号可以看作是均值为零的统计时序信号,其信号幅值具有往复运动的特征[18],这种运动可以描述为振子模型 [5-8],利用振子模型可将其表示为微分方程[19]。将 sEMG 信号的幅值作为横坐标,幅值对时间的导数作为纵坐标,在平面直角坐标系下可以将一段 sEMG 信号绘制成一幅相图。如图 1 所示为一段两通道手势 sEMG 信号与对应能量核相图,两通道 sEMG 信号中蓝色线条表示通道 1 信号,橙色曲线表示通道 2 信号,将绿色虚线框包围的 sEMG 数据(400 采样点)坐标化处理,绘制成能量核相图,相图中蓝色点与橙色点分别是通道 1 和通道 2 信号对应相图散点分布,虚线表示对应相图散点的分布边界。这些相图散点在坐标平面近似呈椭圆分布[5-8],Zeng 等[7]利用 LF 法对椭圆边界进行了定位,经过多次实验得出了椭圆长轴在大部分时间与横坐标轴垂直或平行,只有少数采样点偏离坐标轴的结论。
1.3 sEMG 信号能量核振子模型
能量核相图的绘制依据 sEMG 信号的振子模型,假设存在一个质量为 m,弹簧刚度为 k 的简谐弹簧振子,x、y 分别表示振子幅值和速度,、 分别表示振子幅值及速度的一阶导数,根据牛顿运动方程得到如式(1)所示:
在短时间 Δt 内,可以将 sEMG 信号近似建模为弹簧振子,对于弹簧振子模型,其能量是动能与弹性势能的累加,则 sEMG 信号振子模型的能量 E 可以表示为如式(2)所示:
对于 sEMG 信号振子模型,k、m 只与 sEMG 信号内部的特性有关,将(2)式表述为椭圆方程如式(3)所示:
由式(3)得出相图散点分布边界所围成的椭圆面积 S 与 sEMG 信号振子模型的能量 E 之间的正比关系如式(4)所示,因此可以把 sEMG 信号的平面椭圆分布称为 sEMG 信号的能量核特征。
sEMG 信号是肌肉收缩过程中所有活动运动单元产生的运动单元动作电位列 (motor unit action potential train,MUAPT) 相叠加的结果,可以将其视作肌肉纤维上的传播波[20],MUAPT 中包含不同的谐波,每个谐波都在 sEMG 信号中生效,sEMG 信号振子的能量实际上是所有谐波能量的总和,谐波的平均能量密度如式(5)所示[5]:
其中,Aj 表示第 j 个分量的幅值,ρ 表示质量密度,振动源主角频率记为 ω。学术界已经认可 sEMG 信号的均方根特征(root mean square,RMS)与肌肉的等长收缩力在短时间 Δt 内存在一定的线性关系[21],包含 RMS 和动作单元的频率特征,因此在 Δt 时间内肌肉力与存在一定的线性关系。再由式(4)可得 sEMG 信号相图椭圆面积的根号值与肌肉收缩力有一定的线性关系,因此可以用椭圆面积来表征 sEMG 信号内部的肌肉力特征。
综上可知 sEMG 信号的能量核相图椭圆面积是一种肌肉力特征,研究者提出了很多计算能量核相图椭圆面积的识别算法,并应用在 sEMG 信号识别中。能量核相图蕴含着椭圆面积和样本点分布等丰富信息,单纯提取面积的识别算法忽略了相图中信号采样点分布趋势和稀疏性等特征,这是手动提取特征的局限。本文提出 CNN 对 sEMG 信号能量核相图进行特征学习与识别的算法,省去了椭圆面积计算带来的时间复杂度,利用网络来自动学习相图更多的分布特征。
2 基于 sEMG 信号能量核相图的 CNN 识别算法
2.1 sEMG 信号能量核相图图像构造
根据 sEMG 信号能量核模型理论,每个 sEMG 信号采集通道对应一幅包含 N 个采样点的散点分布图,滤除离坐标原点相差较大的干扰点,再利用 N1×N2 的网格对相图上的散点进行覆盖,统计落在每个网格内部的散点个数,将统计数作为 N1×N2 矩阵对应位置的元素大小,此二维数字矩阵便构成一幅 N1×N2 的灰度数字图像,矩阵各元素对应图像像素大小。每个网格长度 l 与宽度 w 计算如式(6)所示,其中 xmax、ymax、xmin、ymin 分别为能量核相图直角坐标的最大值与最小值,N1、N2 表示计数矩阵的尺寸。
由于不同计数网格的单元网格面积存在差异,本文将单元格面积作为权重系数加入 sEMG 信号能量核相图灰度图像中,如式(7)所示,其中I表示处理后的灰度图像,M表示计数网格对应的数字矩阵,α 表示每个矩形网格单元的面积。
此外,根据 Chen 等[5]提出的能量核模型理论,能量核相图中各点围绕坐标原点呈椭圆分布,且由内到外分布密度逐步减小。由于能量核相图散点绘制误差等因素可能会导致靠近坐标原点的网格计数为 0,在图像中出现像素凹陷现象,使得能量核相图椭圆面积特征得不到较好体现,因此采用如式(8)所示的移动平均方法对矩阵图像进行了滑动滤波,该滤波方法可以有效避免像素凹陷现象,使得由网格计数方法获得的矩阵图像更加合理,同时也会去掉图像上的一些干扰噪声。
(i = 1, , N1, j = 1, , N2) 表示计数网格每个单元的统计数值。经过上述预处理获得的单通道 sEMG 信号能量核相图是 N1×N2 尺寸的灰度图,本文用到的 NinaPro DB2 数据集中每个手势对应 12 通道 sEMG 信号,这里根据多次实验测试经验和 sEMG 信号采集电极的空间相对位置对各灰度图像按照通道顺序进行了图像拼接,使图像包含电极的空间位置信息,最终将其处理成 4N1 × 3N2 大小的灰度图像来进行 CNN 的学习训练。为保证特征的连续性,采用如图 2 所示的“时间窗 + 增量窗”的方式对 sEMG 信号分段进行特征提取,WT 与 ST 分别表示 K 时刻的时间窗长度和增量窗长度。
2.2 CNN 识别 sEMG 信号能量核相图算法
CNN 是一种包含卷积计算且具有深度结构的前馈神经网络,能够自动学习有效特征,使研究者摆脱手动构造特征的繁琐过程[22]。本文受到对分类问题性能优越的亚历克斯网络 (Alexnet) 的启发[23],搭建如图 3 所示的 CNN 识别网络,该网络主要由卷积层、池化层以及全连接层组成,卷积层中卷积核通过对输入样本进行卷积运算来提取特征,池化层通过空间上的运算和池化规则来减小卷积层产生的特征图尺寸,全连接层用来收集卷积、池化后的样本特征空间扩散信息。作为一种端到端的网络,CNN 在卷积提取特征以及全连接层分类输出方面有很强的学习能力[11]。
基于 sEMG 信号能量核相图的 CNN 识别算法框架如图 4 所示,其主要包含数据预处理、能量核相图构造、CNN 模型训练及参数整定模块,经过图像化等预处理的 sEMG 信号能量核相图作为 CNN 网络的输入,卷积、池化等多层结构对输入图像进行特征提取与学习,训练好的 CNN 模型可以根据能量核相图识别出 sEMG 信号所属的手势动作类别。
本文提出的基于 sEMG 信号能量核相图的识别算法相比于文献[5-8]在特征提取方面,省去了计算能量核相图椭圆面积的步骤,同时对能量核相图进行了干扰点过滤、移动平均、添加面积因子等优化预处理,使得能量核相图分布更加合理。在分类器设计方面,本文算法搭建了 CNN 结构,输入为二维灰度图像格式,区别于文献[5-6]设计的一维面积向量输入格式。
3 实验与结果分析
3.1 实验配置与测试结果
为验证 CNN 识别 sEMG 信号能量核相图方法的有效性,本文从 NinaPro DB2 数据集中分别提取 2、4、8、16 种手势进行测试,将每一种手势前 5 次动作作为训练集,第 6 次动作作为测试集,为确保模型的可靠性,对训练集数据使用 5 折交叉验证方法来整定分类器参数,计数网格尺寸为 N1=N2=20,提取 sEMG 信号的能量核相图制作 80×60 尺寸的灰度图像训练集。本文使用程序开发环境 Pycharm 2018.3.5(JetBrains Inc.,捷克)与数学软件 MATLAB 2018a(MathWorks Inc.,美国),Pycharm 2018.3.5 用于样本制作和 CNN 搭建测试,MATLAB 2018a 用于对比实验和数据分析。分别取 WT=100 ms、ST=100 ms 和 WT=200 ms、ST=150 ms 来进行样本制作。预处理与训练过程如图 5 所示,具体识别结果如表 1 所示。本文 CNN 识别网络损失函数是交叉熵函数,使用自适应优化器(Adam),采用随机梯度下降优化算法,初始学习率为 0.000 1。网络结构包含输入层、3 层卷积层、3 层池化层、2 层全连接层以及 1 个分类输出层,3 层卷积层分别包含 8、16、32 个卷积核,卷积核主要是 3×3 尺寸,移动步长为 1。激活函数采用修正线性单元(rectified linear unit,ReLU),池化层采用最大池化规则,池化核尺寸为 2×2,移动步长为 1,输出层采用归一化指数函数(softmax)。根据交叉验证结果和损失函数变化判断过拟合程度,进而确定 CNN 的迭代次数,每次训练随机丢弃 50% 的输出特征来降低过拟合程度。
如表 1 所示,CNN 结合 sEMG 信号能量核相图的识别方法在 2、4、8 种手势的识别实验中均达到 93% 以上的识别精度。训练好的 CNN 模型识别单张能量核相图的平均时间为 0.1 ms 数量级,在实际外骨骼机器人设备人机交互中可以忽略不计,因此在计算效率上本方法满足实时性要求。根据文献[7],使用 LF 与 DBC 方法提取 100 个 sEMG 信号数据段(WT=300 ms)能量核椭圆面积的计算时间分别是 1.051 s 和 0.789 s,本文采用文献[7]中能量核特征提取效率计算方式,对 100 个 sEMG 信号数据段(WT=300 ms)记录相图绘制时间,取 6 次的平均值为 0.298 s,由于 sEMG 信号的肌肉来源对处理算法的时间复杂度影响可忽略不计,因此可以得出结论:省去面积计算步骤,本文算法对能量核相图预处理的计算效率比 DBC 和 LF 方法明显提高。
3.2 对比实验与效果分析
3.2.1 多通道时间窗 sEMG 信号与能量核相图对比实验
为了验证能量核相图的识别性能,本文与文献[12]中利用时间窗覆盖 12 通道 sEMG 信号并提取信号幅值作为训练图像的方法进行了对比。时间窗长度分别取 200 采样点(100 ms 信号数据)与 400 采样点(200 ms 信号数据),分别形成 200×12 与 400×12 尺寸的灰度图像。与时间窗信号幅值方法对比的实验结果如图 6 所示,在手势类别数为 4、8、16 时基于能量核相图的 CNN 识别方法准确率较高,在 2 类手势的识别中两种方法识别精度接近。该对比实验结果可以证明能量核相图的提取相比于未经特征提取的时间窗信号幅值数据具有较好的识别性能,进一步说明能量核相图特征的有效性。
3.2.2 CNN 与经典分类器识别能量核相图对比实验
为了验证 CNN 识别 sEMG 信号的性能,本文对能量核相图分别采用 CNN 与经典分类器进行分类对比,这里选用的经典分类器包括支持向量机(support vector machines,SVM)、K 最近邻(k-nearest neighbor,KNN)、稀疏表示分类(sparse-based representation classification,SRC)和判别式 k 奇异值分解(discriminative k-singular value decomposition,DKSVD)。识别结果如图 7 所示,可以看出时间窗是 100 ms 或 200 ms 时,采用 CNN 的识别精度都要高于上述经典分类器,在手势类别数增多时 CNN 识别优势更加明显。这说明利用 CNN 识别网络结合 sEMG 信号能量核相图在识别精度上要优于一些非网络学习的分类器,也验证了采用 CNN 网络进行分类的合理性。
3.2.3 CNN 与典型神经网络分类器识别能量核相图对比实验
为了证明选用 CNN 分类器的优势,本文进行了能量核相图结合常用 ANN 分类器的对比实验,进行对比的 ANN 分类器网络包含 MLP、RNN 和 LSTM,其中 RNN、LSTM 网络的输入均为二维能量核相图,将能量核相图处理成一维向量形式作为 MLP 的输入。对比实验结果如图 8 所示,可以看出在手势类别不超过 4 时,CNN 与其它网络识别效果相近,但手势类别大于 4 时,CNN 网络识别体识别精度最高,此实验证明了本文选用 CNN 网络识别 sEMG 信号能量核相图的合理性。
3.2.4 能量核面积特征识别与 CNN 识别能量核相图对比实验
本文提出的 CNN 结合能量核相图的识别算法省去了计算能量核分布椭圆面积的步骤,为了对比该方法与文献[5-8]通过计算椭圆面积作为特征的识别方法的性能,本文进行了提取能量核椭圆面积为特征的识别实验。面积提取方式采用文献[6]中的 DBC 方法,分别采用 SVM、KNN、SRC 对面积特征进行分类识别,识别精度对比如图 9 所示。可以看出提取面积特征的方法在手势类别小于 4 种时识别性能较好,但是在手势类别数增加时,CNN 结合能量核相图的识别精度比基于能量核面积特征的分类方法高。结合表 1 中 CNN 识别时间很短可忽略不计以及 CNN 与 LF、DBC 计算效率对比的结论,说明省去计算面积的步骤直接利用能量核相图的 CNN 识别方法不仅满足运动意图识别对实时性的要求,而且在识别精度上有所提升。
4 结语
文章提出了一种基于 sEMG 信号能量核相图 CNN 手势识别算法,为了验证该算法的有效性,文章搭建了 CNN 识别框架并对手势 sEMG 信号数据集进行了识别测试。为了对比该分类算法的性能,文章主要进行了 4 类对比实验,分别是能量核相图提取与否、经典分类器种类、ANN 分类器种类和能量核椭圆面积计算与否。CNN 识别能量核相图的算法在上述的对比中均显现出优越性能,在手势类别多于 2 种时,平均识别精度提高超过 10%,并且 CNN 模型在线识别时间满足人体运动意图识别对实时性的要求,验证了本文识别算法的可行性与有效性,也为目前基于 sEMG 信号的人机交互研究提供了新的思路。本文仅针对手势 sEMG 信号数据集进行了测试,接下来将面向下肢助行外骨骼机器人,采集腿部肌肉的 sEMG 信号,同时融入力、加速度等传感器信息来研究更加可靠的人体运动意图识别方法。
利益冲突声明:本文全体作者均声明不存在利益冲突。