基于Swin Transformer的肝脏肿瘤MRI图像分类与诊断系统

摘要:本研究提出了一种基于Swin Transformer的肝脏肿瘤MRI图像分类系统,用于区分良性和恶性肿瘤。该方法利用Swin Transformer提取图像特征,显著提高了分类精度,并有效减少了误诊率,为临床诊断提供了有力支持。

作者:Bob(原创)

算法概述

1.Swin Transformer

Swin Transformer由微软公司的研究人员推出,是一种有效结合了 CNN 和 Transformer模型优势的新型架构。它旨在以类似 CNN 的分层方式处理图像,同时利用变换器固有的自我关注机制。这种混合方法使 Swin 变换器能够有效处理各种规模的视觉信息,从而使其在广泛的视觉任务中具有高度的通用性和强大的功能。

Swin Transformer 的核心创新在于其分层结构和基于移位窗口的自我注意力机制。与标准视觉转换器(ViT)在整个图像中应用自我注意力不同,Swin Transformer将图像划分为不重叠的小窗口,在这些窗口内计算自我注意力,从而减少了计算复杂性。此外,Swin Transformer引入了窗口移位技术,使得在连续的Transformer块之间,图像区域能在不同层之间相互影响,从而更好地整合局部与全局上下文信息。

图1 Swin Transformer多层级表示和ViT对比

如图1所示,Swin Transformer从小的patch开始,通过在深层次逐步合并相邻patch的方式构建了一个层级化的表示。通过这些层级特征图,Swin Transformer可以像FPN和U-Net那样进行多尺度密集预测。通过对图像分区(用红色标出)进行非重叠窗口的局部自注意力计算实现了线性的计算复杂度。每个窗口的patch的个数是固定的,因此计算复杂度和图像的大小成线性关系。

相比于之前只能产生单一分辨率特征图和平方复杂度的Transformer模型,Swin Transformer适合作为各种视觉任务的通用主干网络(backbone)。

图2:Swin Transformer网络架构

该架构详细展示了 Swin-Transformer 模型如何通过逐层处理和 Patch Merging 实现高效的图像特征提取。每个阶段的 Swin Transformer Block 通过不同的自注意力机制(如 W-MSA 和 SW-MSA)逐步提升图像理解的深度。通过多层次的处理和特征合并,该模型在处理大规模图像数据时表现出色,特别适合于图像分类和目标检测等任务。

Swin Transformer解决了以往基于 CNN 和 Transformer的模型的几个局限性。首先,它的分层设计可以高效处理多种分辨率的图像,有助于完成需要同时了解精细细节和整体结构的任务,如物体检测和语义分割。其次,通过将自我关注机制定位到窗口并采用移位窗口,Swin Transformer 大幅降低了计算要求,使其更易于扩展到大型图像和数据集。最后,它的架构通过将局部特征无缝集成到更广泛的上下文中,实现了更好的特征学习,从而提高了各种视觉任务的性能。

系统设计

本系统实现了肝脏肿瘤MRI影像的自动化分析与智能诊断,采用"数据输入---模型推理---结果展示"流程。系统包括图像输入、预处理、Swin Transformer训练与推理等模块,能精准区分良性与恶性肿瘤。该系统有效辅助医生诊断,提升诊断准确性与效率,为智能医疗提供支持。

图3 诊断系统整体流程图

数据集构建

1.数据来源

本研究使用的肝脏肿瘤MRI影像数据来自公开的LiverHccSeg数据集,包含良性和恶性肿瘤的MRI图像。该数据集为Swin Transformer模型的训练和验证提供了可靠支持,推动了肝脏肿瘤智能诊断系统的研究。

表1 数据集基本信息

图4 数据集图片

2.分类方法

本系统使用的肝脏肿瘤MRI影像数据分类由多名专业放射科医生独立完成,确保分类准确性。每个样本被归类。为减少主观偏差,标注过程采用交叉验证复核。该方法保证了数据集的高质量与权威性,为Swin Transformer模型的图像自动分类与诊断提供了可靠的数据支持。

(1)分类数据集格式

该格式用于图像分类任务,广泛应用于包括Swin Transformer在内的深度学习模型训练。每张图像被归类为对应的类别,确保数据与模型的高效匹配,从而提升分类精度与推理效率。

图5 分类数据集格式

(2)数据集划分

本研究使用的分类图像数据集仅包含按类别整理的图像文件,该数据集适用于图像分类任务,用于模型的训练与验证。

图5 数据集划分:测试集和训练集

模型训练

Swin Transformer是一种常用于图像分类的深度学习模型。其训练过程包括超参数设置、模型训练及结果可视化。通过分层结构与移位窗口自注意力机制,模型能高效提取局部与全局特征,提升分类精度与效率。在大规模数据集上,Swin Transformer表现出优异的分类性能与计算效率。

图6 模型训练流程图

1.配置文件与超参数设置

以下是关于Swin Transformer模型训练过程中的配置文件和超参数设置,并通过配置文件以及相关参数进行训练设置。

表2 Swin Transformer模型训练超参数设置

2.模型性能评估

在 Swin Transformer模型的训练过程中,模型性能评估是衡量其在图像分类任务中表现的重要环节,能够全面反映模型在分类精度和泛化能力方面的表现。科学而准确的评估不仅有助于揭示模型的优势与不足,还能为后续的改进与优化提供可靠依据。

(1)训练与验证准确率和损失曲线

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

该图展示了Swin Transformer模型在肝脏肿瘤分类任务中的整体性能。模型的总体准确率(Accuracy)为0.93,表明分类效果较好。良性肿瘤的精确率为0.97、召回率为0.88、F1值为0.92;恶性肿瘤的精确率为0.90、召回率为0.98、F1值为0.94。结果说明模型在区分良性与恶性肿瘤时表现均衡,其中对恶性肿瘤的识别更为敏感,能有效避免漏诊。

(2)混淆矩阵热力图

图8 Swin Transformer混淆矩阵热力图

混淆矩阵展示了模型在良性与恶性肿瘤分类上的预测分布。良性肿瘤的正确分类率为0.88,有约12%的样本被误判为恶性;而恶性肿瘤的正确识别率高达0.98,仅有2%的样本被误分为良性。整体来看,模型在恶性肿瘤检测上的鲁棒性更强,误诊率较低,能较好地区分不同类型的肿瘤影像。

(3)各类的分类性能评估:准确率、精确率、召回率与F1分数图

图9 各类认知障碍的分类性能评估:准确率、精确率、召回率与F1分数图

该图反映了Swin Transformer模型在训练阶段的性能变化趋势。随着训练轮次的增加,训练与验证准确率均稳步提升并趋于收敛,损失函数持续下降,说明模型学习过程稳定、收敛良好。同时,训练集与验证集的表现接近,未出现明显过拟合现象,表明模型具有良好的泛化能力和稳定性。

(4)训练日志(Training Log)

训练日志记录了Swin Transformer模型在训练过程中的详细信息,包括训练轮次、每轮的损失值、验证准确率以及训练时间等,这些信息帮助评估模型的训练效果和性能。

图10 Swin Transformer训练日志

训练轮次30轮,训练的时间约23.22分钟,训练损失从0.701降至0.310,验证准确率从0.533提升至0.902。

训练结果显示,模型在30个训练周期后,训练损失显著下降,验证准确率提高至90.2%,表现出良好的分类性能。

该系统硬件配置如下,如果您的电脑配置低于下述规格,模型训练时间及结果可能会与本系统的训练日志存在差异,请注意。

表3 电脑硬件配置

功能展示

本系统基于Swin Transformer模型,实现肝脏肿瘤MRI影像的自动分类与诊断。系统集成特征提取、分类推理与结果可视化功能,能有效区分良性与恶性肿瘤,为肝脏肿瘤智能诊断研究和临床辅助提供技术支持。

  1. 系统主界面展示

图11 系统主界面

  1. 图片检测功能

图12 恶性肿瘤

图13 良性肿瘤

  1. 保存结果

图14 结果保存

  1. 生成医疗影像诊断报告

图15 成功生成医疗影像诊断报告

图16 诊断报告

界面设计

本系统的图形用户界面采用PyQt5框架开发,致力于打造直观、高效且流畅的交互体验。通过精心设计的界面布局和模块化架构,系统功能得以清晰呈现,并确保各项操作的高效执行,全面提升用户使用体验。

图17 PyQt5主控面板界面

该界面展示了基于PyQt5框架精心设计的诊断系统,界面布局简洁、直观且高度集成。通过巧妙的模块化设计,系统涵盖了多项功能模块,确保用户能够高效、流畅地进行操作与交互,充分体现了系统在医学领域中的智能化与人性化设计。

相关推荐
机器之心5 小时前
刚刚,智源悟界·Emu3.5登场,原生具备世界建模能力
人工智能·openai
算家计算5 小时前
维基百科公开回击马斯克:我们属于人类,不属于亿万富翁!
人工智能·资讯
shayudiandian5 小时前
PyTorch实战——从零搭建CV模型
人工智能
San305 小时前
使用 OpenAI API 生成文本与图片:从环境搭建到提示工程完全解析
javascript·人工智能·node.js
得物技术5 小时前
RAG—Chunking策略实战|得物技术
数据库·人工智能·算法
超龄超能程序猿5 小时前
SpringAIalibaba +milvus本地化全链路知识库系统
java·人工智能·spring·milvus
胡耀超6 小时前
AI应用开发入门,docker部署 Milvus + GPUStack (Attu+MinIO)的基础入门!
人工智能·docker·ai·大模型·milvus·rag·gpustack
java1234_小锋6 小时前
PyTorch2 Python深度学习 - 张量(Tensor)的定义与操作
开发语言·python·深度学习·pytorch2
rengang666 小时前
103-Spring AI Alibaba Milvus RAG 示例
人工智能·spring·milvus·rag·spring ai·ai应用编程