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

一、思路

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

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

这些肌肉的具体位置可以参考: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.

你可能感兴趣的:(人工智能,人工智能)