基于SwinTransformer和Unet的自适应多类别分割

news2024/11/15 11:10:10

1、介绍

transformer的基于全局信息的把握,使得对图像的处理成为了可能

swin-transformer在图像分类应用的成功,证明了transformer比传统的cnn卷积网络可以更好的提取图像特征。因为图像分割也是基于特征信息的融合,将不同尺度下的信息拼接,那么transformer肯定也可以在分割领域实现好的效果

前言废话多,很多内容之前介绍过了,这里不想重复,可以参考往期的博文:

unet网络介绍:UNet - unet网络-CSDN博客

unet多类别网络的实战:Unet 实战分割项目、多尺度训练、多类别分割_unet进行多类分割-CSDN博客

unet更换骨干网络为resnet、deeplab等等:Unet+ResNet 实战分割项目、多尺度训练、多类别分割_resnet分类和unet 图像分割-CSDN博客

Unet 高阶分割网络实战、多类别分割、迁移学习(deeplab、resnet101等等)_unet多分类-CSDN博客

swin-transformer在图像分类的介绍:

Swin-Transformer 在图像识别中的应用_swim transformer 应用-CSDN博客

没有数据集的话,想要自己制作,并且利用 swin-transformer 分类,实现端到端的分类项目的话,参考:图像识别完整项目之Swin-Transformer,从获取关键词数据集到训练的完整过程_transformer图像识别-CSDN博客

2、项目介绍

因为小白在做分类人物的时候,不知道怎么定义分类的类别,这不是分割吗?怎么还有number classes这个参数?或者这个参数需不需要加背景(+1)?等等

本项目对数据集进行处理,将mask的灰度值进行编码重构,这样可以根据数据集自动获取number classes的个数,不需要手动定义,这也就是为什么叫自适应分割的原因

代码根据官方的代码进行更改,因为官方的代码训练过程可能稍微繁琐了一些,需要生成指定的数据格式啊、或者参数定义太多了等等

事实上,如果跑了很多项目,有了自己熟悉的代码风格的话,完全可以只用源代码的model部分,其余的train、predict等等自己实现

项目目录如下:

这里的data就是数据,按照目录摆好即可,里面都是图片

这里建议图片的名称完全一样,要不然dataset提取到images,想要找到mask的话,还要更改对应的代码 

这里本人写过一篇python自动化办公的脚本,可以参考这个更改:PYTHON 自动化办公:更改图片后缀-CSDN博客

3、训练

定义好数据后,就可以训练了,超参数就是下面这几个,如果想要更改优化器啊、动量啊等等,在代码里更改就好了。如果不是炼丹大师的话,建议默认,更改下面的值就行了

这里会自动载入官方的预训练权重,达到迁移学习的目的

当然了,运行前需要配置好环境!!

代码运行完,会在run_results目录下,生成下面的数据,这个目录就是自己生成的

只需要注意一点,每次运行train脚本,都会删除之前的run_results目录,然后生成新的!!

这里对腹部多脏器的进行分割,miou达到了0.81!!

在日志文件中,可以看到更为具体每个类别的iou

因为腹部多脏器是4类别分割,加上背景就是5类,而每个列表下就是对应的类别(索引0代表背景)

4、推理

推理的时候,直接运行predict脚本即可,代码会将inference目录下的所有图像进行推理,并且保存

5、其他

这里捋一遍代码的运行的逻辑

1、按照指定格式摆放好数据

2、更改完超参数后,直接运行train脚本即可

train代码会将数据的mask灰度重新索引,不管你的数据是按照0 255这样灰度,还是0 1 2这样格式,都会重新编码,保存在data下

然后dataset就会根据这个文本,自动灰度映射,因为二值分割需要保证灰度是0 1而非0 255的格式。

最后,trian脚本根据这个文本自动提取分割网络输出的number classes,达到自适应分割

3、运行predict推理即可

项目的下载:基于Swin-Transformer和Unet项目、自适应多尺度训练、多类别分割:腹部多脏器5类别分割数据集资源-CSDN文库

这里多尺度,是因为train的预处理,会自动将图片随机缩放到指定尺寸的0.5-1.5倍之间,然后随机裁剪成224*224的size,这样可以达到数据增广的目的

因为transformer的训练时间很长才能收敛,所以本项目自动载入官方的预训练权重,使用迁移学习

其他:

这里没有给出网络输入的维度,而是固定了224*224的输入。因为本人在测试官方代码的时候,发现更改为480*480会报错,所以干脆直接固定了

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

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

相关文章

vivado 使用远程主机和计算群集

使用远程主机和计算群集 概述 AMD Vivado™集成设计环境(IDE)支持同时并行合成和实现的执行在多个Linux主机上运行。你可以做到这一点通过配置单个主机或指定要在其上启动作业的命令手动执行现有的计算集群。目前,Linux是Vivado唯一支持远程主…

负氧离子监测站:创造健康生活环境

TH-FZ5在蓝天白云之下,那一座座高耸的全彩屏负氧离子监测站,如同一支支科技的绿芽,静静破土而出,为这片土地带来了新的生命力。这些现代化的设备不仅美化了环境,更是我们呼吸健康守护者,它们的存在让我们的…

STM32F10X开发环境的搭建

一、keil软件安装 找到keil软件包,解压缩,找到keil5安装软件: 鼠标右键选择以管理员权限运行。点击next,直到安装结束。 安装完成后在桌面会出现keil5软件图标: 然后再安装相应的芯片支持包:我们用的是stm…

Leetcode - 2580. 统计将重叠区间合并成组的方案数

文章目录 思路AC CODE总结 题目链接:2580. 统计将重叠区间合并成组的方案数 思路 一个区间合并的板子,计算出区间数目之后,每个区间都有放左和放右两种选法,所以最后的答案就是 2 k 2^k 2k。但是需要用c进行二维数组的排序&…

【深度学习】深度学习md笔记总结第2篇:TensorFlow介绍,学习目标【附代码文档】

深度学习笔记完整教程(附代码资料)主要内容讲述:深度学习课程,深度学习介绍要求,目标,学习目标,1.1.1 区别,学习目标,学习目标。TensorFlow介绍,2.4 张量学习目标,2.4.1 张量(Tensor),2.4.2 创建张量的指令,2.4.3 张量…

红外遥控NEC协议

红外遥控技术在我们的日常生活中应用非常广泛,比如我们的遥控器。通过遥控器发射红外光,电视,空调装有红外接收管,负责接受红外光。那么本节将重点介绍其中的原理。 一、工作原理 上图的HS0038便是装在空调,电视上的红…

开放大学2024年春《数控技术 060253》综合大作业参考答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 单选题 1数控系统的核心是( ) …

腾讯云4核8G12M云服务器一年646元,送3个月时长

2024年腾讯云4核8G服务器租用优惠价格:轻量应用服务器4核8G12M带宽646元15个月,CVM云服务器S5实例优惠价格1437.24元买一年送3个月,腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图: 腾讯云4核8G服务器优惠价格 轻…

34.HarmonyOS App DevEco Studio中文界面设置

HarmonyOS App DevEco Studio中文界面设置 重新打开DevEcoStudio,显示中文界面

双碳目标下基于全球模式比较计划CMIP6与区域气候-化学耦合模式WRF-Chem的未来大气污染变化模拟教程

原文链接:双碳目标下基于全球模式比较计划CMIP6与区域气候-化学耦合模式WRF-Chem的未来大气污染变化模拟教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247599209&idx7&sn2fb78bcb18e6ec709853a7595d8822d9&chksmfa82058ecdf58c9852bf4…

任何程序员错过这些宝藏接单平台,都会难过好吗?

财富自由何时才能实现?首先,可以很负责地告诉你:安安心心地当一头牛马肯定是不能!兢兢业业十几年,归来仍是马喽。 说实在的,这两年经济下行,互联网红利又日渐褪去。前者既争又抢,后…

顶会热点!迁移学习9个结合创新思路,让审稿人眼前一亮

为更灵活、更高效地解决各种复杂和动态变化问题,研究者开始着眼于将迁移学习与其他技术相结合。 这种结合充分发挥了迁移学习的优势,如知识转移、数据效率和加速学习过程等,让模型能够从更高的基准开始学习,更快地适应新任务&…

Vue 3中ref和reactive的区别

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

01使用调试工具

文章目录 前言一、用openocd打开单片机二、利用4444端口向单片机写入hex文件三、利用3333端口和gdb进行调试四、之前我出的问题总结 前言 之前写了一篇关于在linux下搭建stm32标准库的文章后,有一些小伙伴们还是出现了一些奇奇怪怪的错误,这一篇文章就是…

Netty服务端基本启动流程源码刨析

前言: 希望看这篇文章之前对Java Nio编程比较熟悉,并有用过Netty开发简单代码 服务端代码 先大致说一下NioEventLoopGroup组件的作用,可以把它看是作内部维护了一个NioEventLoop数组的对象,它的构造方法的参数用来指定维护数组的大小。NioEve…

JVM(六)——内存模型与高效并发

内存模型与高效并发 一、java 内存模型 【java 内存模型】是 Java Memory Model(JMM) 简单的说,JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据的可见性、有序 性、和原子性的规则和保障…

2024年【G2电站锅炉司炉】考试及G2电站锅炉司炉找解析

题库来源:安全生产模拟考试一点通公众号小程序 G2电站锅炉司炉考试考前必练!安全生产模拟考试一点通每个月更新G2电站锅炉司炉找解析题目及答案!多做几遍,其实通过G2电站锅炉司炉复审模拟考试很简单。 1、【多选题】下列为锅炉的…

【MATLAB源码-第170期】基于matlab的BP神经网络股票价格预测GUI界面附带详细文档说明。

操作环境: MATLAB 2022a 1、算法描述 基于BP神经网络的股票价格预测是一种利用人工神经网络中的反向传播(Backpropagation,简称BP)算法来预测股票市场价格变化的技术。这种方法通过模拟人脑的处理方式,尝试捕捉股票…

Echarts 基础柱状图,实现柱体设定颜色且带有图例

摘要:柱状图的最初要求很简单,4个柱体高低显示不同分类的值,逐渐增加的要求有:自定义特定分类颜色、增加图例展示、点击图例控制分类显示和隐藏。记录下遇到的问题和一些不熟悉的属性的使用。 大致的显示结果如上图,下…

CSMM软件过程能力成熟度模型

软件过程能力成熟度模型旨在通过提升组织的软件开发能力帮助顾客提升软件的业务价值。 本模型借鉴吸收了软件工程、项目管理、产品管理、组织治理、质量管理、卓越绩效管理、精益软件开发等领域的优秀实践,为组织提供改进和评估软件过程能力的一个成熟度模型。 总体…