EOG眼电信号(眨眼检测)
转载请注明作者和出处:https://blog.csdn.net/qq_28810395
Python版本: Python3.x
运行平台: Windows 10
IDE: Pycharm profession 2019
一、任务需求:
- 看懂程序,理解眼电数据处理;
- 把程序完善,现在eog.py是一个校准的文件
- 在此基础上,写一个检测是否有眨眼的程序
二、数据集解析:
根据程序观察对数据集数据进行了解,使用EDFbrowser软件对5个数据集进行数据观看并分析
*EOG是采集的眼电信号 event是时钟打标(同步信号)
此图为病人的眼电信号数据图,眨眼动作眼电信号会进行一个赋值跳变,打标点基本把每个眨眼动作分离。
三、程序理解:
进入程序进行程序理解,代码算法实现逻辑为,首先将眼电数据进行读入,利用打标点判断进行分离,每次选取125个数据点。然后进入数据处理部分,将波峰位置、波峰值、波谷值和持续时间返回并绘制曲线。最后将所得数据进行处理(均值、标准差)建立模型。
四、EOG眼电数据(峰值、峰值位置、持续时间)检测函数
- 对传入的125个数据点进行低通滤波
- 在20-98之间进行峰值位置、峰值和持续时间检测计算
- 根据持续时间进行选择,持续时间过大,说明不是眨眼动作,峰值位置无效(赋值124 和1)
- 最后将相关数据赋值返回
五、眨眼检测与绘图函数
眨眼检测采用了K-近邻算法(五特征值),训练数据集采用了这5套数据集进行汇总,是否眨眼根据人眼识别进行标记。训练数据集如下:
六、50个样本数据:
*第一特征值:波峰位值、 第二特征值:波峰值、 第三特征值:波谷位值
*第四特征值:波谷值、 第五特征值:持续时间
*标签:眨眼(1)未眨眼(0)
- 由于数据集是文本,所以添加文本处理函数:
根据其三特征值的K-近邻中占比相差不大,所以未采用归一化算法进行数据处理。 - 眨眼检测——K-近邻算法实现
kNN算法是著名的模式识别统计学方法,是最好的文本分类算法之一,在机器学习分类算法中占有相当大的地位,是最简单的机器学习算法之一。算法实现为:
K-近邻算法对未知类别属性的数据集中每个数据点处理流程如下
① 计算已知类别数据集中的每个数据点与当前数据点之间的距离;
采用欧氏距离公式(两特征值):
② 按照距离递增次序排序;
③ 选取与当前数据点距离最小的K个数据点;
④ 确定前K个数据点所在类别的出线频率;
⑤ 发挥前K个数据点最高的类别当作当前点的预测分类;
K-近邻进行分类完成后进行绘图显示:
绘图结果显示:(3.13)
EOG眼电信号(眨眼检测)相关推荐
- MATLAB实现PCA去除眼电信号
MATLAB实现PCA去除眼电信号 一.去除伪迹的讨论 查阅文献[1]可知,所获取的低频脑电信号中,主要受心电(ECG)和眼电(EOG)的干扰较大. 但一般实验会忽略掉心电伪迹(为了简化,俺也是),若 ...
- 基于眼电信号的眼部动作的分析与识别
- 黑科技之机器人外骨骼
图片源于网络 [文章导语] 内容主题取自<黑科技>,书由硅谷15位技术咖编写.本文主要概述已有落地产品的人体增强领域,旨在抛开繁杂云雾,让读者真切的了解当前科技的真正技术实力. 本文涵盖机 ...
- 压力眼这一Part,久等啦!
随着小K的系列科普文章推出,想必大家对100G / 400G相关测试要求已经非常熟悉,无论是TDECQ, FEC还是接收端误码测试,可参考阅读: <传说中的TDECQ,到底是个( ° △ °|| ...
- 上海交大SEED-IV数据集眼动信号介绍
上海交大SEED-IV数据集介绍 眼电信号数据集介绍 共15名受试者,每名受试在不同时间段实验三次,每次实验记录下的眼动信号包括blink.envent.fixation.PD.pupil.sccad ...
- 【自动驾驶】基于面部Fatigue检测的技术报告
[自动驾驶]基于面部Fatigue检测的技术报告 文章目录 [自动驾驶]基于面部Fatigue检测的技术报告 关于疲劳驾驶检测研究主要有哪几个方向 基于面部的疲劳检测研究的发展现状 共搜集43篇论文 ...
- BCI competition IV 2b简介
BCI competition IV Data Set 2b BCI competition IV 公共数据集 Data sets 2b,是基于视觉诱发的左右手运动想象的脑电数据集.该数据集采集了9名 ...
- BCI比赛数据集简介-BCI competition IV 2b
目录 BCI competition IV Data Set 2b 数据集介绍 数据采集 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 BCI compe ...
- letswave7中文教程2:脑电数据预处理-通道位置分配
目录 第1步:通道位置分配 第2步:删除不良通道 第3步:滤波处理 第4步:坏电极插值 本分享为脑机学习者Rose整理发表于公众号:脑机接口社区 .QQ交流群:941473018 原始的脑电图信号是有 ...
- 计算机信息科学蔺泽浩,上海交通大学计算机科学与工程系(CSE)
脑机交互的多模态疲劳驾驶检测系统 本系统通过获取驾驶员的脑电信号(EEG).眼电信号(EOG).握力信号和Kinect图像,从生理信号和行为特征中提取与疲劳相关的特征,利用机器学习方法建立疲劳检测模型 ...
最新文章
- DeepMind新语言模型SUNDAE:教自动编码器学会「自我纠正」,WMT14英德互译任务获SOTA...
- 启动和停止Oracle服务bat脚本
- python的可变参数 *args 和关键字参数**kw
- 全国一等奖,F题:智能送药小车。
- oracle 11g重新安装配置,Oracle 11g数据库安装和卸载教程
- 4.Linux的目录结构
- 二叉树的建立与三种遍历
- C#LeetCode刷题-蓄水池抽样
- Spark 和 MR 的区别: 多进程与多线程模型
- win7的一些小知识
- Java常量、变量(标识符规则)、数据类型(转换和运算符)、数据优先级
- Vulkan入门(9)-渲染和显示.md
- BFS和DFS搜索汇总(未完待续)
- FFmpeg学习(2)——视频文件大小压缩
- 完整的次世代3D游戏建模制作流程,学习教程分享
- greatest least 函数
- Android 插件仓库
- 计算机音乐数字乐谱未闻花名,未闻花名简谱(歌词)-演唱-小叶歌曲谱
- 入门之:如何在腾讯云服务器上部署自己的静态前端项目(服务器系统:centos7)
- vs启动错误:Exception Processing Message 0xc0000005 Parameters...
热门文章
- 【火炉炼AI】机器学习042-NLP文本的主题建模
- 如何配置Ubuntu 16.04 GRUB 2引导加载程序
- 通信业正面临一场巨变,要么滚蛋要么改变
- Qt中的对话框(模态,非模态,关于,问题,文件)
- AngularJs学习的前景及优势
- Python如何输出格式清晰的dict
- HTML DOM教程 23-HTML DOM Frame 对象
- 【Vegas原创】红烧肉的做法
- [Swift]LeetCode188. 买卖股票的最佳时机 IV | Best Time to Buy and Sell Stock IV
- ArrayList的去重问题