谢佳静 魏守水* 江兴娥 王春元 崔怀杰 刘澄玉
1(山东大学控制科学与工程学院, 济南 250061) 2(山东交通大学信息科学与工程学院,济南 250357) 3(东南大学仪器科学与工程学院, 生物电子学国家重点实验室,南京 210096)
心血管疾病已经成为人类死亡的首要原因。随着穿戴式技术的不断进步,使心电信号长时间连续监控成为可能。动态心电图是一种可以长时间连续记录并分析人体自然状态下心电图变化的方法,一般24 h内可连续记录多达约10万心拍的心电信号,可以提高对非持续性心律失常尤其是心律失常及短暂的心肌缺血发作的检出率,扩大了心电图临床运用的范围。而如此巨大的数据量会造成数据灾难,故心电波形的自动筛选成为心电监控的必要条件,是可穿戴设备中重要的研究热点[1-2]。一个完整的心电信号如图1所示,其中T波是心电图的5个主要波之一,反映心室复极化过程,其形态主要由心室电活动的空间顺序决定,并受解剖学、病理学等多重因素影响,是心肌缺血、急性心肌梗死、急性心包炎以及脑血管意外等病理的关键指标[3-6]。由于T波幅值较小且形态复杂,实时监护是在不影响受试者正常活动的情况下完成的,往往伴随着复杂的噪声和干扰,这给T波的检测与分类带来了很大困难。
图1 一个完整的心电周期Fig.1 A complete ECG cycle
目前,已有许多学者在T波的检测识别方面做了相关工作。Boix等[7]使用小波变换来检测T波电交替,这种方法需要针对不同形态的T波来设置不同标准的阈值来进行检测,但是由于T波形态变化复杂,该方法中的阈值设置只适用于少数形态T波的识别,应用范围受限。Vila等[8]建立了一个关于T波的数学模型,利用该模型检测T波并完成T波的分类,但这种数学模板检测法极易受噪声干扰和T波形态变化的影响,导致模型泛化性能较差。王云鹤等[9]提出了一种改进的算法检测异常T波。首先去除心电信号中的QRS波群,再利用小波变换方法获取剩余心电信号的模极值对,从中提取出T波形态模极大值的个数与正负顺序作为特征输入支持向量机,对6种不同形态的T波进行分类,最终对异常T波的检测准确率达到了96.38%。上述算法虽然在区分正常、异常形态的T波时准确率较高,但是多基于静态数据且未列出对每一类异常形态的T波的分类结果,导致模型泛化能力较差。Hadjem等[10]设计了一种基于集成分类器的算法来检测异常T波,该方法将机器学习中的决策树、逻辑回归及支持向量机等算法融合构成集成分类器。首先检测QT间期的起止点并提取QT间期的形态特征,然后将其输入集成分类器来判断T波形态,经欧盟ST-T数据库验证,算法分类准确率为92.54%。徐明芳等[11]将T波形态分为5类。首先基于当前RR间期的长度,用滑动搜索窗的方法确定了T波终点和T波峰点,然后利用ST段起点与T波峰值点这两点间的拟合直线和信号差值[12],当差值达到最大时确定了T波的起点,最后基于决策树思想,使用T波幅值、T波峰值、T波极大值点的位置和时间等特征参数来区分5种不同形态的T波,经欧盟ST-T数据库验证,最终测试组的分类准确率为91.8%。该算法主要是基于规则形态下的T波检测与分类,对信号质量有较高的要求。Song等[13]采用基于主成分分析、阈值法、线性回归和符号法的综合方法,对T波形态进行分析,用A、B、C、D、E等5种符号表示T波的异常形态,经欧盟ST-T数据库验证,T波形态分析准确率最终在92%。
以上基于人为特征的算法大大影响了算法的鲁棒性,并且算法识别准确率也遇到了瓶颈。近年来,深度学习实现了机器自主学习式的特征表示方法[14],可以自行提取特征中有价值的信息进行自身调优与训练,最终得到一个泛化性好且鲁棒性强的模型结构。1998年,Lecun等[15]提出一个卷积神经网络(convolutional neural network, CNN)模型,采用基于梯度的反向传播算法,对网络进行有监督式的训练,建立并完善了各层的设定与功能。2001年,AlexNet模型的问世使CNN成为了学术的焦点,并在特征模板识别方面取得了很好的成绩[16]。由于弱化了预处理操作,减少了整个系统流程的复杂性,因此成为了特征提取和分类中最流行的方法之一。刘明等[17]提出了一种基于CNN的T波形态分类方法。首先对ECG信号进行去噪并识别R波峰,然后利用R波峰来确定一个T波的候选段,最后将一维T波候选段输入CNN,对5类形态的T波进行分类,取得了良好的分类效果。但算法基于单数据库完成,其鲁棒性未做进一步的验证。
图2 T波常见的6种形态Fig.2 Six common forms of T-wave
T波形态主要从方向、振幅、形状等3个方面进行分析[13]。本研究将T波常见形态分为6类,如图2所示,分别是正常、高耸、倒置、双峰、双极性和低平。在T波标注过程中,由于数据库中提供的关于T波形态分类信息有限,所以分类标注步骤由两位临床专家独立完成,对于两位专家有异议的地方,则由第3位专家判断标注。针对这6类形态的T波,提出了一种基于改进的频率切片小波变换和CNN的T波形态识别算法。首先使用拟合抛物线方法提取R波波峰位置,然后使用改进滑动窗面积法提取T波终点位置,从而获取包含R波与T波的片段。对片段进行改进频率切片小波变换,得到信号片段的时频图像,通过CNN完成T波的形态分类。本研究使用改进的滑动窗面积法,有效提高了T波的检测准确率,优化了信号的预处理部分。并且,与以往人工提取T波的时域特征并用机器学习算法对其分类的方法相比,使用改进的频率切片小波变换可以得到T波的时频特征图像,CNN能自动提取输入图像的特征信息。通过在欧盟ST-T数据库和QT数据库上验证,所提出算法对6类常见形态的T波有良好的分类效果和较好的鲁棒性。
图3 本研究算法流程Fig.3 The flow chart of our proposed algorithm
算法流程如图3所示,主要包括数据预处理和分类两部分。预处理阶段包括对原始信号滤波去噪、定位R波峰和T波终点的位置、获取T波相关片段并对其做频率切片小波变换,这一阶段生成了T波候选片段的二维时频特征图像;分类阶段包括搭建CNN模型,并输入时频图像训练并测试网络,完成T波的分类。
选用两个公开数据库:欧洲ST-T心电数据库(European ST-T Database)和QT数据库。欧洲ST-T数据库由欧洲心脏病学会(European Society of Cardiology)开发,用来评价ST段和T波的检测算法的性能。数据库共包含来自79个受试的90个ECG信号记录,每个记录包含2个导联信号,持续时间长度为2 h,采样率为250 Hz,由两位心血管疾病专家分别给ECG信号的每个节拍做标注,并记录ST段形态数据。QT数据库按照MIT-BIH数据库标准格式设置,包括105个时长15 min的双通道动态心电记录。这些心电记录来源于MIT-BIH心律失常数据库、欧洲ST-T数据库等其他心电数据库,并以250 Hz的采样频率进行了重采样。
在欧洲ST-T数据库中选取并标注12 830个包含R波与T波的片段,其中6类形态的T波片段数量分布如表1所示。在QT数据库中选取了3 000个片段。
表1 不同形态T波的数量Tab.1 The number of T-wave of different shapes
1.2.1心电信号去噪
心电信号受工频干扰、基线漂移等噪声影响,本研究选用了0.5~45 Hz的巴特沃斯带通滤波器对信号进行滤波[18]。
1.2.2R波峰与T波终点识别
心电信号R波定位方法相对成熟。实验采用拟合抛物线的方法,该算法综合考虑信号的幅度和曲率半径,识别率高且抗干扰能力强[19-20]。由于T波形态变化多样且存在个体差异,所以T波起止点算法选用改进的滑动窗面积法(improved sliding window area, ISWA)[21]。ISWA是通过设置一个滑动窗口并计算滑动窗口内ECG波形的面积来检测T波起点和终点。当预先固定的搜索范围内滑动窗口的面积达到最大值时,当前滑动窗口内的T波起点/终点被检测到。设置滑动窗宽为w=0.128 s,滑动窗口的滑动起止时间t由当前心动周期中R波峰的位置及当前RR间期间隔时间的值来确定。在滑动窗口[t-w]内,计算波形面积At,如图4所示,At为阴影部分面积,定义为
(1)
(2)
当t与T波终点重合时,At将达到其最大值。图4是使用ISWA算法来定位欧盟ST-T数据库中“e0103”记录的T波终点,定位结果如图4所示。
图4 ISWA原理Fig.4 Schematic diagram of ISWA
在T波的异常形态中存在着“高耸”和“低平”,表现为T波幅度相对正常幅值过高或过低,在生理上极有可能是由电解质异常或心肌缺血的症状引起的。在临床诊断中,医生在区分正常T波和以上这两种异常形态T波时,是通过观察一个完整心动周期中T波相对R波的峰值大小来判别,因此研究选择保留R波与T波的片段。所选的T波截取片段的起止点如下:
(3)
式中,Rpeak(i)为第i个R波峰的时间,Tend(i)为第i个T波终点的时间。
在定位片段起点时,基于对欧洲ST-T数据库中R波的起点与峰值间隔的统计,选择R波波峰前0.04 s的点作为R波起点,在定位片段终点时,基于ISWA算法对T波终点的识别与实际T波终点的误差分析,选择T波终点后0.05 s的点作为T波终点。
生理信号的时频分析能准确地定位体征信号在时域和频域上的关系。使用广泛的时频分析方法包括短时傅里叶变换(short-time Fourier transform, STFT)、Wigner-Ville分布(Wigner-Ville distribution, WVD)和小波变化(wavelet transform, WT)。STFT虽然算法简便容易实现,但窗口设置复杂,难以获得精确结果;WVD可以使图像有很好的时频聚焦性,但过程中的交叉项极大干扰了时频分析效果;CWT可以完全覆盖频域,具有“变焦”特性,可实现高分辨率,但是存在很高的冗余度[22]。2010年,Yan等[23]结合并对比STFT、WVD和CWT的特点,首次提出了频率切片小波变换(frequency slice wavelet transform,FSWT)。实验选用了Luo等[24]于2017年提出的改进的频率切片小波变换(modified frequency slice wavelet transform, MFSWT),其原理如下:
(4)
(5)
q为信号频率变换的函数,其形式为
(6)
(7)
相比传统的时频分析技术,MFSWT不需要设置复杂参数,可更多地显示信号的时频信息。实验采用0~36 Hz的频段进行观察,时频图的横坐标即为信号片段的采样点[25]。6类形态T波对应的典型MFSWT时频特征图如图5所示。
图5 截取的6种T波相关片段及其时频特征图像。(a)正常T波及其对应的时频图;(b)倒置T波及其对应的时频图;(c)高耸T波及其对应的时频图;(d)双极性T波及其对应的时频图;(e)低平T波及其对应的时频图;(f)双峰T波及其对应的时频图Fig.5 Six T-wave related fragments and their TF characteristic images. (a) Normal T-waves and its TF diagram;(b) Inverted T-wave and its TF diagram;(c) Peak T-wave and its TF diagram; (d) Biphasic T-wave and its TF diagram;(e) Low-level T-wave and its TF diagram;(f) Notched T-wave and its TF diagram.
为了使最终的分类模型的泛化能力更具说服力,实验在划分训练集与测试集时基于两种规则:一是基于心拍,将每一类T波数据随机划分为训练集与测试集;二是基于样本,将每一类T波数据以不同病人为基础,随机取一部分病人的数据做训练集,剩余病人的数据做测试集。
研究使用以上两种规则进行两种独立实验。在进行基于样本的实验时,每一类T波的病人样本数目相差较多,且样本数目分布不平衡,如表2第2列所示。由于存在个体差异和类间数据不平衡的问题,可能导致少数类训练集与测试集的数据特征相差较大,影响分类准确率。为了解决上述问题,实验采用经典的过采样SMOTE算法[26],对部分样本少的数据进行扩充,通过在同类邻近样本点连线上利用k近邻的方法进行随机差值的方式来进行样本扩充。本次扩充采用了2个最近邻,即k取值为2,最终扩充完的样本数如表2第3列所示。其中,对正常类选取了原样本中的24个样本,倒置样本不变,对剩余类别的训练集样本扩充1倍而测试集不作扩充。表2中第4列为扩充完的训练集。
表2 训练与测试的样本数量Tab.2 Number of training and testing samples
图6 针对T波形态分类搭建的卷积神经网络模型Fig.6 Neural network model for T-wave morphological classification
另外,使用欧洲ST-T数据库中的数据做训练集,使用QT数据库中的数据做测试集作为第3种实验,即基于QT数据库的实验。
利用Matlab R2017b中的神经网络工具箱,搭建了一种自动分类T波形态的CNN模型。
1.6.1CNN模型搭建
CNN是一种基于BP神经网络并对其进行了有益改进的网络[27],通过高效处理图片的二维局部信息来提取图片特征,是目前图像特征提取最好的算法之一。CNN结构有3个特点:稀疏连接、权值共享以及多特征图。这使网络结构愈加近似于实际的生物神经网络,在使网络模型复杂度降低的同时,也降低了网络在特征提取和分类过程中数据重构的复杂度。针对T波形态分类而搭建的CNN模型,从功能上可以分成T波形态特征提取和T波分类两部分。第1部分由卷积层和最大池化层组成,其中卷积层能增强图像特征并降低噪声,该层的输出经ReLU函数后输出特征映射;最大池化层通过对输入图像进行下采样,能够减少特征参数并保存有效信息,从而达到一个二次特征提取的效果[28]。第2部分Softmax层对T波进行形态分类,并输出分类结果。模型共有12层,如图6所示。
具体设置为:首先获得输入图像的尺寸,将其作为输入层的一维矩阵;在第1个卷积层中设置16个5×9的卷积核,再设置线性整流层和最大池化层;第2个卷积层中设置32个5×9的卷积核,第3个卷积层中设置64个5×9的卷积核,经过线性整流层和最大池化层后输入输出层的计算结果。网络中设置了3次特征提取部分,让网络对数据识别有更高的畸变容忍能力。由于T波形态共有6种,所以全连接层中参数设为6。
1.6.2结果评价方法
由于数据库中双峰、低平等异常形态T波相比正常T波来说样本记录量要少很多,所以获取的片段数据量相对较少。考虑到数据平衡问题,同时为了防止出现过拟合,使用3折交叉验证来评价模型。为了验证MFSWT能提高T波的分类精度,做了对照实验。如图6所示,获取T波相关片段后,不对片段做MFSWT,而是直接将其以波形图像形式保存下来,然后将波形图像输入CNN模型进行训练与测试。实验结果评价指标为准确率(accuracy)和F1测度。
图7 准确率(上)和损失率(下)与迭代次数的关系Fig.7 Relationship between training accuracy (the top), loss (the bottom) and the number of iterations
观察模型训练中准确率与迭代次数的关系,为了使CNN模型在训练结果好的同时又不过拟合,设置epoch为7,训练过程如图7所示,黑色虚线表示训练集随迭代次数的变化。当训练精度比较高且趋于稳定时,训练停止。设置训练参数时,开始用默认参数设置,根据每次分类结果更改参数,最终CNN模型中的参数设置如表3所示。
表3 CNN模型中参数设置Tab.3 Parameter setting in CNN model
实验平台:计算机处理器为Intel(R) Core(TM) i3-4130 CPU @ 3.40 GHz,Win7 64位操作系统;算法平台:Matlab 2017b。
基于心拍的实验,所使用的每一类形态的T波图像训练集与测试集的数量如表4所示。
表4 训练与测试的图像数量Tab.4 Number of training and testing images
时频图像与波形图像的3折测试结果如表5所示。由表可见,对时频图像的T波分类准确率集中在95%~99%之间,F1测度大多在96%~99%之间;3次实验得到的平均准确率为97.34%,平均F1测度为96.97%。对波形图像的T波分类准确率集中在91%~97%之间,F1测度大多在89%~95%之间;其中,对正常T波的分类准确率较低,数值范围在82%~84%之间。3次实验的平均分类准确率是92.14%,平均F1测度是88.35%。MFSWT+CNN实验与仅CNN实验中3折平均结果的混淆矩阵如图8所示,其中的纵坐标表示真实标签,横坐标表示预测标签。
由表5可见,对于时频图像或波形图像,3次实验分类的准确率和F1测度数值的变化范围较小,说明CNN模型有较好的鲁棒性。与对比实验的分类结果相比,MSFWT+CNN算法的分类准确率提高了5%,F1测度提高了8%。这表明针对T波搭建的CNN模型,对信号片段做MFSWT后的时频特征相比时域上的特征对区分6类形态的T波更有效。
表5 基于心拍实验的分类结果Tab.5 Classification results of experiment based on heart beats
图8 测试结果的混淆矩阵。 (a)MFSWT+CNN;(b)仅CNNFig.8 Confusion matrix of the test set′s result. (a)MSFWT+CNN;(b)Only CNN
基于样本的实验分类结果如表6所示。3次实验平均测试准确率为84.8%,平均F1测度为82.29%,相比于基于心拍的测试结果来说分类效果较差,这可能是由于数据库病人样本数目有限,并且样本之间存在个体差异,导致CNN在训练时学习的种类较少,造成分类效果相对较差。
按照上面所述算法,在QT数据库中选取了3 000个片段,并得到其时频图像。使用欧洲ST-T数据库的数据训练CNN模型,用QT数据库的数据做分类测试,本研究列出了3次测试结果,如表7所示。由表可见,T波高尖形态的分类准确率与F1测度相对较高,这可能是因为高尖类型的时频特征更加明显,CNN更好地学到了这一类型的特征,所以分类结果较好;而倒置、双极性与低平形态的分类结果较差,这可能是两个数据库中这几类的样本个体差异较大的原因。
表6 基于样本的T波分类结果Tab.6 T-wave classification results based on samples
表7 QT数据库的测试结果Tab.7 Test results of QT database
本研究使用MFSWT得到了心电信号中T波候选段的时频图像,并搭建了具有12层结构的CNN模型,对6类形态T波的时频图像进行分类识别。
从表5看出,在用同一种模型处理相同像素的图像的情况下,T波时频图像的分类结果要优于波形图像。这表明,通过使用MFSWT,6类T波分类准确率都有所提高,其中正常形态的平均分类准确率从80.87%提高到了96.2%,证明了MFSWT的应用有助于提高分类的精度,这是因为信号的时频信息比时域信息更具有区分性。从对MFSWT+CNN实验分类的混淆矩阵中可以看出,在误分类的情况中,正常形态T波被分类为倒置T波的数量较多,同时倒置T波被分类为正常T波的个数也较多。推测出现这种情况的原因可能是时频表达图像侧重展示信号波形的能量,所以训练得到的模型对信号的相位不敏感,导致区分正常和倒置这两类时较易出现误判。
图9 3种实验结果对比Fig.9 Comparison of three experimental results
从表6中看出,基于样本实验的整体分类效果略逊于基于心拍实验的分类效果,主要原因有两个:一是在基于心拍的实验中随机选择样本中的数据来训练,由于样本的多样性有限,所以极有可能在训练数据中包含了绝大部分样本的T波数据,导致测试集和训练集的数据大都来自同一个样本,它们之间的时间相关性使得分类准确率较高。二是因为数据扩充原则上只扩充了训练集,这在一定程度上解决了分类数据不平衡的问题,但未能解决个体差异性带来的影响。其中,高尖形态分类准确率较高是因为其时频特征明显且在个体间差异较小。而双极性和倒置这两类分类准确率较低,原因是这两类T波在不同样本间的特征差异性较大。另外,当双极性类别负极幅值绝对值较大而正极幅值绝对值较小时,其在时频图像中的能量分布与倒置类别相似,此时两类T波极易混淆,导致其分类准确率低。同样,在表7中,倒置与双极性的分类结果较低,这是由于QT数据库中数据与欧洲数据库存在差异性,所以分类效果相较基于心拍的实验结果略差。但是从评价指标来看,6类形态分类结果分布较均匀,都在81%以上。基于上述3种实验的分类结果如图9所示。可以看出,3种实验分类的准确率都在84%以上,说明了CNN模型的泛化性能较好。
将基于心拍的实验分类结果与前人文献对T波分类的结果进行对比,如表8所示。对比可知,在将T波形态分为6类的情况下,本研究的分类准确率较高。
表8 本方法与其他方法的结果对比
实验与Hadjem、徐明芳、Song等在3篇文献中所用的数据库皆为欧盟ST-T数据库,王云鹤的文章中使用了QT数据库。其中,Hadjem提取T波的4种特征,使用决策树C4.5对3类形态的T波进行分类;徐明芳等提取T波的6类形态特征,并用决策树思想对5类形态的T波进行分类;Song等应用多种统计学方法分析T波的形态,并对6类形态T波进行分类。上述3种方法都是在时域上对T波进行分析,而本研究的算法使用了MFSWT这种时频分析技术,在时频域上分析T波。王云鹤等对ECG中的QRS波群进行检测并将其消除,对ECG剩余部分做小波变换并提取模极值对,最后将其作为特征输入SVM进行分类。这种算法虽然同样用到了时频技术,但仍然需要手动设置阈值和提取特征。实验结合了MFSWT与CNN,可自动提取T波的有效特征并对其分类。另外,为了验证网络的实用性能与泛化性能,基于欧洲ST-T数据库,分别做了基于心拍与基于样本的分类实验,并在QT数据库上做了测试,结果表明模型的泛化性能较好。与前人的T波分类工作相比,本研究算法的分类精度都有了提高,原因分析如下:首先,在T波候选段的选取中,将R波包含在了片段中。这是由于在临床上判断T波幅值是否异常时,需要将其与同导联中R波的幅值对比来判断。在R波的参照下,不同形态T波的差异性特征被捕捉到,并作为分类依据之一,这在临床上也有重要的意义。另外,传统的T波分类算法在提取特征时,都是人为手动操作,这些人工提取特征方法的不确定性在一定程度上损失了原有的波形特征信息,并使得实际应用时识别的鲁棒性差,影响分类效果。
已有研究证明[14,17,23-24],基于MFSWT的时频分析能准确地定位生理信号在时域和频域上的关系,精确地呈现T波候选段的时频能量分布特征;而深度学习中的CNN包括众多隐含层的网络结构,相比传统机器学习具有更好的表达能力与特征融合能力,在图像识别与分类中表现良好。本研究针对性地构建了12层CNN网络,对时频图像进行特征提取与特征分类,获得较高精度与鲁棒性的分类结果。这一过程可以应用在穿戴式医疗的信号预处理部分,具有重要的临床意义与应用价值。这种研究方法同样可以应用到其他生理信号的分析中,为生理信号特征提取提供了一种新思路。
本研究中仍然存在一些不足。首先,由于欧盟ST-T数据库中不同形态T波分布的样本量不均衡,某些异常T波样本量较少,这导致图像数据集个数仍然比较有限。另外,实验的重点在于T波形态的识别,一个重要的步骤是获取T波的相关片段。为了准确获取T波候选段,在检测到R波峰和T波终点位置后,实验选择包含R波峰的T波片段。但是对于幅度小且形态变化多样的T波来说,其终点的准确定位仍然是一个难点。在下一步工作中,准备在扩大心电数据集的基础上,研究基于数据驱动的T波交替与检测,做到不受T波形态变化的影响而准确定位识别T波,并实时测试心电数据,优化模型,使之具备更好的泛化性能,以应用于穿戴式实时心电监护中。
针对6种不同形态的T波进行特征提取并分类,本研究提出了一种结合MFSWT和CNN的新算法。实验使用了欧盟ST-T数据库中46路信号的数据,实现T波分段,得到T波片段的二维时频特征能量图,并以此图像为数据集,对CNN进行训练与测试,分类准确率达到了97.34%。基于心拍和样本数据分类实验,在QT数据库上做了测试,得到了较好的分类效果。这证明,该算法有较好的鲁棒性和实用性。实验结果适用于多种生理信号的分析(譬如心音信号、脉搏信号等),在医学图像分析领域也有一定的指导意义。
(致谢:感谢实验室工作人员尚海霞、马彩云、张亚涛、刘飞飞在研究中给予的帮助)