曹书豪 许成哲

【摘 要】本文提出了一种基于深度学习模型的表面肌电信号手势动作识别算法,采用瑞士Ninapro公开数据库,通过2阶巴特沃斯滤波器进行带阻滤波对原始信号进行预处理,并利用标准偏差滤除无信号段,采用时间窗重叠的方式将原始数据扩充至符合深度学习模型训练的数据量。最后将预处理后的数据输入34层ResNet深度学习模型并得出识别结果。实验结果显示本文提出的算法较比同类论文取得了更高的识别精度,在52手势动作分类识别准确率达到92.66%,验证了本算法的有效性。

【关键词】深度学习;表面肌电信号;手势动作识别

中图分类号: TP391.41文献标识码: A文章编号: 2095-2457(2019)01-0118-003

0 引言

表面肌电信号是通过表面电极记录下来的肌肉运动生物电信号,它可以反映神经、肌肉的功能状态,近年来随着科学技术的发展,国内外对本课题研究也逐渐深入,使得其在临床医学、运动医学、康复医学及体育运动等领域被广泛应用。

2014年Jongin Kim等人[2]以四种手势动作的PSD做为特征输入支持向量机进行识别,识别率达91.97%。Manfredo Atzori等人[3]采用RMS、HIST等特征对Ninapro提供的手势动作进行分类识别,其中利用随机森林神经网络进行52动作分类的最高精确率达75.27%。2017年Stefano Pizzolato等人[4]利用RMS等特征对Ninapro数据库提供的DB子数据库中27个人的52个手势动作进行分类识别,最高分类精度达69.13%。2017年浙江大学杜宇[5]将深度学习模型运用到了手势识别当中,采用基于深度卷积网络的方法,通过对Ninapro数据库提供的手势动作进行对比实验,训练好的分类器逐帧的对输入的肌电图像进行分类,手势动作分类结果为识别出的手势标签中所占比例最高的标签。

针对现有方法的不足,本文提出了一种基于深度学习模型的表面肌电信号手势动作识别算法,将预处理后的数据输入34层ResNet深度学习模型并得出识别结果。实验结果显示本文提出的算法较比同类论文取得了更高的识别精度,验证了本算法的有效性。

1 表面肌电信号的预处理

1.1 Ninapro数据库简介

Ninapro[1]是一个针对基于稀疏多通道肌电信号的手势识别的标准数据集,主要用于主动假肢的研发。本文主要采用DB1及DB4进行对比实验。其中DB1包含27个完整个体的52种手势动作,如图1所示,每人毎种手势重复10次,DB4包含10人的52种手势,采样频率为100Hz。在采集过程中,要求受试者右手进行重复动作,每个手势重复持续5秒,然后休息3秒,每人每种手势重复6次。DB4包含10个完整个体的52个手势动作,采集协议同DB1一致,采样频率为2000Hz。

1.2 表面肌电信号的滤波处理

表面肌电信号是一种非常微弱的信号,其频谱范围为0-1000Hz之间,功率谱的最大频率随肌肉而定,通常在30~300Hz之间,表面肌电信号的主要能量集中在300Hz以下。因此本文采用2阶巴特沃斯滤波器进行带阻滤波,阻带边界为45-55Hz。该滤波器的平方幅度响应函数定义为公式(1):

公式中N为滤波器的阶数,是正整数,是该低通滤波器截止频率,在设计低通滤波器的过程中,从式(1)可以看出选择和阶次N是设计滤波器的关键。根据信号的频谱特性确定通频带的截止频率、阻频带的截止频率、通带内最大限度的衰减和阻带内最小衰减。然后利用如下公式(2)、公式(3)得出阶次N和截止频率。

Ninapro数据库在数据处理过程中发现,部分信号存在幅值极低的情况,本文利用STD对原始数据进行筛选,每0.05秒截取一段信号,如STD大于300则保留该段信号,如小于300则滤除该段信号,重复此操作直至全部信号筛选完毕为止。滤除无信号段之后的表面肌电信号如图2所示。

1.3 表面肌电信号的扩充

以Ninapro数据库子集DB4为例,本文采用时间窗重叠的方式将原始数据库进行扩充,选取信号长度为0.5秒,时间窗重叠为0.3秒的方式將DB1中8424个原始信号扩充至229276个,DB4中3120个原始信号扩充至25249个,这样基本满足了深度学习对于样本数量的要求,在一定程度上减小了数据过拟合的可能。

2 表面肌电信号识别方法

2.1 深度残差网络

深度残差网络是于2015年提出的一种深度学习网络,简单的堆叠网络会导致严重的梯度消失问题,在更深的网络上,精确度达到了饱和,效果反而变差。针对上述情况,ResNet引入了残差学习来解决深度网络难以优化的问题。形式上看,神经网络实际上是将一个空间维度的向量x,用表示最优的映射,让堆叠的非线性层去拟合另一个映射,此时最优映射可以表示为:

H(x)=F(x)-x(4)

假设残差映射比原映射更易优化,那么,在极端情况下就很容易将残差推至0,这比将映射逼近另一个映射要简单得多。可以通过在前馈网络中增加一个“快捷连接”来表示。“快捷连接”跳过一个或多个层,执行简单的恒等映射,既不会增加额外参数,也不会增加计算复杂度,且整个网络依然可以用反向传播进行端到端的训练,残差块示意图如图3所示:

2.2 基于ResNet残差网络的表面肌电信号识别

本文采用基于Python的TensorFlow来设计ResNet残差网络,本文选用34层的ResNet,ResNet整体流程框图如图5所示:

(1)卷积层。卷积层是一个卷积神经网络中最为重要的部分,卷积层的每一个节点的输入只是上一层神经网络的一小块,本文采用34层ResNet残差网络,由于表面肌电信号为一维信号,故这个小块的大小为1×3,一般来说,经过卷积层之后的节点矩阵会变得更深。

(2)池化層。池化层神经网络不会改变矩阵的深度,但是它可以缩小矩阵的大小,通过池化层,可以进一步缩小最后全连接层中节点的个数,从而达到减少整个神经网络中参数的目的。

(3)全连接层。经过5轮卷积层和池化层的处理之后,在ResNet中是由全连接层给出最后的分类结果。我们可以将卷积层和池化层看成信号特征提取的过程,在特征提取完成之后,仍然需要使用全连接层来完成分类任务。

(4)Softmax层。通过Softmax层可以得到当前样例属于不同种类的概率分布情况。本文使用的Ninapro数据库当中,DB1和DB4均为52手势动作分类,故本文选择52节点的全连接层和Softmax层。

3 实验结果及分析

本实验平台CPU采用Inter i7 7800X,GPU采用微星GTX1080Ti,软件采用TensorFlow(ResNet)。对于每一个手势动作类别,选取其中的10%测试集,90%作为训练集。网络结构选择为34层ResNet残差网络,其中权重衰减因子0.0001,学习速率初始为0.1,分别在DB1和DB4中进行对比实验,实验结果如表1所示:

我们将文献[2]-[5]所运用的方法在DB1和DB4中做对比实验,并将表1中取得的最优分类精度与其相比较,实验结果如表2所示:

4 结论及下一步工作

本研究提出了一种基于深度学习模型的表面肌电信号手势动作识别算法,实验结果表明本研究提出的方法较比传统机器学习方法及现有深度学习方法在表面肌电信号手势动作的识别率上有了较大提升,在52手势动作识别的研究中获得了92.66%的准确率。

本文实验需要大量的表面肌电信号数据支持以及长时间的训练过程,下一步拟采用精调参数的方式对本算法进行调试,以便取得最佳的识别精度。另外本文提出的算法没有考虑静态手势和过渡手势的区别,两种动作具有不同的发力模式,应当区别对待。未来的工作包括对静态手势和过渡手势的分别建模,从而更好的学习手势动作的不同阶段中表面肌电信号的静态和动态特征。

【参考文献】

[1]Atzori M, Gijsberts A, Heynen S, et al. Building the NinaPro Database: a Resource for the Biorobotics Community[C]//IEEE Ras & Embs International Conference on Biomedical Robotics & Biomechatronics. IEEE, 2012.

[2]Atzori M, Gijsberts A, Castellini C, et al. Electromyography data for non-invasive naturally-controlled Robotic hand prostheses[J]. Nature, 2014, 1.

[3]Kim J, Cho D, Lee K J, et al. A Real-Time Pinch-to-Zoom Motion Detection by Means of, a Surface EMG-Based Human-Computer Interface[J]. Sensors, 2014, 15(1):394-407.

[4]Pizzolato S, Tagliapietra L, Cognolato M, et al. Comparison of six electromyography acquisition setups on hand movement classification tasks[J]. Plos One, 2017, 12(10):e0186132.

[5]Du Y, Jin W, Wei W, et al. Surface EMG-Based Inter-Session Gesture Recognition Enhanced by Deep Domain Adaptation[J]. Sensors, 2017,17(3):458.

nina数据库的采样频率_基于深度学习模型的表面肌电信号手势动作识别算法研究...相关推荐

  1. 基于深度学习模型的花卉图像分类代码_实战 | 基于深度学习模型VGG的图像识别(附代码)...

    本文演示了如何使用百度公司的PaddlePaddle实现基于深度学习模型VGG的图像识别. 准备工作 VGG简介 牛津大学VGG(Visual Geometry Group)组在2014年ILSVRC ...

  2. 基于深度学习模型的电力变压器故障声音诊断方法研究-论文阅读笔记

    基于深度学习模型的电力变压器故障声音诊断方法研究 论文来源 DOI:10.16311/j.audioe.2020.01.020 论文目的 在变压器不停止工作的情况下,基于变压器的三种状态:正常.老化和 ...

  3. 基于深度学习和光流的地铁乘客上下车自动检测算法

    1.文章信息 本次介绍的文章题目是基于深度学习和光流的地铁乘客上下车自动检测算法<An Automatic Detection Algorithm of Metro Passenger Boar ...

  4. 基于深度学习的高分辨率遥感图像目标检测技术目前的研究现状

    参考   基于深度学习的高分辨率遥感图像目标检测技术目前的研究现状 - 云+社区 - 腾讯云 目录 一.概述 二.通用目标检测方法 1.类不平衡问题 2.复杂背景 3.目标的尺度变化 4.特殊视角 5 ...

  5. 基于linux火焰识别算法,一种基于深度学习模型的火焰识别方法与流程

    本发明属于通信领域,具体涉及一种基于深度学习模型的火焰识别方法. 背景技术: 随着我国工业化与城镇水平的不断提高,现代设施大型公共建筑朝着空间大.进深广功能复杂的多元化方向发展,这对于防烟火朝着空间大 ...

  6. 【深度学习模型】智云视图中文车牌识别源码解析(二)

    [深度学习模型]智云视图中文车牌识别源码解析(二) 感受 HyperLPR可以识别多种中文车牌包括白牌,新能源车牌,使馆车牌,教练车牌,武警车牌等. 代码不可谓不混乱(别忘了这是职业公司的准产品级代码 ...

  7. 姿态检测 树莓派_基于深度学习的树莓派老人摔倒检测系统的制作方法

    本发明属于电子器件技术领域,涉及基于深度学习的树莓派老人摔倒检测系统. 背景技术: 日益庞大的老年群体已成为人们关注的焦点.由于老年人身体活动不便等特点,摔倒已成为我国人员伤亡的第四位原因,而意外摔倒 ...

  8. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  9. 物体抓取位姿估計算法綜述_基于深度学习的物体抓取位置估计

    主讲题目:基于深度学习的物体抓取位置估计 主要内容:机械臂抓取技术简介与入门方法 主讲嘉宾:东北大学研究生,主要研究物体六自由度位姿估计,机械臂抓取. 知乎视频​www.zhihu.com 往期干货资 ...

  10. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

最新文章

  1. count http://www.cplusplus.com/reference/algorithm/count/
  2. Mac下pycharm如何安装tensorflow
  3. linux系统上tomcat启动正常,但浏览器无法访问
  4. linux hadoop 本地,Linux系统下运行基于本地的Hadoop
  5. 智能、弹性、易用:云时代的负载均衡之道
  6. 线性代数导论5——SVD分解
  7. oracle vm 环境支持,使用 Oracle VM 模板快速部署 Oracle RAC 环境
  8. SMSSMS垃圾邮件检测器的专业攻击
  9. bootstrap简单使用
  10. Android 颜色渲染(九) PorterDuff及Xfermode详解
  11. 桌面应用程序 azure_如何在Azure中连接我们的C#应用​​程序
  12. “敏捷项目管理就是胡闹!”
  13. Firebug Console API
  14. oracle数据的启动
  15. Vue项目webpack打包部署到Tomcat,刷新报404错
  16. HDU 2063 过山车
  17. Horner法则,MurMurHash
  18. C++项目学习(机器人方向)
  19. 如何使用真机测试运行HarmonyOS应用
  20. 欢迎使用Markdown编辑器

热门文章

  1. java后台管理项目策划书_12款适合做Java后台管理系统的项目
  2. 三人表决器Verilog
  3. 简单的整人代码(你是猪,文章末附带文件)
  4. 幼儿园观察记录的目的和目标_幼儿园观察记录应该怎么写?
  5. 印刷汉字识别方法综述
  6. Linux 虚拟机忘记密码解决办法
  7. Git与GitHub安装与配置
  8. Word标题样式设置多级自动编号
  9. 迅雷2019校园招聘 内推码
  10. 使用Excel2016求解运筹学线性规划