基于深度学习的肺部听诊音疾病智能诊断方法研究

摘要:呼吸系统疾病是全球主要的健康威胁之一。肺部听诊作为临床诊断中的重要手段,其结果高度依赖医生的主观经验,难以实现标准化与自动化。因此,利用深度学习技术对肺部听诊声音进行智能分析,辅助临床医生快速、准确地识别呼吸系统疾病,具有重要的研究意义和实际应用价值。

项目简介

本系统基于PySide6开发桌面GUI,利用librosa提取肺部听诊音频的MFCC特征并重塑为46×46×3的特征图,通过自定义的两层卷积神经──络LungSoundCNN实现哮喘、支气管扩张、细支气管炎、COPD、健康、下呼吸道感染、肺炎、上呼吸道感染共8类呼吸疾病的分类诊断。

项目方案:基于深度学习的肺部听诊音疾病智能诊断方法研究

系统概述

呼吸系统疾病是全球主要的健康威胁之一。肺部听诊作为临床诊断中的重要手段,其结果高度依赖医生的主观经验,难以实现标准化与自动化。因此,利用深度学习技术对肺部听诊声音进行智能分析,辅助临床医生快速、准确地识别呼吸系统疾病,具有重要的研究意义和实际应用价值。

本文设计并实现了一种基于卷积神经网络(CNN)的呼吸疾病分类系统。系统以226例患者的肺部听诊音频为数据基础,涵盖哮喘、支气管扩张、细支气管炎、慢性阻塞性肺病、健康、下呼吸道感染、肺炎和上呼吸道感染共8个类别。首先利用 librosa 库提取音频的梅尔频率倒谱系数(MFCC)特征,并将其重塑为 46×46×3 的特征图作为网络输入;随后构建了一种轻量级 CNN 模型(LungSoundCNN),模型包含两层卷积层、两层最大池化层和两层全连接层,采用 Adam 优化器和交叉熵损失函数进行 50 轮迭代训练。

在系统实现方面,基于 PySide6 框架开发了桌面端图形用户界面,集成数据加载、特征提取、模型训练、训练过程可视化和实时诊断五个功能模块。实验结果表明,该模型能够有效区分上述 8 类呼吸系统疾病,用户仅需上传肺部声音音频文件,系统即可自动输出疾病分类结果及相应置信度。整体系统操作流程清晰、界面友好,具有一定的临床辅助诊断应用潜力。

系统架构

系统启动并初始化GUI后,用户依次执行加载CSV数据集、提取MFCC特征、训练或加载CNN模型、可视化训练曲线、上传WAV音频进行疾──诊断五个步骤,每步完成后返回主窗口等待下一步操作,最终退出系统。

项目结构

系统启动并初始化GUI后,用户依次执行加载项目采用单文件架构,核心代码全部集中在Main.py,包含LungSoundCNN模型类、TrainThread训练线程类和MainWindow主──口类,配合model目录存放预训练权重及特征数据、testAudio目录存放测试音频、以及两个CSV患者数据文件。CSV数据集、提取MFCC特征、训练或加载CNN模型、可视化训练曲线、上传WAV音频进行疾──诊断五个步骤,每步完成后返回主窗口等待下一步操作,最终退出系统。

目录结构

核心模块

本系统包含六个核心模块:数据加载模块通过pandas读取两个CSV文件并按PATIENT_ID合并展示226条患者记录;特征提取模块加载预──算的MFCC特征矩阵(X.txt.npy),经归一化、打乱和转置处理为(N,3,46,46)格式;模型构建模块定义LungSoundCNN网络,包含两层Conv2d+ReLU+MaxPool2d卷积层和Linear(3200→256→8)全连接层;训练模块基于QThread异步执行,采用Adam优化器和CrossEntropyLoss训练50轮;可视化模块通过matplotlib绘制准确率和损失曲线;预测模块使用librosa提取音频MFCC特征,经reshape为46×46×3特征图后送入模型,通过softmax输出8类疾病的分类结果与置信度。

快速开始

安装Python 3.8+环境后,在命令行执行python Main.py启动系统,依次点击左侧控制面板的"加载数据集"(选择项目根目录)→"提取声学特征"→"训练/加载模型"→"可视化训练曲线"→"上传音频诊断"(选择testAudio目录下的WAV文件)即可完成从数据加载到疾病诊断的完整流程。

环境要求

本系统需 Python 3.8+ 环境,核心依赖包括 PySide6(GUI)、PyTorch(模型构建与训练)、librosa(音频与 MFCC 特征)、NumPy(数组与数据处理)、Pandas(CSV 数据处理)、matplotlib(训练曲线可视化),支持 CPU 运行,若有 NVIDIA GPU 可自动启用 CUDA 加速训练与推理。

运行实验

启动系统后,依次点击"加载数据集"选择项目根目录,系统读取并合并 CSV 文件显示 226 条患者记录;点击"提取声学特征"加载并预处理 MFCC 矩阵;点击"训练/加载模型",若已有 model_pytorch.pth 则加载权重,否则异步训练 50 轮并保存模型;点击"可视化训练曲线"查看准确率与损失变化;最后点击"上传音频诊断"选择 WAV 文件,系统提取 MFCC 特征并经 CNN 推理输出病分类、置信度及 Top5 类别概率分布。

查看结果

模型训练或加载完成后,点击"可视化训练曲线"查看 50 轮训练的准确率与损失变化;点击"上传音频诊断"选择 WAV 文件后,系统在日志区显示音频采样率和时长,并输出诊断结果卡片(疾病名称及置信度)及 Top5 类概率柱状图,其中健康结果以绿色、疾病结果以黄色标识。

实验结果

实验结果表明,LungSoundCNN 经 50 轮训练后可有效区分哮喘、支气管扩张、细支气管炎、COPD、健康、下呼吸道感染、肺炎及呼吸道感染 8 类疾病,系统能对用户上传的肺部听诊音频实时输出分类结果及置信度。

识别效果

图1 系统界面

图2 加载数据集

图3 提取声学特征

图4 训练和加载模型

图5 可视化训练曲线

图6 慢性阻塞性肺病

图7 听音:上呼吸道感染

图8 听音:健康

图9 听音:肺炎

结果点评

本系统采用轻量级两层卷积的 LungSoundCNN,结构简洁、训练速度快,适合作为呼吸疾病辅助筛查工具;但未使用 Dropout 或数据增强,仅依赖预计算 MFCC 特征,在样本量有限(226 例)情况下可能过拟合,且缺少训练/测试划分评估,无法量化泛化能力。后续可引入交叉验证、混淆矩阵分析及更深层网络以提升分类性能和临床可靠性。

项目资源

包括完整的项目源代码、演示视频、运行截图,开箱即用。

关于项目

本项目基于卷积神经网络,通过分析肺部听诊音频的 MFCC 特征自动识别 8 类呼吸疾病,可辅助临床医生进行快速初步筛查与诊断。

项目背景

呼吸系统疾病是全球主要健康威胁,传统肺部听诊依赖医生经验且难以标准化,本项目通过卷积神经网络自动学习肺部声音 MFCC 特征,实现呼吸疾病的计算机辅助诊断。

作者信息

作者:Bob (张家梁)

项目编号:YP-2

相关推荐
NAGNIP5 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab6 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab6 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP10 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年10 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼10 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS10 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区12 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈12 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang12 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx