基于压缩图神经网络的自动心律失常分析方法与流程

文档序号:16188957发布日期:2018-12-08 05:29阅读:142来源:国知局
基于压缩图神经网络的自动心律失常分析方法与流程

本发明涉及医学信号处理技术领域,更确切地说,本发明涉及一种基于压缩图神经网络的自动心律失常分析方法。

背景技术

近些年,针对心电图的辅助诊断设备发展迅速,随着信息领域的科技进步,特别是随着模式识别技术的进展,心电图设备的功能不再是仅仅获取心电信号、打印心电图,而是向着挖掘心电图中的有效数据以及自动识别、统计心拍信息方向发展。带自动识别心拍功能的分析设备能够为医生提供更直观有效的心电图信息,有效节省诊断时间,提高医生的诊断效率,是重要的辅助医疗设备之一。

工作在计算器件上的自动心律失常分析系统是此类设备的核心,技术途径有两种,一是通过提取表征了心电图有效信息的特征向量,输入到分类器算法得到心拍的类别;二是通过深度学习技术自动学习特征并进行识别,得到心拍的类别。

基于深度学习技术的心律失常分析系统可以利用数据红利,有效提高识别精度,然而目前的心律失常分析系统尚不足以满足临床应用的准确率需求。



技术实现要素:

本发明的目的是为解决现有心律失常分析系统尚不足以满足临床应用的准确率需求的问题,而提供一种基于压缩图神经网络的自动心律失常分析方法。

一种基于压缩图神经网络的自动心律失常分析方法,它包括:

1)采用两种采样方式进行复合采样,生成多通道心电图样本;

a.对每个导联的心电信号,前后各取100个点再重采样到固定维度600;

b.对每个导联的心电信号,前取2个周期的r-r波区间,后取1个周期的r-r波区间,再重采样到固定维度600;

将上述两种采样方式所得的600维心电信号沿第二个维度拼接,每导联心电信号由600*1维扩增为2*600*1维,此时的2为该导联心电信号的通道数。将原始每个导联的心电数据经过所述复合采样方式形成上述4*600*1维的心电信号样本x,作为深度神经网络模型的输入input,即为图一中的input1,input2,input3,input4;

2)搭建深度神经网络

深度神经网络包括多个依次串联的卷积层单元和全连接层单元,且在合并层单元和卷积层单元间有图像编码层用于将心电信号由一维编码为二维图像;每个所述卷积层单元包括一个卷积层以及该卷积层输出端依次串联的一激励单元操作和一池化层操作;所述卷积单元使用的是二维卷积,用于提取二维心电信号编码图片的特征。

3)学习深度神经网络的参数;

4)对样本进行自动识别;

所述的搭建深度神经网络,当心电数据集拥有两导联信号时,输入信号维度为4*600*1。将四个通道的输入信号输入到合并层中沿最后一维合并,合并层输出为600*4维的信号。合并层的输出作为图像编码层的输入,合并层中将心电信号归一化到0-1的范围之间,再使用量化的方法,乘以量化电平数255即可将数据范围映射到0-255之间,再使用one-hot编码的方式对信号编码,编码后的心电信号维度为600*1024。对编码后的信号使用线性缩放的方式缩小20倍,缩小后的维度为30*52,调整输出维度为52*30*1作为卷积层的输入。图像编码层输出连接到串联的三层卷积层单元中,每一层卷积层单元的输出端依次串联的一激励单元操作和一池化层操作;第一个卷积层单元的卷积核数为32个,卷积核大小为(3,3),其后的激励单元为relu函数,池化层单元的池化步长为(2,2);第二个卷积层单元的卷积核数为32个,卷积核大小为(3,3),其后的激励单元为relu函数,池化层单元的池化步长为(2,2);经过第二层池化单元后的特征图维度为11*6*32。第三个卷积层单元的卷积核数为64个,卷积核大小为(3,3),其后的激励单元为relu函数,池化层单元的池化步长为(2,2);经过第三层池化单元后的特征图维度为4*2*64。

所述的深度神经网络为三个依次串联的卷积层单元和全连接层单元;

将三层卷积单元输出的特征图输入到全连接层单元中,取全连接层单元的隐藏层数为64,全连接层单元输出特征图维度为64;全连接层单元的输出串联一个激励单元为softmax的全连接层,全连接层的输出维度为4,即类别数。最终所述深度神经网络模型输出预测向量维度;

所述的深度神经网络输出的预测向量维度为4;使用keras开源框架和python语言搭建,使用交叉熵作为损失函数,使用adam优化器优化损失函数;

所述的学习深度神经网络的参数为:初始化所述深度神经网络的训练参数,将采样好的信号划分为训练集样本和测试集样本;即从总体样本中随机抽取一部分数目的样本当作训练集,对于其他未选中的样本视为测试集。再将训练集中的多通道心电信号x输入到初始化后的深度神经网络中,以最小化代价函数为目标进行迭代,以生成所述深度神经网络并保存下来;其中,每迭代一次则更新一次所述训练参数,直至最后所述的深度神经网络的损失值和准确率稳定在某一数值附近,即可停止训练并保存当前网络的训练参数和模型结构信息;

所述的对样本进行自动识别为:将划分好的测试集样本全部输入到已保存的所述神经网路中,运行所述深度神经网络即可获得测试集样本对应的4维预测值向量输出,将测试集样本的标签使用one-hot编码的方法生成4维的标签向量,再通过将输出的预测值与测试集样本的标签比对来检查是否分类正确。

附图说明

图1为深度神经网络结构图。

具体实施方式

实施例1基于深度神经网络的自动心律失常分析方法

下面结合附图和具体的实施方式对本发明作进一步说明。

具体实例为国际通行心电图数据库mit-biharrhythmiadatabase(mitdb),该数据库的数据及使用说明公开于行业内周知的physionet.org网站;数据库包含47位患者两导联方式的半小时360hz心电图记录,并已通过了心脏病医生手动标注;从所述数据集中选出四种按照aami标准划分的心拍类别组合作为效果评估依据,包括n类(正常心拍或束支传导阻滞心拍)、s类(室上性异常心拍)、v类(心室异常心拍)、f类(融合心拍);这四种类别的标签以及与mitdb数据集中类别的对应关系如表1;在本实例中,通过工作在计算机上的软件系统和行业内所周知的matlab和python仿真环境进行实现。

本实施例的详细步骤如下:

一.采用复合采样方式生成多通道心电图样本的实现

将所述的mitdb数据集中的原始信号去噪后,采用如下两种采样方式扩增信号的通道数:

(1)采样方式一为:对每个导联的心电信号,前后各取100个点再重采样到固定维度600;生成图1中的input1和input3;

(2)采样方式二为:对每个导联的心电信号,前取2个周期的r-r波区间,后取1个周期的r-r波区间,再重采样到固定维度600;生成图1中的input2和input4;

将由此两种采样方式所得的600维心电信号沿第二个维度拼接,每导联心电信号由600*1维扩增为2*600*1维,此时的2为该导联心电信号的通道数。将原始每个导联的心电数据经过所述复合采样方式形成上述4*600*1维的心电信号样本x,作为深度神经网络模型的输入,即为图一中的input1,input2,input3,input4。

二.搭建深度神经网络

(1)所述深度神经网络的具体结构

所述深度模型输入为合并各个通道后的心电信号x,因为mitdb数据集拥有两导联信号,所以输入信号维度为4*600*1。将四个通道的输入信号输入到合并层中沿最后一维合并,合并层输出为600*4维的信号。合并层的输出作为图像编码层的输入,合并层中将心电信号归一化到0-1的范围之间,再使用量化的方法,乘以量化电平数255即可将数据范围映射到0-255之间,再使用one-hot编码的方式对信号编码,编码后的心电信号维度为600*1024。对编码后的信号使用线性缩放的方式缩小20倍,缩小后的维度为30*52,调整输出维度为52*30*1作为卷积层的输入。图像编码层输出连接到串联的三层卷积层单元中,每一层卷积层单元的输出端依次串联的一激励单元操作和一池化层操作;第一个卷积层单元的卷积核数为32个,卷积核大小为(3,3),其后的激励单元为relu函数,池化层单元的池化步长为(2,2);经过第一层池化单元后的特征图维度为25*14*32。第二个卷积层单元的卷积核数为32个,卷积核大小为(3,3),其后的激励单元为relu函数,池化层单元的池化步长为(2,2);经过第二层池化单元后的特征图维度为11*6*32。第三个卷积层单元的卷积核数为64个,卷积核大小为(3,3),其后的激励单元为relu函数,池化层单元的池化步长为(2,2);经过第三层池化单元后的特征图维度为4*2*64。

将三层卷积单元输出的特征图输入到全连接层单元中,取全连接层单元的隐藏层数为64,全连接层单元输出特征图维度为64。全连接层单元的输出串联一个激励单元为softmax的全连接层,全连接层的输出维度为4,即类别数。最终所述深度神经网络模型输出的预测向量y_pred维度为4。

(2)所述深度神经网络的具体实现

所述模型使用keras开源框架和python语言搭建,网路结构参数如表3。所述神经网络使用keras框架中的函数式模型搭建,即从keras.models模块中导入model函数,设置model的输入为所述经过复合采样后的多通道心电信号x,输出为维度为4的预测向量y_pred。通过导入keras.layers模块中的conv2d函数构造一维卷积层,通过导入keras.layers模块中的maxpooling2d函数构造一维最大化池化层,通过导入keras.layers模块中的dense函数构造全连接层单元。

三.学习深度神经网络的参数

首先初始化所述深度神经网络的训练参数,将采样好的信号划分为训练集样本和测试集样本,划分后的数据集如表2所示。将训练集中使用复合方式采样后的多通道心电信号输入到初始化后的深度神经网络中,所述深度神经网络中使用交叉熵作为代价函数;keras中使用categorical_crossentropy函数,所述深度神经网络中通过构建的函数式模型model实例化一个对象model,在model.compile函数中设置参数loss为'categorical_crossentropy';并使用adam优化器以最小化代价函数为目标进行迭代,通过在model.compile函数中设置参数optimizer为‘adam’进行优化,以生成所述深度神经网络并保存为hd5后缀的文件model1.hd5;其中,每迭代一次则更新一次所述训练参数;直至最后所述的深度神经网络的损失值和准确率稳定在某一数值附近,即可停止训练并保存当前网络的训练参数和模型结构信息;所述深度神经网络共训练了3000个批次,每个批次为64个样本。

四.对样本进行自动识别

将划分好的测试集样本全部输入到已保存的所述神经网路model1.hd5中,运行所述深度神经网络即可获得测试集样本对应的4维预测值向量输出y_pred,将测试集样本的标签使用one-hot编码的方法生成4维的标签向量y_label,在keras.utils模块中提供np_utils.to_categorical函数对输入的测试集标签进行one-hot编码,再通过将输出的预测值与测试集样本的标签比对来检查是否分类正确,即统计y_pred和y_label对应位置值相同的样本个数num,用num除以测试集样本总数即为最终的准确率。

按照表1,将aami标准下四种类型的心拍进行标记。

按照表1,将aami标准下四种类型的心拍进行标记。

按照表2所示的数量,随机抽取所有心拍中的一部分作为实施例的分类训练集;在剩余的心拍中,除去训练集以外的所有心拍作为测试集。

按照表3所列的网络结构参数,网络每层的层类型如type列中对应位置的参数值,每层的层类型如outputlayer列中对应位置的参数值,将网络每层的核大小设为kernelsize中对应位置的参数值,将网络每层核的移动步长设为strides中对应位置的参数值。

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