一种基于深度神经网络的心肌梗死心电图的筛查方法与流程

文档序号:18883016发布日期:2019-10-15 20:09阅读:383来源:国知局
一种基于深度神经网络的心肌梗死心电图的筛查方法与流程

本发明涉及医学图像分析领域及机器学习领域,特别涉及一种心电图心肌梗死筛查方法,属于基于深度学习的医学图像分析领域。



背景技术:

心肌梗死(myocardialinfarction,mi)是一种较为常见的心脏疾病。早期发现对于经皮冠状动脉介入治疗(pci)或冠状动脉搭桥手术有效治疗急性心肌梗死至关重要。心肌梗死通常是通过临床表现、实验室结果和心电图来诊断的。心电图是通过记录体表特定位置随时间变化的电势而产生的,电势代表心脏的电活动。心电曲线偏离通常的形状可以表明心肌梗死以及许多其他心脏和非心脏疾病。心电图(electrocardiograph,ecg)是一种流行的诊断工具,因为它们是非侵入性的,生产成本低,但提供了很高的诊断价值。

在基于心电图的心肌梗死判断过程中,医生需要花费大量的时间去仔细诊断每个导联产生的心电图,这对医生的精力和自身的专家知识有较高的要求。而且心电图中波段特征差异较小,这容易造成一定几率的漏诊和误诊。并且在部分地区,由于条件限制,从事基于心电图诊断病患病情的医生有限。近年来,传统计算机辅助诊断方法多采用小波变化和k近邻方法诊断,但这些方法对心电图质量要求较高,样本的好坏容易影响模型的结果。目前有一些成熟的对多种心律失常的研究,但是专门对心肌梗死疾病的研究却很少。此外,心肌梗死在ecg中症状表现不同,例如st段抬高型和非st段抬高型。针对识别多症状心肌梗死表现的心电图,这对算法的要求较高。这些不利因素使得诊断难度高,难以使用统计方法获得有效特征,加上图像中有大量网格框等噪声,使得传统方法的诊断难度大。



技术实现要素:

为了克服现有ecg心肌梗死诊断方式难度大、效率低下、精度较低的不足,本发明提出了一种速度快、效率高、精度较高的基于深度神经网络的心梗心电图的辅助筛查方法,实现了对心电图的自动分析,可有效对心电图心肌梗死患病情况进行辅助判断。

为了解决其技术问题本发明所采用的技术方案是:

一种基于深度神经网络的心梗心电图的筛查方法,包括以下步骤:

步骤一,对原始心电图像进行预处理,去除网格框;

步骤二,对步骤一中的图像进行中值滤波处理,消除去除网格框后留下椒盐噪点;

步骤三,通过直方图均衡化方法增强对比度,缩放心电图将尺寸统一为224*224,并将数据归一化为[0,1];

步骤四,构建深度神经网络,并利用ecg训练集进行训练。得到能够判断是否患有心肌梗死的二分类神经网络;

步骤五,利用训练得到的深度神经网络对心电图心肌梗死进行辅助筛查。

进一步,所述步骤一中,对心电图预处理的过程为:将图像转换为灰度图,对灰度图进行按位取反操作,再进行自适应阈值,即图像不同区域采用不同的阈值。得到二值化标签图像;对其进行形态学闭运算操作,减少独立噪声,填充连通区域的孔洞;与原图像进行加操作,获得去除网格框的图像。

优选的,所述步骤一中,对于自适应阈值中采用自适应高斯方法,自适应阈值t(x,y)的计算过程为:

步骤1.1(x,y)周围像素到其中心点的距离通过高斯函数得到对应权值;

步骤1.2计算每个像素周围(15×15)大小像素块的加权均值并减去常量10得到阈值t(x,y)。

再优选的,所述步骤一中,对于闭操作的结构元素设置为cv2.morph_rect,其结构元素的大小在横线和竖线识别中分别设置为:

公式中h,w分别表示灰度图像的高和宽,scale表示结构元素的缩放因子。

更优选的,所述步骤一中,网格框去除的过程:

setp1.1在自适应阈值后的图像中,通过闭操作及结构元素cv2.morph_rect和大小为识别出横线;

setp1.2在自适应阈值后的图像中,通过闭操作及结构元素cv2.morph_rect和大小为识别出竖线;

setp1.3通过setp1.1和setp1.2得出的图像,进行融合,即提取原图像中网格部分;

setp1.4将setp1.3得出的图像和原图像进行add操作。

所述步骤四中,构建卷积神经网络的过程为:

步骤4.1输入一组大小为224*224*3的心电图图像;

步骤4.2先经过7*7大小的卷积操作,随后进行batchnormalization,relu激活函数操作;

步骤4.3经过maxpooling操作,提取主要特征;

步骤4.4提取的特征经过残差卷积模块,该模块包括2组3*3的卷积操作和batchnormalization;

步骤4.5:重复步骤3.3三次,再经过7*7大小的平均池化;

步骤4.6:将上述特征通过全连接层fullyconnectedlayer和softmax函数,最后得到输出二分类结果。

所述步骤四中,深度神经网络架构由1个卷积层,1个最大池化层,4个残差卷积模块(block模块),1个平均池化层,1个全连接层组成,每个卷积层后都对特征进行标准化操作,提高训练速度,并经过relu激活函数,提高网络的非线性表达;每个残差卷积模块内包含两个卷积层和一个快捷支路,快捷支路起点为输入,终点为第二个卷积层后的加操作,使得输入特征可以直接和第二个卷积层提取的特征进行数值相加;这样网络只需要计算相比原输入的残差,降低了训练难度;最后一个全连接层的输出尺寸为2,对应筛查结果的二分类,所述二分类是心肌梗死心电图或非心肌梗死心电图。

本发明基于深度神经网络的心梗心电图的辅助筛查,利用卷积神经网络提取ecg图像特征,来实现对心肌梗死心电图的判断。与现有方法相比,其有益效果在于:

1.通过卷积神经网络对心电图进行分析,自动辅助筛查心梗心电图,相比传统方法效率高,速度快。

2.在心电图的预处理上,方法引入了网格框的消去,消除图像中的噪声。

3.通过引入残差卷积模块结构,提取图像的有效特征。同时残差快捷支路的存在降低了网络的训练难度。

附图说明

图1基于深度神经网络的心梗心电图的识别流程图。

图2用于心梗心电图诊断的神经网络结构示意图。

图3神经网络中残差模块结构示意图。

具体实施方式

下面结合附图对本发明作进一步描述。

参照图1~图3,一种基于深度神经网络的心梗心电图的筛查方法,包括以下步骤:

步骤一,对原始心电图像进行预处理,去除网格框;

步骤二,对步骤一中的图像进行中值滤波处理,消除去除网格框后留下椒盐噪点;

步骤三,通过直方图均衡化方法增强对比度,缩放心电图将尺寸统一为224*224,并将数据归一化为[0,1];

步骤四,构建深度神经网络,并利用ecg训练集进行训练。得到能够诊断是否患有心肌梗死的二分类神经网络;

步骤五,利用训练得到的深度神经网络对心电图心肌梗死进行辅助诊断。

进一步,所述步骤一中,对心电图预处理的过程为:将图像转换为灰度图,对灰度图进行按位取反操作,再进行自适应阈值,即图像不同区域采用不同的阈值。得到二值化标签图像。对其进行形态学闭运算操作,减少独立噪声,填充连通区域的孔洞。与原图像进行加操作,获得去除网格框的图像。

优选的,所述步骤一中,对于自适应阈值中采用自适应高斯方法,自适应阈值t(x,y)的计算过程为:

步骤1.1(x,y)周围像素到其中心点的距离通过高斯函数得到对应权值;

步骤1.2计算每个像素周围(15×15)大小像素块的加权均值并减去常量10得到阈值t(x,y)。

再优选的,素数步骤一中,对于闭操作的结构元素设置为cv2.morph_rect,其结构元素的大小在横线和竖线识别中分别设置为:

公式中h,w分别表示灰度图像的高和宽,scale表示结构元素的缩放因子。

更优选的,所述步骤一中,网格框去除的过程:

step1.1在自适应阈值后的图像中,通过闭操作及结构元素cv2.morph_rect和大小为识别出横线;

step1.2在自适应阈值后的图像中,通过闭操作及结构元素cv2.morph_rect和大小为识别出竖线;

step1.3通过step1.1和step1.2得出的图像,进行融合,即提取原图像中网格部分;

step1.4将step1.3得出的图像和原图像进行add操作。

所述步骤四中,构建卷积神经网络的过程为:

步骤4.1输入一组大小为224*224*3的心电图图像;

步骤4.2先经过7*7大小的卷积操作,随后进行batchnormalization,relu激活函数操作;

步骤4.3经过maxpooling操作,提取主要特征;

步骤4.4提取的特征经过残差卷积模块,该模块包括2组3*3的卷积操作和batchnormalization;

步骤4.5重复步骤3.3三次,再经过7*7大小的平均池化;

步骤4.6将上述特征通过全连接层fullyconnectedlayer和softmax函数,最后得到输出二分类结果。

所述步骤四中,深度神经网络架构主要由网络架构主要由1个卷积层,1个最大池化层,4个残差卷积模块(block模块),1个平均池化层,1个全连接层组成。每个卷积层后都对特征进行标准化操作,提高训练速度,并经过relu激活函数,提高网络的非线性表达。如图3所示,每个残差卷积模块内包含两个卷积层,一个快捷支路。快捷支路起点为输入,终点为第二个卷积层后的加操作,使得输入特征可以直接和第二个卷积层提取的特征进行数值相加。这样网络只需要计算相比原输入的残差,降低了训练难度。最后一个全连接层的输出尺寸为2,对应筛查结果的二分类(是心肌梗死心电图或非心肌梗死心电图)。

实例:本案例中使用的心电图共2类,即心梗心电图或非心梗心电图。心电图共有2282例样本,心梗心电图和非心梗心电图同样数量。从正负样本中分别随机选取913个样本作为训练集,114个样本作为验证集,114个样本作为测试集。下面具体介绍心电图去除网格框,模型的训练和测试过程。

步骤一,心电图去除网格框。

步骤1.1将图像转换为灰度图,对灰度图进行按位取反操作,再进行自适应阈值;

步骤1.2对步骤1.1得到的图像进行形态学闭运算操作;

步骤1.3对步骤1.2得到的图像与原图像进行add操作,获得去除网格框的图像;

步骤二,神经网络的构建和训练,具体结构如图2所示。

步骤2.1网络架构主要由1个卷积层,1个最大池化层,4个残差卷积模块(block模块),1个平均池化层,1个全连接层组成。

步骤2.2第一层卷积层的卷积核大小均为7*7,滑动步长为2,padding为3。残差模块中卷积核大小都为3*3,除了第一个残差模块的滑动步长为1,其他都为2,并且残差模块之间相连的卷积层卷积核大小为1*1。卷积核数随着进入残差模块而变多,分别为64,128,256,512。输出的每个卷积层后都对特征进行批标准化操作,提高训练速度,并经过relu激活函数,提升网络的非线性表达。卷积层后的最大池化层将缩减特征图尺寸。

步骤2.3卷积层中所有参数权重初始化为随机正交矩阵初始化,权重正则化方式为l2正则,偏置值初始化为0。全连接层中,权重初始化为随机正态分布,权重正则化方式为l2正则,偏置值初始化为0。

步骤2.4利用pytorch框架搭建网络。模型采用batch训练的方式。训练集生成器和验证集生成器每个batch的样本数batchsize均为16,训练集生成器每返回40次数据作为一个轮次(epoch),一个轮次训练完成后,生成器会返回5次并计算验证集损失,损失函数为交叉熵损失函数。模型优化器为adam,参数为lr=0.001,betas=(0.9,0.999),eps=1e-08,weight_decay=0,amsgrad=false。模型最大训练轮次为60,验证与训练损失收敛后停止训练,并保存模型为.pkl文件,作为最终训练结果。

步骤三,神经网络模型测试

载入模型,将预处理完毕的心电图测试集样本输入模型分析,将识别结果与其标签对比得到模型的识别准确率。

经过上述步骤的操作,即可实现用于筛查心梗心电图的深度神经网络的构建、训练与测试。

以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例,用于解释本发明,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1