一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种在病历中快速提取十二导联心电图的方法

2022-05-21 06:40:30 来源:中国专利 TAG:


1.本发明属于计算机视觉技术领域,具体涉及一种在病历中快速提取十二导联心电图的方法。


背景技术:

2.心血管疾病治疗对健康至关重要,科研人员不断探索人工智能在心血管疾病的预防、诊断、治疗中的应用,其中使用最多的人工智能技术为有监督的深度学习技术,利用深度神经网络、卷积神经网络和递归神经网络等训练心血管疾病诊断模型,进而实现心血管疾病的智能诊断。
3.这些有监督学习技术一方面依赖于神经网络模型结构的升级,另一方面依赖于大规模的心血管疾病患者的临床数据集,十二导联心电图是心血管疾病患者临床数据集的重要组成部分。心电图检查可以对心脏活动进行记录,并检测心脏功能的不同异常,是诊断心脏病最常用、最基本的方法。构建临床数据集时的心电图一部分可以直接从心电图机器中导出,但这种方式收集速度较慢,大部分心电图还需要从医院存储的病历中提取。心血管患者病历是一个多模态数据集合,其中包含了众多重要的检查数据,这些数据中包含了心电图数据,医院的存有海量的病历,如果可以从病历中快速提取心电图,将极大的加速心血管患者临床数据集的构建,也会推动后续心脏病智能诊断的发展。
4.由于病历存档时间不同,患者病历中的数据类型多样,扫描格式也参差不一,从病历中提取十二导联心电图任务繁杂,目前常使用的从pdf文件中提取特定图片的方法为人工提取或ocr识别的方式分类。人工提取方式费时费力,构建十万数量级的数据集需要耗费大量的人力和时间成本;ocr的方式分类为:在病历中识别图片的标志文字,然后根据标志对图片进行分类,这种方式本身还存在效率较慢的问题,并且经过分析发现,我们获取的12万病历中的心电图中没有合适的标志文字可以被提取,此方法不适用。


技术实现要素:

5.本发明的目的在于提供一种在病历中快速提取十二导联心电图的方法。
6.一种在病历中快速提取十二导联心电图的方法,包括以下步骤:
7.步骤1:获取用于模型训练的病历数据集,使用pdfplumber模块对病历文件进行预处理,获取包含十二导联心电图的图片集;
8.步骤2:对包含十二导联心电图的图片集进行再次细化分类,获得二次细化图片集;
9.使用opencv模块对图片进行读取,然后将图片的尺寸缩放至预设像素,对缩放后图片转化的numpy矩阵值进行求和,保留求和后的结果小于阈值的图片,得到二次细化图片集;
10.阈值通过以下公式计算:
[0011][0012]
其中,α表示放大系数;numi表示第i张心电图缩放至设定像素后转换为numpy矩阵求和的值;
[0013]
步骤3:将二次细化图片集分为训练集、验证集和测试集,训练集和验证集中的图片进行人工标注处理,测试集中的图片不做处理;
[0014]
步骤4:对训练集、验证集和测试集中的图片进行标准化处理;
[0015]
使用opencv模块对图片进行读取,然后将图片的尺寸缩放至预设像素,缩放后的图片覆盖原图;
[0016]
步骤5:训练卷积神经网络模型ecgnet;
[0017]
步骤5.1:设置卷积神经网络模型ecgnet的训练轮次n;将标准化处理后的训练集图片转化为张量输入到卷积神经网络,将卷积神经网络最后的全连接层的输出改为1,神经网络正向传播得到一个概率输出值;
[0018]
步骤5.2:将对应的标签转化为张量后与概率输出值计算交叉熵损失函数;
[0019]
步骤5.3:反向传播对神经网络的参数更新;
[0020]
步骤5.4:将标准化处理后的验证集图片转化为张量输入到神经网络,对输出概率值进行sigmoid计算,sigmoid输出小于0.5,则将该图片判定为十二导联心电图图片,与人工标记的标签进行对比计算准确率;保存n轮训练中验证准确率最高的卷积神经网络模型ecgnet;
[0021]
步骤6:加载使用训练好的卷积神经网络模型ecgnet,对测试集的图片进行判定,查看效果是否达到预定目标,达到则执行步骤7;
[0022]
步骤7:对待提取十二导联心电图的病历数据进行步骤1的预处理,使用训练好的卷积神经网络模型ecgnet在预处理后的图片中提取十二导联心电图图片。
[0023]
进一步地,所述步骤1中使用pdfplumber模块对病历文件进行预处理的方法具体为:十二导联心电图会被pdfplumber模块识别为none,保存所有被pdfplumber模块识别为none的图片,病历中全部的十二导联心电图包含在这些图片集中。
[0024]
进一步地,所述步骤5.2中交叉熵损失函数的公式为:
[0025][0026]
其中,yi表示样本i的标签,正样本的标签为1,负样本的标签为0;pi表示样本i预测为正样本的概率值。
[0027]
本发明的有益效果在于:
[0028]
本发明针对病历中快速提取十二导联心电图的难点,提供了一种在病历中快速提取十二导联心电图的方法。本发明包括病历数据的预处理以及手工定义特征的二次细化,使用该二次细化可以加速人工标记过程,加快了模型训练过程。本发明通过定义卷积神经网络ecgnet;结合设置特征和卷积神经神经网络训练模型实现自动提取十二导联心电图,经过检验该模型提取的十二导联心电图具有单边100%的准确率,提取的心电图达到人工提取的水平。本发明可以快速精准的从病历数据中提取出满足要求的十二导联心电图,训练好模型后的提取过程快速且不需要人力参与,极大地节省了人力物力,加速了心血管疾
病患者的临床数据集的构建。
附图说明
[0029]
图1为本发明的流程图。
[0030]
图2为本发明中模型训练的每个epoch的验证准确率图。
[0031]
图3为本发明中十二导联心电图的示例图。
[0032]
图4为本发明中ecgnet网络架构示例图。
具体实施方式
[0033]
下面结合附图对本发明做进一步描述。
[0034]
为了解决在构建大规模的心血管疾病患者的临床数据集时,从海量病历中精确提取十二导联心电图困难的问题,本发明提出了一种结合卷积神经网络的在病历中提取十二导联心电图的方法,涉及到计算机视觉领域。
[0035]
为了能够高效精准的从病历中精确的提取需要的十二导联心电图,本发明结合计算机视觉发明了一种在pdf版病历中智能提取十二导联心电图的方法,本发明利用了pdfplumber模块和卷积神经网络,pdfplumber是一款基于python的pdf文件解析库,pdfplumber模块不仅可以获取pdf中的每个字符、矩形框、线等对象的具体信息,而且还可以抽取文本和表格,pdfplumber模块不能对pdf中图片进行操作。深度卷积神经网络是深度学习的典型代表,广泛用于计算机视觉任务,与人工提取特征的传统图像分类算法不同,卷积神经网络可以通过卷积操作自动提取图像特征,分类效果更好,泛化能力更强,卷积神经网络一般可以分为四类:经典的卷积卷积神经网络模型ecgnet、基于注意力机制的卷积神经网络、轻量级卷积神经网络、基于神经架构的卷积神经网络。本发明借鉴了经典的lenet卷积神经网络的结构设计了ecgnet卷积神经网络用来实现流程中的部分任务。
[0036]
一种在病历中快速提取十二导联心电图的方法,包括以下步骤:
[0037]
步骤1:获取用于模型训练的病历数据集,使用pdfplumber模块对病历文件进行预处理,获取包含十二导联心电图的图片集;
[0038]
十二导联心电图会被pdfplumber模块识别为none,保存所有被pdfplumber模块识别为none的图片,病历中全部的十二导联心电图包含在这些图片集中;
[0039]
步骤2:对包含十二导联心电图的图片集进行再次细化分类,获得二次细化图片集;
[0040]
使用opencv模块对图片进行读取,然后将图片的尺寸缩放至预设像素,对缩放后图片转化的numpy矩阵值进行求和,保留求和后的结果小于阈值的图片,得到二次细化图片集;
[0041]
阈值通过以下公式计算:
[0042][0043]
其中,α表示放大系数;numi表示第i张心电图缩放至设定像素后转换为numpy矩阵求和的值;
[0044]
步骤3:将二次细化图片集分为训练集、验证集和测试集,训练集和验证集中的图
片进行人工标注处理,测试集中的图片不做处理;
[0045]
步骤4:对训练集、验证集和测试集中的图片进行标准化处理;
[0046]
使用opencv模块对图片进行读取,然后将图片的尺寸缩放至预设像素,缩放后的图片覆盖原图;
[0047]
步骤5:训练卷积神经网络模型ecgnet;
[0048]
步骤5.1:设置卷积神经网络模型ecgnet的训练轮次n;将标准化处理后的训练集图片转化为张量输入到卷积神经网络,将卷积神经网络最后的全连接层的输出改为1,神经网络正向传播得到一个概率输出值;
[0049]
步骤5.2:将对应的标签转化为张量后与概率输出值计算交叉熵损失函数;
[0050]
交叉熵损失函数的公式为:
[0051][0052]
其中,yi表示样本i的标签,正样本的标签为1,负样本的标签为0;pi表示样本i预测为正样本的概率值;
[0053]
步骤5.3:反向传播对神经网络的参数更新;
[0054]
步骤5.4:将标准化处理后的验证集图片转化为张量输入到神经网络,对输出概率值进行sigmoid计算,sigmoid输出小于0.5,则将该图片判定为十二导联心电图图片,与人工标记的标签进行对比计算准确率;保存n轮训练中验证准确率最高的卷积神经网络模型ecgnet;
[0055]
步骤6:加载使用训练好的卷积神经网络模型ecgnet,对测试集的图片进行判定,查看效果是否达到预定目标,达到则执行步骤7;
[0056]
步骤7:对待提取十二导联心电图的病历数据进行步骤1的预处理,使用训练好的卷积神经网络模型ecgnet在预处理后的图片中提取十二导联心电图图片。
[0057]
本发明在训练好模型后可以全自动、高效、快速的从病历数据中智能提取出满足要求的十二导联心电图,通过验证集和测试集测试,训练的模型的精确率为98.2%,同时具有100%的单边准确率,可以快速、精准的提取心电图,加速了心血管疾病患者的临床数据集的构建。
[0058]
实施例1:
[0059]
一种在病历中快速提取十二导联心电图的智能方法,整体流程如图1所示,具体包括如下步骤:
[0060]
步骤1:从所有病历中随机选择400份病历进行模型训练,使用pdfplumber模块对病历进行读取,根据观察发现十二导联心电图会被pdfplumber模块识别为none,保存所有被pdfplumber模块识别为none的图片,病历中全部的十二导联心电图包含在这些图片集中;
[0061]
步骤2:在人工标记过程中,本发明使用了一种图片二次细化的方式来加速人工标记速度,将随机选择的图片集进行二次细化,可以对图片集进行进一步筛选,使图片集中的十二导联心电图与非十二导联心电图的比例趋近于1:1,具体方式为:使用opencv模块对图片集中的图片进行读取,然后将图片的尺寸缩放至224*224像素,对缩放后图片转化的numpy矩阵值进行求和,保留求和后的结果小于阈值的图片,使用此特征可以对预处理的图
片进行二次细化处理,进而方便进行人工标记,阈值通过以下公式计算:
[0062][0063]
其中,α表示放大系数,在这里使用的是1.2,numi表示第i张心电图缩放至224*224像素后转换为numpy矩阵求和的值,本发明使用的阈值为131747。
[0064]
步骤3:将二次细化的2200张图片按照8:1:1的比例分为训练集、验证集和测试集,训练集和验证集中的图片进行人工标注处理,测试集中的图片不做处理,具体标记如下表所示:
[0065][0066]
其中,正样例表示为十二导联心电图图片,负样例为其余类型的图片;
[0067]
步骤4:使用opencv模块对图片进行读取,然后将图片的尺寸缩放至224*224像素,缩放后的图片覆盖原图;
[0068]
步骤5:定义卷积神经网络,并进行神经网络训练,其中epoch为30,具体包含步骤5.1~步骤5.4:
[0069]
步骤5.1:定义卷积神经网络ecgnet,网络架构如图4所示,具体参数如下表:
[0070]
网络层类型输入张量尺寸输出张量尺寸参数量卷积层[1,3,224,224][1,96,56,56]34944最大池化层[1,96,56,56][1,96,28,28]0卷积层[1,96,28,28][1,256,28,28]614656最大池化层[1,256,28,28][1,256,14,14]0卷积层[1,256,14,14][1,384,14,14]885120卷积层[1,384,14,14][1,256,14,14]884992最大池化层[1,256,14,14][1,256,7,7]0全连接层[1,12544][1,4096]51384320全连接层[1,4096][1,1]4097
[0071]
其中,网络层类型表示使用的卷积神经网络中每层网络的类型,输入和输出张量尺寸表示相应层网络的对应的数据大小,其中四个参数的代表的含义为[图片数量,通道数,像素,像素],参数量表示该层网络参数的数量,激活函数使用的relu函数,将标准化处理后的训练集图片转化为张量输入到网络中,神经网络正向传播输出一个概率输出值;
[0072]
步骤5.2:将对应的标签转化为张量后与概率输出值计算交叉熵损失函数,损失函数公式如下:
[0073][0074]
其中yi表示样本i的标签,正样本的标签为1,负样本的标签为0,pi表示样本i预测
为正样本的概率值,学习策略为最小化交叉熵损失函数,使用adam优化器,它结合了adagrad和rmsprop两种优化算法的优点,对梯度的一阶矩估计和二阶矩估计进行综合考虑,计算出更新步长。它能够自动调整学习率,具有简单有效的特点;
[0075]
步骤5.3:进行反向传播更新神经网络的参数;
[0076]
步骤5.4:固定神经网络的参数,将标准化处理后的验证集图片转化为张量输入到神经网络,对输出概率值进行sigmoid计算,来得到每个类别对应的sigmoid值,若sigmoid值大于0.5,则将该图片判定为十二导联心电图图片。然后,与人工标记的标签进行对比计算准确率,保存30轮训练中验证准确率最高的模型,每个轮次的验证准确率如图2所示,此模型的验证准确率最高为98.2%;
[0077]
步骤6:加载使用训练好的神经网络模型,对测试集的图片进行判定,查看效果是否达到预定目标,经过计算分析,该模型的分类单边准确率高达100%,满足需求,继续执行步骤7;
[0078]
步骤7:对所有病历数据使用pdfplumber模块进行读取,保存被pdfplumber模块识别为none的图片在单独的文件夹中,对所有的图片按照步骤6对图片进行十二导联心电图判定,所有被判定为十二导联心电图的图片复制到单独的文件夹下,图片文件名改为ecg 病历id 图片编号.png,其中病历id为病历的唯一标志,同一病历中可能存在多张心电图图片,使用图片编号做后缀来区分同一病历的不同心电图,十二导联心电图样例如图3所示。
[0079]
本发明针对病历中快速提取十二导联心电图的难点,使用了一种独特的方法对病历数据进行处理,包括病历数据的预处理以及手工定义特征的二次细化,使用该二次细化可以加速人工标记过程,加快了模型训练过程;定义了卷积神经网络ecgnet;结合设置特征和卷积神经神经网络训练模型实现自动提取十二导联心电图,经过检验该模型提取的十二导联心电图具有单边100%的准确率,提取的心电图达到人工提取的水平。
[0080]
本发明可以快速精准的从病历数据中提取出满足要求的十二导联心电图,训练好模型后的提取过程快速且不需要人力参与,极大地节省了人力物力,实际使用时仅使用了10个小时便处理完了12万患者的病历,加速了心血管疾病患者的临床数据集的构建,为后续的心血管疾病的智能诊断研究做出了一定的贡献。
[0081]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献