基于改进MFCC特征和卷积递归神经网络的心音分类
具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI人工智能
心音分类在心血管疾病的早期发现中起着至关重要的作用,特别是对于小型初级卫生保健诊所。尽管近年来心音分类取得了很大进展,但其中大多数都是基于传统的分段特征和基于浅层结构的分类器。这些传统的声学表示和分类方法可能不足以表征心音,并且通常由于复杂多变的心脏声学环境而导致性能下降。在本文中,我们提出了一种基于改进的梅尔频率倒谱系数(MFCC)特征和卷积递归神经网络的新心音分类方法。首先计算梅尔频率倒谱,而不除心音信号。提出了一 种基于MFCC的新改进特征提取方案来详细描述连续心音信号之间的动态特征。 最后,基于 MFCC 的特征被输入到深度卷积和循环神经网络 (CRNN),以进行特 征学习和后续的分类任务。所提出的深度学习框架可以利用从卷积神经网络 (CNN)提取的编码局部特征和循环神经网络(RNN)捕获的长期依赖性。本文 对不同网络参数和不同网络连接策略的性能进行了综合研究。与最先进的算法进 行性能比较以供讨论。实验表明,对于二类分类问题(病理性或非病理性),在 2016 PhysioNet/CinC Challenge 数据库上实现了 98% 的分类准确率。
心血管疾病仍然是导致死亡的主要原因,由于其突发性和复发性,对全球人口构成严重威胁。因此,研究心脏疾病的早期预防方法就变得重要和有意义。心音信号携带着心血管疾病的早期病理信息,已被证明是有效地早期发现潜在的心血管疾病。传统上,心音是由医学专家通过听诊检测心脏疾病。它是非侵入性的、成本低 效益高且需要最少的设备,非常适合心脏检查,特别是在小型初级卫生保健诊所。但实际上,心音听诊很大程度上依赖于医生的临床经验和检查技巧。心脏病专家听诊的准确率约为 80%,而初级保健医生听诊的准确率约为 20%–40%。为了解决这一困境,基于计算机的自动心音分析和分类技术应运而生。基于计算机的心音分析的标准流程可概括为以下步骤:(1)预处理(分割和过滤); (2)特征提取; (3)分类器设计。在过去的几十年中,针对上述心音分析过程的每个步骤都报道了富有成效的方法。
虽然已经提出了关于心音分类的大量工作,但大多数由于复杂多变的心脏声环境,其中很多方法的性能下降。由于早期心脏疾病检测对于患者采取预防措施以减少潜在疾病造成的危害具有重要意义,因此在本文中,我们提出了一种用于疾病检测的新型心音分类算法基于改进的心音信号MFCC特征和卷积循环神经网络(CRNN)。本文的主要贡献有三点:(1)在不划分心音信号的情况下提取梅尔频率倒谱,降低了计算复杂度,并且 标准的MFCC ,MFCC特征的一阶和二阶微分参数,被组合用于心音信号的动态表示。 (2)构建了一种结合2D-CNN 和LSTM进行特征提取和分类、并使用基于MFCC的特征作为输入的心音分类算法。该算法利用了从 CNN 提取的编码局部特征和 RNN 捕获的长期依赖关系。 (3)本文对不同网络参数、不同网络连接策略以及与最先进算法的比较进行了全面的研究。为了证明所提出算法的有效性,在 PhysioNet 计算心脏病学 (CinC) 2016 挑战数据库 (Liu, et al., 2016) 上进行了实验。
在本节中,我们提出的算法分三个部分详细描述:心音信号预处理、基于 MFCC 的信号表示和 CRNN 分类模型。该方法的总体流程图如图1所示。在训练阶段,对原始心音信号进行预处理,以去除低频伪影、基线漂移和高频干扰。提取病理和健康受试者心音信号的标准MFCC、一阶MFCC( Delta MFCC)和二阶MFCC( Delta ͆ MFCC)特征来构建训练数据库。将标记的基于MFCC的特征输入到CRNN模型中,用作分类器学习和训练的基准样本。在测试阶段,对测试信号进行预处理,提取MFCC特征。使用预训练的 CRNN 模型来确定测试信号的类别。
心音信号预处理是整个分类算法的基础。使用参考文献中提到的五阶巴特沃斯带通滤波器(通带:25–400 Hz)。 Gaikwadand Chavan (2014) 从原始收集的心音信号中去除了低频伪影、基线漂移和高频干扰。尽管信号预处理、分割和形态分析是自动心音分析系统的主要内容,但本文并不关注预处理和信号分割技术,因为它们是相当成熟的技术。 特别强调应用于预处理信号的特征提取和模式识别方法。图2和图3分别显示了正常心音和异常心音的原始信号和预处理信号。
心音信号携带心血管疾病的早期病理信息,有助于早期发现 潜在的心血管疾病。为了导出心脏疾病检测的有效特征表示,我们利用心音信号的梅尔频率倒谱,并提出一种改进的基于MFCC的特征提取算法。
MFCC特征提取的具体过程如下:
1.预加重对心音信号进行预加重,以放大高频成分。经过预加重滤波器H(z)后,可以有效抑制随机噪声。
2.对心音信号进行帧化,在短帧内进行特征提取。为了实现帧之间的平滑过渡,连续帧之间采用 50% 的重叠。采用汉明窗函数W(n)进行信号分帧,因为它可以有效克服泄漏现象。
3.离散傅里叶变换(DFT)为了得到频谱X(k),我们将时域心音信号x(n)通过DFT 变换为频域信号。
4.功率谱计算将信号频谱 X(k)作为其模的平方,得到功率谱P(k)。
5.梅尔频率滤波器将功率谱P(k)通过一组梅尔尺度三角滤波器组以获得梅尔谱。
6.通过对数运算得到每帧的对数能量谱 S(m)。
7.离散余弦变换(DCT)将上面的对数 谱进行离散余弦变换。
动态MFCC特征提取通过上述描述可以看出,所获得的MFCC系数仅反映了心音信号的静态特征。由于人耳对声信号的动态特性比较敏感,心音频谱的动态信息也包含丰富的信息,可以用来进一步提高分类精度。为了反映心音信号的动态信息,进一步提取一阶差分 MFCC特征和二阶差分MFCC特征。
在过去的几年中,卷积神经网络(CNN)已被研究并被证明在大规模和高维数据学习中是有效的。循环神经网络(RNN)被证明在时间序列学习和长期依赖性捕获方面是有效的。在本文中,我们结合CNN和RNN 对从心音信号导出的基于MFCC的表示进行特征学习,这利用了从CNN提取的编码局部特征和RNN捕获 的长期依赖性。本文研究了两种网络架构,即卷积循 环神经网络(CRNN)和并行循环卷积神经网络 (PCRNN),用于心音信号分类。
卷积循环神经网络(CRNN)本文提出的CRNN网络结 构如图7所示。CNN块中使用了三个卷积层,第一层32核,第 二层32核,第三层64核。可学习的内核每层尺寸设置为3×3,流行的ReLu每个卷积层都使用激活函数。每个卷积层后面都采用最大池化,其中使用2×2窗口,步幅为2×2。三个残差使用相应的卷积层和池化层的块。在残差块内,构造了批量 归一化(BN)层和丢失层,然后是最大池层。 BN 层对整个 网络中的每个 mini-batch 进行归一化,减少渐进变换引起的 内部协变量偏移,dropout 层可以减 少神经元数量并防止过度拟合。因此,对于每个输入样本, 可以获得特征图。在卷积层和最大池化层之后,应用长短期 记忆(LSTM)层来学习获得的特征图中的时间特征,以及具 有以下特征的全连接(FC)层:
并行循环卷积神经网络(PRCNN)上述CRNN模型使 用RNN基于CNN的输出进行时间特征学习,然而,原始心音 信号背后的时间特征无法保留。为了捕获原始信号的空间和 时间特征,本节进一步研究了另一种网络架构,即并行循环 卷积神经网络(PRCNN),用于心音信号分类。如图8所 示,提出的PRCNN架构分为四个块。我们利用提取的 MFCC 特征作为网络的输入。 MFCC 特征并行馈送到 CNN 和 RNN 块中进行特征学习。所提出的 PRCNN 模型利用了从 CNN 提 取的空间特征和 RNN 提取的时间特征。的输出然后将两个并行块融合成一个统一的特征向量以进行分类。 应用全连接层并采用softmax层来导出不同类别的概率分 布。CNN块中使用三个卷积层,第一层有16个核,第二层有 32个核,第三层有64个核。接下来是卷积层,采用三个最大 池化层,第一层2×2窗口,第二层为2×2窗口,第三层为4×4窗口。在 RNN 块中,我们采用最大池化层执行降维,并使用 LSTM 层进行心音信号时间特 征学习。我们将 CNN 块和 RNN 块的输出连接成一个特征 向量。开发了一个由全连接层和 softmax 层组成的网络,用 于对级联特征向量进行进一步的特征学习和分类。
我们实验中使用的心音信号来自 PhysioNet/ CinC Challenge 2016 数据库(Liu, et al., 2016) ),可 在 PhysioNet 网站上公开获取。 1 该数据库由来自不同研究 组的九个子数据库组成,包含总共3,240条来自健康受试者和患有各种心脏病的患者的原始 心音录音。这些心音记录是使用各种电子听诊器(例如 Welch Allyn Meditron、Littmann Ë͈́̈́̈́)采集的,长度 范围从5到120 s,采样频率为2000 Hz。将心音样本截取至5 s,并将其分为三组不同的互斥群体,使用其中的75%来训练 网络,15%用于验证,10%用于测试网络。由于数据集中正 常和异常心音记录的数量不平衡,我们使用k-means SMOTE算法(Georgios et al., 2018)对训练集进行重新采 样,然后提取每个样本的MFCC特征。
与最先进算法的定性性能比较如下表: