表面肌电信号(Surface Electromyography)是众多生物电信号中的一种,也是相对来说最容易获取的一种电生理信号。将电极片放置在人体的皮肤表面,可以记录到皮肤表面因肌肉收缩而产生的微弱的电位差,而这个微弱的电位信号通过肌电采集电路的放大和转换就形成了可用作处理的表面肌电信号。sEMG是及其微弱的,下面是肌电与常见电源的电压值比较。

采集sEMG的装置很多,国内外均有比较成熟的产品在售,例如美国的Delsys、Noraxon、瑞典的MYON、德国FREEEMG(下图从左到右)

国内也有一些厂商在做肌电仪,虽然知名度不如Delsys这些全球厂商做的大,但是可以满足一般的科研条件,例如杭州交浦科技研发的ELONXI肌电仪

这些产品在性能上大致相同,区别在于:1)通道数,这决定了采集肌肉块的数量,一般通道数越多,信息越丰富;2)通信方式,现在一般是采用蓝牙或者WIFI通信;3)采样率,采样率高表示单位时间内获取的有效信息更多,能够甄别出更多肌肉突变的信息,当然也存在着信息冗余,增加计算时间的缺点;4)软件功能支持,包括接口支持、滤波支持、内置处理方法等。

上述对产品的简单介绍只是让大家了解一下采集肌电信号的设备,当然也有很多实验室会自己研发特定需求的肌电采集装置来满足实验需求。采集的过程是基本步骤,当然如果仅仅要验证算法,可以使用公共数据集进行测试,比较有名的公共数据集是Ninapro,体量大,数据量全,针对的场景也比较广。当然还有high-density肌电阵列采集的数据集,浙江大学的CapgMyo。

那么肌电是如何产生的呢?

其实人体的各种运动的源头信号均来自于大脑,相当于一个指挥官在给身体的各个组织部分发送命令。当人体做出某个动作时,脊髓神经会产生一个控制信号并利用神经肌肉接头作为媒介传递到肌纤维,与每个神经元关联的肌纤维有很多条,这些部分合在一起就构成了所谓的运动单元。肌纤维细胞经过去极化和复极化操作,在神经肌肉接头处产生动作电位,这个动作电位会沿着神经元的轴突传导到末梢神经和肌肉接点,一旦运动神经接触到肌肉,那么它的轴突将会分支到多个肌纤维上,每个分支终止在肌纤维上形成运动突出的过程称为运动终板。传导到轴突末梢的动作电位使神经与肌肉的接点释放化学物质乙酸胆碱,它使得运动终板的离子通透性发生变化产生终板电位,而后,该终板电位使肌细胞膜达到去极化阈值电位,并产生肌纤维的动作电位,这个动作电位沿着肌纤维向两个肌腱端传播,引起了肌纤维内的一系列变化,导致肌纤维的收缩,大量肌纤维收缩产生肌肉力,并在其周围组织中产生细胞外电场。周围组织经过滤波操作,便可由表面电极或针电极检测到人体软组织中因电流场而表现出的电位差,记录这种肌肉动作电位的曲线称为肌电图(Electromyography, EMG),即所谓的肌电信号。

总结一句比较好理解的就是:你想抬胳膊的时候,这个想法从大脑给出,通过神经介质啥的传递到能执行抬胳膊的肌肉处,一系列的化学反应之后促使肌肉收缩从而在肌肉纤维上产生动作电位,形成电势差,恰好你把特殊装置(肌电贴片)贴合在皮肤表面就获取到了这个电势差的变化,产生的微弱的电位信号。加入我们在胳膊的前臂上贴了足够多的有效电极,那么手部的任何运动在各个电极上产生的电位信号的组合是不相同的,是可区分的。因此,我们可以通过肌电信号来把手势动作分割出来(对应到整个手臂动作、腿部动作、咽喉部动作、背部动作均可以区分)。下图是16个通道信号在完成不通手势的时候的原始信号幅值变化。动作越接近,幅值变化也就越接近。

那么采集到这些信号之后如何处理呢?

一般情况下,采集装置的软硬件中都会有一些滤波装置,例如肌电在20Hz-500Hz有效,那么就用滤波器截取出这部分有效信号,对于50Hz/60Hz的电位串扰噪声,可以用陷波滤波器去掉。所以我们可以默认从采集装置中获取的信号就是比较纯净的信号了(当然噪声还是很大的,毕竟生物电信号的特点就是不稳定、噪声大)。对肌电信号的处理流程图如下所示

当然也不是绝对的这个过程,预处理中的放大、滤波等都可以在硬件中处理。大多数按照这个处理流程:采集——>预处理(滤波)——>特征提取(含分窗)——>分类。其中特征提取和分类一直是做肌电分类的研究者的研究重点。

简单的介绍下后边的三个部分

预处理一般就是对获取到的信号进行软件处理,可以用小波变换等去噪方法进行去噪,也可以根据处理性能对信号进行重采样,还可以对信号从频域或者时频域上进行分析

特征提取一般是与信号分割(分窗)结合的,采用移动窗口法,在特定的小窗口中提取特征变量,一方面可以降维,另一方面特征量相对原始数据更能体现该段的特征,下图中的w就是一个窗口,t是一个shift window,相邻的两个窗口之间的重合率是(w-t)/ w。因为时序信号往往都存在这上下文相关的特性,所以具备一定的重合更能体现出特征。在w窗口内对这一段信号提取特征,这些特征可以分为时域特征,就是一些统计量啥的,均方根,能量,过零点等等太多了。频域特征,提取的就是经过傅里叶变换的频域方面的特征,中值频率,均值频率等等,不过频域特征的效果不如时域特征好。还有时频域特征,包括小波变换,小波包变换等等。当然还有其他一些特征提取方法,包括有人用深度学习方法CNN从大量的数据中提取出一些“黑盒”特征。

分类就是对特征进行分类,一般现在都是用机器学习方法(包括深度学习)对特征与对应的类别进行建模。传统意义上的分类方法包括KNN,Bayes,LDA,SVM,ANN,RF等等分类器,效果其实已经很好了。但是大家不满足传统分类器经验指导(设定参数)的模式,觉得如果用深度学习深挖模式关系会更好,然后有了很多人把目前流行的深度学习框架都放到肌电上去跑,从CNN,LSTM到TCN,GCN甚至胶囊网络等等。

总结一下,本文主要是简单介绍下肌电是什么,怎么采集,大致的处理流程。更多细致的处理方法见后续...如有错误,请评论指正!

表面肌电信号(sEMG)介绍相关推荐

  1. 表面肌电信号sEMG之常用特征

    1.均方根(RMS) 该特征是指在一定时间窗口内,sEMG信号的幅度均值的平方根,通常用于评估肌肉收缩的强度和疲劳程度.通常情况下,肌肉受到较大的负荷或疲劳时,RMS会降低,而在肌肉处于较轻负荷或较为 ...

  2. 循环神经网络(RNN)简单介绍及实现(基于表面肌电信号)

    循环神经网络(RNN) 文章目录 循环神经网络(RNN) 一.介绍 二.python实现(LSTM) 三.总结 一.介绍   以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接 ...

  3. 利用表面肌电信号对手部抓取动作分类的新型卷积网络模型

    利用表面肌电信号对手部抓取动作分类的新型卷积网络模型 文章目录 利用表面肌电信号对手部抓取动作分类的新型卷积网络模型 一.相关研究 二.材料和方法 2.1 数据集 2.2 数据预处理 2.3 DUAL ...

  4. 读论文-----基于单通道表面肌电信号的手势识别 Hand Gestures Recognition Based on One-Channel Surface EMG Signal

    Hand Gestures Recognition Based on One-Channel Surface EMG Signal 摘要 本文提出了一个利用OpenBCI采集两种手势信号的数据并解码信 ...

  5. 基于表面肌电信号的手势识别——深度学习方法

    文章目录 基于表面肌电信号的手势识别--深度学习方法 1.方法和代码 2.数据下载 基于表面肌电信号的手势识别--深度学习方法 1.方法和代码 https://github.com/malele4th ...

  6. 基于肌电信号(sEMG) 的深度学习手势分类-2

    我使用商业设备 (Myo Armband) 开发的数据集的分类准确度明显高于使用相同设备记录的类似基准数据集(约 24%). 实时手势识别 通过使用来自 MyoUP 数据集的 sEMG 记录训练我们的 ...

  7. 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】

    一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...

  8. python对肌电信号进行简单的手势识别

    采集前臂四块不同肌肉的表面肌电信号 #加载相关模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt #读取 ...

  9. 1 表面肌电研究——端点检测(活动段检测)

    1 表面肌电研究--端点检测(活动段检测) 1 基本知识 基于语音端点检测的方法有很多,从历史的发展来看. 首先是基于短时能量和短视过零率的端点检测=〉各变换域=〉人工神经网络=〉基于倒谱距离的检测算 ...

  10. 【电路设计】肌电信号采集电路分析

    最近在开发肌电信号的采集,表面肌电信号是非常微弱的生物信号,正常人体表面肌电信号赋值为0–1.5mV,主要能量频段集中在10–150Hz.电路主要是根据原始信号,设计相应的放大电路.滤波电路, 详细可 ...

最新文章

  1. 最近在招标中评审出一个政府信息化软件
  2. 比ajax更好技术,ajax 技术
  3. PHP上传方式base64图片的接收方式
  4. 今天早上买的这个猪蹄和花生辣条不是味道
  5. HTTP响应头信息 Content-Disposition 文件的显示或下载
  6. Jquery常用方法合集,超实用
  7. Matlab停在载入界面,试图在Matlab用户界面中实现保存/加载对象功能时遇到了困难...
  8. sql智能语法提示插件 sql prompt 10
  9. mysql 字符串拼接 null_mysql字符串拼接并设置null值的实例方法
  10. 苹果屏保壁纸_Live Photo壁纸苹果版下载-Live Photo壁纸APP
  11. PHP代码执行漏洞总结
  12. Scipy_常用统计函数
  13. 绿叶制药阿尔茨海默病创新药利斯的明多日透皮贴剂在英国获批上市;云顶新耀与AbCellera达成合作 | 医药健闻...
  14. 廖老师的Python教程——Python简介
  15. controller(控制器)
  16. python代码做图_如何用Python代码制作图
  17. 外文翻译 《How we decide》多巴胺的预言 第二节
  18. [share]深入探讨PHP中的内存管理问题
  19. NBU备份之效率提升
  20. 数据治理解决方案概述

热门文章

  1. ESP32学习笔记(46)——MQTT客户端
  2. 2020美赛M奖感想
  3. matlab优化工具箱安装,MATLAB优化工具箱 OPTI的安装
  4. 三维软件Skyline开发初步
  5. android api 完整翻译之Contacts Provider (学习安卓必知的api,中英文对照)
  6. Android contacts 的详解
  7. 服务器软件系统日常运维工作制度
  8. 全国计算机一级模拟软件安装教程
  9. GPS数据格式解析源代码举例
  10. linux w3m命令