具体的软硬件实现点击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特征。

与最先进算法的定性性能比较如下表:

基于改进MFCC特征和卷积递归神经网络的心音分类的更多相关文章

  1. 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

    摘要:本文提出一种基于局部特征保留的图卷积网络架构,与最新的对比算法相比,该方法在多个数据集上的图分类性能得到大幅度提升,泛化性能也得到了改善. 本文分享自华为云社区<论文解读:基于局部特征保留 ...

  2. 学习笔记CB010:递归神经网络、LSTM、自动抓取字幕

    递归神经网络可存储记忆神经网络,LSTM是其中一种,在NLP领域应用效果不错. 递归神经网络(RNN),时间递归神经网络(recurrent neural network),结构递归神经网络(recu ...

  3. 斯坦福NLP课程 | 第18讲 - 句法分析与树形递归神经网络

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  4. 递归神经网络(RNN)简介(转载)

    在此之前,我们已经学习了前馈网络的两种结构--多层感知器和卷积神经网络,这两种结构有一个特点,就是假设输入是一个独立的没有上下文联系的单位,比如输入是一张图片,网络识别是狗还是猫.但是对于一些有明显的 ...

  5. 使用TensorFlow的递归神经网络(LSTM)进行序列预测

    本篇文章介绍使用TensorFlow的递归神经网络(LSTM)进行序列预测.作者在网上找到的使用LSTM模型的案例都是解决自然语言处理的问题,而没有一个是来预测连续值的. 所以呢,这里是基于历史观察数 ...

  6. [AI开发]零数学公式告诉你什么是(卷积)神经网络

    大部分介绍神经网络的文章中概念性的东西太多,而且夹杂着很多数学公式,读起来让人头疼,尤其没什么基础的人完全get不到作者想要表达的思想.本篇文章尝试零公式(但有少量数学知识)说清楚什么是神经网络,并且 ...

  7. lecture7-序列模型及递归神经网络RNN

    Hinton 第七课 .这里先说下RNN有recurrent neural network 和 recursive neural network两种,是不一样的,前者指的是一种人工神经网络,后者指的是 ...

  8. lecture7-序列模型及递归神经网络RNN(转载)

    Hinton 第七课 .这里先说下RNN有recurrent neural network 和 recursive neural network两种,是不一样的,前者指的是一种人工神经网络,后者指的是 ...

  9. 递归神经网络之理解长短期记忆网络(LSTM NetWorks)(转载)

    递归神经网络 人类并不是每时每刻都从头开始思考.正如你阅读这篇文章的时候,你是在理解前面词语的基础上来理解每个词.你不会丢弃所有已知的信息而从头开始思考.你的思想具有持续性. 传统的神经网络不能做到这 ...

  10. 递归神经网络(RNN,Recurrent Neural Networks)和反向传播的指南 A guide to recurrent neural networks and backpropagation(转载)

    摘要 这篇文章提供了一个关于递归神经网络中某些概念的指南.与前馈网络不同,RNN可能非常敏感,并且适合于过去的输入(be adapted to past inputs).反向传播学习(backprop ...

随机推荐

  1. Java 中的异常处理机制的简单原理和应用。

    Java 中的异常处理机制的简单原理和应用. 异常是指 java 程序运行时(非编译)所发生的非正常情况或错误. Java 对异常进行了分类,不同类型的异常分别用不同的 Java 类表示,所有异常的根 ...

  2. SQLSERVER 的表分区(水平) 操作记录2

    1        ----(非原创只是自己整理记录!!!)---------------原文地址: https://www.cnblogs.com/libingql/category/184251.h ...

  3. 链表栈(LinkedListStack)

      链式栈:就是一种操作受限的单向链表,每次入栈一个元素,向链表中添加一个节点,出栈一个元素,释放一个节点.因为栈具有"后进先出"的特点,如果每次在链表的尾部进行插入和删除,就要遍 ...

  4. DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧

    遍历是指通过或遍历节点树 遍历节点树 通常,您想要循环一个 XML 文档,例如:当您想要提取每个元素的值时. 这被称为"遍历节点树". 下面的示例循环遍历所有 <book&g ...

  5. 直播回顾 | 点击率提升400%,Ta是怎么做到的?

    Discovery第18期直播已于3月30日圆满结束,本期直播邀请天眼查做客直播间,从天眼查与华为Push用户增长服务合作历程切入,聚焦用户增长,分享提升应用活跃度和渠道ROI的经验与见解.一起来回顾 ...

  6. Python生成测试数据--Faker的使用方法

    # 官方文档:https://faker.readthedocs.io/en/master/index.html # 安装:pip install Faker from faker import Fa ...

  7. Python 潮流周刊第 46 期(摘要)+ 赠书 7 本

    本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...

  8. 国庆的一些blog 书写

    前言 国庆估计出不去了,所以吧,把文档准备下. 正文 1.docker 微服务,整理微软开源shop框架. 2.rpa 这个东西,我第一次接触是因为android测试的时候,每次修改代码,都需要全部测 ...

  9. 数据库PolarDB开源之路该如何走?听听他们怎么说

    简介: 10月25日,由阿里云开发者社区.阿里云PolarDB开源社区.InfoQ联合举办的「开源人说」数据库PolarDB专场线下沙龙在杭州召开,5位阿里云数据库超级大咖.10位阿里云数据库开源生态 ...

  10. java应用提速(速度与激情)

    简介: 本文将阐述通过基础设施与工具的改进,实现从构建到启动全方面大幅提速的实践和理论. 作者 | 阿里巴巴CTO技术来源 | 阿里开发者公众号 联合作者:道延 微波 沈陵 梁希 大熊 断岭 北纬 未 ...