@[人工小将(深度医疗(1) - 基于深度学习心电图(ECG)特征识别)]
深度医疗是笔者基于深度学习的医学项目应用开发实践,经过整理输出了文档和本系列课程,希望通过分享可以和大家共同讨论、相互学习,探索更好的解决方案。笔者是一名普通的大数据和人工智能领域从业者,过程中如有错误和理解不到位的地方请广大同仁不吝赐教。笔者一直坚信深度学习和医学的有机结合一定能碰撞出性能强大的深度医疗系统,服务大众。
————————————————
版权声明:本文为CSDN博主「人工小将」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chens3333/article/details/84564525
本文主要介绍了通过深度学习进行心电图特征识别的应用,首先简单介绍了心电图医学背景和相关知识,接着介绍了目前能获得的公开的心电图数据集,最后介绍了神经网络的实现方式和处理后的效果以及性能分析。
心电图(Electrocardiogram,ECG)信号是医学上常常用来检测不同的情况下的电势在心脏整个复极化过程中心肌变化的反映。ECG信号记录的是心脏在多个心动周期中所产生的生物电信号,在每个心动周期内刻画了ECG信号的一个心拍,如图1所示,是一个完整的ECG信号。图中黑色实线表示一个具有完整波段成分的心拍波形,主要包括P波、P-R波段、QRS波群、S-T波段和T波,PQR为P-R间期,QRSJT为Q-T间期,其中R-R间期为两个相邻心拍中R波间的时间,表征了心拍的节律信息。
心脏在收缩跳动过程,心肌内的电流产生在前,心肌机械性收缩在后,应用心电图机以图形形式记录这些心肌电流的变化就叫做心电图。大家对心电图应该都有直观的印象,我们去医院体检一般都有这项功能的检测。通过传感器的连接检测,会在终端打印出一张如下面所示的图,这个就是记录心脏整个生理周期过程的心电图。
心电图每一个横格代表时间为0.04秒,每一个纵格代表电压为0.1毫伏;1个大格=5个小格=0.04秒x5=0.2秒。所以可以得到下面的对应关系,这样就可以简单的通过纸上坐标快速得出心律的跳动次数。
心电图传感器不同的连接方式对应不同的导联方式,主要分为下列两种
肢体导联方式:
标准导联Ⅰ:左上肢接正极,右上肢接负极
标准导联Ⅱ:左下肢接正极,右上肢接负极
标准导联Ⅲ:左下肢接正极,左上肢接负极
aVR导联:右手接正极,负极接中心电端
aVL导联:左手接正极,负极接中心电端
aVF导联:左下肢接正极,负极接中心电端
当心肌细胞一端的细胞膜受到一定程度的刺激时,其对钾、钠、氯、钙等离子的通透性发生改变,引起细胞膜内、外和正、负离子的流动(主要是钠离子的内流),使细胞膜内外正、负离子的分布发生逆转,受刺激部位的细胞膜出现除极化,使膜外侧具负电荷而膜内侧具正电荷,产生动作电位使心脏产生收缩运动。
这样周而复始,一个周期一个周期持续下去就行成了有规律的心电图波形,也称为P-QRS-T波。
P-QRS-T波的形成
心电活动始于窦房结,并从此发出冲动,循此特殊传导系统的通道下传,先后兴奋心房和心室,使心脏收缩,执行泵血功能。这种先后有序的电兴奋的传播,将引起一系列的电位改变,形成心电图上相应的波形。
P波代表的是心房肌除极的电位转变,形态显示为钝圆形;P-R间期代表的是从P波的出发点到QRS波群的出发点,是心房起始的除极时段;QRS波群代表的是心肌除极的电位转变;R波峰代表的是QRS的出发点到R波顶端垂直线的距离;J点代表的是QRS波群最后与S-T段开始的交接点;S-T段代表的是从QRS波群最后到T波出发点的线段,是心室慢慢复极的变化;T波代表的是心室快速复极时电位的转变;Q-T间期代表的是从QRS波群的出发点到T波最后的距离,是心室肌除极和复极的全过程所必要的时间。
我们采用的数据集是MIT-BIH Arrhythmia Database(心律失常数据库)它是由Massachusetts Institute of Technology - 麻省理工学院和Beth Israel Hospital – 美国麻萨诸塞州波士顿Beth Israel医院一起联合创建的。
数据集中包含48 条充分标注的2导联ECG数据,每条数据时长为30分钟,其中标注的数据是按每个心电图周期进行标记的,也就是说每个周期的P-QRS-T波形都进行了标准,标注非常的详细,同时提供了对应的label标签文件,标注的信息可以从label标签文件中找到对应的信息。标注的信息可以从label标签文件中找到对应的信息 可以通过按图中的选择进行数据集的查看,做得非常的详细。
每条数据包含都.atr注释文件,.dat数据文件,.hea头文件头文件,主要包含一些基础、单位信息。
注释文件记录了心电专家对相应的心电信号做出诊断信息
数据文件包含了心电图的波形数据,存储格式是头文件中的212格式(针对两个信号的数据记录,两个信号交替存储,每三个字节存储两个数据)
官方提供了PhysioBank ATM可视化网站,可进行在线查看,非常方便
因为心电图是周期性的波形数据,神经网络通过了两种方式进行处理,包含一个周期波形的数据通过single pattern模式进行处理,包含多个周期波形的数据通过multiple pattern模式处理。为什么这么做是因为single pattern模式下只包含一个周期的波形,我们简单的认为在一个周期波形下只包含一种病变信息,也就是说简单的认为它只包含一个判决结果,而multiple pattern模式中多个波形有可能就会包含多种病变信息,也就是多分类问题了(这里的single pattern也有可能一个波形对应几个病变信息,为了把问题简单化同时阐述得更清楚,这里就认为single pattern模式只包含一种判别结果)
基于single pattern模式
为了能完整的包含一个P-QRS-T波,所以数据两头多引入了半个波形。模型中用到了三层ResNet和一层全连接层,这个模型并不见得好,在这里只是为了抛砖迎玉,大家在实际开发中可以进行测试和架构的优化来提高性能。
神经网络结构
multiple pattern模式
输入数据包含几个周期波形,所以该情况下就会出现某个波形数据下包含一个以上特征,意味着softmax输出不是一种特征输出,而是会出现几种可能并列出现的情况,这个时候前面single pattern的神经网络就不能处理这种情况;
这里也以一个稍微简单的情况进行讲解,假设一个波形最多包含2种特征(最少也有一种,正常或者其他病理),这种情况下我们采用两个并行的网络进行处理,一个网络判别波形的一半label,另一个网络判别波形的另外一半label,完成鉴别后合并这些特征就能进行多特征判别。
神经网络结构
误差收敛曲线
1)实际项目中输入数据不是.dat文件,可能是图片数据,这个时候需要通过调整CNN的滤波器维度来进行匹配,例如系统中现在用的是1x3的滤波器,图片处理时,由于是二维数据,所以需要变换成3x3的滤波器;
2)通过其他网络结构进行优化,例如可以考虑引入dense net或在multiple pattern下把并行的一个网络完成dense net;
3)在特定场景下可以考虑RNN网络的引入;
在心电图识别这个领域有一个每年都举办的比赛,大家有兴趣可以去参加。心电图比赛下面是2017年比赛的结果
感谢“人工小将”
感谢“图片”、“数据”的提供者
感谢“CSDN博客”平台
冶永辉. 基于2D卷积神经网路的ECG信号筛选分析研究[D].潍坊医学院,2020.