掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及心电信号识别分类领域,具体涉及一种Ⅱ导联心电信号分类方法。

背景技术

心电信号是利用心电图机从体表记录心脏每一心跳周期所产生的电活动变化图形的技术。其主要成分包括QRS复合波、P波、T波等。心电信号也是检测心律失常一类疾病的重要标准。心电信号还用于各种人群体检。专业医师可以通过心电图,了解有无严重的先心病,有无心脏结构异常。另外急性心肌缺血、心肌梗死也可以通过心电图来快速识别。故此心电信号中包含的生理信息对心脏疾病的诊断具有非常重要的意义。但是,心电信号的诊断需要具有经过专业培训的专业医师对很多不规则的心电图进行目测评估,通常这是一个非常消耗时间和具有主观因素在内的过程。所以很难对心电信号进行准确的分类。

在这种困境下计算机辅助诊断技术开始被大力发展用以实现计算机自动识别心电信号分类,并且随着神经网络等技术的提高,大量的有关心电信号自动分类诊断的算法被提出,然而其中很多算法采用的都是传统CNN神经网络作为主要技术手段从而建立网络模型完成心电分类,这些分类方法需要使用手工制作的特征进行分类,而其输入特征通常是通过反复试验或经验来设计和选择的,这样容易造成输入特征冗余,而CNN神经网络还具有梯度消失等问题存在,容易导致误诊或不适当的分类,对专业医生的帮助十分有限。

由此可见,当前心电信号检测分类方法中存在分类不准确、参数冗余、模型不稳定等问题。

发明内容

有鉴于此,本发明提出了一种Ⅱ导联心电信号分类方法从数据本身的时间序列特征出发判断并分类各种心跳,解决了参数冗余、模型不稳定的技术问题,部分解决了现有技术中的方法存在的分类不准确问题。更好的为专业医生提供辅助功能,用以降低误诊率。

为达到上述发明目的,本发明采用的技术方案为:一种Ⅱ导联心电信号分类方法,包括以下步骤:

步骤a、滤除Ⅱ导联心电信号中的肌电干扰;

步骤b、滤除Ⅱ导联心电信号中的工频干扰;

步骤c、利用LSTM神经网络构筑Auto Encoder模型中的Encoder部分;

步骤d、利用LSTM神经网络构筑Auto Encoder模型中的Decoder部分;

步骤e、建立新型Auto Encoder模型并完成验证集心跳分类;

在一种实施方式中,步骤a具体包括:

步骤a1:建立低通滤波器滤除心电信号内的肌电干扰;

在一种实施方式中,步骤a1具体包括:

步骤a11:求解低通滤波器阶数;

首先是滤波器阶数的计算,由下面的公式求得:

其中N代表滤波器的阶数,A

步骤a12:求解低通滤波器传递函数;

低通滤波器的传递函数计算公式为

其中Ω代表低通滤波器输入频率,Ω

由上述公式根据jΩ解开可以得到极点的解公式为:

获得极点P

至此低通滤波器已经设计完成,原始Ⅱ导联心电信号通过该滤波器滤除肌电干扰。

在一种实施方式中,步骤b具体包括:

步骤b1:建立自适应滤波器滤除心电信号内的肌电干扰:

自适应滤波器计算公式组如下:

其中n表示公式组运行的次数。D(n)表示滤波器主通道的输入,D(n)包括了心电信号及工频干扰噪声,工频干扰常常表现为50Hz的电场干扰和50Hz的磁场干扰。w

在一种实施方式中,步骤c具体包括:

步骤c1构筑Encoder神经网络模型;

步骤c2 LSTM循环神经网络层计算;

步骤c3前向层设计;

在一种实施方式中,步骤c1具体包括:

所述Encoder神经网络模型包括:第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四前向层;

所述第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四前向层顺次连接;所述第一LSTM循环神经网络层输入端作为Encoder神经网络模型输入端,所述第四前向层输出端作为Encoder神经网络模型输出端。

在一种实施方式中,步骤c2具体包括:

采用LSTM构成Encoder神经网络模型对心电信号时间序列特征进行提取保存。LSTM的更新迭代计算公式为:

其中,t为循环次数,σ是Logistic Sigmoid函数,i

通过使用从t=1到T利用上式迭代地计算从输入序列x

在一种实施方式中,步骤c3具体包括:

Encoder神经网络模型采用三层LSTM逐级连接的形式构成,第一层LSTM神经网络层的输入数据为原始心电信号数据,其中隐层的维度设置为256,第二层LSTM神经网络层的输入数据为第一层LSTM层的输出数据,其中隐层的维度设置为128,第三层LSTM神经网络层的输入数据为第二层LSTM神经网络层的输出数据,其中隐层的维度设置为64,最后定义前向函数,使得原始心电信号数据按顺序依次通过三层LSTM神经网络层最后输出,利用成倍数缩小的隐层实现压缩原始数据并且通过LSTM提取数据中隐藏的时间序列信息。

在一种实施方式中,步骤d具体包括:

步骤d1构筑Decoder神经网络模型;

步骤d2 LSTM循环神经网络层计算步骤;

步骤d3线性层设计;

步骤d4前向层设计;

在一种实施方式中,步骤d1具体包括:

所述Decoder神经网络模型包括:第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四线性层、第五前向层;

所述第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四线性层、第五前向层顺次连接;所述第一LSTM循环神经网络层输入端作为Encoder神经网络模型输入端,所述第五前向层输出端作为Decoder神经网络模型输出端。

在一种实施方式中,步骤d2具体包括:

采用LSTM构成Decoder神经网络模型对心电信号时间序列特征进行提取保存。LSTM的更新迭代计算公式为:

其中,r为循环次数,σ是Logistic Sigmoid函数,I

通过使用从r=1到R利用上式迭代地计算从输入序列X

在一种实施方式中,步骤d3具体包括:

线性层又称全连接层,其计算公式如下:

k=lW

其中W表示模型权重,bias表示偏差,均为标量。k是线性层输入序列,l是线性层输出序列。

在一种实施方式中,步骤d4具体包括:

Decoder神经网络层采用三层LSTM外加一层线性输出层与前向层逐级连接的形式构成,第一层LSTM神经网络层的输入数据为步骤b中的Encoder神经网络层输出数据,其中隐层的维度设置为64,第二层LSTM神经网络层的输入数据为第一层LSTM层的输出数据,其中隐层的维度设置为128,第三层LSTM神经网络层的输入数据为第二层LSTM神经网络层的输出数据,其中隐层的维度设置为256,最后通过线性层实现输出数据格式转换为标准输入的心电信号数据格式,利用成倍增加的隐层实现重建并输出步骤b中被压缩的数据,保存该次处理数据的时间序列特征。

在一种实施方式中,步骤e具体包括:

步骤e1建立新型Auto Encoder模型:

步骤e2制备训练模型数据:

步骤e3训练模型:

步骤e4获取各类心跳时间序列特征:

步骤e5心跳分类:

在一种实施方式中,步骤e1具体包括:

所述新型Auto Encoder神经网络模型包括:第一所述步骤c1中构筑的Encoder神经网络模型、第二所述步骤d1中构筑的Decoder神经网络模型;

第一所述步骤c1中构筑的Encoder神经网络模型、第二所述步骤d1中构筑的Decoder神经网络模型顺次连接;所述第一步骤c1中构筑的Encoder神经网络模型输入端作为Auto Encoder神经网络模型输入端,所述第二步骤d1中构筑的Decoder神经网络模型输出端作为Decoder神经网络模型输出端。

在一种实施方式中,步骤e2具体包括:

将输入的Ⅱ导联心电数据按照心跳节拍为单位分组,同种类型心跳做好对应的标签,再随机从所有数据中取出75%作为新建神经网络模型的训练数据集,剩下的25%数据中再随机取出其中的66%作为测试数据集,最后剩下的部分就是该模型的验证数据集。

在一种实施方式中,步骤e3具体包括:

在训练过程开始前,预先设置一个误差参考值,整个训练过程采用循环迭代方式进行。利用步骤e2中制作的训练数据集进行训练。在每一次训练的迭代过程中,假设原始输入心电信号数据为p,将p输入到步骤e1中建立的Auto Encoder模型后获得输出数据q。然后计算输出q与原始输入心电信号数据p的误差loss(p,q),loss(p,q)的计算公式如下:

计算完loss(p,q)之后,若loss(p,q)值小于预先设定的误差参考值则将误差参考值更新为loss(p,q)值。

在一种实施方式中,步骤e4具体包括:

利用步骤e3中设计的训练模型将同种标签类型的心电信号训练数据集进行迭代训练,完成训练后按不同类型心跳分别保存各自的时间序列参数。

在一种实施方式中,步骤e5具体包括:

利用e3的训练过程可以得到具有不同类型心电信号各自时间序列特征的不同Auto Encoder模型,当一段心电信号数据同时输入上述具有不同参数的Auto Encoder模型后,每种Auto Encoder模型均能得到一组输出数据,利用上述步骤e3中的误差判定公式计算各组输出数据与原始输入心电信号数据间的误差,找到对应误差值最小的Auto Encoder模型,该模型对应的心跳类型就是输入心电信号的类型,完成心跳分类。

综上,本发明的有用效果为:本发明设计了一种Ⅱ导联心电信号分类方法,Ⅱ导联心电信号数据先通过方法中设计的低通滤波器、自适应滤波器分别滤除信号中带有的肌电干扰、工频干扰,然后将处理过的信号通过方法中设计的基于LSTM神经网络的AutoEncoder模型进行训练用以获得各种心跳对应的时间序列参数特征并保存,最后利用保存好的各类心跳时间序列特征分别带入Auto Encoder模型中,然后将心电信号输入模型利用时间序列特征判断分类心电信号,该方法有效的解决了参数冗余、模型不稳定的技术问题,部分解决了现有技术中的方法存在的分类不准确问题,为专业医生提供了可靠的帮助与参考,减少误诊率。

附图说明

图1为本发明的工作流程示意图;

图2为四种心电信号类型原始数据图;

图3为本发明的自适应算法原理图;

图4为本发明的自适应滤波器结构图;

图5为四种心电信号滤波去噪后数据图;

图6为四种心电信号的时间序列图;

图7为本发明的Encoder模型结构图;

图8为本发明的Decoder模型结构图;

图9为本发明的Auto Encoder模型结构图;

图10为本发明的Ⅱ导联心电信号分类模型结构图;

具体实施方式

下面对本发明的具体实施方法进行描述,结合本发明实施例中的附图加以说明,用以方便本技术领域的技术人员理解本发明,显然所描述的实施例仅仅是本发明的一部分实施例,而不是全部实施例。但基于本发明中的实施例的各种变化且包含在上述权利要求限定范围之内的,这些变化显而易见应当属于本发明的保护范围。

具体地,本发明提供了一种Ⅱ导联心电信号分类方法,以MIT-BIH心电数据集为例,如图1所示,其包括一下步骤:

步骤a:滤除Ⅱ导联心电信号中的肌电干扰;在MIT-BIH数据集中选择NIT-BIH心律失常数据库中四种不同心电信号的部分数据进行实施例,该数据库包含48个半小时的Ⅱ通道动态心电信号摘录,附图中四种心跳类型代号代表的含义为:

A:Atrial premature beat(房性早搏)

L:Left bundle branch block beat(左束支传导阻滞)

N:Normal beat(正常搏)

V:Premature ventricular contraction(室性早搏)

四种心电信号去噪前原始输入信号如图2所示,人体心电信号是非常微弱的生理低频电信号,其最大幅值一般不超过5mV,并且通常频率稳定在0.05~100Hz之间。而肌电干扰是在心电信号采集过程中由于人体肌肉运动产生的肌电电压,一般来讲肌电干扰属于高频范围,通常在5~2000Hz,在正常心电信号上会表现为无规律细小的高频波动,容易产生视觉混淆,进而导致心电信号诊断有误,所以选择设计低通滤波器来滤除肌电干扰。

在实施例方法中,步骤a具体包括:

步骤a11:求解低通滤波器阶数:

步骤a12:求解低通滤波器传递函数:

具体来说,步骤a11首先是滤波器阶数的计算,由下面的公式求得:

其中N代表滤波器的阶数,A

其次求解低通滤波器传递函数:

低通滤波器的传递函数计算公式为

其中Ω代表低通滤波器输入频率,Ω

由上述公式根据jΩ解开可以得到极点的解公式为:

获得极点P

至此低通滤波器已经设计完成,原始Ⅱ导联心电信号通过该滤波器滤除肌电干扰。

在实施例方法中,步骤b具体包括:

步骤b1:建立自适应滤波器滤除心电信号内的工频干扰

工频干扰也是心电信号的主要干扰来源,在肌电测量中工频干扰的主要表现为50Hz的电场干扰与50Hz的磁场干扰,故采用自适应滤波器消除工频干扰。自适应算法原理图如图3所示,其中原始输入信号为有用信号S(n)和噪声信号N(n)之和,而参考输入端的信号是仅仅与N(n)相关的噪声信号R(n),通过自适应调整输出Y(n),就可在最小均方误差标准下获得主输入噪声的N(n)的一个最佳估计,再将此估计与主输入相减,可以较完全的消除主输入包含的噪声,具体分析如下:

输出误差e(n)为:

e(n)=S(n)+N(n)-Y(n)

均方误差估计为:

E[e

由于S(n)、R(n)及N(n)不相关,故期望值最小值是:

E[e

当Y(n)→N(n)时输出均方误差最小,此时系统输出就十分接近输入信号中的有用成分S(n)。

根据上述原理,本发明设计的自适应滤波器结构如图4所示,滤波器主通道的输入为D(n),其中包括了心电信号及工频干扰噪声,工频干扰常常表现为50Hz的电场干扰和50Hz的磁场干扰,参考端的输入即包含互相关参考噪声,设置自适应滤波器的阶数为2,公式组如下:

其中w

在实施例方法中,步骤c具体包括:

步骤c1构筑Encoder神经网络模型:

步骤c2 LSTM循环神经网络层计算步骤:

步骤c3前向层设计:

具体来说,步骤c1构筑的Encoder神经网络模型结构如图7所示,其中包括第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四前向层;

所述第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四前向层顺次连接;所述第一LSTM循环神经网络层输入端作为Encoder神经网络模型输入端,所述第四前向层输出端作为Encoder神经网络模型输出端。

进一步,通过步骤c2计算模型中的LSTM循环神经网络层,LSTM循环神经网络层能够解决普通神经网络在梯度反传过程中由于逐步缩减而产生的梯度消失问题。而具体到信号处理问题上时,LSTM非常适合用于处理与时间序列高度相关的问题,故采用LSTM构成Encoder、Decoder神经网络模型对心电信号时间序列特征进行提取保存。而LSTM的第t步更新迭代计算公式为:

其中,t为循环次数,σ是Logistic Sigmoid函数,i

通过使用从t=1到T利用上式迭代地计算从输入序列x

其中Encoder神经网络模型采用三层LSTM逐级连接的形式构成,第一层LSTM神经网络层的输入数据为原始心电信号数据,其中隐层的维度设置为256,第二层LSTM神经网络层的输入数据为第一层LSTM层的输出数据,其中隐层的维度设置为128,第三层LSTM神经网络层的输入数据为第二层LSTM神经网络层的输出数据,其中隐层的维度设置为64,最后定义前向函数,使得原始心电信号数据按顺序依次通过三层LSTM神经网络层最后输出,利用成倍数缩小的隐层实现压缩原始数据并且通过LSTM提取数据中隐藏的时间序列信息。

在实施例方法中,步骤d具体包括:

步骤d1构筑Decoder神经网络模型:

步骤d2 LSTM循环神经网络层计算步骤:

步骤d3线性层设计:

步骤d4前向层设计:

具体来说,步骤d1构筑的Decoder神经网络模型结构如图8所示,所述Decoder神经网络模型包括:第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四线性层、第五前向层;

所述第一LSTM循环神经网络层、第二LSTM循环神经网络层、第三LSTM循环神经网络层、第四线性层、第五前向层顺次连接;所述第一LSTM循环神经网络层输入端作为Encoder神经网络模型输入端,所述第五前向层输出端作为Decoder神经网络模型输出端。

进一步,通过步骤d2进行LSTM循环神经网络层计算,进入步骤d3线性层设计,线性层又称全连接层,其计算公式如下:

k=lW

其中W表示模型权重,bias表示偏差,均为标量。k是线性层输入序列,l是线性层输出序列,利用线性层将Decoder模型输出序列格式调整为与原始输入心电信号序列格式一致,完成Encoder部分压缩数据的重建。其中通过步骤d4完成前向层的设计,Decoder神经网络层采用三层LSTM外加一层线性输出层与前向层逐级连接的形式构成,第一层LSTM神经网络层的输入数据为步骤b中的Encoder神经网络层输出数据,其中隐层的维度设置为64,第二层LSTM神经网络层的输入数据为第一层LSTM层的输出数据,其中隐层的维度设置为128,第三层LSTM神经网络层的输入数据为第二层LSTM神经网络层的输出数据,其中隐层的维度设置为256,最后通过线性层实现输出数据格式转换为标准输入的心电信号数据格式,利用成倍增加的隐层实现重建并输出步骤b中被压缩的数据,保存该次处理数据的时间序列特征。其中四种不同心跳的时间序列特征如图6所示,可以明显的看出,不同类型的心电信号时间序列也有明显不同,从而得出我们采集不同种类心电信号的时间序列特征是有意义的。

在实施例方法中,步骤e具体包括:

步骤e1建立新型Auto Encoder模型:

步骤e2制备训练模型数据:

步骤e3训练模型:

步骤e4获取各类心跳时间序列特征:

步骤e5心跳分类:

具体来说,步骤e1构筑的Auto Encoder神经网络模型结构如图9所示,所述新型Auto Encoder神经网络模型包括:第一所述步骤c1中构筑的Encoder神经网络模型、第二所述步骤d1中构筑的Decoder神经网络模型;

第一所述步骤c1中构筑的Encoder神经网络模型、第二所述步骤d1中构筑的Decoder神经网络模型顺次连接;所述第一步骤c1中构筑的Encoder神经网络模型输入端作为Auto Encoder神经网络模型输入端,所述第二步骤d1中构筑的Decoder神经网络模型输出端作为Decoder神经网络模型输出端。

进一步,通过步骤e2将经过滤波的四种心电信号制作成模型需要的数据,将输入的Ⅱ导联心电数据按照心跳节拍为单位分组,同种类型心跳做好对应的标签,再随机从所有数据中取出75%作为新建神经网络模型的训练数据集,剩下的25%数据中再随机取出其中的66%作为测试数据集,最后剩下的部分就是该模型的验证数据集。经过上述处理后,四种心跳的总数据分布如下表所示:

在训练过程开始前,预先设置一个误差参考值,整个训练过程采用循环迭代方式进行。利用步骤e2中制作的训练数据集进行训练。在每一次训练的迭代过程中,假设原始输入心电信号数据为p,将p输入到步骤e1中建立的Auto Encoder模型后获得输出数据q。然后计算输出q与原始输入心电信号数据p的误差loss(p,q),loss(p,q)的计算公式如下:

计算loss(p,q)之后,若loss(p,q)值小于预先设定的误差参考值则将误差参考值更新为loss(p,q)值。

进一步,完成步骤e5心跳分类,分类模型的整体结构如图10所示,其中输入为步骤e2中制作好的验证数据集(Validation set),Part1、Part2、Part3、Part4分别为将步骤e4中保存的四种心跳类型各自的时间序列参数导入步骤e1中设计的Auto Encoder模型后生成的四种不同时间序列特征参数的Auto Encoder模型,当四种心跳类型中的任意一组心跳数据按照图10所示输入到四种不同时间序列特征参数的Auto Encoder模型进行压缩编码与重建编码之后与其原始输入按照L1Loss损失函数计算误差,只有经过同类型时间序列特征参数的Auto Encoder模型重建出来的序列与原始输入序列的误差最小,故此判断出输入心跳的类型,实现心跳分类。

在实施例方法中,结果如下表所示:

由上表可知,本发明的分类方法在验证集上的平均Accuracy值达到了95.67%,我们可以看出本发明方法在整个分类过程中的模型没有用到随机输入参数,解决了传统CNN神经网络需要使用手工制作的特征进行分类从而造成的参数冗余与误差问题,本发明模型内部使用LSTM循环神经网络层技术,解决了CNN神经网络因具有梯度消失等问题存在而导致误诊或不适当的分类问题,模型准确率比较高,能较好的完成Ⅱ导联心电信号分类问题,具有较大的社会实用价值。

相关技术
  • 一种基于NLF-CNN导联融合深度网络的多导联心电信号分类方法
  • 一种Ⅱ导联心电信号分类方法
技术分类

06120113158473