摘要:本研究提出了一种基于Swin Transformer的心电图图像分类与诊断系统,通过特征提取提升了房性传导阻滞、新冠病毒、心肌损伤、心肌梗死和心脏正常的分类精度,为心脏疾病的早期诊断提供支持。
项目简介
深度学习模型的心电图(ECG)智能诊断系统,可识别房性传导阻滞、新冠病毒、心肌损伤、心肌梗死等五种心脏状态并生成医疗报告。
系统概述
心血管疾病是全球主要死亡原因之一,心电图(ECG)作为诊断心脏疾病的重要工具,其准确性和效率直接影响临床诊疗效果。传统的心 电图诊断依赖医生的专业经验,存在主观性强、效率低、易受疲劳影响等问题。本研究提出了一种基于 Swin Transformer 深度学习模型的心电图智能诊断系统,旨在实现心脏疾病的自动化、高精度识别。
本系统采用 Swin Transformer 作为核心分类模型,该模型通过分层特征提取和窗口注意力机制,能够有效捕获心电图图像的局部和全 局特征。系统可识别五种心脏状态:房性传导阻滞(AHB)、新冠病毒相关心脏损伤(COVID-19)、心肌损伤(HMI)、心肌梗死(MI)和正常心 脏(Normal)。在数据集上进行了30轮训练,使用3227张训练图像和809张验证图像,采用数据增强、学习率调度等优化策略。
实验结果表明,该系统在验证集上达到了96.9%的分类准确率,其中COVID-19和MI类别的识别准确率达到100%,HMI类别的F1-score为0.98,整体加权平均精确率、召回率和F1-score均达到0.97。系统还集成了PyQt5图形用户界面,提供图像上传、实时诊断、置信度显示、治疗方案推荐和医疗报告生成等功能,实现了从诊断到报告的完整临床工作流。
本研究证明了基于 Swin Transformer 的深度学习方法在心电图智能诊断中的有效性和实用性,为临床医生提供了可靠的辅助诊断工具,有助于提高诊断效率、减少误诊率,具有重要的临床应用价值。
系统架构
基于 PyQt5 图形界面 + Swin Transformer 深度学习模型 + PyTorch 推理引擎的三层架构,实现心电图图像输入、特征提取分类、诊断结果输出及医疗报告生成的端到端智能诊断流程。

数据集构建
本研究采用的心电图图像分类数据集包含5类心脏状态,共计4,036张心电图图像,涵盖房性传导阻滞(AHB)、新冠病毒相关心脏损伤(COVID-19)、心肌损伤(HMI)、心肌梗死(MI)和正常心脏(Normal)五种类别。数据集按照8:2的比例划分为训练集和测试集,其中训练集包含3,227张图像,用于模型参数学习和特征提取;测试集包含809张图像,用于模型性能验证和泛化能力评估。具体而言,训练集中AHB类别653张、COVID-19类别660张、HMI类别746张、MI类别492张、Normal类别676张;测试集中AHB类别164张、COVID-19类别166张、HMI类别187张、MI类别123张、Normal类别169张。数据集采用标准的目录结构组织,每个类别独立存储于对应文件夹中,便于模型训练时的批量加载和标签自动识别。所有图像经过统一的预处理流程,包括尺寸归一化至224×224像素、随机水平翻转数据增强以及基于ImageNet统计值的标准化处理,确保输入数据的一致性和模型训练的稳定性。
数据集训练
本研究基于Swin Transformer Tiny架构对心电图图像分类数据集进行了系统化训练。训练过程采用迁移学习策略,首先加载在ImageNe t数据集上预训练的权重(swin_transformer-pre.pth),并删除原始分类头以适应5分类任务。模型训练共进行30个epoch,使用AdamW 优化器,初始学习率设置为0.0001,权重衰减系数为5E-2,批次大小为32。训练过程中采用交叉熵损失函数(CrossEntropyLoss)作为 优化目标,并在每个epoch结束后在验证集上评估模型性能,当验证准确率超过历史最佳值时自动保存模型权重。从训练曲线可以观察 到,模型在第1轮训练后验证准确率即达到73.9%,随着训练的进行,损失函数持续下降,准确率稳步提升,在第5轮达到90.0%,第28轮 达到最高的96.9%。最终训练完成后,模型在验证集上取得了97.0%的准确率,加权平均精确率、召回率和F1分数均达到0.97,其中COVI D-19和MI类别的识别准确率达到100%,充分证明了Swin Transformer架构在心电图图像分类任务中的有效性和优越性。训练过程使用CU DA加速,8个数据加载工作进程并行处理,确保了训练效率和模型收敛的稳定性。

项目结构
项目采用模块化结构,包含主程序模块(MainProgram.py)、模型定义模块(model_swin_transformer.py)、UI界面模块(UIProgram/)、模型权重目录(models/)、配置文件目录(static/json/)、测试样本目录(TestFiles/)、训练结果目录(results/)、检测结果保存目录(save_data/)和医疗报告目录(reports/),实现了从模型训练、图形界面交互、诊断推理到结果输出的完整功能分离。
核心技术
本系统采用Swin Transformer Tiny架构作为核心分类模型,通过移动窗口自注意力机制实现心电图图像的层次化特征提取。模型配置 为四层金字塔结构(patch_size=4, window_size=7, embed_dim=96),采用迁移学习策略加载ImageNet预训练权重,使用AdamW优化器 (lr=0.0001)和交叉熵损失函数进行30轮训练。数据预处理包括224×224尺寸归一化、随机水平翻转增强和ImageNet标准化处理。系统 基于PyTorch框架实现模型推理,集成PyQt5图形界面提供图像上传、实时诊断、结果展示和报告生成功能。最终在验证集上达到97.0% 准确率,加权平均精确率、召回率和F1分数均为0.97,证明了该架构在心电图智能诊断中的有效性。
快速开始
运行MainProgram.py启动图形界面,点击”选择图片”按钮上传心电图图像,点击”开始检测”按钮即可获得诊断结果、置信度、病变部位、护理建议和治疗方案,支持保存检测数据和生成医疗报告。
环境要求
Python 3.9+环境,需安装PyTorch 1.10+(支持CUDA加速)、torchvision、PyQt5、Pillow、numpy、scikit-learn、matplotlib等依赖库,建议使用pip install -r requirements.txt一键安装所有依赖包。
结果展示
运行MainProgram.py

图1 主界面

图2 图片检测-房性传导阻滞

图3 图片检测-心冠病)

图4 图片检测-心肌梗死

图5 图片检测-心肌损伤

图6 图片检测-心脏正常

图7 生成诊断报告

图8 保存结果

图9 医疗-诊断报告
运行model_swin_transformer.py

图10 Swin Transformer训练与验证准确率和损失曲线

图11 Swin Transformer混淆矩阵热力图

图12 各类的分类性能评估:准确率、精确率、召回率与F1分数图
结果点评
本系统在心电图智能诊断任务中取得了优异的性能表现。在包含4,036张图像的5分类数据集上,模型最终验证准确率达到97.0%,显著超过传统机器学习方法和基础卷积神经网络的表现。从分类报告来看,各类别识别性能均衡且稳定:COVID-19和MI(心肌梗死)类别的精确率和召回率均达到100%,表明模型对这两类心脏疾病具有极高的识别能力;HMI(心肌损伤)类别的F1-score达到0.98,精确率0.97、召回率0.99,展现出优秀的诊断一致性;AHB(房性传导阻滞)类别的F1-score为0.94,召回率0.90,虽略低于其他类别但仍处于较高水平;Normal(正常心脏)类别的召回率达到0.98,精确率0.93,误诊率控制在合理范围内。
从训练过程来看,模型收敛稳定且高效,第1轮训练后验证准确率即达到73.9%,第5轮突破90.0%,第28轮达到峰值96.9%,整个训练过程损失函数持续下降,未出现过拟合现象,证明了SwinTransformer架构的强大特征学习能力和迁移学习策略的有效性。混淆矩阵显示各类别之间的误分类情况极少,仅在AHB与Normal之间存在少量混淆(约10%),这符合临床实际中轻度传导阻滞与正常心电图的相似性。
系统的实用价值体现在多个方面:首先,97.0%的高准确率可为临床医生提供可靠的辅助诊断依据,有效减少漏诊和误诊风险;其次,模型对COVID-19相关心脏损伤的完美识别能力,在疫情防控和后遗症监测中具有重要应用价值;第三,系统集成的图形界面、治疗方案推荐和医疗报告生成功能,实现了从诊断到临床决策的完整闭环,提升了实际应用的便捷性和可操作性。
然而,系统仍存在改进空间:AHB类别的召回率相对较低,可能需要增加该类别的训练样本或采用类别平衡策略;模型在极端异常或罕见病例上的泛化能力有待进一步验证;推理速度虽然满足临床需求,但在大规模筛查场景下仍可通过模型量化或剪枝技术进一步优化。总体而言,本系统成功验证了SwinTransformer在医学图像智能诊断领域的应用潜力,为心电图自动化分析提供了高效、准确、实用的解决方案
项目资源
包括完整的项目源代码、演示视频、运行截图,开箱即用。

关于项目
原创论文
原创论文:基于Swin Transformer的心电图图像分类与诊断系统 注意:需要另外付费购买!

作者信息
作者:Bob (张家梁)
项目编号:DLI-1 & Datasets-12
原创声明:本项目为原创作品

开源协议
本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。


评论(0)