ECG ×AI: 机器/深度学习的ECG应用入门(2)

ECG数据库:解决数据来源问题


1.数据库简介与获取


经过上一章节的介绍,相信你对于我们的研究对象——心电信号ECG已经有了一个初步的认识,也清楚了我们的目标就是使用机器/深度学习算法,能自动识别指定的ECG类型,从而实现“人工智能”式的诊断(汗。。。)。“巧妇难为无米之炊”,我们的“米”(ECG数据)从哪里来呢?当然有喜闻乐见的数据库供我们使用。

首先贴一个网址:https://www.physionet.org/cgi-bin/atm/ATM  

这个网站上汇集了许许多多生理信号,除了我们熟悉的ECG,还有脑电信号EEG,心音信号PCG等等。“弱水三千,只取一瓢”,这里我们主要来说一下ECG领域最常用(没有之一)的数据库:MIT-BIH Arrhythmia Database。如上图所示,点击“Input”选择框,下拉选择MIT-BIH Arrhythmia Database(注意,有很多MIT-BIH打头的数据库,不要搞错了),“Input”选择框下面还有几个选择框,可以分别选择记录,信号,标记等等,选定后页面上会有一个区域展示一小段信号。如果想详细了解并下载数据,点击上图右下角红圈中的链接可以跳转至数据库专属页面。
详细的介绍可以自己去看,全英文,英语不好的建议配合有道词典。在这里只说一些重要的信息:MIT-BIH Arrhythmia Database(以下简称MITdb)包含了48条双导联ECG记录,其中,除少数记录外,每条记录的第一个导联都是II导联,每条记录长度为30分钟,采样率360 Hz,算起来有30*60*360=648000个采样点,但其实每条记录都有650000个点,也就是并非严格等于30分钟。不过这没什么很大影响。打开MITdb的专属页面后,很容易就发现了大量数据文件的链接,48条记录(不连续编号100-234),每一条记录对应着3个文件,就像这样:

各个文件的作用,已经展示的很清楚。.atr:标记文件,保存着人工标注的心拍位置和类型。.dat:数据文件,保存着我们需要的心电信号。.hea:头文件,保存着这条记录的附加信息。这三个文件中头文件(.hea)可以直接打开,其余两个不可直接打开,强行记事本打开后看到的都是乱码。打开头文件后,一般看到的是这样的:

第一行含义为:记录编号 导联数 采样率 采样点数。第二、三行则说明了.dat文件的信息,它是212格式编码的等等。其详细的说明请参照文献:(宋喜国, 邓亲恺. MIT-BIH心率失常数据库的识读及应用[J]. 中国医学物理学杂志, 2004, 21(4):230-232.)当然,如果你对这些东西并不关心也可以不看,对我们后面的内容影响不大。至于这个数据库中到底包含了哪些我们感兴趣的类型,作为我们分类识别的目标,这个我们用到的时候再说。
说了半天,似乎我们一直在纸上谈兵,目前手里什么也没有。一个不好的消息:如果你不会一些下载技巧,要下载这48*3=144个文件,你需要每个都点一下,因为官方似乎并没有提供一个完整的包。这一点其实不用担心,本人已经下载好并且打好了包提供给各位下载。方式是大家喜闻乐见的百度网盘:链接:https://pan.baidu.com/s/1BG1sPsWO8Ey2GdAepUa1GQ 密码:z3ey

2.数据库的Matlab读取


如果你阅读了上一段建议的,对于MITdb数据格式说明的论文,十有八九会对读取数据库感到困难。这种格式并不常见,而且对于初学者并不友好。自己编程实现数据库读取的门槛又比较高,不是每个人都能实现,而且我们的目标也不是数据的编解码研究。还好有大佬已经为我们写好了读取数据的代码,我们只需要run一下就基本达成目的了。目前该代码已经放到了我的github上(文后有地址),名为rddata.m:
简单说下怎么用,建议单独建一个文件夹作为我们后续代码的存放处,例如这里我建立了一个名为ECGPrimer的文件夹,路径为:F:\MATLAB\ECGPrimer。把rddata.m文件放入该文件夹。

     1)打开matlab(这里为2013a版本,其余版本类似),点击界面偏上方显示路径的框的偏右空白处(例如下图中椭圆处),输入我们刚才的路径,回车。当前路径就成为了我们刚才建立的文件夹,左边可以看到我们之前放入的rddata.m文件,双击打开。


 2) 打开rddata.m后,注意一开始的关于数据库文件的存放路径,以及指定文件名的设置,如图:


例如图中我把下载好的144个数据库文件解压,放在了F:\MATLAB\MIT-BIH,然后需要读取编号为234的记录,指定读取的点数为1024。点击控制栏的run按钮,相关数据会被读入到matlab的工作空间workspace中。与此同时,matlab会生成一张信号图,上面同时绘制了两个导联的信号,以及一些标记的数字,这里我们先关掉不理会。
3)然后我们观察matlab的workspace,此时应该如下图所示:

注意,此时变量名为M的矩阵中包含了我们需要的ECG信号,尺寸为1024(指定读取点数)*2(导联数)。我们只关心第一个导联的信号,在matlab命令窗口里输入:plot(M(:,1));grid on;可绘制出第一个导联的信号:

  至此,我们已经成功将数据库中的ECG信号读取至matlab中。另外,workspace中其余2个矩阵也值得我们注意。如3)中的workspace截图,一个是ANNOT,存储了该记录中各心拍的人工标注类型代码,例如有:


完整的对比说明表也已经上传至本人github:Data Instructions.txt。ANNOT的意义在于提供给了我们各心拍专家诊断的结果,用于后续深度学习算法的标签。另外一个是ATRTIME,它存储了各心拍的人工标注位置,一般以QRS波为基准。即该记录的几分几秒出现了一个心拍。而这个矩阵的意义在于后续帮助我们评估心拍定位算法的准确性,或是直接根据它提供的人工标注位置截取心拍。


3.小结


本节我们学习了ECG数据库的获取与matlab读取,解决了数据来源问题。如果你对其他数据库也感兴趣,可以在上面介绍的网站中继续了解。然而现在还不宜直接进行机器/深度学习模型的开发,还有那些重要的事情没做?且听下回分解。


** MIT-BIH数据库下载: 链接:https://pan.baidu.com/s/1BG1sPsWO8Ey2GdAepUa1GQ 密码:z3ey

** 相关代码文件下载:https://github.com/Aiwiscal/ECG-ML-DL-Algorithm-Matlab

** 推荐文献:宋喜国, 邓亲恺. MIT-BIH心率失常数据库的识读及应用[J]. 中国医学物理学杂志, 2004, 21(4):230-232.


### 回答1: ECG分析是一种用于检测心脏疾病的方法,而基于深度学习ECG心律失常分类则是一种新兴的技术。这种技术利用深度学习算法对ECG数据进行分析和分类,以便更准确地诊断心脏疾病。这种技术的入门需要掌握深度学习的基本原理和ECG数据的基本知识,同时需要了解常见的心律失常类型及其特征。通过学习和实践,可以逐步掌握这种技术,并在实际应用中取得良好的效果。 ### 回答2: ECG分析是指通过对心电图(ECG)数据进行处理和分析,得出心脏的生理状况和心律失常的情况。而基于深度学习ECG心律失常分类则是一种新兴的、快速而准确的心律失常诊断方法,可以在短时间内对不同类型的心律失常进行自动识别和分类。下面将介绍ECG分析中使用深度学习技术的基本原理。 ECG信号是一种时间序列信号,包含不同的波形特征,例如P波、QRS波和T波等,这些波形特征反映了心跳时心肌的电生理变化。基于深度学习ECG心律失常分类可以分为三个步骤: 第一步是数据预处理,包括数据清洗、信噪比提高等,这是保证模型准确性的关键步骤。 第二步是特征提取,这是深度学习方法的核心。传统的特征提取方法是基于图像处理、信号处理等领域,需要大量的人工设计。而基于深度学习的特征提取则是通过网络学习参数,自动地找到最能区分不同心律失常的特征。常见的网络结构包括卷积神经网络(CNN)和循环神经网络(RNN)等。 第三步是模型训练和测试。通常,我们将数据集划分为训练集、验证集和测试集三部分,用训练集来训练模型,用验证集来选择最优的模型超参数,用测试集来测试模型的准确性。模型的准确性可以用准确率、召回率、F1值等指标进行评价。 总之,基于深度学习ECG心律失常分类具有高效、准确、自动化等优势,可以大大提高ECG信号的处理速度和心律失常的诊断准确性,对心血管疾病的早期预防和治疗具有重要意义。 ### 回答3: ECG(电生理图)是评估心脏健康状况的重要工具。ECG在医生的指导下具有高精度和可靠性,但是ECG检查的数量庞大,医生需要花费大量时间和精力来进行ECG分析。深度学习技术已经被应用ECG分析中,以实现较高的自动化程度。 基于深度学习ECG心律失常分类技术旨在通过机器学习来处理ECG数据,以自动分类心律失常。常见的ECG心律失常包括心房颤动、心室颤动、心房扑动、快速地、慢速的、心动过缓、心动过速等等。 ECG数据的分析可以通过传统的机器学习方法实现,但这种方法的准确度和性能通常较低。深度学习技术可以在更高水平上对ECG数据进行分析,从而实现更准确、更可靠的分类。 基于深度学习ECG心律失常分类技术通常需要三个关键组件: 1. 数据集:深度学习模型需要大量的数据来进行训练。ECG数据集应具有多样性,因为ECG数据在不同人群中可能存在差异。 2. 深度学习模型:深度学习模型是ECG分类的核心。现在有许多ECG分类模型可以使用,例如卷积神经网络(CNN)和递归神经网络(RNN)。 3. 训练和测试:训练和测试是深度学习模型的关键步骤。在训练期间,模型从数据集中学习数据的特征和模式。测试过程评估训练后的模型的性能,以确定它在分类ECG心律失常方面的精度和可靠性。 总之,基于深度学习ECG心律失常分类技术通过自动化分类ECG数据,可以帮助医生更快速、准确地诊断ECG心律失常。尽管仍需更多的研究和开,但这项技术的潜力很大,可以提高医疗保健的效率和质量。
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值