首页 > 编程语言 >咳嗽检测深度神经网络算法

咳嗽检测深度神经网络算法

时间:2024-05-15 19:10:05浏览次数:28  
标签:咳嗽 检测 分类 算法 特征提取 神经网络 CNN 咳嗽声

具体的软硬件实现点击 http://mcu-ai.com/ MCU-AI技术网页_MCU-AI
咳嗽检测是一种很有前途的检测呼吸道疾病各种病理严重程度的技术。自动咳嗽检测系统的开发将成为早期诊断的最佳跟踪工具。长期以患者为中心的远程咳嗽严重程度监测将改变医疗基础设施的游戏规则,因为在过去几十年中,远程医疗和远程护理已经开发了许多方法。在本文中,我们提出了一种使用改进的卷积神经网络(CNN)分析哮喘、支气管炎和百日咳发生时的咳嗽音频信号的方法。在此,使用巴特沃斯高通滤波器进行预处理,并使用MFCC进行特征提取。此外,使用咳嗽特征的训练数据集,使用改进的CNN完成了咳嗽声音的分类。使用Thing Speak物联网云网站,通过Wi-Fi通信技术将相应的标签发送给临床医生和护理人员。基于所提出的模型,使用模拟工具对20种咳嗽声的数据集进行了测试,并确定了标签。实验结果表明,该模型在F1评分、灵敏度、特异性、精密度和准确性方面优于现有的咳嗽检测模型。

近年来,咳嗽声分类的研究通过对声学特征的处理产生了重大影响。它有效区分生产性咳嗽和非生产性咳嗽[8],从而检测变形的肺功能[9],促进肺炎的诊断[10]。许多咳嗽检测算法在临床行业中流行,用于识别和检测咳嗽声音,以获得有价值的见解。但是,从实时音频流中检测咳嗽的方法仍然很少。医生利用咳嗽声和非咳嗽声的良好辨别性[11]有助于早期诊断慢性咳嗽疾病。因此,实现早期检测和高级诊断的自动化框架将有助于医生治疗呼吸道感染。有鉴于此,提出了使用改进的卷积神经网络(CNN)对声音文件进行有用分类的慢性咳嗽检测方法。

在该系统中,压电传感器被放置在患者的胸部以完成任务。由于该方法被普遍采用,因为实时咳嗽事件将为进一步分析提供更好的结果,因此它根据声音质量和咳痰密度将声音分为干咳、百日咳和湿咳。我们提出的模型包括预处理、使用MFCC[12]的特征提取和用于咳嗽检测的改进CNN。据我们所知,此前没有任何研究对远程监测和通知咳嗽进行过调查。最近几年,物联网[13]通过提供巨大的好处,彻底改变了人类生活。通过与云计算[14]、移动健康、电子健康服务相结合,智能健康应运而生。物联网使传感器能够以自动化的方式收集患者的音频信号。它提供远程医疗保健监测,包括传感模块、数据收集和存储模块以及交互模块。该传感模块旨在收集来自压电传感器的声音文件,然后将数据收集并存储到云服务器中,最后通过Wi-Fi与临床从业者进行交互。它使医生能够通过分析带有相应标签的咳嗽声来广泛了解患者的实际状态。此外,它有助于对经常发生在老年人和儿童身上的呼吸道疾病进行早期诊断。

目前,咳嗽检测是临床行业早期诊断呼吸道疾病的主要工具。我们定义了一种改进的CNN,用于对连接在患者胸部的压电传感器记录的咳嗽声进行分类(图1)。它被设计用于将肺部和听诊声音流到云端进行进一步分析。通常,传感器用于放大由环境因素引起的呼吸声和振动声学。这样做是为了在检测到慢性咳嗽的情况下准确辨别。在我们提出的系统中,卷积神经网络提供了咳嗽声的有效分类。我们用于咳嗽检测的改进型CNN包括预处理,然后利用MFCC进行特征提取,以及使用改进型CNN进行分类。

获取从传感器记录的咳嗽声音以去除噪声数据。在 声音信号的情况下,该步骤包括去除咳嗽声中的噪声。实时录 制时,咳嗽声主要容易受到噪音影响。在这种情况下,咳嗽声 中常见的主要噪声因素是与均匀频率分布相关的加性高斯白噪 声[31]。采用四阶巴特沃斯高通滤波器来减轻噪声的影响。此外,为了减少咳嗽中存在的噪声,应用了巴特沃斯高通 滤波器(图 2)。等式。 (1) 是 k 阶滤波器的传递函数 (TF), 其中ϛr 是截止频率。

在去除噪声之后,必须去除静音,这可以通过帧处理来实现。接下来,通过保持耦合阈值来测量咳嗽的开始和结束时间之间的间隔。

特征提取是对分类进行降维处理的过程。降维的主要目的是降低咳嗽信号特征矩阵的维数,得到准确无噪声的标签。基于特征选择,分类器使用经过预处理的咳嗽声对获得的特征进行卷积。预处理和特征提取越好,咳嗽分类就越好。在这项工作中,为了增强特征提取,采用了梅尔频率倒谱系数。MFCC通过生成音频文件的功率谱,用于精确的语音和声学信号分析。流程如下图:


将特征提取后记录的咳嗽声输入CNN,对咳嗽声进行分类。这里考虑的四类咳嗽是百日咳1)哮喘2)支气管炎3)正常咳嗽4)。当输入图像包含高维度时,它会被传递到2x2的最大池化层,然后,将简化模型提供给下一层,该层由32个内核大小为5x5的滤波器组成,旨在学习复杂的特性。之后,将特征传递到2x2层,以获得进一步减少的特征。将获得的特征平坦化为一维,然后允许移动到由128个神经元组成的完全连接层中。最后,第四层将有助于将输入咳嗽分为四类。通过采用以下两个因素,改进的CNN得到了增强。(i) 如果同时记录两次咳嗽,可以通过分析咳嗽的开始和结束时间来进行检测。在这种情况下,为了高精度,我们必须考虑持续时间最长的咳嗽。(ii)通过比较第k次咳嗽的时间和(k+1)次咳嗽来检测咳嗽事件。例如,第k次咳嗽的结束时间减去在同一事件中记录的(k与(k+1))的开始时间。对于我们的假设,考虑2ms的阈值用于分离两次咳嗽。改进CNN的总体过程如图8所示。

为了分析所提出的咳嗽检测的性能,针对现有的咳嗽检测算法,如DNN[37]、CNN[38]和ANN[39],测试了以下指标。我们考虑的参数是:


标签:咳嗽,检测,分类,算法,特征提取,神经网络,CNN,咳嗽声
From: https://www.cnblogs.com/mcu-ai-QH/p/18194529

相关文章

  • Johnson算法
    一、算法简析\(Johnson\)算法可以求解带负权边的中小图的全源最短路径。算法步骤:建立虚拟源点\(0\),从\(0\)至其它各点添加权值为\(0\)有向边。用\(spfa\)算法求出从\(0\)至其它各点的最短路径h[i]。将原图中边的权值改为:\(w(u,v)+h[u]-h[v]\),建立了一张新图。以......
  • 【源码】蚁群算法TSP问题可视化
    ACO.Visualization项目本项目演示蚁群算法求解旅行商问题的可视化过程,包括路径上的信息素浓度、蚁群的运动过程等。项目相关的代码:https://github.com/anycad/ACO.Visualization注:本项目基于.NET8开发,需要安装VS2022最新版本。运行效果:https://www.bilibili.com/video/BV1Bf42......
  • 利用深度循环神经网络对心电图降噪
    具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI我们提出了一种利用由长短期记忆(LSTM)单元构建的深度循环神经网络来降噪心电图信号(ECG)的新方法。该网络使用动态模型ECG生成的合成数据进行预训练,并使用来自PhysionetPDB心电图信号数据库的真实数......
  • 鼾声监测神经网络
    具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI打鼾是一种普遍的症状,严重影响睡眠呼吸障碍患者(单纯打鼾者)、阻塞性睡眠呼吸暂停(OSA)患者及其床伴的生活质量。研究表明,打鼾可用于OSA的筛查和诊断。因此,从夜间睡眠呼吸音频中准确检测打鼾声一直是最重要的部分之一......
  • python算法:谁是小偷?
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:年龄问题
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:青蛙跳台阶
    一,认识递归函数1,什么是递归?递归的工作原理是,如果函数需要处理的问题大小合适,则直接求解并返回结果,否则将问题分解成两个或多个更小的子问题,并对子问题进行相同的处理,直到问题无法分解为止2,什么是递归函数:递归函数(recursivefunction)是指在函数体中可以调用自己的函数3,语......
  • python算法:马克思的数学题
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:爱因斯坦阶梯
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......
  • python算法:百钱买百鸡
    一,for循环:1,功能:重复执行同一段代码语法:forindexinrange(n):   #循环体代码index:用来依次接收可迭代对象中的元素的变量名range()函数:负责返回整数序列流程图:2,应用range可以同时指定start和stop,用for遍历并打印1234#指定start和s......