第12次汇报 (2022.04.17)

  • 实现了第三部分(分析数字化的心电数据)! 并将二、三两部分(“纸质心电图数字化”和“分析数字化的心电数据”)连通成了一个python项目,并部署到了后端,可以对V1波形进行分析诊断。接下来就是写好微信小程序这个前端了。但还存在很多问题有待解决,在下文中用高亮标出。

    (参考了 该"分析心电数据"项目,给源码加了注释, 详细学习了实现原理:)

  • 刚进行完毕设中期答辩, 将一些感想记于文末保留;

上传V1心电波形图:

可以返回分析结果:

如何检验模型的准确程度?

第一组:

第二组:

第三组:


第四组:


"分析数字化后的心电数据"的实现原理


框架

  • 前端采用了 html + css + js 的经典架构.
  • js中为"Predict!"按钮写了点击时会触发的函数; 函数中采用了jQuery所提供的ajax方法, 用url调用了后端接口. 这和我之前做的Map2Text数据收集系统所采用的前后端数据交换方式是相同的.
  • 后端为了部署python的深度学习模型, 采用了Flask框架. 后端其实就是一个app.py的文件, 里面主要实现了’/predict’这个url对应的接口.

核心功能

模型原理: (之后再分析)

train: (之后再分析)

predict:

  • 预处理 (preprocess)

    • 重采样(横): 将数据重采样成360 (MIT-BIH dataset 的心电数据采样率就是360);

    • 标准化(纵):

      sklearn.preprocessing.scale(X, axis=0, with_mean=True, with_std=True, copy=True)
      # 作用:数据标准化;
      # X :           待处理的数组
      # axis :        处理哪个维度,0表示处理横向的数据(行), 1表示处理纵向的数据(列
      # with_mean:    True是表示使均值为0
      # with_std:     True表示使标准差为1
      # !!! 这样在"纸质心电图数字化"那一步就不用进行"信号归零"了!!!
      
    • 找峰值:

      scipy.signal.find_peaks(x, height=None, threshold=None, distance=None, prominence=None, width=None, wlen=None, rel_height=0.5, plateau_size=None)
      # 参数:
      # x: 带有峰值的信号序列
      # height: 低于指定height的信号都不考虑
      # threshold: 其与相邻样本的垂直距离
      # distance: 相邻峰之间的最小水平距离, 先移除较小的峰,直到所有剩余峰的条件都满足为止。
      # prominence: 个人理解是突起程度,详见peak_prominences
      # width: 波峰的宽度,详见peak_widths
      # plateau_size: 保证峰对应的平顶数目大于给定值
      # 返回值:
      # peaks: x对应的峰值的索引
      # properties:
      #   height--> ‘peak_heights’
      #   threshold-->‘left_thresholds’, ‘right_thresholds’
      #   prominence-->‘prominences’, ‘right_bases’, ‘left_bases’
      #   width-->‘width_heights’, ‘left_ips’, ‘right_ips’
      #   plateau_size-->‘plateau_sizes’, left_edges’, ‘right_edges’
      
  • 真正开始预测

    • 读取训练好的深度学习模型;
    • 将每个波峰附近的256个数据作为模型的输入数据, 来进行预测;
    • 返回从每个波峰附近预测出的疾病, 和该疾病的可能性;

文件格式说明

The first value of the column become sample rate(抽样率) of the web app. If you use your own heart beat csv file, insert the sample at the first, too.

抽样率指的是: 在单位时间内的信号样值数目

问题

utils.py

def uploadedData(filename, csvbool = True):if csvbool:csvlist = list()with open(filename, 'r') as csvfile:for e in csvfile:# 这个条件判断语句在做什么?if len(e.split()) == 1 : # 感觉这是在判断e中有没有空格? 没有空格的话就是==1的;csvlist.append(float(e))else:  # e中有空格就直接append? 不转化成float?csvlist.append(e)return csvlist

app.py

  • model_predict()函数:

    • sr = data[0] # csv文件的第一行是抽样率(sample rate) <-- 这里可以做修改:一方面是通过将"纸质心电图数字化"得到的网格大小来规定sr,另一方面是进一步了解MIT的数据格式,比如电压单位是多少等; 不一定要将抽样率放在csv文件中; # 而且这里的sr赋给了config中的sr吗? 不是吧? config中的叫sample_rate啊, 但如果没赋值到config中, 这句话岂不是就毫无意义? 果然, 输出了一下predict时用的sr, 不是csv文件的第一行数据, 而是默认的300;
    • div = size // 1000 # div在之后的语句中也没有用到, 它有什么用?

待完成的工作

  • 怎么对最终模型的预测结果进行检测???
  • 将python项目部署在后端,使微信小程序可以调用。
  • 拍照的图片质量差, 要进行一些校正
  • 进一步完善微信小程序。
    • 创建后台数据库,将每个用户提交记录和诊断记录保存起来。
    • 提高用户使用小程序的体验。如用户点击诊断结果中的疾病,就可以查看该疾病的简介和康复建议。

中期感想

2022.04.17-高宝琪毕设阶段性汇报相关推荐

  1. 2022.04.10-高宝琪毕设阶段性汇报

    第11次汇报 (2022.04.10) 经过了几天的努力, 终于跑通了最后的"分析数字化后的心电数据"这一部分; 采用了Flask框架将一个Keras深度学习模型部署到了Web端, ...

  2. gnome桌面打造日常使用操作系统(支持Arch Linux、Fedora、Ubuntu)(2022.04.17更新)

    更新日志 日期 内容 2022.04.03 完成初稿 2022.04.05 更新sublime和imwheel 2022.04.06 添加所有软件在Feroda的安装方法 2022.04.07 添加所 ...

  3. Vue.js学习笔记 2022 04 17

    Vue.js学习笔记 1 Vue.js基础 Vue.js介绍 vuejs 渐进式 JavaScript 框架 Vue.js 如何应用 1 在普通html项目中,引入VUE.JS Hb 的项目 生成的 ...

  4. 2022.04.17关于EasyX的知识点

    一.颜色 1.EasyX颜色:rgb(红,绿,蓝) 三基色:红.绿.蓝 范围0~255 二.EasyX 坐标和设备 1.坐标:(注意看坐标的原点位置) 2.设备 设备分两种:a.默认的绘图窗口 b.i ...

  5. 2022.04精灵宝可梦国内在线观看渠道整理

    目前只整理TV版 精灵宝可梦无印(EP) 271话 哔哩哔哩 精灵宝可梦超世代(AG) 188话 哔哩哔哩 精灵宝可梦钻石与珍珠(DP) 185话 哔哩哔哩 精灵宝可梦超级愿望(BW) 144话 哔哩 ...

  6. 2022哪款充电宝质量好?2022充电宝排行

    现在充电宝是每个人都会必备的电器,当出去游玩时手机没有电,充电宝起到重要的作用,所以一款好用的充电宝是必不可少的.但是2022年的充电宝牌子那么多,到底哪款充电宝质量好呢?我为大家整理了2022年充电 ...

  7. 时间管理(李葆春教授,2022.8.17)

    Source: weibo Time: 2022.8.17 18:02 几个月前,有个朋友曾经提到回头会在微博上问我一个有关「时间管理」的问题.直到现在这个问题也没有等来,我想要不然先聊起来,等问题来 ...

  8. 专访 | 观远数据吴宝琪:BI 最大的难点并不只在单点技术

    记者 | Sherson 责编 | 唐小引 头图 | CSDN 下载自东方IC 出品 | CSDN(ID:CSDNnews) 采访背景 6月16日,世界经济论坛(World Economic Foru ...

  9. 2022第17届中国重庆橡塑工业展览会|成都橡塑展

    2022第17届中国重庆橡塑工业展览会 The 17th China Chongqing Rubber, Plastics Industry Exhibition 2022年6月16-18日     ...

最新文章

  1. asp.net 网页做一个浮动层_你们要的HTML、CSS布局技巧:如何规范搭建网页架构?
  2. SAP WM 有无保存WM Level历史库存的Table?
  3. 全局变量中断原子操作_原子操作原理分析
  4. 5G NPN 行业专网 — 媒体行业 5G 专网部署方案
  5. C/C++ 输出整数带正负号
  6. symbol MC 3090 upgrade to symbol MC 3190
  7. mysql mysql常用的常用函数
  8. (原+译)使用numpy.savez保存字典后读取的问题
  9. eclipse启动项目
  10. 干货|MIT线性代数课程精细笔记5
  11. SpringBoot异常处理以及对数据正确性的检查
  12. 【CCCC】L2-014 列车调度 (25分),贪心,set维护序列
  13. 霍夫曼算法_霍夫曼编码算法
  14. 上传分片切片大文件 XLSX/CSV/TXT
  15. (转)对冲基金不信中国经济数据,转用卫星监控6000块工业用地
  16. php网站开发实例教程源码,PHP+MYSQL网站开发全程实例
  17. Eclipse插件开发之拖拽功能
  18. 微信小程序 添加卡券至微信卡券
  19. tampermonkey(油猴) GM_addStyle
  20. “AI复活了我的妻子,但我决定跟她说再见了”

热门文章

  1. 【科普】1分钟帮你搞懂机械硬盘和固态硬盘
  2. VMware教程(二):CentOS 7 网络配置
  3. iOS 图片捏合放大缩小 点击放大缩小
  4. 航空网站航班查询自动点击提醒器
  5. 小程序获取上一个页面或者某个页面内的值
  6. STM32F103ZE工程移植到STM32F107VC上软件调试时死循环在while((RCC-CR RCC_CR_PLL2RDY) == 0) { }
  7. 如何在微信H5页面链接跳转到第三方小程序的任意页面?
  8. CentOS无人值守安装
  9. JS——日期的横杠、斜杠相互替换
  10. 奥园医美将借助奥园集团品牌优势,在中国引入领先医美技术