第16章:基于CNN和Transformer对心脏左心室的实验分析及改进策略

目录

1. 项目需求

2. 网络选择

2.1 UNet模块

2.2 TransUnet

2.2.1 SE模块

2.2.2 CBAM

2.3 关键代码

3 对比试验

3.1 unet

3.2 transformer+SE

3.3 transformer+CBAM

4. 结果分析

5. 推理

6. 下载


1. 项目需求

本文需要做的工作是基于CNN和Transformer的心脏左心室分割,需要在Transformer网络中进行改进,以求期待更好的分割结果

数据集的样式如下:

这里的标签是这样的:

因为是二值的分割任务,这里心脏的左心室标签全部标记为1,看起来是全黑的,可以可视化看看

2. 网络选择

本文选择的网络是UNet和TransUnet,并且在TransUnet中加入注意力模块

2.1 UNet模块

Unet网络是一种用于图像分割任务的深度学习架构,由Ronneberger等人于2015年提出。Unet的结构类似于自编码器,采用对称的结构,分为编码器和解码器两部分。

编码器部分由卷积层和池化层构成,用于提取图像的特征并逐渐减小空间分辨率。解码器部分则由反卷积层和卷积层构成,用于将编码器提取的特征映射回原始分辨率,并生成分割结果。

在训练过程中,Unet通过将输入图像与对应的标签图像一起输入网络,利用损失函数计算网络输出与标签之间的差异,并通过反向传播算法调整网络参数,使得网络输出能够尽可能地接近标签图像。

Unet网络在图像分割任务中表现出色,尤其在医学图像分割等领域取得了很好的效果。其优点包括较小的参数数量、对少量训练样本的高效利用,以及良好的分割精度。

2.2 TransUnet

TransUNet是一种基于Transformer的图像分割模型,它结合了Transformer的自注意力机制和UNet的编码-解码结构。这个模型由微软研究院提出,旨在应用于医学图像分割任务。

TransUNet模型的架构主要分为两部分:Encoder部分和Decoder部分。Encoder部分主要利用Transformer的自注意力机制来提取图像的全局特征,而Decoder部分则类似于UNet的解码器,用于将特征映射回原始图像的分辨率并生成分割结果。

相较于传统的卷积神经网络,TransUNet模型在处理长程依赖关系和全局特征提取方面具有优势。它可以学习到更加细致和全局的特征表示,有助于提升图像分割的准确性和性能。

总的来说,TransUNet模型是一种结合了Transformer和UNet特点的先进图像分割模型,适用于医学图像等领域的任务。

2.2.1 SE模块

SE模块(Security Enhancement Module)是一种用于增强系统安全性的软件或硬件模块。它通常被用于加固系统的安全性,提高系统的防护能力,防止恶意攻击和数据泄露。SE模块可以实现诸如数据加密、访问控制、身份认证等功能,从而确保系统和数据的安全。在当今信息安全日益重要的环境下,SE模块成为许多系统和应用程序的重要组成部分,帮助用户保护其重要信息和资产不受损害。

2.2.2 CBAM

CBAM模块是一种用于解决关注机制(Attention Mechanism)的问题的模块。它结合了通道注意(Channel Attention)和空间注意(Spatial Attention)的方法,从而能够更加有效地捕捉输入特征图中的重要信息。通过CBAM模块,神经网络可以学习到更加具有区分度的特征表示,从而提升模型在各种视觉任务中的性能表现。CBAM模块已经在许多计算机视觉领域得到了成功的应用,成为提升模型性能的重要工具之一。

2.3 关键代码

代码部分,这里放了三个代码,分别是unet、transformer+SE、transformer+CBAM,可以自行选择

    # 1. cbam  注意力机制# model =TransUnet(in_channels=3,img_dim=224,vit_blocks=1,#              vit_dim_linear_mhsa_block=512, classes=nc)# 添加模块代码# model.vit.mlp_head.add_module('cbam', CBAM(1024))# model.vit.transformer.layers[0].mhsa.to_qvk.add_module('cbam', CBAM(1024))# model.vit.transformer.layers[0].mhsa.W_0.add_module('cbam', CBAM(1024))##2.  unetmodel = U_Net(img_ch=3,output_ch=nc)# # # 3. se# model =TransUnet(in_channels=3,img_dim=224,vit_blocks=1,#              vit_dim_linear_mhsa_block=512, classes=nc)## # 添加模块代码# model.vit.mlp_head.add_module('se', SE_Block(1024))# model.vit.transformer.layers[0].mhsa.to_qvk.add_module('se', SE_Block(1024))# model.vit.transformer.layers[0].mhsa.W_0.add_module('se', SE_Block(1024))

3 对比试验

因为对比试验,其他的参数都是一样的,如下所示:

    "train parameters": {"batch size": 4,"lr": 0.001,"lrf": 0.01,"ct": false,"epochs": 100,"num classes": 2,"best epoch": 96

3.1 unet

最好epoch 

    "epoch:97": {"train log:": {"info": {"pixel accuracy": [0.9996318221092224],"Precision": ["0.9721"],"Recall": ["0.9731"],"F1 score": ["0.9726"],"Dice": ["0.9726"],"IoU": ["0.9466"],"mean precision": 0.9721232056617737,"mean recall": 0.9730567932128906,"mean f1 score": 0.9725897908210754,"mean dice": 0.9725897908210754,"mean iou": 0.9466421008110046}},"val log:": {"info": {"pixel accuracy": [0.9994057416915894],"Precision": ["0.9563"],"Recall": ["0.9568"],"F1 score": ["0.9566"],"Dice": ["0.9566"],"IoU": ["0.9168"],"mean precision": 0.9563419818878174,"mean recall": 0.9568029046058655,"mean f1 score": 0.956572413444519,"mean dice": 0.956572413444519,"mean iou": 0.916759729385376}

3.2 transformer+SE

最好的epoch:

       "train log:": {"info": {"pixel accuracy": [0.9997045397758484],"Precision": ["0.9780"],"Recall": ["0.9780"],"F1 score": ["0.9780"],"Dice": ["0.9780"],"IoU": ["0.9569"],"mean precision": 0.9780052900314331,"mean recall": 0.9779714941978455,"mean f1 score": 0.9779884219169617,"mean dice": 0.9779884219169617,"mean iou": 0.9569249749183655}},"val log:": {"info": {"pixel accuracy": [0.9994567036628723],"Precision": ["0.9588"],"Recall": ["0.9619"],"F1 score": ["0.9604"],"Dice": ["0.9604"],"IoU": ["0.9237"],"mean precision": 0.9588128328323364,"mean recall": 0.9618959426879883,"mean f1 score": 0.9603518843650818,"mean dice": 0.9603519439697266,"mean iou": 0.9237278699874878}}},

 

3.3 transformer+CBAM

最好的epoch:

    "epoch:96": {"train log:": {"info": {"pixel accuracy": [0.9996169209480286],"Precision": ["0.9724"],"Recall": ["0.9705"],"F1 score": ["0.9714"],"Dice": ["0.9714"],"IoU": ["0.9445"],"mean precision": 0.9724175333976746,"mean recall": 0.9704613089561462,"mean f1 score": 0.9714384078979492,"mean dice": 0.971438467502594,"mean iou": 0.9444631338119507}},"val log:": {"info": {"pixel accuracy": [0.9994094967842102],"Precision": ["0.9582"],"Recall": ["0.9554"],"F1 score": ["0.9568"],"Dice": ["0.9568"],"IoU": ["0.9171"],"mean precision": 0.9581836462020874,"mean recall": 0.9553713798522949,"mean f1 score": 0.9567754864692688,"mean dice": 0.956775426864624,"mean iou": 0.9171327948570251}}

4. 结果分析

指标如下:

unettransformer+setransformer+cbam
0.95660.96040.9568
        0.9168        0.92370.9171

上述的指标均为验证集上的指标

其中第一行为dice、第二行为iou

可以发现,transformer+se的效果是最好的

5. 推理

运行命令:streamlit run infer.py

6. 下载

关于本项目代码和数据集、训练结果的下载:【更换数据集进行训练的话,参考readme文件,pip requirements文件就行了】

基于transformer和unet卷积神经网络对心脏左心室分割的研究、已经训练完成资源-CSDN文库

包含数据集、完整代码、和训练结果:


关于神经网络的改进:图像分类网络改进_听风吹等浪起的博客-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/74422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI】知识蒸馏-简单易懂版

1 缘起 最近要准备升级材料,里面有一骨碌是介绍LLM相关技术的,知识蒸馏就是其中一个点, 不过,只分享了蒸馏过程,没有讲述来龙去脉,比如没有讲解Softmax为什么引入T、损失函数为什么使用KL散度,…

批量将PPT转换成多张图片

以下是一个使用Python将PowerPoint文件(PPT/PPTX)批量转换为多张图片的代码示例。该方案通过comtypes库调用本地Office的COM接口实现转换,需确保已安装Microsoft PowerPoint。 import os import comtypes.client from comtypes import COMEr…

单例模式的经典实现

单例模式(Singleton)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。在MyBatis、Redisson、AMQP等依赖包中,单例模式被广泛应用。以下是这些框架中单例模式的经典实现及举例: 1. My…

2024年数维杯数学建模B题生物质和煤共热解问题的研究解题全过程论文及程序

2024年数维杯数学建模 B题 生物质和煤共热解问题的研究 原题再现: 随着全球能源需求的不断增长和对可再生能源的追求,生物质和煤共热解作为一种潜在的能源转化技术备受关注。生物质是指可再生能源,源自植物和动物的有机物质,而煤…

灵茶山艾府基础算法精讲

day1 (1遍)167. 两数之和 II - 输入有序数组 https://leetcode.cn/problems/two-sum-ii-input-array-is-sorted/solution/san-shu-zhi-he-bu-hui-xie-xiang-xiang-sh-6wbq/ 15. 三数之和 https://leetcode.cn/problems/3sum/solution/shuang-zhi-zhen-…

图解AUTOSAR_CP_LargeDataCOM

AUTOSAR LdCom模块详解 大型数据通信模块的架构与实现 目录 AUTOSAR LdCom模块详解 目录1. 概述2. 模块架构3. 数据流程 3.1 整体数据流3.2 数据发送流程3.3 数据接收流程4. 配置结构5. 总结1. 概述 LdCom(Large Data COM)是AUTOSAR中的轻量级通信模块,专为高效传输大型或动…

Flink 自定义数据源:从理论到实践的全方位指南

目录 第一章:自定义数据源的基础概念 数据源是什么?它在 Flink 中扮演什么角色? Flink 的内置数据源:开箱即用的 “标配” 为什么需要自定义数据源?它的杀手锏在哪? 第二章:自定义数据源的实现之道 接口选择:从简单到高级,选对工具事半功倍 SourceFunction:入门…

HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析

HarmonyOS Next~鸿蒙应用框架开发实战:Ability Kit与Accessibility Kit深度解析 一、HarmonyOS应用框架设计理念 HarmonyOS作为全场景分布式操作系统,其应用框架设计遵循"一次开发,多端部署"的核心原则。通过创新的原…

Spring相关API

1是相对路径 2 是绝对路径 3 在注解时使用

Netty源码—客户端接入流程

1.关于Netty客户端连接接入问题整理 一.Netty是在哪里检测有新连接接入的? 答:boss线程第一个过程轮询出ACCEPT事件,然后boss线程第二个过程通过JDK底层Channel的accept()方法创建一条连接。 二.新连接是怎样注册到NioEventLoop线程的&#x…

python全栈-前端

python全栈-前端 文章目录 HTML标签段落p、换行br、水平线hr图片img路径src超文本链接a超链接之锚点href#id文本有序列表ol无序列表ul自定义列表表格table表格属性单元格合并 表单Forminput标签HTML5新增type属性HTML5新增常用属性 实体字符块元素与行内元素/内联元素容器元素d…

领域驱动设计(DDD)实践入门

文章目录 1.认识领域驱动设计1.1 简介1.2 发展历史1.3 DDD 的兴起 2.从一个简单案例2.1 转账需求2.2 设计的问题2.3 违反的设计原则 3.使用 DDD 进行重构抽象数据存储层抽象第三方服务抽象中间件封装业务逻辑重构后的架构 4.小结参考文献 1.认识领域驱动设计 1.1 简介 领域驱…

nuxt3网站文章分享微信 ,QQ功能

1.安装 npm install qrcode --save-dev 2.组件使用 <div class"share"><div style"line-height: 69px; color: #fff;width: 100px;"><p style"text-align: center;">分享:</p></div><div click"shareToMi…

VMWare Ubuntu 详细安装教程

VMWare Ubuntu 详细安装教程 一、下载安装VMware二、下载 Ubuntu 镜像文件三、安装 Ubuntu四、开启虚拟机 一、下载安装VMware 官网下载地址https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion知乎大佬的博客原文&#xff0c;含下载地址https://zhua…

MySQL里的锁有哪些

MySQL 的锁机制是实现并发控制的核心&#xff0c;不同层级的锁适用于不同场景&#xff0c;以下是对其锁类型的系统分类及详细说明&#xff1a; 一、按锁粒度划分 1. 全局锁&#xff08;Global Lock&#xff09; 用途&#xff1a;锁定整个数据库实例&#xff0c;用于全库备份。…

Spring WebFlux 教程

Spring WebFlux 教程 Spring WebFlux 是 Spring Framework 5 引入的一种新的响应式编程框架&#xff0c;旨在处理高并发、高性能和实时数据流应用。与传统基于线程阻塞的 Spring MVC 不同&#xff0c;WebFlux 采用了非阻塞、事件驱动的编程模型&#xff0c;能够更加高效地利用…

SCI英文论文Accepted后的第一步——Rights and Access

SCI英文论文Accepted后的第一步——Rights and Access 目录 SCI英文论文Accepted后的第一步——Rights and AccessBased on information provided the embargo period/end date is 24 months. 因为选择闭源**Rights and Access(版权与访问权限)**环节是关键第一步,具体操作流…

Qt文件管理系统

引言 今天我将使用model/view模型视图框架来完成一个简单的Qt文件管理系统&#xff0c;主要使用到了QTreeView、QTabelView视图和QFileSystemModel文件系统模型。 界面设计 使用Qt创建项目并勾选创建ui文件&#xff0c;打开ui文件&#xff0c;使用Tree View、Table View、St…

《可爱风格 2048 游戏项目:HTML 实现全解析》

一、引言 在如今的数字化时代&#xff0c;小游戏以其简单易上手、趣味性强的特点深受大家喜爱。2048 游戏作为一款经典的数字合并游戏&#xff0c;拥有庞大的玩家群体。本文将详细介绍一个用单文件 HTML 实现的可爱风格 2048 游戏项目&#xff0c;它不仅具备传统 2048 游戏的基…

CSS3:深度解析与实战应用

CSS3&#xff1a;深度解析与实战应用详解 1. 选择器增强2. 盒模型扩展3. 渐变和背景4. 转换和动画总结 CSS3 是 CSS&#xff08;层叠样式表&#xff09;的最新版本&#xff0c;它引入了许多新的特性和功能&#xff0c;使得网页的样式设计更加灵活、丰富和具有动态效果。在本文中…