【动作模式识别】实现复合动作模式识别(离线控制模块)
一、思路
一般来说,要实现摸脸动作,需要采集手臂的以下肌肉的肌电信号:
- 肱二头肌:控制肘关节的屈曲
- 肱三头肌:控制肘关节的伸展
- 前臂屈肌群:控制手腕和手指的屈曲
- 前臂伸肌群:控制手腕和手指的伸展
- 拇指长展肌:控制拇指的展开
- 拇指短伸肌:控制拇指的伸直
这些肌肉的具体位置可以参考: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.
四、动作模式识别
在处理三通道肌电信号或者更多通道信号数据进行动作模式识别时,选择合适的算法是至关重要的。根据不同需求,有几种算法可能适合:
-
线性判别分析(LDA):LDA是一种简单且计算效率高的方法,适用于特征空间线性可分的情况。它通过最大化类间距离和最小化类内距离来进行分类。
-
支持向量机(SVM):SVM在处理小样本、非线性及高维模式识别中表现出色,它通过找到最优超平面来区分不同类别的数据。
-
人工神经网络(ANN):ANN能够学习和模拟非线性和复杂的关系,特别是在特征空间复杂或者当数据关系难以用传统统计方法描述时。
-
卷积神经网络(CNN):CNN在图像处理中表现优异,对于肌电信号,可以将其转换为肌电图像,再利用CNN进行特征学习和分类。
-
循环神经网络(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.
相关文章:
【动作模式识别】实现复合动作模式识别(离线控制模块)
一、思路 一般来说,要实现摸脸动作,需要采集手臂的以下肌肉的肌电信号: 肱二头肌:控制肘关节的屈曲肱三头肌:控制肘关节的伸展前臂屈肌群:控制手腕和手指的屈曲前臂伸肌群:控制手腕和手指的伸…...
Python基础学习009——类的封装
# 面向对象是一种编程思想,还有另一种是面向过程 # 面向过程,具体步骤的实现,所有功能都自己书写 # 面向对象,使用一个个工具(函数),帮助完成各项任务 # 类:对多个特性相同或相似的食物的统称,根据特征不同一个事物可以属于多个类 # 对象:由类实例化的一个事物,指代1个 # 类的组…...
前端开发和后端开发,你更倾向于哪一种?
作为一个Web开发者,你是否曾经面临过这样的选择:是专注于前端开发,还是转向后端开发?前端开发和后端开发是Web开发中的两个不同的领域,它们各有各的特点和优势,也各有各的挑战和难点。那么,你应…...
Selenium 基本功能
#driver.quit()from selenium import webdriver from selenium.webdriver.chrome.service import Service# 尝试传参 s Service("chromedriver.exe") driver webdriver.Chrome(services)driver.get(https://www.baidu.com/) input()#1/导入Selenium库 from seleniu…...
智能井盖传感器有哪些?万宾科技智能井盖效果
在城市治理过程之中,小小的井盖却成为影响民生的一个重要方面,因为井盖一旦出现问题,会严重影响市民的生命安全,并且传统的井盖一般都会采用人工巡检的方式,这就导致了巡检的难度较大,从而不能对城市各个角…...
视频增强和修复工具 Topaz Video AI mac中文版功能
Topaz Video AI mac是一款使用人工智能技术对视频进行增强和修复的软件。它可以自动降噪、去除锐化、减少压缩失真、提高清晰度等等。Topaz Video AI可以处理各种类型的视频,包括低分辨率视频、老旧影片、手机录制的视频等。 使用Topaz Video AI非常简单,…...
0基础学习PyFlink——使用datagen生成流式数据
大纲 可控参数字段级规则生成方式数值控制时间戳控制 表级规则生成速度生成总量 结构生成环境定义行结构定义表信息 案例随机Int型顺序Int型随机型Int数组带时间戳的多列数据 完整代码参考资料 在研究Flink的水位线(WaterMark)技术之前,我们可…...
vue使用Web Speech API实现语音播报
SpeechSynthesisUtterance对象用于表示要播放的语音内容,SpeechSynthesis对象则用于控制语音的播放、暂停、停止等操作。 const synth window.speechSynthesis const msg new SpeechSynthesisUtterance() // 语音播放 const playVoice (text) > {synth.canc…...
MVC5_Day1(Razor视图引擎)
MVC提供了两种不同的视图引擎:Razor视图引擎、Web Forms视图引擎。 1.代码表达式 1.1 转换字符:核心转换字符,用作标记<>代码之间相互转换的字符。 1.2 两种基本转换:代码表达式、代码块。都是求出值,再写入响…...
超全整理,Jmeter性能测试-脚本error报错排查/分布式压测(详全)
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能脚本error报错…...
vscode开启emmet语法
需要在setting.json中添加配置 首先进入设置,然后点击右上角 Vue项目添加如下配置 "emmet.syntaxProfiles": { "vue-html": "html", "vue": "html" },React项目添加如下配置 "emmet.includeLanguages&quo…...
07、vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。
目录 问题解决: 问题 vue : 无法加载文件 C:\Users\JH\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本。 在使用 VSCode 时,创建 Vue 项目报的错 创建不了 Vue 项目 解决: 因为在此系统上禁止运行该脚本࿰…...
利用移动互联、物联网、智能算法、地理信息系统、大数据分析等信息技术开发的智慧工地云平台源码
智慧工地是指利用移动互联、物联网、智能算法、地理信息系统、大数据挖掘分析等信息技术,提高项目现场的“人•机•料•法•环•安”等施工要素信息化管理水平,实现工程施工可视化智能管理,并逐步实现绿色生态建造。 技术架构:微…...
海康多相机同步取流保存图片
话不多说,直接上代码。代码里包含了多窗口显示图像和保存图片。 #"rtsp://admin:123456qq192.168.10.192/stream1" # rtsp://admin:Admin123192.168.100.103:554/Streaming/Channels/101 #rtsp://admin:Admin123192.168.100.103:554/cam/realmonitor?ch…...
win10 + vs2017 + cmake3.17编译OSG-3.4.1
参考教程:https://blog.csdn.net/bailang_zhizun/article/details/120992244 1. 下载与解压 2. 修改configure 1)Ungrouped Entries -- 》ACTUAL_3RDPARTY_DIR: 设置为: D:/Depend_3rd_party/OSG341/3rdParty 2) Ungrouped E…...
Excel VBA开发基本语句说明
前言 VBA(Visual Basic for Applications)是一种用于编写宏的编程语言,它广泛应用于Microsoft Office套件中的各种应用程序,如Excel、Word、Access和PowerPoint等。在这些应用程序中,VBA可用于自动化任务、定制功能、…...
应用在智能空调中的数字温度传感芯片
智能空调是具有自动调节功能的空调。智能空调系统能根据外界气候条件,按照预先设定的指标对温度、湿度、空气清洁度传感器所传来的信号进行分析、判断、及时自动打开制冷、加热、去湿及空气净化等功能的空调。适合放在卧室,客厅等地方。 在中央控制系统…...
Qt界面美化之Qt Style Sheets
Qt style sheet 简称QSS style sheet可以在代码中单独对某个控件使用,例如: labelLEDLIN new QLabel("",this); labelLEDLIN->setFixedSize(36,36); labelLEDLIN->setStyleSheet("background-color:red;border-radius:18px;colo…...
prometheus监控告警部署(k8s内部)
一、部署prometheus 先来说明一下需要用到的组件,需要使用pv、pvc存放prometheus的数据,使用pvc存放数据即使pod挂了删除重建也不会丢失数据,使用configmap挂载prometheus的配置文件和告警规则文件,使用service开放对外访问prometheus服务的端…...
数字孪生特高压电网三维可视化平台实现能源智能管理
电力是现代社会不可或缺的基础能源,而有效管理电力资源对于实现可持续发展至关重要。近年来,随着物联网、大数据、人工智能等技术的快速发展,电网领域的数字化转型已经成为一种趋势。而其中关键的一环便是电网三维数字孪生技术,它…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
