表面肌电信号是由多个运动单元发放的动作电位序列,在皮肤表面呈现的时间上和空间上综合叠加的结果。
图1 肌电信号生成
sEMG的特点:
- 幅值一般和肌肉运动力度成正比,能精确的反映肌肉自主收缩力
- 超前于人体运动30-150ms产生
图2 基于机器学习的肌电识别处理流程
(1)离线采集sEMG
- 定义动作数量、动作类型
- 选择采集设备:Delsys(2000Hz)、Myo(200Hz)、OttoBock(100Hz)、高密度阵列式等
- 肌肉位置的选择、电极数量的选择:根据肌肉解剖位置调整电极
- 引导方式:图片、语音
- 采集流程:休息+动作循环采集
- 休息时间、动作时间,动作维持的力的大小,动作的姿势尽量保持一致
(2)数据预处理
- 10-350Hz带通滤波器,50Hz陷波器
- 标签修正:数据裁剪、最大面积法、极大似然修正
- 样本不均衡问题:休息动作的处理(通过阈值)
- 特征归一化:min-max标准化、标准差归一化
- 数据增强:加高斯噪声、翻转信号通道、时间窗+增量窗
图3 基于最大面积法的动作标签修正(红线表示未修正的标签,黑线表示修正后的标签)
.
(3)特征提取:时域、频域、时频域(tsfresh库)
(4)特征选择:
- 过滤法:方差选择法、相关系数法、卡方检验、互信息法,评估单个特征和结果值之间的相关程度,排序留下Top相关的特征部分
- 包裹型:递归特征删除法、基于学习模型的特征排序
- 嵌入型:正则化方法(L1正则化筛选特征)
(5)特征降维:
- PCA、LDA、SVD分解、流行学习LLE(非线性降维)、自编码器、T-SNE
(6)模型训练:
- KNN、LDA、DT、LR、NB、SVM、ANN
- RF、AdaBoost、GBDT、LightGBM、XGBoost
- AE、MLP、深层玻尔兹曼机、深层信念网络、CNN、RNN、LSTM、Inception、Attention
- 迁移学习、GAN
(7)在线控制决策:
- 预测结果做平滑处理,1s判别10次,3-5次投票作为控制指令
- 机器人正在运动时不接受指令
- 机器人闭手状态时只接受开手类指令(康复机器人)
图4 肌电控制手部康复机器人
(1)离线采集sEMG,并数据预处理
(2)构造肌电图像,输入给深度学习模型
图5 基于深度学习的肌电识别处理流程
NinaPro DB1: OttoBock(100Hz)采集设备,粘贴10个电极,27位健康受试者,53种手部动作(包含休息状态)
NinaPro DB2:Delsys(2000Hz)采集设备,粘贴12个电极,40位健康受试者,49种手部动作(不包含休息状态)
SIA_delsys_16_movements_data数据下载
SIA_delsys_16_movements数据集:Delsys(2000Hz)采集设备,粘贴6个电极,4位健康受试者,16种手部动作
6个电极的粘贴位置:前臂的桡侧腕短伸肌、桡侧腕屈肌、肱桡肌、尺侧腕伸肌、指伸肌、指浅屈肌
图6 16手部动作
每个通道提取多个特征,RMS、MAV、WL、ZC、SSC等
(1)NinaPro DB1:输入图像大小 12 * 10 (120ms * 10channels)
(2)NinaPro DB2: 输入图像大小 200 * 12 (100ms * 12channels)
(3)SIA_delsys:输入图像大小 200 * 6 (100ms * 6channels)
使用Conv1D、Conv2D、Alternate-CNN(交替卷积)、ML-CNN(多流卷积操作+大池化层)四种
图7 应用于肌电识别的TextCNN模型
图8 应用于肌电识别的ML-CNN模型