发明内容
本发明的目的是针对现有技术的缺陷,提供一种心搏分类结果的生成方法和装置,通过对接收到的原始心电图的数字信号进行处理生成心搏时间序列,然后进行数据切割生成导联的心搏分析数据;将导联的心搏分析数据进行数据组合和格式转换处理,最后送入训练好的1D EfficientNet模型输出对应每组心搏分析数据的心搏分类信息。
为实现上述目的,第一方面,本发明提供了一种心搏分类结果的生成方法,包括:
接收心电图的数字信号,对所述心电图的数字信号进行处理,得到心搏时间序列;所述心搏时间序列包括多导联心搏数据;
根据预先确定的导联心搏数据的中心采样点,按照设定数据量对所述多导联心搏数据进行数据切割,得到多组心搏分析数据;
将所述多组心搏分析数据进行数据组合,得到四维张量数据;所述四维张量数据具有四个因子{B,H,W,C},其中因子B为批量数据、因子H为高度数据、因子W为宽度数据、因子C为通道数据;所述批量数据为所述多组心搏分析数据的组数;
对所述四维张量数据进行张量格式转换处理,将所述四维张量数据中的高度数据收缩为1,并对宽度数据进行压缩,输出为一维嵌入数据{B,1,W1,C1};其中,因子W1为张量格式转换处理后的宽度数据、因子C1为张量格式转换处理后的通道数据;
将所述一维嵌入数据送入训练好的一维有效网络1D EfficientNet模型,在1DEfficientNet模型中经过多层逆残差模块、压缩激励SE(Squeeze-and-Excite)模块,再经过全局池化层和全连接层、softmax回归分类的计算,输出对应每组心搏分析数据的心搏分类信息。
优选的,所述心搏分类信息的格式为{B,T},其中,B为批量数据,T为心电图的类别数量。
优选的,在将所述一维嵌入数据送入训练好的1D EfficientNet模型之前,所述方法还包括:训练所述1D EfficientNet模型。
进一步优选的,所述训练所述1D EfficientNet模型具体包括:
对作为训练样本的心搏时间序列进行导联心搏数据的数据标注,确定训练样本的导联心搏数据的中心采样点为所述预先确定的中心采样点;
将所述训练样本转换为预设标准数据格式进行存储;
对格式转换后的所述训练样本进行数据切割、组合和转换,得到复合模型输入数据格式要求的训练样本输入数据;
对所述训练样本输入数据进行轮循训练,训练收敛后,使用一定数据量的独立的测试数据对不同迭代次数训练而成的模型进行测试,选取测试精度最高的模型做为所述1DEfficientNet模型。
优选的,所述对所述四维张量数据进行张量格式转换处理,将所述四维张量数据中的高度数据收缩为1,并对宽度数据进行压缩,输出一维嵌入数据{B,1,W1,C1}具体为:
设定多导联心搏数据的导联数量为所述四维张量数据的高度数据;
按照设定步幅,对所述四维张量数据使用CNN卷积神经网络进行多层网络卷积计算,得到高度数据收缩为1且宽度数据被压缩的一维嵌入数据。
优选的,所述根据预先确定的导联心搏数据的中心采样点具体为:
选取导联心搏数据的P波位置、T波位置或者QRS波群的R波位置作为所述预设的中心采样点。
进一步优选的,所述根据预先确定的导联心搏数据的中心采样点,按照设定数据量对所述多导联心搏数据进行数据切割,得到多组心搏分析数据具体包括:
以导联心搏数据的中心采样点为中心,按照时间表征数据和预设数据采样频率,对导联心搏数据以设定数据量向两侧进行数据取样,得到所述多组心搏分析数据。
本发明实施例提供的心搏分类结果的生成方法,通过对接收到的原始心电图的数字信号进行处理生成心搏时间序列,然后进行数据切割生成导联的心搏分析数据;将导联的心搏分析数据进行数据组合和格式转换处理,最后送入训练好的1D EfficientNet模型输出对应每组心搏分析数据的心搏分类信息。
第二方面,本发明实施例提供了一种设备,该设备包括存储器和处理器,存储器用于存储程序,处理器用于执行第一方面及第一方面的各实现方式中的方法。
第三方面,本发明实施例提供了一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行第一方面及第一方面的各实现方式中的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面及第一方面的各实现方式中的方法。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明实施例提供的心搏分类结果的生成方法,可以用于心搏分类结果的输出。自动输出心搏分类结果对于心电分析是非常有意义且必要的。
图1为本发明实施例提供的本发明实施例提供的利用心搏时间序列生成心搏标签序列的数据处理系统结构示意图;本发明的生成方法通过图1所示的系统结构来实现。
图1所示的系统结构中,输入数据为心电图的数字信号,通过对心电图的数字信号采用预处理模块处理为心搏时间序列,并对数据切割、组合、得到四维张量数据,然后通过初步特征提取模块,得到高度数据收缩为1的一维嵌入数据;然后送入训练好的一维有效网络(1D EfficientNet)模型输出对应每组心搏分析数据的心搏分类信息。
图2为本发明实施例提供的心搏分类结果的生成方法流程图,下面结合图2,对本发明实施例提供的心搏分类结果的生成方法进行说明。
根据图2本发明上述生成方法的主要步骤包括:
步骤110,接收心电图的数字信号,对心电图的数字信号进行处理,得到心搏时间序列;
其中,心搏时间序列包括多导联心搏数据。
具体的,导联心搏数据是指各个导联的心搏数据,每个导联心搏数据的获取方法可以根据申请人在先申请的专利201711203259.6《基于人工智能自学习的心电图自动分析方法和装置》中步骤100-步骤120的方法获得。
步骤120,根据预先确定的导联心搏数据的中心采样点,按照设定数据量对所述多导联心搏数据进行数据切割,得到多组心搏分析数据;
具体的,以导联心搏数据的中心采样点为中心,按照时间表征数据和预设数据采样频率,对导联心搏数据以设定数据量向两侧进行数据取样,得到多组心搏分析数据。
在这里,时间表征数据可以理解为采样长度的时间,假设要求的心搏数据长度均为8s,那么时间表征数据就是8s,采样就是从某个心搏中心点开始,向左采集4s,向右采集4s。
进一步具体的,在切割导联心搏数据前,首先需要确定导联心搏数据的中心采样点。中心采样点,可以选取导联心搏数据的P波位置、QRS波群的R波位置以及T波等位置。心搏数据的中心采样点的选取需要和本心搏分类模型的训练样本的中心采样点的选取要一致。然后以导联心搏数据的中心采样点为中心,按照时间表征数据和预设数据采样频率,对导联心搏数据以设定数据量向两侧进行数据取样,得到导联的心搏分析数据。设定数据量和预设数据采样频率要与训练得到的心搏分类模型的输入数据的相关参数相匹配。
步骤130,将多组心搏分析数据进行数据组合,得到四维张量数据;
具体的,四维张量数据具有四个因子{B,H,W,C},其中因子B为批量数据、因子H为高度数据、因子W为宽度数据、因子C为通道数据;批量数据为多组心搏分析数据的组数。以上步骤均由预处理模块执行。
步骤140,对四维张量数据进行张量格式转换处理,将四维张量数据中的高度数据收缩为1,并对宽度数据进行压缩,输出为一维嵌入数据{B,1,W1,C1};
其中,因子W1为张量格式转换处理后的宽度数据、因子C1为张量格式转换处理后的通道数据;
具体的,此步骤由初步特征提取模块执行。初步特征提取模块的作用在于进行数据隔离和格式转换,便于输入不同格式的数据,连接后续不同的模型,为后续模型统一接口的格式初步特征提取模块中可以包含卷积运算,也可以使用傅里叶变换、小波变换等频域特征提取方法。初步特征提取模块能够进行初步的特征提取和输入张量的维度调整。通过初步特征提取模块可以缩短心搏时间序列的长度。通过缩短心搏时间序列数据长度,可以有效提高整个模型的性能。
四维张量数据可以有两种格式,在本实施例中是以第二种格式为例进行说明的。
第一种格式中,高度数据H对应于ECG系统的导联数量,通道数量C为1。
第二种格式中,高度数据H为1,通道数量C对应于ECG系统的导联数量。
上述第一种方式也是本专利的一个具体实施例。
下面以第二种格式为例,给出了初步特征提取模块的一种实现方式,卷积神经网络(Convolutional Neural Networks,CNN)方式。
本步骤具体可以通过设定多导联心搏数据的导联数量为四维张量数据的高度数据,然后按照设定步幅,对四维张量数据使用CNN进行多层网络卷积计算,得到高度数据收缩为1且宽度数据被压缩的输出张量。
在具体的执行过程中:
将导联数量4作为高度数据,数据量大小是1000个心电图电压值,设输入数据张量尺寸{B,H,W,C}为{128,4,1000,1}。那么,可以设计如图4所示的三层CNN模块结构。
第一层网络,CNN卷积核大小为3x3,卷积核数量为16,步幅为[2,2]。CNN之后连接批归一化和Relu模块。网络的输出为[128,2,500,16]。
第二层网络,CNN卷积核大小为3x3,卷积核数量为32,步幅为[1,1]。CNN之后连接批归一化和Relu模块。网络的输出为[128,2,500,32]。
第三层网络,CNN卷积核大小为3x3,卷积核数量为32,步幅为[2,2]。CNN之后连接批归一化和Relu模块。网络的输出为[128,1,250,32]。
其中,步幅为卷积核执行卷积运算时每次移动的数量。步幅为2的效果是卷积计算输出的高度和宽度均减半,从而达到维度调整的目的。
经过初步特征提取CNN模块之后,高度数据收缩为1,时间序列长度压缩为250,有利于网络训练性能的提高。
步骤150,将一维嵌入数据送入训练好的1D EfficientNet模型,在1DEfficientNet模型中经过多层逆残差模块、SE模块,再经过全局池化层和全连接层、softmax回归分类的计算,输出对应每组心搏分析数据的心搏分类信息。
具体的,EfficientNet是Google于2019年提出的最新网络模型,该网络的基本组件来自MobileNets V2结构。EfficientNet在二维图像上取得了优秀的分类性能,本申请对其进行适应性修改,将输入和网络内部的各个卷积核更改为一维方式的1D EfficientNet模型。
在本专利中,1D EfficientNet的输入为经过初步特征提取CNN模块处理的ECG数据,数据为一维格式{B,1,W1,C1}。1D EfficientNet输出为ECG的心搏分类信息,格式为{B,T},其中,B为批量数据,T为心电图的类别数量。这里所说的类别数量就是网络能够进行疾病分类输出的标签的数量。
在一个具体的例子中,网络能够识别[N,S,V]三种疾病,T就为3。此时,设定的B批量数据为4(4个病人数据)。那么,对于训练的时候任意输入的一组数据可能是这样的:
[[1,0,0]#第1个患者,N类型
[0,1,0]#第2个患者,S类型
[1,0,0]#第3个患者,N类型
[0,0,1]#第4个患者,V类型]
本发明实施例提供的1D EfficientNet模型结构示意图如图5所示,其中,DWConv为可分离卷积,MBConv称为逆残差结构。
在逆残差架构1x5卷积核包含有SE block结构。SE block全称为Squeeze和Excitation(Squeeze-and-Excite)模块,即压缩激励模块,该网络模块显式地建模特征通道之间的相互依赖关系。通过网络自学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征。
SE block结构如下,流程如下:
Squeeze操作。在空间维度上,将输入特征feature
进行压缩,输出维度为1×1×c
2,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配,它表征着在特征通道上响应的全局分布。
Excitation操作,它是一个类似于循环神经网络中门的机制。通过参数为每个特征通道生成权重,其中参数被学习用来显式地建模特征通道间的相关性。
在本申请中,将SE模块嵌入到MBConv结构。结构如图6所示,方框旁边的维度信息(例如cx1xw等)代表该层的输出。这里使用全局池化层(global average pooling,图中的global pooling)作为Squeeze操作。紧接着两个全连接(Fully Connected,FC)层组成一个Bottleneck结构去建模通道间的相关性,并输出和输入特征同样数目的权重。我们首先将特征维度降低到输入的1/t,然后经过ReLu激活(图中Sigmoid为激活函数)后,再通过一个Scale的操作来将归一化后的权重加权到每个通道的特征上。最后通过图5中标号为8的一个Fully Connected(FC)层升回到原来的维度。
这样做比直接用一个Fully Connected层的好处在于:
1)具有更多的非线性,可以更好地拟合通道间复杂的相关性;
2)极大地减少了参数量和计算量。然后通过softmax回归分类使用一个Sigmoid激活函数获得0~1之间归一化的权重,最后通过一个Scale的操作来将归一化后的权重加权到每个通道的特征上。
本方法通过将一维嵌入数据送入训练好的1D EfficientNet模型,输出对应每组心搏分析数据的心搏分类信息,即获得心搏分类结果。
在将一维嵌入数据送入训练好的1D EfficientNet模型之前要先训练1DEfficientNet模型,训练方法可以按照图3所示的步骤流程,以如下步骤执行。
步骤210,对作为训练样本的心搏时间序列进行导联心搏数据的数据标注,确定训练样本的导联心搏数据的中心采样点为预先确定的中心采样点;
在具体实现中,我们采用了训练集包含30万病人的1700万数据样本进行训练。这些样本是根据心电图分析诊断的要求对数据进行准确的标注产生的,标注主要是针对常见心律失常,传导阻滞以及ST段和T波改变,可满足不同应用场景的模型训练。具体以预设标准数据格式保存标注的信息。在训练数据的预处理上,为增加模型的泛化能力,对于样本量较少的分类做了小幅的滑动来扩增数据,具体的说,就是以每个心搏为基础,按照一定步长(比如10-50个数据点)移动2次,这样就可以增加2倍的数据,提高了对这些数据量比较少的分类样本的识别准确率。经过实际结果验证,泛化能力也得到了改善。
步骤220,将训练样本转换为预设标准数据格式进行存储;
步骤230,对格式转换后的训练样本进行数据切割、组合和转换,得到复合模型输入数据格式要求的训练样本输入数据;
步骤240,对训练样本输入数据进行轮循训练,训练收敛后,使用一定数据量的独立的测试数据对不同迭代次数训练而成的模型进行测试,选取测试精度最高的模型做为1DEfficientNet模型。
在一个实际训练过程使用了两台GPU服务器进行几十次轮循训练,训练收敛后,使用一定数据量的独立的测试数据对不同迭代次数训练而成的模型进行测试,再选取测试精度最高的模型。
其中,训练数据的截取的长度,可以是1秒到10秒。比如采样率是200Hz,以5s为采样长度,取得的设定数据量大小是1000个心电图电压值的一个片段,依据批量数据和导联个数N,进行数据转换,可得最终四维张量数据。输入数据全部经过随机打散才开始训练,保证了训练过程收敛;同时,控制从同一个病人的心电图数据中收集太多的样本,提高模型的泛化能力,即真实场景下的准确率。
本发明实施例提供的心搏分类结果的生成方法,通过对接收到的原始心电图的数字信号进行处理生成心搏时间序列,然后进行数据切割生成导联的心搏分析数据;将导联的心搏分析数据进行数据组合和格式转换处理,最后送入训练好的1D EfficientNet模型输出对应每组心搏分析数据的心搏分类信息。
图7为本发明实施例提供的一种设备结构示意图,该设备包括:处理器和存储器。存储器可通过总线与处理器连接。存储器可以是非易失存储器,例如硬盘驱动器和闪存,存储器中存储有软件程序和设备驱动程序。软件程序能够执行本发明实施例提供的上述方法的各种功能;设备驱动程序可以是网络和接口驱动程序。处理器用于执行软件程序,该软件程序被执行时,能够实现本发明实施例提供的方法。
需要说明的是,本发明实施例还提供了一种计算机可读存储介质。该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时,能够实现本发明实施例提供的方法。
本发明实施例还提供了一种包含指令的计算机程序产品。当该计算机程序产品在计算机上运行时,使得处理器执行上述方法。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。