MIS微调SAM模型实时交互UI界面

前言

SAM模型的基本介绍可见SAM(Segment Anything Model)大模型使用--point prompt_sam大模型-CSDN博客

针对Meta团队去年发布的SAM大模型在医学图像分割领域表现性能较差的情况,笔者收集了一些MIS领域的数据集对SAM的架构进行fine tune,目前已完成肺部,心脏,脾脏,结肠数据集的微调,于是就写了一个UI交互的界面脚本,目前已经发布在github上。

github地址

GitHub - jaychan0/fine_tune_SAM_MIS: This is a UI project, which uses medical image to fine tune SAM in hugging face structure.

训练说明

数据集主要是来自MSD开源数据集的CT扫描文件,处理的流程为:

把CT扫描文件分为多个切片,取有mask的切片作为备选数据集;

对于不同的数据集,根据文件的大小随机生成指定序号的数量,从备选数据集中获得使用数据集;

对于使用数据集,按照8:1:1的比例划分为训练集、验证集和测试集;

使用3060显卡训练,lr为1e-5,每个数据集训练60个epoch;

训练得到的预训练数据权重都已经上传到网盘中,github上有相应的链接和提取码。

依赖环境

需要说明的是,本项目对于SAM模型的微调不同于现在常见的直接在SAM源码上进行fine tune,而是使用hugging face封装好的系列接口,选择这个微调方式的原因是hugging face中的数据集预处理直接可以通过processor函数一条龙做好,自己再封装一个class就可以直接丢进model里进行训练,再者,它也提供了非常方便地config接口直接调整或更改SAM的结构,对于后续进一步要提高SAM对于下游任务的性能提供了非常方便地途径。

运行交互UI界面,最好本地有独显,笔者本地的是1650Ti显卡(cpu没跑过,估计速度会慢一些)

pytorch架构、transformer库依赖环境,直接从transformer库下载pretrain的权重需要hugging face的API token,在这里我也把原始的轻量化权重vit_b上传到网盘中了。

运行界面及结果

功能在按钮里已经明显了,这里就不赘述了

这里选择肺部的图片进行演示,注意,图片和GT的大小必须是256\times 256

选择完待分割图片后点一下UI界面上对应的矩形区域,图片才会显示,这样便于显示后续实时交互box prompt

直接用鼠标在待分割图像上进行box的输入,命令行会实时输出box的信息,即方框左上角的坐标和右下角的坐标

下一步,选择权重类型,我们先来选择原始权重

之后点击“生成掩膜”,就会看见SAM生成的图片,如果我们想保存生成的图片,就可以点击“保存图片”的按钮

可见原权重对于肺部的分割效果不太好,那我们再使用经过微调之后的肺部权重看看效果如何

可见,微调后的SAM对于肺部图像的分割性能有了显著的提升。

扩展

如果大家有自己的下游任务微调好的权重想要有直观的交互显示,也可以直接在“自定义权重选择”按钮中进行选择,前提是必须是使用hugging face提供的API接口进行微调的vit_b。

最后,如果大家也有在MIS领域微调好的权重,非常希望可以联系我,我可以把大家的权重加到这个体系当中,不断地完善这个系统;对于个人来说,可能无法做到像Meta团队那样构建庞大的数据集进行训练从而获得在通用图像领域高性能的大模型SAM,但是我觉得我们可以汇集大家的力量,不必要只限于单个checkpoint,把不同的MIS分割任务汇集起来,对应不同的权重,那么在MIS领域也可以有我们自己的Medical Segment Angthing Model。

欢迎大家讨论交流~

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

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

相关文章

vue快速入门(四十三)axios模块的安装与引入

步骤很详细,直接上教程 上一篇 在项目目录打开终端 输入以下命令安装axios npm i axios重新打开项目即可完成按照 测试 源码 main.js import Vue from vue import App from ./App.vue//全局引入axios // 引入axios import axios from axios; // 挂载到vue原型…

BGP配置和应用案例

策略路由的配置步骤 l 策略路由的配置步骤如下: 创建route-map 通过ACL匹配感兴趣的数据,定义策略动作 在指定接口下通过ip policy 命令应用route-map l 最终实现对通过该接口进入设备的数据进行检查,对匹配的数据执行规定的策略…

【A-034】基于SSH的电影订票系统(含论文)

【A-034】基于SSH的电影订票系统(含论文) 开发环境: Jdk7(8)Tomcat7(8)MySQLIntelliJ IDEA(Eclipse) 数据库: MySQL 技术: SpringStruts2HiberanteJSPJquery 适用于: 课程设计,毕业设计&…

7.MyBatis 操作数据库(初阶)

文章目录 1.什么是MyBatis2.为什么要学习 MyBatis?3.通过spring框架创建MyBatis项目3.1使用MyBatis查询数据库3.2 mysql连接不上报错解决方法 4.MyBatis的基础操作4.1企业建表规范:4.2MyBatis基本实现4.3单元测试4.4使用MyBatis可能遇到的问题4.5配置MyB…

Jsoncpp搭建交叉编译环境(移植到arm)

1. 官网下载源码 github地址:GitHub - open-source-parsers/jsoncpp at update 2. 交叉编译环境 当前平台/开发平台-编译环境: [rootlocalroot ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [rootlocalroot ~]# uname -a Lin…

4.7 海思SS928开发 - uboot开发 - 自定义分区以及启动方案

4.7 uboot开发 - 自定义分区以及启动方案 ss928 出厂默认的启动方式以及 emmc 默认的分区,不符合需求,考虑自己做一个分区方案以及启动方案。 分区方案 分区表如下: 分区文件系统分区说明fastboot-存放 bootloaderubootenv-存储 uboot 环境…

【预测】小米汽车电子电气架构的猜想

文章目录 前言 整车EEA 硬件平台 软件平台 总结 参考资料 前言 见《【Review】小米汽车发布会》 整车EEA 小米汽车整车电子电气架构方面的信息,小米官方并没有对外介绍,但是从近日流出的整车BOM和供应商列表中看到,车上各种控制器一个都…

蓝牙低能耗安全连接 – 数值比较

除了 LE Legacy 配对之外,LE Secure Connections 是另一种配对选项。 LE 安全连接是蓝牙 v4.2 中引入的增强安全功能。它使用符合联邦信息处理标准 (FIPS) 的算法(称为椭圆曲线 Diffie Hellman (ECDH))来生成密钥。对于 LE 安全连接&#xff…

图像处理技术与应用(二)

图像处理技术与应用入门 椒盐噪声 椒盐噪声,也称为脉冲噪声,是一种常见的数字图像噪声。它通常表现为图像中随机出现的白色(椒)或黑色(盐)像素点,这些像素点在图像上呈现为黑白杂点。椒盐噪声…

算法项目(9)—— 大模型实现PDF检索加QA

本文包含什么? 使用大语言模型进行多个PDF问答检索加QA.gradio实现的网页界面操作,全套代码以及代码介绍运行有问题? csdn上后台随时售后.项目说明 本项目实现使用大语言模型为核心,gradio框架,调用vicuna实现多个pdf QA 代码运行 python3 main.pyimport gradio as gr fr…

云计算革新:以太网 Scale-UP 网络为 GPU 加速赋能

谈谈基于以太网的GPU Scale-UP网络 Intel Gaudi-3 采用 RoCE 互联技术,促进了 Scale-UP 解决方案。业界专家 Jim Keller 倡导以太网替代 NVLink。Tenstorrent 成功应用以太网实现片上网络互联。RoCE 和以太网已成为互联解决方案的新兴趋势,为高性能计算提…

视频中为什么需要这么多的颜色空间?

在视频处理中,经常会用到不同色彩空间:非线性RGB,线性 RGB,YUV,XYZ……为什么需要这么多的色彩空间呢? 1、视频采集时的线性RGB颜色空间 由数码相机中的 CMOS 传感器产生并写入原始文件(Raw Fil…

艾瑞泽5汽车电子控制单元CAN通信数据读写车辆网络系统交互接口

艾瑞泽5的网关接口数据交换通常涉及车辆内部电子设备之间的信息传输,包括车身系统、娱乐系统、远程控制、车辆状态监控、CAN数据采集分析、整车DBC控制策略等信息。 艾瑞泽5作为一款采用CAN协议的汽车,其CAN通信的开发可以提高车辆的安全性、可靠性和实…

怎么设置 idea terminal 窗口的编码格式

1 修改Terminal 窗口为 Git bash 窗口 打开 settings 设置界面,选择 Tools 中的 Terminal (File -> settings -> Tools -> Terminal) 修改 Shell path 为你的 Git bash 安装路径,我的在 C:\my_software\java\Git\bin\bash.exe 2 解决中文显示…

抢单业务介绍

存在的问题 会出现多个人同时访问的问题 解决办法:在判断前加锁,使用户在抢单前先访问锁然后在执行之后的操作 常见的锁 1.基于数据库 2.基础缓存(Redis等) 3.基于Zookeeper

windows 本地部署 ChatGLM2-6b 教程

介绍 ChatGLM2-6B是智谱AI及清华KEG实验室发布的中英双语对话模型,它是 ChatGLM-6B 的第二代版本。 主要特点: 性能提升:ChatGLM2-6B 在初代模型的基础上进行了全面升级,使用了 GLM 的混合目标函数,并经过了 1.4T 中…

小白学习SpringCloud之Eureka

前言 需要搭建springcloud项目,eureka是其中的一个模块,依赖主要继承父依赖 学习视频:b站狂神说 便于理解,我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comEureka入门案例 eureka…

API提取IP

API代理作为IP代理的一项重要业务,在绕开地域网络限制,提高作业效率等方面提供强大的技术支持。它能够帮助用户快速实现软件与软件间的交流,无障碍连通不同应用程序逻辑开发的系统应用。API代理用途范围广泛,如使用API提取代理IP、…

02-JVM学习记录-运行时数据区

二、运行时数据区 每个JVM只有一个Runtime实例,只有一个运行时数据区。 虚拟机栈、堆、方法区最重要 方法区和堆与虚拟机的生命周期相同(随虚拟机启动而创建,虚拟机退出而销毁),程序计数器、虚拟机栈、本地方法栈生命…

区块链技术与应用学习笔记(12-13节)——北大肖臻课程

目录 12.BTC-匿名性 一、什么是匿名? 1,有可能破坏比特币匿名性的两个方面 2,如何提高匿名性 一个比特币用户能采用什么样的方法尽量提高个人的匿名性? 分解: 1、网络层怎么提高匿名性? 2、应用层怎么提高匿名性? 零知…