ECG 项目预研
1. 数据的采集
智能安全帽,流数据,鉴于数据量大,应该是采集到云平台上,然后在云平台上对数据处理,是一种典型的物联网+大数据应用场景,考虑使用AWS或者阿里云,然后搭建Hadoop/Spark 环境,数据流可以用Kafka 来采集,也可以研究云提供商是否提供了类似的现成的环境
2. 数据的预处理
智能安全帽,这个东西本身就是在工地现场使用,而工地是一个存在各种干扰的环境,所以要对数据做预处理,具体看网上有提到下面几点:
工频干扰:常见的工频干扰有:无线电,灯管放电,电刷火花,雷电,手术电刀 等等
基线漂移:这也是一种噪声干扰,频率在0.05-2HZ之间。在心电检测里面,它可以由电极和人体体表接触不良引起,病人的呼吸和活动也会引起基线漂移。发生基线漂移的时候,我们会看到心电图的基线上下波动,而不是水平线。
肌电干扰: 肌电干扰相对于心电信号而言是一种高频噪声,频率为5-2HZ,是由于病人紧张等刺激导致肌肉收缩或自身疾病如甲状腺疾病等引起的,表现为快速变化的不规则波形,导致心电图细小部分本掩盖,使其模糊不清或产生失真等
人体运动也会产生噪声
3. 模型训练和预测
由于对医学知识相对欠缺,可以考虑主要用深度学习的方法来做,通过学习大量数据。由于没有大量对应的标注数据,可以考虑使用transfer learning.
在没有足够的数据的情况下,这部分工作可以现在公开的数据集上做
目前国际上有三个公认的标准心电数据库:美国心脏学会的AHA数据库,欧洲AT-T数据库以及美国麻省理工学院提供的MIT-BIH数据库。其中MIT-BIH数据库应用的比较广泛
在公开数据集上学习到心电图对应的各种疾病后,就可以用来实时的检测
初步试了一下,可以预测 正常心跳 (N), 房性早搏 (A), 心室早发性收缩 (V), 左束支传导阻滞 (L), 右束支传导阻滞 (R), 精度在测试集上可以达到~94%. 具体代码在这里 https://github.com/mashuai191/machine_learning/blob/master/ECG%20study%20on%20MIT%20dataset.ipynb


4. 模型部署在云上
这部分应该只是工作量的问题,部署方法可以参考网上的一般方法
5. 其他功能
后续可以考虑online learning,
预测情绪异常等
遇到灾难后的定位功能
6. 可能面临的一些挑战
1. 所采集数据的精确程度,是否噪声太多
2. 所采集数据和公开数据集的差异太大,造成transfer learning 的效果不好
3. 如果不用公开数据集,而是直接在自己的数据集上做,面临没有标注数据的问题,就需要考虑使用加强学习的算法,学习曲线会比较平缓
参考资料:
https://blog.csdn.net/qq_15746879/article/details/80329711
https://blog.csdn.net/Candle_light/article/details/84527273
还需要看一些国外论文
ECG 项目预研的更多相关文章
- [转] 前后端分离开发模式的 mock 平台预研
引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都 ...
- 预研报告——MyBatis持久层的demo
一.预研任务介绍和预研目标 任务介绍: 与 Hibernate 相比, MyBatis 是一个半自动化的持久层框架,以轻量级.效率高.原生代而好评如潮.虽然有在分享会上大致讲解,但是还是重新梳理成文字 ...
- 数据质量管理工具预研——Griffin VS Deequ VS Great expectations VS Qualitis
开源数据质量管理工具预研--Griffin VS Deequ VS Great expectations VS Qualitis. 概述 数据质量监控(DQC)是最近很火的一个话题,也是数据治理中 ...
- Blazor预研与实战
背景 最近一直在搞一件事,就是熟悉Blazor,后期需要将Blazor真正运用到项目内.前期做了一些调研,包括但不限于 Blazor知识学习 组件库生态预研 与现有SPA框架做比对 与WebForm做 ...
- Nvidia NVENC 硬编码预研总结
本篇博客记录NVENC硬编码的预研过程 github: https://github.com/MarkRepo/NvencEncoder 步骤如下: (1)环境搭建 (2)demo编译,测试,ARG ...
- web项目自动化测试方案预研
一. 网上方案整理 Watir.Watir-Webdriver.Selenium2.QTP区别 Waitr与Watir-WebDriver有什么区别? Watir是非常优秀的一款自动化测试工具.其使 ...
- 最近开发的ECG项目
最近参与公司开发了一款读取ECG心电接口程序 原理就是通过心电设备读取患者的心电数据 并生成ECG文件 然后通过ECG客户端程序读取ECG文件 并解析转换成图片 上传至服务器 下边是客户端程序截图 客 ...
- C#:通过Visual Studio项目预生成命令获取SVN版本号
之前有一个winfrom项目,想要通过获取SVN版本号作为程序的内部编译版本号.网上也有各种方法,但没有一篇行得通的方法.于是我经过一系列研究,得出了一些经验,特总结成一篇博客. 方法一:通过SVN命 ...
- android手势感应预研
1. 产品介绍 该产品可以通过传感器来侦测用户的手势变化进而执行一些操作.比如说信息预览(如短信息预览.日历预览等等),此外,还可以通过指向某一个时间点来预览视频内容.预览音乐播放器(下一首歌 ...
随机推荐
- 【Matlab技巧】工作区变量如何添加到Simulink中?
对新手来说,在进行simulink仿真时想把工作区的变量添加到Simulink中,这样在如transfer模块中使用时可以直接输变量即可. 如这样: 那么如何对Simulink仿真文件自动赋值呢? 1 ...
- ISC2016训练赛 phrackCTF--Classical CrackMe
测试文件:https://static2.ichunqiu.com/icq/resources/fileupload/phrackCTF/REVERSE/CrackMe.rar 1.准备 获得信息 3 ...
- mysql常见的查询语句
select * from 表名 查询此表所有数据 select * from 表名 where 字段名 > 判断条件 查询某表中的某字段符合条件的数据 select * f ...
- mongoDB关系型数据库的对比
一.基本操作 1.mongoDB和关系型数据库对比 对比项 mongoDB mysql oracle 表 集合list 二维表 表的一行数据 文档document 一条记录 表字段 键key 字段fi ...
- js中基本数据类型与引用数据类型的本质区别
代码 /** * 基本数据类型:string, number, boolean, null, undefined. * * 说明: * 基本数据类型的变量是保存在栈内存中的,基本数据类型的值 * 直接 ...
- iOS 证书(.p12)和描述文件(.mobileprovision)的导出和使用方法
为什么要导出.p12文件 当我们用大于三个mac设备开发应用时,想要申请新的证书,如果在我们的证书里,包含了3个发布证书,2个开发证书,可以发现再也申请不了开发证书和发布证书了(一般在我们的证书界面中 ...
- eclipse 代码提示快捷键 alt+/
eclipse (ALT+/)1.选择Eclipse菜单栏中的Window->preferences: 2.选择General->keys; 3.在右侧中间的窗体中点击word compl ...
- 完整项目:网上图书商城(一、MySQL数据库设计)未完
一.建立数据库 CREATE DATABASE IF NOT EXISTS bookshop CHARACTER utf8; 二.建立数据库表 1.建立用户表 #用户表(用户id号,用户名,用户密码, ...
- 采集容器内存并写到excel
# coding=utf-8 import os import commands import re from pyExcelerator import * def execute(cmd): sta ...
- python使用etcd
import sys import etcd client = etcd.Client( host='127.0.0.1', port=2379, allow_reconnect=True) clie ...