当前位置: 首页 > news >正文

【使用 k 折叠交叉验证的卷积神经网络(CNN)】基于卷积神经网络的无特征EMG模式识别研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

文献来源:

 特征提取是从肌电信号中提取有用和有价值的信息的重要步骤。然而,特征提取的过程需要先前的知识和专业知识。本文提出了一种无特征EMG模式识别技术,以解决特征提取问题。首先,使用谱图将原始EMG信号转换为时频表示(TFR)。然后,将TFR或谱图图像直接输入卷积神经网络(CNN)进行分类。提出了两种CNN模型,可以从谱图图像中自动学习特征,无需手动特征提取。使用公开获取的NinaPro数据库中获取的EMG数据对所提出的CNN模型进行评估。我们的结果表明,CNN分类器可以为手部和腕部运动的识别提供最佳的平均分类准确率为88.04%。

原文摘要:

摘要:

Feature extraction is important step to extract the useful and valuable information from the electromyography (EMG) signal. However, the process of feature extraction requires prior knowledge and expertise. In this paper, a featureless EMG pattern recognition technique is proposed to tackle the feature extraction problem. Initially, spectrogram is employed to transform the raw EMG signal into time-frequency representation (TFR). The TFRs or spectrogram images are then directly fed into the convolutional neural network (CNN) for classification. Two CNN models are proposed to learn the features automatically from the spectrogram images without the need of manual feature extraction. The proposed CNN models are evaluated using the EMG data acquired from the publicly access NinaPro database. Our results show that CNN classifier can offer the best mean classification accuracy of 88.04% for the recognition of the hand and wrist movements.

📚2 运行结果

部分代码:

%---Input--------------------------------------------------------------
% imgs      : feature vector (height x width x channel x instances)
% label     : label vector (instances x 1)
% kfold     : Number of cross-validation
% LR        : Learning rate
% nB        : Number of mini batch
% MaxEpochs : Maximum number of Epochs
% FC        : Number of fully connect layer (number of classes)
% nC        : Number of convolutional layer (up to 3)
% nF1       : Number of filter in first convolutional layer
% sF1       : Size of filter in first convolutional layer
% nF2       : Number of filter in second convolutional layer
% sF2       : Size of filter in second convolutional layer
% nF3       : Number of filter in third convolutional layer
% sF3       : Size of filter in third convolutional layer

%---Output-------------------------------------------------------------
% A struct that contains three results as follows:
% acc       : Overall accuracy
% con       : Confusion matrix
% t         : computational time (s)
%-----------------------------------------------------------------------


%% (1) Convolutional Neural Network with one convolutional layer
clc, clear
% Benchmark dataset
[imgs,label] = digitTrain4DArrayData; 

% Parameter setting
opts.kfold     = 5;
opts.LR        = 0.01; 
opts.nB        = 100; 
opts.MaxEpochs = 20; 
opts.nC        = 1; 
opts.FC        = 10;
opts.nF1       = 16; 
opts.sF1       = [3, 3];
% Convolutional Neural Network
CNN = jCNN(imgs,label,opts);

% Accuracy
accuray = CNN.acc;
% Confusion matrix
confmat = CNN.con;


%% (2) Convolutional Neural Network with two convolutional layers
clc, clear
% Benchmark dataset
[imgs,label] = digitTrain4DArrayData; 

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]Too, Jingwei, et al. “Featureless EMG Pattern Recognition Based on Convolutional Neural Network.” Indonesian Journal of Electrical Engineering and Computer Science, vol. 14, no. 3, Institute of Advanced Engineering and Science, June 2019, p. 1291, doi:10.11591/ijeecs.v14.i3.pp1291-1297.

🌈4 Matlab代码实现

相关文章:

【使用 k 折叠交叉验证的卷积神经网络(CNN)】基于卷积神经网络的无特征EMG模式识别研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

微服务 Nacos配置热部署

在nacos中添加配置文件 在配置列表中添加配置, 注意:项目的核心配置,需要热更新的配置才有放到nacos管理的必要。基本不会变更的一些配置还是保存在微服务本地比较好。 从微服务拉取配置 微服务要拉取nacos中管理的配置,并且与…...

国产调度器之光——Fsched到底有多能打?

这是一篇推荐我们速石自研调度器——Fsched的文章。 看起来在专门写调度器,但又不完全在写。 往下看,你就懂了。 本篇一共五个章节: 一、介绍一下主角——速石自研调度器Fsched 二、只要有个调度器,就够了吗? 三…...

LeetCode:53. 最大子数组和 - Python

53. 最大子数组和 问题描述: 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums [-…...

网站建设 之 react usestate

react着重在于“不可变动” 如果变动了怎么办呢?那就整个新的 局部变量/函数/jsx-》state/props-〉ref,依次越来越难变 每次state/props,局部变量/函数/jsx都是新的 既然函数是新的,那么就会有一个问题,回调函数用…...

第一讲使用IDEA创建Java工程——HelloWorld

一、前言导读 为了能够让初学者更快上手Java,不会像其他书籍或者视频一样,介绍一大堆历史背景,默认大家已经知道Java这么编程语言了。本专栏只会讲解干货,直接从HelloWord入手,慢慢由浅入深,讲个各个知识点,这些知识点也是目前工作中项目使用的,而不是讲一些老的知识点…...

BootstrapBlazor组件使用:数据注解

文章目录 前言BB数据注解数据注解源码数据注解简介注解简单实例[BB 编辑弹窗](https://www.blazor.zone/edit-dialog)[ValidateForm 表单组件](https://www.blazor.zone/validate-form)使用简介 前言 BootstrapBlazor(一下简称BB)是个特别好用的组件,基本上满足了大…...

MySQL 触发器

文章目录 1.简介2.行级与语句级触发器3.触发时机4.触发器优缺点5.创建触发器语法示例 6.查看触发器7.删除触发器参考文献 1.简介 触发器(Trigger)是与表关联的命名数据库对象,当表发生特定事件时激活。 触发器的一些用途是对要插入表中的值执…...

DPDK主从进程模式 rte_mempool_put失败

版本:19.11.6 情景:主进程应用rte_mempool_create创建mempool,rte_mempool_get获取数据;从进程应用rte_mempool_put归还数据 问题:从进程rte_mempool_put无法归还数据 原因:DPDK通过rte_mempool_ops_tab…...

ZooKeeper 的工作原理

ZooKeeper 的工作原理可以概括为以下几个方面: 1. 数据模型 ZooKeeper 使用树形目录节点(znode)来建模关键的数据,每个 znode 可以存储数据内容,也可以作为目录包括子节点。客户端可以在节点上设置监听器。 2. 一致性算法 ZooKeeper 使用 ZAB(ZooKeeper Atomic Broadcast)协议…...

【业务功能篇73】分布式ID解决方案

业界实现方案 1. 基于UUID2. 基于DB数据库多种模式(自增主键、segment)3. 基于Redis4. 基于ZK、ETCD5. 基于SnowFlake6. 美团Leaf(DB-Segment、zkSnowFlake)7. 百度uid-generator() 1.基于UUID生成唯一ID UUID:UUID长度128bit,32个16进制字符,占用存储空…...

Qt安卓开发经验技巧总结V202308

01:01-05 pro中引入安卓拓展模块 QT androidextras 。pro中指定安卓打包目录 ANDROID_PACKAGE_SOURCE_DIR $$PWD/android 指定引入安卓特定目录比如程序图标、变量、颜色、java代码文件、jar库文件等。 AndroidManifest.xml 每个程序唯一的一个全局配置文件&…...

【vue2】前端实现下载后端返回的application/octet-stream文件流

1、下载csv/txt时 此时无须修改接口的响应格式 let filenameRegex /filename[^;\n]*((["]).*?\2|[^;\n]*)/; let matches filenameRegex.exec(data.headers[content-disposition]); let blob new Blob([\uFEFF data.data], {//目前只有csv格式type: text/csv;charse…...

【Java】SM2Utils(国密 SM2 工具类)

基于 bouncycastle 实现 国密 SM2 <!-- 引入 bouncycastle --> <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.70</version> </dependency>import lombok.Sneak…...

『C语言入门』初识C语言

文章目录 前言C语言简介一、Hello World&#xff01;1.1 编写代码1.2 代码解释1.3 编译和运行1.4 结果 二、数据类型2.1 基本数据类型2.2 复合数据类型2.3 指针类型2.4 枚举类型 三、C语言基础3.1 变量和常量3.2 运算符3.3 控制流语句3.4 注释单行注释多行注释注释的作用 四、 …...

jira创建条目rest实用脚本

最近在搞crash崩溃分析&#xff0c;直接把解析到的信息录入jira系统进行跟踪&#xff1b; 经历了多次碰壁后终于调通&#xff0c;现记录一下 实用json请求脚本如下&#xff1a; {"fields":{"project":{"id":"10945"},"issuety…...

红外/可见光图像配准融合

红外/可见光图像配准融合 根据文献【1】&#xff0c;对于平行光轴的红外可见光双目配置进行图像配准&#xff0c;主要的限制是图像配准只是对特定的目标距离&#xff08;Dtarget&#xff09;有效。并排配置的配准误差 δx&#xff08;以像素表示&#xff09;的数学表达式为&…...

更高效稳定 | 基于ACM32 MCU的编程直流电源应用方案

随着电子设备的多样化发展&#xff0c;面对不同的应用场景&#xff0c;需要采用特定的供电电源。因此&#xff0c;在电子产品的开发测试过程中&#xff0c;必不可少使用编程直流电源来提供测试电压&#xff0c;协助完成初步的开发测试过程。 编程直流电源概述 编程直流电源结构…...

postgresql创建一个只读账户指定数据库

要在 PostgreSQL 中创建一个只读账户&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1. **登录到 PostgreSQL&#xff1a;** 使用具有足够权限的管理员账户&#xff08;通常是 "postgres" 用户&#xff09;连接到 PostgreSQL 数据库。 2. **创建只读账户&…...

CSDN编程题-每日一练(2023-08-25)

CSDN编程题-每日一练&#xff08;2023-08-25&#xff09; 一、题目名称&#xff1a;影分身二、题目名称&#xff1a;小鱼的航程(改进版)三、题目名称&#xff1a;排查网络故障 一、题目名称&#xff1a;影分身 时间限制&#xff1a;1000ms内存限制&#xff1a;256M 题目描述&am…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

select、poll、epoll 与 Reactor 模式

在高并发网络编程领域&#xff0c;高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表&#xff0c;以及基于它们实现的 Reactor 模式&#xff0c;为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。​ 一、I…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙

Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”&#xff0c;于是尝试整合图像识别与网页自动化技术&#xff0c;完成了这套模拟登录流程。核心思路是&#xff1a;截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...