APP下载

基于多尺度特征提取的多导联心跳信号分类

2021-09-19徐宇扬郝鹏翼

图学学报 2021年4期
关键词:导联集上特征提取

张 繁,尹 鑫,徐宇扬,郝鹏翼

(1.浙江工业大学计算机科学与技术学院,浙江 杭州 310023;2.吉林大学软件学院,吉林 长春 130000)

1 背景介绍

随着我国城市化进程的推进和生活条件的改善,心血管疾病在我国的发生率及死亡率逐步上升。心电图(electrocardiogram,ECG)作为一项简单、快速、非侵入式的检查方式,被广泛作为心血管疾病的初步检查手段。标准的心电图一般由12 条导联组成,每条导联以电信号的方式记录着心脏不同方向的跳动情况,从而综合反映心脏的健康状况。而每条导联又由若干个心跳波形构成,一个标准的心跳波形主要由P 波段、QRS 波群、T 波段组成,如图1 所示。这些波段以固定的顺序出现,记录着心脏的健康状况。若出现异常波形则表明心脏产生病变,如心肌梗死可产生ST 段压低、ST 段抬高、T 波倒置等异常波形,所以心跳波形对于分析心电图具有重要意义。然而,逐一分析心电图中的心跳波形是一项十分耗时、费力的任务,且对于医生的经验要求较高,还存在误诊的可能性。所以需要自动化的分析检测系统以辅助医生分析心电信号,从而做出更客观、更准确地判断。一般分3 步进行心跳信号分类:①心电信号预处理;②特征提取;③心跳分类。对于信号预处理,由于从患者身上采集的原始心电信号包含众多噪声,比如存在基线偏移、电力线干扰、肌电干扰等[1],所以获得干净、清晰的心电信号对于自动检测系统至关重要,许多研究者提出了不同的信号去噪方法。文献[2]通过设置不同阈值,采用离散小波变换的方法消除原始信号中的基线偏移和高频噪声,但会影响原始信号中的低频部分。文献[3]使用经验模态分解(empirical mode decomposition,EMD)和自适应均值滤波器的算法消除心电信号中的多种噪声,并能保持QRS波群特征的相对完好。对于特征提取与心跳分类,由于心跳信号之间的差异较小,所以设计能够提取有效、关键特征的提取器至关重要。文献[4]采用同步压缩变换的算法计算心跳信号的相位信息作为特征,然后使用支持向量机(support vector machine,SVM)分类器对4 种心律不齐进行分类。文献[5]利用基于多尺度能量和特征空间的方法来提取多尺度小波能量和特征值作为诊断特征,然后使用SVM分类器对多种心肌梗死进行分类。然而这种传统的,需要人为设计的特征提取方式不仅要求算法的设计人员对于心血管疾病有着充分的认识和理解,而且最终提取到的特征存在一定的人为主观性,且特征提取过程较为繁杂。所以近年来利用深度学习技术自动提取特征的方式开始兴起。文献[6]回顾了利用深度学习分析生物信号(包括心电信号)的53篇文章后发现,利用深度学习技术有着明显的优势。文献[7]利用一个 34 层的卷积神经网络(convolutional neural networks,CNN)自动提取特征后对心跳信号进行分类,最终结果优于6 位心脏疾病专家的平均表现。文献[8]设计了一个10 层端到端的CNN 对12 导联心电信号进行心肌梗死的分类。文献[9]将CNN 与长短期记忆网络(long short term memory,LSTM)结合起来,提取特征后利用全连接层对多种心律不齐进行分类。

图1 标准心跳示意图[10] Fig.1 Standard heart beat figure[10]

通过上述回顾可发现,多数研究者均使用单导联或双导联的信号来进行心跳分类[2-4,7-9,11-19],只有少数同时使用多导联信息[5,20-22]。文献[23]通过将多导联心跳信号特征进行堆叠后利用随机森林(randomized forests,RF)和多层感知机(multi-layer perceptron,MLP)对多种心律不齐进行分类。对于使用多导联信号的研究,其均分别提取各导联心跳特征,然后再进行特征融合,这样虽然能够获得较为全面的特征,但大大增加了算法的复杂度,并且在一定程度上忽略了不同导联心跳信号的相关性。此外,由于心跳信号有特征分布不均匀,变化幅度不一的特点,并认为文献[5,24]中多尺度的思路有助于全面挖掘出心跳信号中的特征信息,所以本文提出了一个基于多尺度特征提取的多导联心跳信号分类方法,将来自不同导联的心跳信号纵向堆叠后形成信号矩阵,利用3 种不同尺度的一维卷积提取特征,然后进行不同尺度的特征融合,最后利用全连接层进行分类。本文方法在公开数据库PhysioNet[25]中的MIT-BIH Arrhythmia Database,MIT-BIH Supraventricular Arrhythmia Database 和St Petersburg INCART 12-lead Arrhythmia Database 数据集上分别进行了心跳信号的“正常-异常”分类和心跳信号的多分类,对于“正常-异常”分类,其准确率、召回率、精确率、F1 值均达到了99%以上;对于多类别分类,其平均准确率、召回率、精确率和平均F1 值能达到99.5%左右。相较于以往的心跳分类研究,本文方法不仅利用多导联心跳信号组成信号矩阵以提取更加全面的特征,而且采用3 种不同大小的一维卷积核以提取多尺度的特征,最终达到现今最优秀的分类性能。

2 方法

本文提出了一个基于多尺度特征提取的多导联心跳信号分类方法(multi-scale net,MSNet),其能有效提取心跳信号中的特征并进行准确分类。对于一个心电信号样本,可分3 步进行处理:信号预处理、心跳特征提取、特征融合与分类,图2 为网络的整体结构。

图2 网络结构示意图 Fig.2 The overall structure figure of the network

2.1 问题描述

本文提出的心跳信号分类方法以接收多导联心跳信号堆叠矩阵作为输入,假设导联数量为l,单个心跳信号的长度为n,则输入矩阵为

其中,nclass为类别数量;oi=1 为该心跳信号属于类别i(i∈[1,nclass])。

2.2 方法

已知卷积网络结构是最常使用且效果优异的 特征提取器。而在卷积网络结构中,最核心的是其卷积层,凭借着局部连接和权重共享的思想,卷积操作能够有效降低参数量,加快计算速度的同时,拥有非常优秀的特征提取能力。本文心跳信号Ml×n的特点是宽度大于高度,即n>l,且属于时序信号,不适合使用二维卷积,所以采用一维卷积的方式提取特征。为了将原始信息投射到更高维度的特征空间以利于后续的多尺度特征提取,本文首先使用2个一维卷积块对输入矩阵Ml×n进行处理,得到特征矩阵F。由于心跳波形的生理特征,信息量分布不均匀,主要体现在QRS 波群上,并认为单一大小(单尺度)的卷积核无法提取全面的特征,而多种大小(多尺度)的卷积核可以较好地应对心跳波形的变化,有效提升特征提取能力。所以可用3 种大小的卷积核分别对F进行进一步的特征提取,对应于图2,路径A使用的卷积核大小为3,得到的特征向量为Fα,其维度为α×1;路径B使用的卷积核大小为5,得到的特征向量为Fβ,其维度为β×1;路径C使用的卷积核大小为7,得到的特征向量为Fγ,其维度为γ×1。

该研究中的一维卷积块由一维卷积层、批量标准化层、激活层和池化层组成,一维残差卷积块是串联2 个一维卷积块并添加残差连接[26]。图3 为一维卷积的具体流程,v和y分别为输入、输出矩阵中的具体数值,w为卷积核的权重,r和c分别为输入矩阵的行和列(若以第一个卷积层为例,则可以理解为堆叠导联数量和单个心跳信号的长度,即r=l,c=n)。输入矩阵在经过一维卷积后,输出矩阵的高度(行)r'为卷积核的数量,宽度(列)c'为:(K为卷积核的大小,即尺度;P为填充数量;S为步伐)。批量标准化[27]是神经网络训练中常用的手段,在神经网络的训练过程中,隐藏层的数据分布会发生偏移,从而导致模型收敛缓慢。所以在每一层使用批量标准化操作将数据分布偏移的现象进行一定纠正,避免梯度消失,使网络的训练更容易。本文使用ReLu 激活函数增加模型的非线性因素,最后使用最大池化过滤掉冗余特征,进一步降低模型的参数量。

图3 一维卷积示意图 Fig.3 One dimensional convolution process figure

2.3 特征融合

对心跳信号使用3 种不同大小卷积核,可分别得到3 种不同尺度的特征向量Fα,Fβ,Fγ。目前常用的特征融合方式主要为2 种:①将多个特征向量进行点对点的求和,形成新的特征向量,这种方式要求多个特征向量的维度完全一致,即融合前后维度保持一致,不会增加模型的参数量,对计算友好;②将多个特征向量按照某一维度进行拼接,从而得到新的特征向量,该方式仅需保证特征向量在拼接方向上的维度一致,且最大限度保留原始特征的相对独立性,缺陷是特征融合后维度增加。本文考虑到心跳信号的长度较短,且经过多层卷积后得到的特征向量维度较小,并且不同尺度特征向量的维度不完全一致,所以采用拼接的方式进行特征融合,最后将拼接后的特征向量作为全连接层进行最终的分类,融合特征可表示为

其中,符号⊕为向量拼接。

3 数据集及预处理

3.1 公开数据集介绍

本文采用MIT-BIH Arrhythmia Database (MIT_ ARR),MIT-BIH Supraventricular (MIT_SUP)以及St.Petersburg Institute of Cardiological Technics 12-lead Arrhythmia Database (INCART) 3 个公开数据集分别进行模型的训练与测试。其中,只有INCART 数据集有12 条导联数据(I,II,III,aVR,aVL,aVF,V1,V2,V3,V4,V5,V6),其余2 个数据集均仅有2 条导联数据,MIT_ARR 为II 和V1 导联,MIT_SUP 为ECG1 和ECG2(官方未说明具体导联)。3 个数据集在心跳总样本量、各类心跳样本量以及采样频率均有一定差异,见表1。MIT_ARR数据集包含48 个样本,每个样本的采样频率和采集时间分别为360 Hz 和30 min,本文使用数量相对较多的6 种类型心跳,具体为正常心跳(N)、室性早搏心跳(V)、右束支传导阻滞心跳(R)、左束支传导阻滞心跳(L)、房性早搏心跳(A)和起搏心跳(/),共计92 520 个心跳样本。MIT_SUP 数据集包含78 个样本,每个样本的采集频率和采集时间分别为125 Hz 和30 min,本文使用正常心跳(N)、室性早搏心跳(V)、室上性早搏心跳(S)以及孤立的QRS 伪影(|)4 种类型的186 564 个心跳样本。INCART 数据 集包含75 个样本,采样频率和采样时间分别为257 Hz 和30 min,使用正常心跳(N)、室性早搏心跳(V)、右束支传导阻滞心跳(R)和房性早搏心跳(A)4 种类型,共计165 174 个心跳样本。

表1 3个公开数据集介绍 Table 1 Introduction of the three public data set

3.2 预处理

本研究的预处理可分为3 步:基线校准、振幅归一化、心跳分离。

(1) 基线校准。心电信号在采集时会受到呼吸、移动等外部因素的影响,从而产生不同程度的基线偏移,所以本文采用中值滤波的方式对其进行矫正,图4 为基线校正的前后对比图,红色波形为原始信号,绿色波形为使用中值滤波后,可以在看到矫正基线的同时,不影响信号中其他特征。

图4 基线矫正前后对比图((a)原始信号(存在基线偏移);(b)基线矫正后;(c)基线矫正前后对比) Fig.4 Comparison between before baseline drift correction and after baseline drift correction ((a) Original signal (with baseline drift);(b) After baseline drift correction; (c) Comparison between before correction and after correction)

(2) 振幅归一化。不同数据集,不同导联中的信号数值范围有较大浮动,不利于后续的特征提取。所以本文使用文献[19]中的算法对原始心跳信号进行归一化。计算方式如下

其中,x为原始信号值;xp为处理后的信号值;min和max 分别为原始心跳信号中的最小、最大值;newmin 和newmax 分别表示归一化后信号值的最小、最大值,在本研究中,newmin 和newmax 为0 和1。

(3) 分离心跳。由于本文内容是对心跳信号进行分类,而公开数据集提供的数据为长时间采集的导联信号,所以需要从导联中分离出单个心跳。一般分为2 步:首先检测出信号中R 点的位置,然后设定单个心跳的长度即可分离出心跳。本文使用的3 个公开数据集均已利用文献[28]的算法较为准确地检测出R 点并标注其类别,根据其标注的相邻心跳的R-R 间隔时间,确定每个数据集的心跳长度。具体来说,MIT_ARR,MIT_SUP 和INCART 数据集中的心跳长度分别为230,150 和160。图5 为3个数据集的单心跳示意图。

图5 单个心跳示意图 Fig.5 Figure of a single heartbeat ((a) MIT_ARR; (b) MIT_SUP;(c) INCART)

4 实验与讨论

4.1 评价标准

为了充分评估模型的性能,可使用以下4 个通用的指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)以及F1 值(F1_Score)。其具体计算方式为

其中,TN,TP,FN,FP分别为真阴性、真阳性、假阴性、假阳性。值得注意的是,在心跳信号多分类任务中,对于特定类别的心跳,只需计算其召回率、精确率以及F1 值,然后通过加权平均计算上述指标的平均值,可更好地综合评价模型性能。以平均召回率为例,即

其中,Recalli为i类别的召回率;Wi为i类别的样本量占总样本量的比例。

4.2 实验环境

本文采用了3 个公开数据集,为了保证实验结果的准确性和可信度,采用五折交叉验证的方式进行结果评估,即对于每个数据集,可将所有样本平均分为5 份,并且保证每份的各类样本数量比例一致,每次选取其中4 份作为训练集,一份作为验证集,重复5 次,最后将平均分数作为模型的评价指标。为了加快模型训练时的收敛速度,本文将学习率调整为余弦衰减[29]的方式,即

其中,Lre为当前训练轮次的学习率;e为当前训练轮次;E为训练的总轮数;Lri为初始学习率。

本文所有实验均在Linux 平台上借助深度学习框架PyTorch 完成,硬件具体配置为:英特尔9 900 K处理器,英伟达2080Ti 显卡以及32 GB 内存。

4.3 心跳信号的“正常-异常”分类

本实验将3 个公开数据集的心跳数据分为正常与异常心跳2 类。数据中除正常心跳外其他类型均认定为异常心跳。对于每个数据集均使用了3 种方法进行实验。方法1 采用文献[9]方法,其将每个心跳信号分为3 段,对于每一段首先使用一维卷积提取特征,然后将各段特征拼接后输入LSTM 网络,进行心跳最终的分类。方法2 采用本文多尺度特征提取网络结构,将单个心跳信号作为网络的输入,简称MSNet (单心跳)。方法3 是在方法2 的基础上,将网络输入改为多导联心跳信号堆叠矩阵Ml×n,简称MSNet (堆叠心跳)。表2 为3 种方法在公开数据集上进行“正常-异常”分类的结果。整体而言,3 种方法在3 个数据集上均取得较为优异的表现,方法1 在数据集MIT_ARR 上准确率达到了98.59%,召回率、精确率、F1 值分别达到了97.58%,97.59%,97.58%,在数据集INCART 上准确率能够达到99.07%。方法2 较方法1 在3 个数据集上均有明显的提升,在MIT_SUP 数据集上,准确率提升了1.98%,召回率提升了2.01%,精确率提升了11.82%,F1 值提升了6.6%。获得明显提升的原因是方法1 中使用的单一尺度的卷积无法很好的适应不同类型心跳信号的变化,而方法2 使用3 种不同尺度的一维卷积可以充分提取心跳信号中的特征,进而提升分类效果。方法3 相较于方法2 也有一定程度的提升,在数据集MIT_ARR 上准确率提升了0.86%,召回率提升了2.11%,精确率提升了0.89%,F1 值提升了1.51%。提升原因是本文方法在利用多尺度卷积提取心跳信号更全面特征的同时考虑到不同导联间心跳信号可能存在关联性,于是使用多导联心跳信号堆叠矩阵作为模型的输入,最终获得了最为优异的分类表现。此外,方法1 和方法2 对于MIT_ARR 数据集中不同导联的心跳信号分类表现存在一定差异。2 种方法对于II 导联心跳信号的分类效果优于V1 导联心跳信号的分类效果。图6 为3 个数据集中各导联的质量情况。可以看出在MIT_ARR 数据集中,II 导联质量要明显优于V1 导联质量,II 导联波形清晰,无较大噪声,而V1 导联波形杂乱,有明显噪声。而在MIT_SUP 与INCART 数据集中,2 条导联的质量情况相差不大,虽然有一定低频噪声,但整体波形均较为清晰。所以认为方法1 和方法2 对MIT_ARR 数据集中V1导联心跳信号分类效果下降是因为其信号质量下降明显。但即使在信号质量较差的情况下,方法2仍能获得98.66%的准确率,说明其拥有较为优秀特征提取能力和抗干扰能力。

表2 3种方法在公开数据集上的“正常-异常”分类表现 Table 2 Performance of three methods on public data set to distinguish“Normal-Abnormal”

图6 3 个公开数据集中导联情况((a) MIT_ARR 数据集中II,V1 导联情况;(b) MIT_SUP 数据集中ECG1,ECG2导联情况;(c) INCART 数据集中II,V1 导联情况) Fig.6 Leads in three public data set ((a) Lead II and V1 in MIT_ARR data set;(b) Lead ECG1 and ECG2 in MIT_SUP data set;(c) Lead II and V1 in INCART data set)

4.4 心跳信号的多分类

通过实验可知本文方法对于心跳信号二分类拥有优异的性能。另使用本文方法对3 个数据集中的心跳信号进行多分类,见表3~5。

表3 MIT_ARR 数据集多分类结果 Table 3 Performance of multi-type classification on MIT_ARR data set

对于MIT_ARR 数据集,表3 对其样本量较多的6 类心跳进行了分类,其判别正常心跳的召回率为99.72%,精确率为99.63%,F1 值可达99.67%。

对于MIT_SUP 数据集,表4 对4 类心跳进行分类,其中对于正常心跳判别较为优秀,召回率达到了98.98%、精确率为98.78%、F1 为98.88%,但对于室上性早搏心跳、室性早搏心跳和孤立的QRS伪影判别效果不够理想,其原因可能为:①原始数据采样率仅为125 Hz,明显低于MIT_ARR 的360 Hz和INCART 的257 Hz,蕴含的信息量骤减,使模型无法提取有效的特征以很好的区分不同类型心跳;②数据集中所有样本的2 条导联可能不一致,即对于第m份样本,其2 条导联可能为I 和II,而对于第n份样本,其2 条导联可能为V1 和V2,不确定的导联堆叠不利于模型提取有效特征。

表4 MIT_SUP 数据集多分类结果 Table 4 Performance of multi-type classification on MIT_SUP data set

对于INCART 数据集,表5 对其4 类心跳进行分类,其中在正常、室性早搏、右束支传导阻滞心跳的判别上表现优异,对于正常心跳,召回率为99.83%,精确率为99.90%,F1 值为99.86%。

表5 INCART 数据集多分类结果 Table 5 Performance of multi-type classification on INCART data set

4.5 讨 论

从上述心跳信号的“正常-异常”分类与多分类的结果看,本文方法在3 个数据集上均取得了优异的表现。表6 为近年在心跳分类方向上的方法及其性能表现。文献[17]将一维的心跳信号通过算法转换为二维的心跳图片,然后对心跳图片进行数据增强,最后使用二维卷积提取特征并分类,在MIT_ARR 数据集上达到了99.05%的准确率,但其召回率仅为97.85%。文献[18]设计并实现了一个31层的一维残差网络来对MIT_ARR 数据集中的心跳信号分类,其能达到较高的准确率(99.06%),但召回率不够理想。文献[19]通过独立成分分析(independent component analysis,ICA)与主成分分析(principal component analysis,PCA)提取心跳信号中的特征,最后使用SVM 分类,在MIT_ARR 数据集上获得了98.63%的准确率。文献[23]首先计算出各条导联中心跳信号的10 种特征,利用堆叠的方式进行特征融合,然后利用PCA 对特征矩阵进行降维,最后利用RF 和MLP 组成级联分类器对上述特征进行分类。其在MIT_SUP 和INCART 数据集上均取得了优异的表现,其中在INCART 数据集上的表现要略微高于本文方法。其方法有效性的关键在于通过特征融合的方式充分利用了多导联心跳信号的特征。而本文的方法同样使用多导联心跳信号,并且利用一维残差卷积的方式自动提取特征并控制参数量,使用全连接层进行最终的分类。总之,本文方法在大大简化处理流程的同时取得了优异的分类性能。

表6 近年心跳分类研究总结 Table 6 Conclusionof the recent years’ heartbeat researches

5 结束语

本文提出了基于多尺度特征提取的多导联心跳信号分类方法(MSNet)。方法流程可分为:心跳信号预处理、特征提取、特征融合与分类。在MIT_ARR,MIT_SUP 和INCART 3 个心电公开数据集上进行了充分的实验,对于心跳信号“正常-异常”分类,在MIT_ARR 和INCART 数据集上准确率、召回率等指标均达到99%以上。对于心跳信号的多分类,在MIT_ARR 和INCART 数据集上的平均准确率、平均召回率等指标也达到99.5%左右。相较于其他方法,本文方法的优势在于:①充分考虑并利用多导联信息;②只采用少量信号处理手段,一定程度上简化了预处理流程;③采用3 种不同大小的一维卷积自动提取心跳信号特征,无需凭借人为主观因素设计特征提取算法,并且克服了单一大小卷积提取特征不全面的劣势。未来将继续研究如何缓解各类心跳样本分布不均的问题,提高模型对极少样本量类别的判别效果,使模型能够达到临床应用的标准。

猜你喜欢

导联集上特征提取
GCD封闭集上的幂矩阵行列式间的整除性
回旋支闭塞引起孤立Ⅰ、aVL导联ST段抬高型心肌梗死2例并文献复习
基于互信息的多级特征选择算法
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
18导联动态心电图的应用价值研究
基于Daubechies(dbN)的飞行器音频特征提取
多类运动想象脑—机接口导联选择方法
急性心肌梗死冠脉造影与心电图相关性研究