基于CNN和sEMG的手势识别及康复手套控制
2020-09-01王从庆
刘 威, 王从庆
(南京航空航天大学 自动化学院, 南京 210016)
0 引 言
目前我国心血管疾病流行的趋势越来越明显, 根据2018中国心血管疾病报告显示, 我国患心血管疾病死亡人数占疾病死亡人数的40%, 远高于其他疾病致死比例[1], 并且大量的脑中卒患者已经成为重大的社会问题。脑中卒幸存患者通常伴有肢体偏瘫的后遗症, 其中对手部偏瘫患者, 临床上通常在理疗师的帮助下, 患者进行重复的、 被动的训练, 通过这种训练能促进患者手部功能康复[2-4], 能使患者重新获得部分自主生活能力。手部功能的康复与患者训练的时间和强度有直接关系[5], 如果患者能自主进行独立训练, 不仅能为患者提供康复训练的便利条件, 而且能节约医疗资源, 让医生更加专注地研究病理而非进行体力劳动。若要实现患者家庭式独立自主训练, 必须依靠能帮助患者肢体运动的外骨骼康复机器人, 以提高训练效果[6]。
目前, 大量的文献报道都是对手部生理和结构特点, 以及手部运动学的研究, 并设计出了符合人手运动学的外骨骼康复手套。目前康复手套主要采用两种类型结构, 一类采用外骨骼连杆设计[5,7-12], 另一类采用软致动器驱动设计[13-14]。其中外骨骼连杆设计的康复手套通过手指指套和连杆系结合气动或电动力源驱动手指运动, 而软致动器设计的康复手套通过直接将软致动器绑定到各手指, 即可实现对手部运动的控制。软致动器是由具有弹性的纤维增强材料制成的腔体结构, 这种结构可以在一定的气体压力发生特定的屈伸和扭转运动。外骨骼连杆设计的康复手套虽然结构上较为复杂, 但其运动轨迹和指尖力的控制更加精确。
由于手部骨骼和其结构十分复杂, 因此手可以实现很多精细复杂的动作, 而外骨骼康复手套系统通常难以实现这些精细的动作, 但根据患者和临床医生对康复手套的首要设计要求是实现手指的屈伸动作[5], 不仅降低了外骨骼康复手套的设计难度, 也降低了康复手套运动控制的难度。同时, 在康复训练初始阶段, 训练的目标应集中在手部的动作恢复。在假肢和手形机器人控制方面, 很多文献采用对肌电信号识别对假肢和手形机器人进行运动控制[15-18]。 通过这种方法控制康复手套, 患者能进行自主训练而不借助外部帮助, 并且通过肌电信号控制使患者运动意识和手部运动同步, 增强康复训练的效果。为此, 笔者提出一种基于深度学习的康复手势神经解码方法, 利用患者前臂的表面肌电信号, 通过卷积神经网络识别患者的手部运动示意图, 从而控制康复手套的运动, 帮助患者手部功能恢复。
1 基于肌电信号的手势识别
1.1 MYO肌电采集臂环
MYO肌电采集臂环(以下简称MYO臂环)具有9自由度运动传感器和8个干电极采集患者手臂表面肌电信号, 8个肌电信号采集电极可同时以200 Hz的采样频率采集患者前臂肌电信号。MYO臂环的详细结构如图1a所示, 图1中数字1~8分别为8个干电极的序号。在采集患者肌电信号时将MYO臂环佩戴在前臂距离肘关节约5 cm处, 并且将1号电极置于手臂内侧中线上, 穿戴方式如图1b所示。基于MYO臂环, 笔者采集了5种手势的肌电信号数据集。相比于湿电极, 采用干电极的MYO手环佩戴方便, 不用剃除手臂表面汗毛和酒精擦拭。
a MYO臂环 b 佩戴方式图1 MYO臂环及其佩戴方式Fig.1 MYO armband and the way to wear it
1.2 肌电信号识别软件
肌电信号识别软件负责准确识别患者手部的动作意图。肌电信号识别主要分为两部分, 首先进行肌电信号分类模型训练, 其次使用训练好的模型参数实时识别患者手部运动意图。笔者使用基于CNN(Convolutional Neural Network)框架的手势识别模型进行肌电信号识别, 将患者的肌电信号数据集的训练集和测试集进行特征提取后作为模型训练的输入数据和测试数据, 比例为3 ∶1。模型训练的结构图如图2a所示。肌电信号实时识别软件根据训练模型结构搭建, 并用保存的模型训练参数进行初始化, 之后软件接收MYO臂环实时传输的sEMG(Surface Electromyography)数据, 对其进行特征提取, 由模型判断信号所属的手势类别, 并通过串口将结果发送给控制器, 控制器输出对应的PWM(Pulse-Width Modulation)控制信号, 肌电信号实时识别结构如图2b所示。
a 模型训练的结构 b 肌电信号实时识别结构 图2 模型训练和实时识别软件结构图Fig.2 The structure of recognition model training and real-time recognition
1.3 数据集
对肌电信号进行识别, 首先要获得一定数量的肌电信号数据集用于训练神经网络参数。笔者采集一名手部偏瘫患者左前臂sEMG。患者采用图1描述的MYO臂环佩戴方法, 采集5种手势肌电信号数据作为本研究的原始数据集。每种手势采集60组数据, 每组持续时间为20 s, 为防止肌肉疲劳, 每组数据采集之间患者休息20 s。5种手势分别为: FIST、NATURE、OK、ROCK和MTF(Middle Three Flexion), 手势的具体描述如图3所示。
图3 肌电信号数据集对应的手势Fig.3 Five gestures corresponding to the sEMG data set
对每种手势数据随机抽取其中的3/4作为原始训练集, 剩余的部分作为原始测试集, 原始训练集和测试集之间没有交叉。文献[19-21]提出, 分割肌电信号的窗口长度最好小于等于300 ms, 但实验研究表明, 随着窗口长度的减小, 肌电信号的识别准确率随之下降, 因此笔者采取最大的分割窗口为300 ms, 窗口重叠长度为200 ms。在对原始训练集和测试集进行分割后分别得到44 550和14 850个样本, 其中每个手势都是等量均匀的。由于MYO臂环有8个采集通道, 采样频率为200 Hz, 根据窗口大小可得出每个样本为8×60二维数值矩阵。对分割后的原始训练集和测试集的样本进行特征提取后, 作为训练分类器模型的训练集和测试集。笔者对原始样本的每个通道的信号提取时频特征、 时域特征和频域特征共32个特征, 其中时频特征采用3层小波包变换提取第3层8个节点的能量特征, 并根据文献[22]选择18个时域特征和6个频域特征, 将8个通道的特征组合即得到一个大小为8×32二维特征图。
1.4 特征提取
小波包分解是小波分解的拓展, 在多层分解中, 不同于小波分解只对低频成分进行分析, 小波包分解对信号高频成分也进行分析。对离散时间信号X(n), 将其与低通滤波器h(k)做卷积即得到信号的低频系数, 将其与高通滤波器g(k)做卷积即得到信号的高频系数, 再将低频系数和高频系数分别作为输入信号即得到第2层分解的系数, 依次类推可得到第3层的8个节点系数。以db3作为小波包变换的母小波, 其低通滤波器系数h(k)和高通滤波器系数g(k)分别为
对一个输入信号X(n), 采用如下方式进行分解计算得到高频系数和低频系数, 即
(1)
其中N和K分别为输入信号和滤波器的长度。将式(1)中的f(j)分别替换为低频滤波器h(j)和g(j)则可得到低频部分LT(m)和高频部分HT(n), 再进行二抽值得到实际的低频系数A[i]和高频系数D[j], 计算方式如下
A[m/2]=LT(m),m=0,2,…,N+K-1,D[n/2]=HT(n),n=1,3,…,N+K-1
(2)
由式(2)对各样本的每个通道的信号分别做3层小波包变换, 可得到8个节点, 按频率从低到高分别是AAA,DAA,ADA,DDA,AAD,DAD,AAD,DDD, 对每个节点系数求平方和即可以得到该节点的能量特征。
根据文献[22]选取的18个时域特征和6个频域特征如表1所示。对单个样本8个通道的每个通道经过特征提取可得到32个特征, 将32个特征组合为一个特征向量, 其中小波包能量特征按照频率由低到高依次位于前8个位置, 其余特征按照表1的顺序位于特征向量的后24个位置, 由此样本的特征矩阵为8×32的数值矩阵。为了防止由于32个特征的量纲不同导致有些数量级较小的特征在学习时被忽略, 对样本的特征矩阵按列进行灰度处理, 计算公式如下
表1 文献[22]中18个时域特征和6个频域特征
(3)
其中xi,j和fi,j表示位于特征矩阵第i行第j列的原始值和灰度处理后的值,aminj和amaxj分别表示第j列的最小值和最大值。
1.5 基于卷积神经网络的分类器
由于笔者将每个样本进行特征提取得到其对应的二维的特征矩阵, 可以将特征矩阵视为一个图像进行识别。卷积神经网络在图像识别领域具有非常强大的优势, 并且样本在特征提取进行了灰度化处理, 作为图片进行识别, 因此采用CNN模型作为本研究的分类模型。笔者所设计CNN模型包括4个卷积层、 2个池化层、 2个全连接层和1个输出层, 由框架tiny_dnn进行搭建, 神经网络具体结构如图4所示。CNN模型训练是在64位Windows10系统下进行的, 程序集成开发环境是Visual Studio 2017, 计算机CPU版本为4核Intel i5-7200 U处理器, 内存为8 GByte。
图4 卷积神经网络结构图Fig.4 The structure of the convolutional neural network
卷积神经网络训练时采用adam梯度优化算法学习网络参数。对网络的激活函数, 笔者通过实验进行选择, 虽然修正线性单元(ReLU: Rectified Linear Unit)被广泛用于深度学习网络的激活函数, 但在该网络结构中使用ReLU作为激活函数在训练过程中出现了特征消失的现象导致网络无法学习到特征, 此时网络分类结果和随机猜测结果一致。文献[17]在进行sEMG识别时其网络采用了双曲正切函数(TANH: Hyperbolic Tangent)作为激活函数, 得到了较好的识别效果。因此本网络除了输出层, 其余各层均采用双曲正切函数作为网络每层的激活函数, 输出层5个神经元为了输出5种手势的预测概率, 选择softmax作为激活函数。
为了说明特征提取以及网络结构的有效性, 该网络对采用不同的特征提取方法得到的特征图分别进行识别训练, 经过多次实验, 卷积神经网络分类器在测试集上的平均准确率如表2所示。
表2 使用不同特征图网络的识别准确率
在表2中, 特征图1仅使用笔者所述的小波能量特征提取方法, 因此对各样本的每个通道得到8个节点能量特征, 8个通道组合即得到该样本8×8的特征图; 特征图2仅使用根据文献[25]选取的18个时域特征和6个频域特征共24个特征, 特征图2构成方式和特征图1相同, 并且特征图1和图2也按列进行了灰度处理;特征图3使用组合8个小波包节点能量特征、 18个时域特征和6个频域特征, 但不进行灰度处理;特征图4是对特征图3的灰度化处理。由表2可以看出, 网络单独使用小波包特征或时域和频域特征的分类准确率没有使用合成特征图的准确率高, 进行灰度处理后识别率提高了0.6%。使用特征图4训练的网络对5个手势识别的结果如表3所示。
表3中5个手势样本数均为2 970个, 第1行序号代表手势的序号1: FIST、 2: NATURE、 3: OK、 4: ROCK、 5: MTF, 序号所在列的其余行代表该手势判断为5种手势的数量和该手势的分类准确率。
由表3可以看出, 对手势2、3、5分类准确率达99%以上, 手势1握拳的分类准确率为94.95%, 由于握拳和手势2(手张开)手势5(中间三指屈)调动的前臂肌肉比较类似, 故握拳被误分类为手势2和手势5的概率较大, 手势3和手势4都包含大拇指屈, 故手势4被分类为手势3的概率较大。
表3 5手势分类准确率
2 分类器泛化性能分析
2.1 分类器实时分类准确性分析
对分类器实时分类性能的评估, 使数据集对应的患者按照采集数据集的位置佩戴MYO臂环, 对每个手势患者保持该手势30 s, 每个手势进行10次实验, 用10次实时测试的平均准确率作为最终准确率, 实验结果如图5所示。由图5可以看出, 各手势在实时识别时准确率均有浮动, 手势1~5的平均识别率分别为97.1%、95.6%、94.8%、97.5%和95.9%, 总体准确率为96.18%; 手势1~5的识别率标准差分别为2.424 4、2.270 6、2.529 8、1.900 3和2.766 9; 由此可见模型的进行实时手势识别的准确率保持很高的准确率, 准确率相对与模型训练测试集准确率下降1.9%。
图5 5手势实时识别准确率Fig.5 Recognition accuracy of five gestures
2.2 分类器电极偏移识别准确性分析
为了测试分类器在电极偏移时的分类准确性, 让患者在上一个实验的基础上将MYO臂环沿着手臂内侧中线向手的方向平移5 cm, 对5个手势做10次实验, 实验内容同2.1, 实验结果如图6所示。由图5和图6可以看出, 在电极偏移的情况下, 手势1~5的识别率分别为82.2%、93.0%、82.1%、92.0%和82.6%, 相较于原始位置识别率出现较大幅度的下降, 降幅为9.4%; 5个手势10次识别实验的准确率标准差分别为5.006 7、5.374 8、4.228 2、7.1647和1.837 9, 相较于上个实验可以看出, 该实验结果标准差相比2.1的实验增大, 说明电极偏移会导致分类器识别准确率的不稳定, 但从整体看, 电极偏移的情况下, 分类仍然具有较高的总体平均识别准确率, 为86.78%, 即模型的泛化性能良好。
图6 电极偏移时各手势的分类准确率Fig.6 Recognition accuracy of five gestures under the condition of electrodes displacing
2.3 不同手臂下分类器识别准确性分析
笔者使用的数据集均采集自患者的左前臂, 因此本实验让患者将MYO臂环按照图1佩戴方式佩戴于右前臂, 实验内容和实验2.1及实验2.2相同, 实验结果如图7所示。由图7可得, 患者右臂5种手势分类准确率分别为99.1%、87.0%、87.5%、88.2%和96.9%。相比于图5实验可见, 该实验在手势1和手势5的结果优于实验2.1的结果, 并且这两个手势的分类标准差分别为0.875 6和2.233 6也比实验2.1的结果好, 可见分类器在手势1和手势5上的泛化性能很好; 手势2~4分类准确率相比于2.1有所降低, 并且标准差分别为3.771 8、 3.659 1和4.756 3有所升高, 分类器对这3个手势的泛化能力有所降低, 但较电极偏移泛化能力稍强。
图7 右臂5手势分类准确率Fig.7 Recognition accuracy of five gestures of right arm
3 康复手套运动实验
在实验2.1的基础上对外骨骼康复手套进行手势控制实验, 实验总体结构如图8所示。其主要过程是患者左侧小臂按照图1方式佩戴MYO臂环, 将实时采集的肌电信号发送给上位机手势识别软件进行运动意图的识别, 上位机通过串口将手势信号发送给STM32单片机, STM32根据手势信号输出相应的PWM信号, 经过驱动电路放大之后调节电磁阀的气压输出, 进而控制康复手套的手势动作。
图8 康复手套系统整体结构图Fig.8 The structure of the rehabilitation glove system
该实验让受试者依次做出如图3所示的5个手势, 实验结果显示, 控制系统能控制康复手套做出相对应的手势, 康复手套实验手势动作如图9所示。由于在实时识别软件设置了手势输出判断数组, 康复手套做出对应的手势会有一定的时延, MYO臂环采集60个数据点时间为0.3 s, 假设判断数组的长度为n, 则总的时延T=0.3n(s), 该实验设定n为3, 故手势动作时延约为1 s。
图9 康复手套的5个对应动作Fig.9 Five corresponding movement of the rehabilitation glove
最后, 实验让受试者佩戴康复手套抓取一个空杯子, 如图10所示。在康复手套的作用下, 受试者可以牢固的抓住杯子, 不会掉落。实验结果显示, 可以通过控制康复手套的气缸进气压, 进而控制康复手套输出的抓握力的大小, 为进一步的精细控制奠定基础。
图10 佩戴康复手套抓取杯子Fig.10 Grabing a cup with wearing the rehabilitation glove
4 结 语
通过MYO臂环采集患者小臂肌电信号, 利用基于卷积神经网络分类器识别手部运动意图, 控制康复手套的运动, 帮助患者手部功能恢复。分类器在实时识别手部动作时保持很高的准确率, 并且在MYO臂环位置偏移和不同的手臂上表现出良好的泛化性能, 说明分类器在手势识别的过程中具有较强的鲁棒性。最后验证了基于对肌电信号识别的康复手套运动控制, 实现了康复手套的手势动作控制实验和物体抓取实验, 说明基于深度学习的神经解码方法控制康复手套的可行性, 为进一步研究智能康复手套奠定了基础。