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. 产品介绍 该产品可以通过传感器来侦测用户的手势变化进而执行一些操作.比如说信息预览(如短信息预览.日历预览等等),此外,还可以通过指向某一个时间点来预览视频内容.预览音乐播放器(下一首歌 ...
随机推荐
- Nodejs中request出现ESOCKETTIMEDOUT解决方案
做需求的时候,使用Nodejs的request批量请求某一个接口,由于接口超时,出现 ESOCKETTIMEDOUT,程序中断 为了让程序遇到 ESOCKETTIMEDOUT 之后能够继续执行下去,需 ...
- 看漫画就能学SQL,简直太cool了
对于SQl, 很多人学不会的原因是从一开始就没明白,学这东西能干啥,学会了能有什么用.甚至有些人不知道'SQL'应该怎么读,以至于一开始兴致勃勃,但是学到一半放弃了. 注意:'sql'真的不能读成'烧 ...
- 通过利用immutability的能力编写更安全和更整洁的代码
通过利用immutability的能力编写更安全和更整洁的代码 原文:Write safer and cleaner code by leveraging the power of "Imm ...
- vue - 过滤器filter的基本使用
1.全局过滤器 输出: 过滤器可以多次来调用 输出: 2.私有过滤器 <!DOCTYPE html> <html lang="en"> <head&g ...
- linux手动测试 rsync 的同步情况
特别强调:此步很关键,如果这不能同步,后面的 inotify 配好了也不会同步数据. 1) 分别创建待同步数据 [root@rsync-client-inotify ~]# mkdir /data/{ ...
- 3-基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台
基于双TMS320C6678+双XC6VSX315T的6U VPX高速数据处理平台 一.板卡概述 板卡由我公司自主研发,基于VPX架构,主体芯片为两片 TI DSP TMS320C6678,两片V ...
- 2017ICPC南宁M The Maximum Unreachable Node Set (偏序集最长反链)
题意:给你一张DAG,让你选取最多的点,使得这些点之间互相不可达. 思路:此问题和最小路径可重复点覆盖等价,先在原图上跑一边传递闭包,然后把每个点拆成两个点i, i + n, 原图中的边(a, b)变 ...
- generator (1)
function array () { console.log(arguments) }; array(1,2,3) 从这里我们可以看出 数组的迭代方法里面有一个 属性 [Symbol.iterat ...
- 00.斐波那契数列第n项
# 斐波那契数列第n项 # 1 1 2 3 5 8 def fib(n): if n <= 2: return 1 else: return fib(n-2)+fib(n-1) def fib2 ...
- python 日期生成和时间格式化
记录下日期时间的转换和生成:1.这个是使用datetime 函数生成往后几天的时间,比如当前日期是2019-07-01 那么控制days=1然后再和当前的时间相加,就能得到明天的日期def time_ ...