当前位置: 首页 > news >正文

医学图像分割的基准:TransUnet(用于医学图像分割的Transformer编码器)器官分割

1、 TransUnet 介绍

TransUnet是一种用于医学图像分割的深度学习模型。它是基于Transformer模型的图像分割方法,由AI研究公司Hugging Face在2021年提出。

医学图像分割是一项重要的任务,旨在将医学图像中的不同结构和区域分离出来,以便医生可以更好地诊断和治疗疾病。传统的医学图像分割方法通常使用基于卷积神经网络(CNN)的方法,但这些方法在处理大量图像数据时可能存在一些限制,如需要大量标注数据、对图像中小目标的分割效果不佳等。

TransUnet通过引入Transformer模型来提高医学图像分割的性能。Transformer模型在自然语言处理中已经取得了显著的成功,它的一个重要特点是能够处理长距离的依赖关系。TransUnet将这种特点应用于图像分割中,通过将图像划分为一系列的图像块,并使用Transformer模型对这些块进行编码和解码,实现对图像中不同结构和区域的准确分割。

TransUnet的核心组件是自注意力机制,它能够学习图像中不同部分之间的关系,并在编码和解码过程中进行信息传递。通过多层自注意力机制的堆叠,TransUnet能够捕捉到图像中的全局上下文信息,并准确地分割出图像中的不同结构和区域。

与传统的基于卷积神经网络的方法相比,TransUnet在医学图像分割任务上取得了显著的性能提升。它能够更好地处理图像中的小目标和复杂结构,减少了对大量标注数据的依赖,并且在不同的医学图像数据集上都取得了优异的效果。

总的来说,TransUnet是一种基于Transformer模型的医学图像分割方法,通过引入自注意力机制和全局上下文信息的传递,提高了医学图像分割的准确性和效率。它为医生提供了一种精确分割医学图像的工具,有助于更好地诊断和治疗疾病

2、 实验1(腹部13器官分割)

TransUnet 多分割项目实验

2.1 数据集介绍

实验使用的数据集是腹部的13器官分类、加上背景0就是14类别的多分割任务

标签如下:

{"0": "background","1": "spleen","2": "right kidney","3": "left kidney","4": "gallbladder","5": "esophagus","6": "liver","7": "stomach","8": "aorta","9": "IVC","10": "veins","11": "pancreas","12": "rad","13": "lad"}

中文标签:1. 脾脏 2. 右肾 3. 左肾 4. 胆囊 5. 食道 6. 肝脏 7. 胃 8. 主动脉 9. 下腔静脉 10. 门静脉和脾静脉 11. 胰腺 12 右肾上腺 13 左肾上腺

值得注意的是,因为原始的数据是CT数据,对比度较小,这里对数据进行了对比度拉伸,并且全部缩放到512*512的大小。数据的标签是0、1、2、3 ... 12、13的阈值图像

数据集:

标签:

2.2 训练

这里将数据集按照 8:2 比例分成了训练集和验证集

优化器为 optimizer = torch.optim.AdamW(model.parameters(), lr=0.01, weight_decay=0.01)

学习率的衰减策略是余弦退火的cos衰减,batch_size = 8,epoch 设定为100

从左到右依次为epoch、train loss、train iou、val loss、val iou

2.3 评估模型

评估模型应该用测试集,因为一开始没有划分测试集,这里用验证集是一样的

这里采用 best.pt 

各项指标分别为,这里的列表分别是每个前景的iou、recall等等

global correct: 0.9881

precision: ['0.9930', '0.9653', '0.9447', '0.9456', '0.8626', '0.8249', '0.9715', '0.9547', '0.9285', '0.8862', '0.7844', '0.8250', '0.6903', '0.6778']

recall: ['0.9946', '0.9629', '0.9289', '0.9399', '0.8278', '0.6833', '0.9729', '0.9265', '0.9263', '0.8522', '0.7127', '0.7678', '0.5549', '0.4758']

IoU: ['0.9877', '0.9306', '0.8810', '0.8917', '0.7314', '0.5968', '0.9459', '0.8875', '0.8646', '0.7681', '0.5960', '0.6603', '0.4443', '0.3880']

mean IoU: 0.7553

推理如下,输入数据为:

推理gt:

掩膜效果:

2.4 项目下载

代码、数据集、训练好的权重下载参考:

基于Transformer-Unet实现的对腹部多脏器13类别的分割实战【包含代码+数据集+训练结果】资源-CSDN文库

3、实验2(Synapse多器官分割数据集

TransUnet 多分割项目实验

3.1 数据集介绍

实验使用的数据集是Synapse multi-organ segmentation dataset(Synapse多器官分割集)

腹部CT扫描 8个腹部器官(主动脉、胆囊、脾、左肾、右肾、肝、胰腺、脾、胃)

标签灰度值从1-7

值得注意的是,因为原始的数据是npz数据,这里输入应该是图像,所以对数据进行的提取,并且全部缩放到512*512的大小。数据的标签是0、1、2、3 ... 7、8的阈值图像

3.2 训练

这里同样将数据集按照 8:2 比例分成了训练集和验证集

优化器为 optimizer = torch.optim.AdamW(model.parameters(), lr=0.01, weight_decay=0.01)

学习率的衰减策略是余弦退火的cos衰减,batch_size = 8,epoch 设定为100

loss和iou曲线为:

从左到右依次为epoch、train loss、train iou、val loss、val iou

3.3 评估模型

指标如下:

global correct: 0.9924
precision: ['0.9958', '0.9089', '0.8571', '0.9012', '0.9353', '0.9670', '0.8367', '0.9643', '0.9299']
recall: ['0.9967', '0.9085', '0.8419', '0.9289', '0.8797', '0.9642', '0.6350', '0.9687', '0.9267']
IoU: ['0.9925', '0.8327', '0.7383', '0.8431', '0.8292', '0.9335', '0.5650', '0.9351', '0.8662']
mean IoU: 0.8373

推理如下:

推理gt:

 掩膜效果:

3.4 项目下载

代码、数据集、训练好的权重下载参考:

基于Transformer-Unet实现的对Synapse多器官(8类)分割实战【包含代码+数据集+训练结果】资源-CSDN文库

相关文章:

医学图像分割的基准:TransUnet(用于医学图像分割的Transformer编码器)器官分割

1、 TransUnet 介绍 TransUnet是一种用于医学图像分割的深度学习模型。它是基于Transformer模型的图像分割方法,由AI研究公司Hugging Face在2021年提出。 医学图像分割是一项重要的任务,旨在将医学图像中的不同结构和区域分离出来,以便医生可…...

java-swing编写学生成绩查询管理系统

本文是本人大二上实训项目-学生成绩查询管理系统,采用本项目使用Java、MySQL技术。界面框架由Java Swing搭建,用JDBC实现Java与MySQL的连接。 本项目适合初学java和mysql的同学,来做一些小项目来提升自己,因为兴趣所以想要做去尝…...

volatile浅解

volatile修饰的变量有两个特点 线程中修改了自己工作内存中的副本后,立即将其刷新到主内存工作内存中每次读取共享变量时,都会去主内存中重新读取,然后拷贝到工作内存 内存 -> CPU Cache -> CPU 如果没有volatile那么就会继续读取缓存…...

世媒讯带您了解什么是媒体邀约

什么是媒体邀约?其实媒体邀约是一种公关策略,旨在通过邀请媒体记者和编辑参加特定的活动、发布会或其他重要事件,以确保这些活动能够得到广泛的报道和关注。通过这种方式,企业和组织希望能够传达重要信息,提高品牌知名…...

[Kimi 笔记]“面向搜索引擎”

"面向搜索引擎"(Search Engine-Oriented,SEO-Oriented 或 SEO-Friendly)通常指的是在设计和开发网站时,采取一系列措施来优化网站内容和结构,以便提高网站在搜索引擎结果页面(SERP)中…...

如何在亚马逊云科技AWS上利用LoRA高效微调AI大模型减少预测偏差

简介: 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践,并应用到自己的日常工作里。 在机器学习和人工智能领域,生成偏差…...

订单定时状态处理业务(SpringTask)

文章目录 概要整体架构流程技术细节小结 概要 订单定时状态处理通常涉及到对订单状态进行定期检查,并根据订单的状态自动执行某些操作,比如关闭未支付的订单、自动确认收货等. 需求分析以及接口设计 需求分析 用户下单后可能存在的情况: …...

STM32 | ADC+RS485(第十天)

点击上方"蓝字"关注我们 01、ADC概述 ADC, Analog-to-Digital Converter的缩写,指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。真实世界的模拟信号.例如温度、压力、声音或者图像等,需要转换成更容易储存、处理和发射的…...

python打包成能够在mac里面运行的程序

要将你的PyQt5应用程序打包成可以在macOS上运行的独立应用程序,可以使用工具如PyInstaller或py2app。下面是使用py2app的详细步骤,因为它是macOS上专用的打包工具,并且更好地支持PyQt5。 1. 安装py2app 首先,确保你的macOS系统上…...

基于FPGA的数字信号处理(20)--半减器和全减器

目录 1、前言 2、半减器 3、全减器 4、减法器 文章总目录点这里:《基于FPGA的数字信号处理》专栏的导航与说明 1、前言 既然有半加器和全加器,那自然也有半减器和全减器了。尽管在电路中减法的实现基本都是 补码 加法 的形式,但是正所谓…...

Python:单引号,双引号,三引号的区别

在Python中,单引号()、双引号(")和三引号( 或 """)都可以用来定义字符串,但它们之间有一些区别: 单引号()和双引号&#xf…...

电子电气架构 ---SOMEIP/SD初入门

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

一些数学基础概念

一些数学基础概念 概率密度函数(PDF) 概率密度函数(Probability Density Function,简称 PDF)是描述连续随机变量的概率分布的一种函数。它用来表示随机变量在各个取值区间内的概率密度。 1. 定义 对于一个连续随机变量 ( X ),…...

责任有限公司的一般组织结构

责任有限公司(有限责任公司,LLC)的组织结构通常是为了确保公司运营的有效性和管理的透明度。以下是一般责任有限公司的组织结构及其主要组成部分: 1. 股东(Shareholders) 职责和角色 所有者:…...

Leetcode3227. 字符串元音游戏

Every day a Leetcode 题目来源:3227. 字符串元音游戏 解法1:博弈论 分类讨论: 如果 s 不包含任何元音,小红输。如果 s 包含奇数个元音,小红可以直接把整个 s 移除,小红赢。如果 s 包含正偶数个元音&am…...

网络流量分析在运维管理中的重要性与实施策略

在运维管理工作中,网络流量分析是一项不可或缺的技术手段。通过对网络流量的深入剖析,运维团队能够更全面地了解网络状态,及时发现潜在问题,优化网络性能,从而确保企业网络的稳定与高效运行。本文将详细探讨网络流量分…...

通信原理实验——PCM编译码

PCM编译码 实验目的 理解PCM编译码原理及PCM编译码性能熟悉PCM编译码专用集成芯片的功能和使用方法及各种时钟关系熟悉语音数字化技术的主要指标及测量方法 主要仪器设备及软件 硬件:多功能实验箱、示波器、导线 软件:无 实验原理 1. 抽样信号的量…...

matlab的strel()函数的使用方法(OK)

这个函数 是形态学的结构元素 使用方法如下 SE strel(nhood) SE strel("diamond",r) SE strel("disk",r) SE strel("disk",r,n) SE strel("octagon",r) SE strel("line",len,deg) SE strel("rectangle",…...

Linux:Linux权限解析

一、Linux下的用户分类 在Linux下,有两种用户,一种是超级用户,一种是普通用户 超级用户:可以再linux系统下做任何事情,不受权限限制(制定规则,但不需要遵守规则) 普通用户&#xff1…...

Spring面试篇章——IOC

IOC概念和原理 IOC概念 IOC就是控制反射,把对象创建和对象之间的调用过程,交给Spring进行管理使用IOC的目的:降低耦合度 IOC底层原理 xml解析、工厂模式、反射 图解: 原始模式 耦合度太高了,即当dao改了&#xf…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

反射获取方法和属性

Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性&#xf…...

Pinocchio 库详解及其在足式机器人上的应用

Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

深度解析云存储:概念、架构与应用实践

在数据爆炸式增长的时代&#xff0c;传统本地存储因容量限制、管理复杂等问题&#xff0c;已难以满足企业和个人的需求。云存储凭借灵活扩展、便捷访问等特性&#xff0c;成为数据存储领域的主流解决方案。从个人照片备份到企业核心数据管理&#xff0c;云存储正重塑数据存储与…...

CMS内容管理系统的设计与实现:多站点模式的实现

在一套内容管理系统中&#xff0c;其实有很多站点&#xff0c;比如企业门户网站&#xff0c;产品手册&#xff0c;知识帮助手册等&#xff0c;因此会需要多个站点&#xff0c;甚至PC、mobile、ipad各有一个站点。 每个站点关联的有站点所在目录及所属的域名。 一、站点表设计…...