【动作模式识别】实现复合动作模式识别(离线控制模块)

一、思路

一般来说,要实现摸脸动作,需要采集手臂的以下肌肉的肌电信号:

  • 肱二头肌:控制肘关节的屈曲
  • 肱三头肌:控制肘关节的伸展
  • 前臂屈肌群:控制手腕和手指的屈曲
  • 前臂伸肌群:控制手腕和手指的伸展
  • 拇指长展肌:控制拇指的展开
  • 拇指短伸肌:控制拇指的伸直

这些肌肉的具体位置可以参考:http://menovomed.com/newsv.php?id=549。一般来说,需要将电极贴在目标肌肉上,注意避免交叉干扰和噪音。
(1) 基于肌电信号的手臂动作识别及虚拟仿真 - 百度学术. https://xueshu.baidu.com/usercenter/paper/show?paperid=10550cv0wc3104x00v1h0vr0sp742042.
(2) 有了意念当“指挥” 假肢也能很“听话”----中国科学院. https://www.cas.cn/kx/kpwz/201708/t20170821_4611750.shtml.
(3) 基于表面肌电信号的手臂运动模式识别-开题PPT_百度文库. https://wenku.baidu.com/view/4e6fff73a417866fb84a8e4c.html.
(4) 深度学习的人体动作识别算法 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/46599638.
(5) 超轻量更泛化!基于人体骨骼点的动作识别 - 知乎. https://zhuanlan.zhihu.com/p/426695879.
(6) 有了意念当“指挥” 假肢也能很“听话”----中国科学院. https://bing.com/search?q=%e6%89%8b%e8%87%82%e5%8a%a8%e4%bd%9c%e6%a8%a1%e5%bc%8f%e8%af%86%e5%88%ab.

二、复杂动作怎么信号处理?

如果你一次采集了五个通道的肌电信号,你可以将这些信号叠加在一起,也就是将每个通道的信号相加得到一个总信号,然后对这个总信号进行预处理和特征提取和模式识别。这样做的好处是可以减少计算量和提高信噪比。但是,这种方法也有一些缺点,比如可能会丢失一些通道间的信息,或者造成一些通道的信号被其他通道的信号掩盖。

另一种方法是对每个通道的信号分别进行预处理和特征提取,然后将每个通道的特征向量拼接成一个总的特征向量,再用这个总的特征向量进行模式识别。这样做的好处是可以保留每个通道的信息,或者利用不同通道之间的相关性。但是,这种方法也有一些缺点,比如可能会增加计算量和降低信噪比。

因此,需要根据你的具体应用场景和目标来选择合适的方法。
推荐B站一个非常好的国内教程:https://www.bilibili.com/video/BV15e4y197iL/?spm_id_from=333.999.0.0&vd_source=e1b57954a90a5c44920c0ea78136af67

(1) 表面肌电信号(sEMG)基础知识总结 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/485705730.
(2) 干货|一文详解sEMG表面肌电 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/379925002.
(3) 什么是肌电?_肌电是什么意思-CSDN博客. https://blog.csdn.net/psybrain/article/details/120945604.
(4) 多通道表面肌电信号分解的研究 - 百度学术. https://xueshu.baidu.com/usercenter/paper/show?paperid=96753679fcfd2908ec256deced56da2b.
(5) NinaPro-DB1 · master · mirrors / malele4th / sEMG_DeepLearning. https://gitcode.net/mirrors/malele4th/sEMG_DeepLearning/-/tree/master/NinaPro-DB1.
(6) 干货|一文详解sEMG表面肌电 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/379925002.

三、特征提取思路

首先我们先看看适合肌电信号都有哪些特征提取算法?
肌电信号的特征提取算法有很多种,不同的算法可能适用于不同的目的和场景。一般来说,肌电信号的特征提取算法可以分为以下几类:

  • 基于时域的特征提取算法:这类算法主要利用肌电信号在时间上的变化规律,提取出一些统计量或者时序参数,如均值、方差、标准差、偏度、峰度、波峰波谷距离、零交叉率等。这类算法的优点是简单易实现,计算量小,但是缺点是对噪声敏感,不能反映肌电信号的频率特性。
  • 基于频域的特征提取算法:这类算法主要利用肌电信号在频率上的分布特征,提取出一些谱域参数或者变换系数,如功率谱密度、频谱中心、频谱宽度、频谱基频、频谱最大峰值、快速傅里叶变换系数、小波变换系数等¹²。这类算法的优点是能够反映肌电信号的频率特性,对噪声不敏感,但是缺点是计算量大,需要较高的采样率。
  • 基于时频域的特征提取算法:这类算法主要利用肌电信号在时域和频域上的联合特征,提取出一些时频参数或者变换系数,如短时傅里叶变换系数、连续小波变换系数、离散小波变换系数、经验模态分解系数等。这类算法的优点是能够反映肌电信号的时变性和非线性性,适用于非平稳信号,但是缺点是计算量更大,需要较高的采样率和分辨率。
    我们选择连续小波变换系数算法,对噪声不敏感,需要满足高采样率
  • 基于深度学习的特征提取算法:这类算法主要利用深度神经网络自动学习肌电信号的高层抽象特征,无需人工设计或者选择特征,如卷积神经网络、循环神经网络、自编码器等。这类算法的优点是能够适应复杂和多样的肌电信号数据,提高识别准确率和鲁棒性,但是缺点是需要大量的训练数据和计算资源,难以解释和理解特征含义。
    对于复合动作选择基于时频域的算法更合适,为什么呢?

对于复合动作,比如说摸脸、摸后脑勺、进食等,我认为基于时频域的特征提取算法比基于频域的特征提取算法更适合你的要求。因为基于时频域的特征提取算法可以同时反映肌电信号的时域和频域特征,而基于频域的特征提取算法只能反映肌电信号的频域特征。复合动作通常涉及多个肌肉群的协调和变化,因此需要考虑肌电信号的时变性和非线性性,而不仅仅是频率特性。

基于时频域的特征提取算法有很多种,例如短时傅里叶变换(STFT)、连续小波变换(CWT)、离散小波变换(DWT)、经验模态分解(EMD)等 。你可以根据你的数据和目标选择合适的算法和参数。一般来说,STFT和CWT可以提供较高的时间分辨率和频率分辨率,但是需要较大的计算量和存储空间;DWT可以提供较低的时间分辨率和频率分辨率,但是需要较小的计算量和存储空间;EMD可以提供自适应的时间分辨率和频率分辨率,但是需要较高的计算复杂度和稳定性。

关于训练集和测试集
训练集和测试集是机器学习中常用的两种数据集,它们的意思和区别如下:

  • 训练集(training set)是用来训练模型的数据,它包含了输入变量和输出变量,也就是特征和标签。训练集中的标签可以是人工打标签的,也可以是从其他数据源获取的,例如数据库、网站、传感器等。
  • 测试集(test set)是用来评估模型的性能的数据,它也包含了输入变量和输出变量,但是在训练过程中不会使用。测试集中的标签也可以是人工打标签的,也可以是从其他数据源获取的,但是要和训练集的标签来源保持一致,以保证评估的有效性。

训练集和测试集的划分方法有多种,一种常见的方法是留出法(holdout cross validation),即按照一定的比例将数据集静态地划分为训练集和测试集,例如6:4或8:2。另一种常见的方法是k折交叉验证(k-fold cross validation),即将数据集动态地划分为k份,每次使用k份中的一份作为测试集,其他作为训练集,重复k次,然后取平均值作为最终的评估结果。

想了解更多关于训练集和测试集的定义和区别,可以参考以下的一些网页

(1) 机器学习干货篇:训练集、验证集和测试集 - 知乎. https://zhuanlan.zhihu.com/p/377789735.
(2) 一文看懂 AI 数据集:训练集、验证集、测试集(附:分割方法+交叉验证) - 知乎. https://zhuanlan.zhihu.com/p/98532085.
(3) 测试集和训练集是什么意思? - 百度知道. https://zhidao.baidu.com/question/425949299.html.
(4) 机器学习为什么要划分训练集、测试集和验证集?这3个样本集的区别又在哪里? - 知乎. https://zhuanlan.zhihu.com/p/377396096.
(5) #通俗理解# 测试集、训练集、开发集的区别 - 知乎. https://zhuanlan.zhihu.com/p/367995480.

四、动作模式识别

在处理三通道肌电信号或者更多通道信号数据进行动作模式识别时,选择合适的算法是至关重要的。根据不同需求,有几种算法可能适合:

  1. 线性判别分析(LDA):LDA是一种简单且计算效率高的方法,适用于特征空间线性可分的情况。它通过最大化类间距离和最小化类内距离来进行分类。

  2. 支持向量机(SVM):SVM在处理小样本、非线性及高维模式识别中表现出色,它通过找到最优超平面来区分不同类别的数据。

  3. 人工神经网络(ANN):ANN能够学习和模拟非线性和复杂的关系,特别是在特征空间复杂或者当数据关系难以用传统统计方法描述时。

  4. 卷积神经网络(CNN):CNN在图像处理中表现优异,对于肌电信号,可以将其转换为肌电图像,再利用CNN进行特征学习和分类。

  5. 循环神经网络(RNN):RNN特别适合处理序列数据,能够捕捉时间序列中的动态变化,适用于肌电信号这种随时间变化的数据。

选择哪种算法取决于您的具体应用场景和数据特性。例如,如果您的数据集较小,SVM可能是一个好的选择;如果您需要处理复杂的模式或者分类边界,ANN或CNN可能更合适。同时,深度学习方法如CNN和RNN可以自动提取特征,减少手动特征工程的需要,但它们通常需要更多的数据和计算资源。

在选择算法时,您还应该考虑实时性要求和系统的计算能力。例如,LDA由于其简单性,可能更适合需要快速响应的应用。而深度学习方法,尽管计算复杂度高,但在有足够资源的情况下可以提供更高的准确率和鲁棒性。

总之,选择合适的算法需要综合考虑数据特性、应用需求、计算资源和实时性要求。

(1) 智能交互中的肌电模式识别研究进展 - SIAT. http://neural.siat.ac.cn/index.php/news/109.shtml.
(2) 基于表面肌电信号的动作识别—深度学习方法 - 知乎. https://zhuanlan.zhihu.com/p/61650163.
(3) 基于EMG的人体下肢运动意图感知与预测研究 - 豆丁网. https://www.docin.com/p-2321503571.html.
(4) 表面肌电信号的多流卷积网络融合手势识别方法. http://www.shcas.net/jsjyup/pdf/2022/8/表面肌电信号的多流卷积网络融合手势识别方法.pdf.
(5) “惯性动作捕捉+无线表面肌电”技术融合新趋势 - 知乎. https://zhuanlan.zhihu.com/p/411813910.
(6) 智能交互中的肌电模式识别研究进展:https://mp.weixin.qq.com/s/QkOxEseGpQX-KhMvap9SzA.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/129353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记一次并发问题 Synchronized 失效

记一次并发问题 Synchronized 失效 场景:为避免信息提交重复,给事务方法增加了synchronized修饰符,实际场景中仍然无法完全避免重复,原因是因为在第一个线程执行完synchronized代码段后,此时spring还未完成事务提交&a…

JMM讲解

一:为什么要有JMM,它为什么出现? CPU的运行并不是直接操作内存而是先把内存里面的数据读到缓存,而内存的读和写操作的时候会造成不一致的问题。JVM规范中试图定义一种Java内存模型来屏蔽掉各种硬件和操作系统的内存访问差异&…

AndroidAuto PCTS A118解决杂音问题

A118最后播放三段media类型音频数据,中间会有一点beep的杂音,这个是暂停跟播放没有衔接好导致的,解决这个问题的思路是要分离开播放跟暂停,不能还没完全暂停就播放下一段音频数据 修改点在AudioPlayer.java @Overridepublic synchronized void onStart(int sessionId) {if …

WPF布局控件之WrapPanel布局

前言:博主文章仅用于学习、研究和交流目的,不足和错误之处在所难免,希望大家能够批评指出,博主核实后马上更改。 概述: 后续排序按照从上至下或从右至左的顺序进行,具体取决于方向属性的值。WrapPanel 位…

Linux内核分析(一)--内核架构和子系统

目录 一、引言 二、内核架构 ------>2.1、kernel源码获取 ------>2.2、cpuinfo ------>2.3、内核体系结构 ------>2.4、内核主要组件 三、内核源码及子系统 ------>3.1、整体结构与子系统 ------>3.2、cpuinfo ------>3.3、整体结构与子系统 -…

海上风电应急救援vr模拟安全培训提高企业风险防范能力

相比传统的发电厂,海上风电作业积累的经验少,风险高,因此为了规范施工人员的行为和操作,保障生产安全进行,开展海上风电VR安全培训具有重要意义。 有助于提高员工的安全意识 通过模拟真实的海上风电作业环境&#xff0…

怎样做好金融投资翻译

我们知道, 金融投资翻译所需的译文往往是会议文献、年终报表、信贷审批等重要企业金融资料,其准确性事关整个企业在今后一段时期内的发展战略与经营成效。尤其像年报,对于上市公司来说更是至关重要的。那么,怎样做好金融投资翻译&…

英国 AI 安全峰会前瞻:为什么是现在,为什么在英国

撰文:Ingrid Lunden 来源:TechCrunch 图片来源:由无界AI生成 人工智能的前景和危害是如今的热门话题。有人说人工智能将拯救我们,可以帮助诊断一些恶性疾病、弥补教育领域的数字鸿沟等。但也有人担心它在战争、安全、错误信息等方…

微信小程序中使用GIF

前言 最近在微信小程序开发时遇到了一个非常复杂的动画,如果要手搓的话需要用canvas一点点弄,比较麻烦,于是打算做一个gif来实现动画效果 根据需求,动画只需播放一次即可,并且设置了一个重播按钮,点击即可重…

mybatis-plus分页total为0,分页失效,mybatis-plus多租户插件使用

背景:项目使用mybatis分页插件不生效,以及多租户使用时读取配置异常 分页插件不细述,网上很多方法试了还是不生效,最后修改到当前版本解决,直接上代码 多租户插件使用遇到的问题: 最开始在MyTenantLineH…

C++ 服务器软件工程师测试题目(仅为出题记录,不存在实际意义)

C 服务器软件工程师测试题目,本题目列表会持续补充,仅作为面试测试的参考意见题目,不具备任何实际价值,感兴趣的童鞋可以用于面试问答提取题目测试。 注意: 题目可能是多条题目合并为一条,用作面试请不要…

【Unity编辑器扩展】艺术字/自定义图片字体生成工具

艺术字在游戏中很常用,由于普通字体样式过于平淡,制作花里胡哨的文字图片作为游戏字体使用,这就是艺术字。 不依赖第三方工具,仅使用Unity自带的Custom Font 一张艺术字图集就能实现这个功能,但是为了便于使用&#…

#django基本常识01#

#manage.py# 所有子命令的入口,比如: python3 manage.py runserver 启动服务 python3 manage.py startapp 创建应用 python3 manage.py migrate 数据库迁移 直接执行python3 manage.py 可显示所有子命令 #安装django环境# 1:虚拟环境安装 1.1: 安装vir…

【机器学习】二、决策树

目录 一、决策树定义: 二、决策树特征选择 2.1 特征选择问题 2.2 信息增益 2.2.1 熵 2.2.2 信息增益 三、决策树的生成 3.1 ID3算法 3.1.1理论推导 3.1.2代码实现 3.2 C4.5 算法 3.2.1理论推导 ​ 3.2.2代码实现 四、决策树的剪枝 4.1 原理 4.2 算法思路&#xff1a…

uniapp循环对象列表---点击列表切换选中不同状态

目录 源码图片最后 源码 <template><view><ul><li v-for"(item, index) in list" click"toggleSelection(index)" :class"{selected: selectedIndex index}">{{ item }}<view :class"{selected: selectedInde…

【Linux】 ps 命令使用

ps &#xff08;英文全拼&#xff1a;process status&#xff09;命令用于显示当前进程的状态&#xff0c;类似于 windows 的任务管理器。 语法 ps [选项] ps命令 -Linux手册页 著者 ps最初由布兰科兰克斯特撰写<lankestefwi.uva.nl>。迈克尔K约翰逊<johnsonmred…

【强化学习】15 —— TRPO(Trust Region Policy Optimization)

文章目录 前言TRPO特点策略梯度的优化目标使用重要性采样忽略状态分布的差异约束策略的变化近似求解线性搜索算法伪代码广义优势估计代码实践离散动作空间连续动作空间 参考 前言 之前介绍的基于策略的方法包括策略梯度算法和 Actor-Critic 算法。这些方法虽然简单、直观&…

【Java 进阶篇】Java ServletContext功能:获取文件服务器路径

Java ServletContext是Java EE中的一个核心接口&#xff0c;用于与Servlet容器进行通信&#xff0c;提供了许多有用的功能&#xff0c;包括获取文件服务器路径。在本文中&#xff0c;我们将详细介绍如何使用ServletContext来获取文件服务器路径&#xff0c;并提供示例代码以帮助…

前端事件案例补充

目录 定时器示例 搜索框示例 省市联动 定时器示例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><meta name"viewport" content"widthdevice-width, init…

Docker Tomcat 搭建文件服务器

本文基于openwrt上进行。 步骤 1: 安装 Docker 如果尚未安装Docker&#xff0c;首先需要安装Docker。根据你的操作系统&#xff0c;参考Docker官方文档来完成安装, 这里不做详细介绍。 步骤 2: 拉去docker Tomcat镜像 进入openwrt管理界面&#xff0c;docker选项中 拉取最新…