稳态视觉诱发电位 (SSVEP) 分类学习系列 (1) :FFT-CNN-CCA

devtools/2024/10/19 0:22:39/

稳态视觉诱发电位分类学习系列:FFT-CNN-CCA

  • 0. 引言
  • 1. 主要贡献
  • 2. 提出的方法
    • 2.1 数据处理
    • 2.2 卷积神经网络的结构
  • 3. 结果
    • 3.1 健康参与者结果比较
    • 3.2 卒中患者结果比较
  • 4. 总结
  • 欢迎来稿

论文地址:https://ieeexplore.ieee.org/document/8708243
论文题目:A Convolutional Neural Network for the Detection of Asynchronous Steady State Motion Visual Evoked Potential
论文代码:暂无

0. 引言

脑机接口(BCI)的一个关键问题是以异步方式检测有意控制(IC)状态非有意控制(NC) 状态。此外,对于稳态视觉诱发电位 (SSVEP) BCI 系统,IC 状态中存在多个状态(子状态)。现有的识别方法依赖于阈值技术,难以实现高准确率,即同时实现高真阳性率低假阳性率。为了解决这个问题,我们首次提出了一种新型卷积神经网络(CNN)来检测SSVEP-BCI系统中的IC和NC状态。具体来说,稳态运动视觉诱发电位 (SSMVEP) 范式被选为实验范式,该范式已被证明可以减少视觉不适。提出了两种用于检测 IC 和 NC 状态的处理管道。第一个是使用 CNN 作为多类分类器来区分 IC 和 NC 状态 (FFT-CNN) 中的所有状态。第二种是使用 CNN 区分 IC 和 NC 状态,并使用规范相关分析 (CCA) 在 IC (FFT-CNN-CCA) 内执行分类任务。我们证明,当使用CCA阈值等传统算法时,两种管道都实现了低绩效健康参与者的准确性显着提高。此外,基于卒中患者的数据,FFT-CNN-CCA 管道比 FFT-CNN 管道取得了更好的性能。总之,我们表明 CNN 可用于异步 SSMVEP-BCI 中的鲁棒检测,在实验室外 BCI 应用中具有巨大潜力。

总的来说:本文提出了一个不错的思路,就是先分大类,然后再对小类进行精确区分,感觉可能会实现不错的效果。。。

1. 主要贡献

  1. 首次提出了一种新型的深度神经网络来实现异步SSMVEP-BCI
  2. 将结果与基于CCA的阈值(CCA-THD)CCA后KNN(CCA-KNN)两种传统算法进行了比较。

2. 提出的方法

该研究提出了两条CNN管道,其原理图如下图所示。第一个流水线使用 CNN 作为多类分类器来区分 ICNC 状态的所有状态。第二种策略使用 CNN 来区分 ICNC 状态,然后使用 CCA 运算符对 IC 状态内的特定类别进行分类
在这里插入图片描述

2.1 数据处理

采集的脑电图数据由3 Hz40 Hz带通滤波器进行预处理。根据时间戳,脑电图数据分为四个IC组和NC组,如下图所示。IC组包括IC1IC2IC3IC4四个状态,分别响应左、右、上和下棋盘。每组由多个 6 秒的脑电信号周期组成。使用重叠时间为 1.9 秒2 秒滑动窗口进一步分割每个时期。实验范式本文没有介绍,感兴趣的可以去看下原文。。。。
在这里插入图片描述
对于CNN方法,每个2秒窗口通过快速傅里叶变换转换为其频域表示。选择3 Hz至33 Hz之间的60个频率点作为网络的输入数据。这是对脑电图数据的六个通道中的每一个执行的。

2.2 卷积神经网络的结构

对于这两个管道,CNN 由六个连续层组成,如下图所示。
在这里插入图片描述

3. 结果

3.1 健康参与者结果比较

传统方法比较

TABLE I The Accuracies Using Different Thresholds in CCA-THD Method and Using Different in CCA-KNN MethodK
在这里插入图片描述
本文提出的方法传统方法进行比较:
在这里插入图片描述

为了更清晰地展现结果,使用混淆矩阵来表明结果的好坏:
在这里插入图片描述

3.2 卒中患者结果比较

根据从三名脑卒中患者收集的脑电图数据进一步评估了所提方法的性能。
在这里插入图片描述

4. 总结

到此,使用 稳态视觉诱发电位 (SSVEP) 分类学习系列 (1) :FFT-CNN-CCA 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。

欢迎来稿

欢迎投稿合作,投稿请遵循科学严谨、内容清晰明了的原则!!!! 有意者可以后台私信!!


http://www.ppmy.cn/devtools/23009.html

相关文章

公式SUM(A2:C4C2:D5)一共对几个单元格进行求和?

一、公式中的几个问题 1.括号和冒号是双字节的字符。 这个不用多说了,相信题主中是提问时书写笔误,实际在Excel中写公式时肯定用的是英文单字节字符。 2.括号里是两个区域, 但两个区域之间是怎样的运算关系并没有说,或者说是遗…

Liunx进程与端口

目录 查看进程 进程状态 (了解) TTY (拓展) 查看进程PID 1. pgrep 2. pidof 动态查看查看进程 top与htop的操作: 计算cpu负载: 进程控制 kill与pkill 查看端口 1. netstat 2. ss 3. lsof 查看…

深度学习论文:Local Feature Matching Using Deep Learning: A Survey

深度学习论文: Local Feature Matching Using Deep Learning: A Survey Local Feature Matching Using Deep Learning: A Survey PDF: https://arxiv.org/pdf/2401.17592 1 概述 近年来,深度学习模型的引入引发了对局部特征匹配技术的广泛探索。本文旨在全面概述局…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件

1.一直以来想写下基于kettle的系列文章,作为较火的数据ETL工具,也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正,跪谢…

QT5之lambda

使用lambda需要 配置c11 所以在点.pro文件里面配置添加如下 CONFIG c11 使用到qDebug 打印包含头文件 #include<QDebug> lambda 表达式使用 代替槽如下 #include "mainwidget.h" #include<QPushButton> #include<QDebug> mainWidget::mainWid…

JVS物联网平台驱动网关管理:智能化与自动化的探索

驱动网关的管理 驱动网关是对驱动进程进行生命周期的管理&#xff0c;包括驱动进程的创建、启停、更新、结束等管理功能。 如下图所示&#xff1a; 驱动代理程序是驱动网关的管理程序&#xff0c;每个驱动网关对应于一个驱动代理程序&#xff0c;驱动代理程序初始版本是安装在…

Django项目之图书管理系统

Django——图书管理系统 一、前期准备 1、创建好 Django 项目 2、准备好数据库 —— 创建数据库&#xff1a;book_system 3、配置项目中的数据库引擎 DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: book_system,HOST: 127.0.0.1,USER: root,PASSWORD: ro…

idea创建完项目如何隐藏不重要的文件

如果您不打算直接使用这些脚本&#xff0c;而是更倾向于通过IDEA的内置工具来运行Maven命令&#xff0c;那么您可以选择隐藏这些文件。但是&#xff0c;隐藏这些文件并不会影响它们的功能&#xff0c;只是在项目视图中不再显示它们。 1.转到 File > Settings&#xff08;Wi…