时隔两个多月了,前段时间在弄Socket,就没有弄这个了。现在好了,花了几天的时间,终于又完成了一小部分了。这一小节主要讲α,β,δ,θ等等波段之间的关系。废话不多说,直接给出这几天的成果。

  上一次,我们分析了attention(专注度)和meditation(冥想度)与疲劳之间的关系。如下图

  上面的曲线上一小节已经简单说明了,现在要说明的是曲线的前半部分是普通测试,后面一小段两对线有点分离的部分是模拟闭眼休息状态,全身放轻松。从图中可以看出是否精神集中从专注度和冥想度是可以简单的看出来了。

  接下来就是那另外的波段了。这里只列举有影响的几个波段组合。

  alpha/beta

  low-alpha/theta

  alpha% (alpha波段占全部波段的百分比)

  attention/meditation

  我们以第一个alpha/beta为例,我们可以看出里面有一些点是噪点。差不多就是在601处。我们去除大于20的点,结果得到下面的图。

  现在这样就差不多了,对上面的其他两个都进行这样的处理,除噪后。得到的这样的图像,这种图像是不是以前见过呢?没错就是在第四小节,那一节已经讲了怎么处理了,这个还是使用同样的办法进行处理。就会得到一条曲线。得到曲线后我们可以分析上面提供的关系图像。在这里说明一下,上面的所有图像都是采用同一组测试数据进行绘图的。都可以看出在570秒处,所有的数值都会有一点点的上升趋势。而在那段上升的时间刚好是我们处于休息放松的状态呢!

  从这几个波段关系还有专注度冥想度都分析完了,接下来就是从这些数据得到一个具体的疲劳值。下面这些都是自己定义的。可能根据不同的硬件获取到的比值会有些许的不一样。具体应用还要修改一些参数。我的硬件得到的数据参数是如下:

double FatigueDetection::FD_getValue()
{//经测试 alpha%  low-a/theta low-a/beta 的取值区间为0~100  0:清醒 100:疲劳 20:一般//meditation/attention 的取值大约在 0.6~1.8之间 0.6表示清醒//meditation冥想度越高表示越疲劳//attention专注度越高表示越专注,越清醒double result=0.0;result=(avg.alpha+avg.alphatheta+avg.alphabeta)/3*(((avg.meddivatt-1)/3)+1);fatiguevalue=result;return result;
}

 什么的那个公式没有什么具体的含义,就是简单的加权求值而已。最后得到的疲劳值画图如下:

  我们可以看到我使用的硬件产生后的数值都落在中间一部分,区分度不是很大,我这里想到的解决方案是采用图像处理中增强对比度的指数变换的方法来增强数值的区分度。

  还有另外的一个方法是使用KNN算法。大概的思路是采用上面提到的几个指标来进行分类显示的。(这两个处理办法不知道下次是什么时候讲解了)

  这几天还对以前的代码进行封装,成为一个类,方便调用。

class FatigueDetection
{
public:FatigueDetection(int vsize);void FD_setValue(int at,int me,int de,int th,int al1,int al2,int be1,int be2,int ga1,int ga2);void FD_setValue(struct FD_DATA);void FD_setValue(int array[10]);void FD_ActiveWindow(struct FD_DATA data);void FD_Compensation(struct FD_DATA data);void FD_Pretreatment(struct FD_DATA data);//预处理void FD_PrintDebugMessage(FILE * fd);//int FD_KNN();//对几个指标进行KNN处理//如果getvalue的值的曲线分布过于集中的话,可以使用图像处理中的增强对比度方法double FD_getValue();//返回一个0-100的整数
private:struct FD_DATA_DO avg;//用于滑动窗口struct FD_DATA_DO sum;//用于滑动窗口double attention;double meditation;int size;//滑动窗口的长度,也即个数int window;//当前可用的滑动窗口个数vector<struct FD_DATA_DO> vdatado;int id;//表示已经处理数据的总个数double fatiguevalue;//最后得到的疲劳值
};

 不知道以前有没有说过,我这个算法目前是想解决这样的一个问题---检测驾驶员的疲劳状态,我们知道驾驶员有时候会疲劳驾驶,而这样是极其危险的。而我们又不能清楚的知道该人是否是疲劳的。当然连续的打哈欠我们是知道的。而脑电波这种数据是很难自己控制的。所以用来检测驾驶员是否疲劳还是很有用的。但处于疲劳时可以给出提醒。我现在在做的这个是有其他人负责android端的。然后使用者是带着前面给出的那种耳机。通过蓝牙发送信息,一旦检测到疲劳,根据不同的程度,手机给出不同的提示。我做的这个是一方面,如果加个现在流行的什么智能手环。得到心跳血压等等其他的生理特征的数据,然后加以分析,计算疲劳值,多个指标进行互补,提高准确性。我觉得对于预防疲劳驾驶而导致的危害有很大的帮助。

基于mindwave脑电波进行疲劳检测算法的设计(5)相关推荐

  1. 基于mindwave脑电波进行疲劳检测算法的设计(1)

    一.简介 脑波,又称之为脑电波,是人大脑发出的电波,非常的微弱,只能通过设备来检测.人的脑波在不同状态下,会不同,因此可以通过脑波来量化分析人的精神状态. 科学家讲脑电波分为四种,以下为详细解释 (1 ...

  2. 基于mindwave脑电波进行疲劳检测算法的设计(4)

    上一次的实验做到可以从pc端读取到MindWave传输过来的脑电波原始数据了. 我是先定义一个结构体,该结构体对应保存所有能从硬件中取到的原始数据. struct FD_DATA {int batte ...

  3. Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]

    1.图片演示 2.视频演示 [项目分享]Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]_哔哩哔哩_bilibili 3.检测方法 1)方法 与用于计算眨眼的传统 ...

  4. 论文研究 | 基于机器视觉的 PCB 缺陷检测算法研究现状及展望

    前面分享了机器视觉在汽车行业与交通行业的应用,其实机器视觉在工业上的应用是最广泛也是最具挑战性的,其中PCB板缺陷检测一直是机器视觉待攻克的难题.印刷电路板(PCB)是电子零件的基板,需求量极大,承载 ...

  5. 病虫害模型算法_基于深度学习的目标检测算法综述

    sigai 基于深度学习的目标检测算法综述 导言 目标检测的任务是找出图像中所有感兴趣的目标(物体),确定它们的位置和大小,是机器视觉领域的核心问题之一.由于各类物体有不同的外观,形状,姿态,加上成像 ...

  6. 综述 | 基于深度学习的目标检测算法

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:计算机视觉life 导读:目标检测(Object Det ...

  7. 基于深度学习的目标检测算法综述(从R-CNN到Mask R-CNN)

    深度学习目标检测模型全面综述:Faster R-CNN.R-FCN和SSD 从RCNN到SSD,这应该是最全的一份目标检测算法盘点 基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述 ...

  8. mpeg b帧 编码 matlab,一种基于压缩域的镜头检测算法

    文章编号: 1673- 5196( 2008) 06- 0097- 05 一种基于压缩域的镜头检测算法 摘要: 针对传统的非压缩域镜头检测算法数据量大.运算量大和效率低的缺点, 提出一种基于压缩域的镜 ...

  9. 基于深度学习的目标检测算法综述(一)

    基于深度学习的目标检测算法综述(一) 基于深度学习的目标检测算法综述(二) 基于深度学习的目标检测算法综述(三) 本文内容原创,作者:美图云视觉技术部 检测团队,转载请注明出处 目标检测(Object ...

  10. 4种基于像素分割的文本检测算法

    摘要:文本检测是文本读取识别的第一步,对后续的文本识别有着重大的影响.一般场景下,可以通过对通用目标检测算法进行配置修改,来实现对文本行的检测定位.本文主要介绍基于像素分割的文本检测算法. 本文分享自 ...

最新文章

  1. 微生物组领域最高质量的资源全在这
  2. POJ 1190 生日蛋糕 【DFS + 极限剪枝】
  3. 如何在ASP.NET中使用Windows Live Web Bar
  4. c python 传参数 数组_python函数传递数组参数吗
  5. 【英语学习】【Daily English】U04 Neighborhood L01 Anything else around?
  6. SaltStack二次开发api
  7. 最简单的基于FFmpeg的封装格式处理:视音频分离器(demuxer)
  8. 解决IE浏览器无法访问此页面
  9. 驱动器控制模式功能简介(CSP,CSV,CST等)
  10. 视频教程 | 与程序员进行高效沟通,三分钟带你掌握Zeplin
  11. c 执行oracle 函数,Oracle 下医嘱执行函数
  12. Xmind8 思维导图 使用教程
  13. 物理像素,设备独立像素等等收录链接
  14. ubuntu 20.04搭建ESP-ADF开发环境
  15. git配置-新人git配置
  16. 阿里云短信 签名 模板编写
  17. 图像细节增强(直方图均衡化,对数变换,Gamma变换(校正))
  18. 2021年全球汽车天线收入大约1816.1百万美元,预计2028年达到2199.7百万美元,2022至2028期间,年复合增长率CAGR为3.0%
  19. Studio One 打开效果工程提示“采样率不匹配音频设备”(已解决)
  20. LTE RSRQ 报告值与 RSRQ 质量换算关系

热门文章

  1. 包含tsx的react项目创建
  2. C#实现中国身份证验证问题
  3. powerha_使用IBM PowerHA SystemMirror的Hitachi TrueCopy镜像
  4. 请问如何让路由器信号增强
  5. 贾扬清谈云原生 - 让数据湖加速迈入3.0时代
  6. Linux驱动中私有数据filp-private_data的作用
  7. 4.Scanner类、Random类、ArrayList 类
  8. 用友YonSuite前后端一体化数智赋能,有化妆品的地方就有老中医
  9. 产品经理-自然资源行业4大产品线整理
  10. SQL Server事物日志