MedSAM 学习笔记(续):利用训练好的权重进行gui的推理

1、介绍

MedSAM 代码复现参考:第一章:MedSAM 视觉大模型介绍_medsam 系统简介-CSDN博客

利用MedSAM迁移学习训练自定义数据集介绍:MedSAM 学习笔记(续):训练自定义数据集_sam训练自定义数据-CSDN博客

本文将根据在自定义数据集上训练好的权重进行GUI图形化的推理

因为sam模型核心思想是根据提示信息进行推理,所以推理的时候不仅仅需要图像数据,还要加上提示信息(point、bbox、txt等等)。因为无论那种提示信息输入都会很麻烦,所以源代码提供了gui的界面,直接鼠标点击绘制点或者bbox即可

2、生成数据

对于medsam的训练数据是npy格式,是在nii.gz  格式中切片、经过windowing对比度增强,以及归一化之后得到的npy格式的数据。

因为推理的时候,我们需要的是输入图像(jpg、png、jpeg等等),所以这里需要进行格式的

代码很简单,可以参考下面:

import numpy as np
import cv2img_path = 'CT_Abd_liver_0-000.npy'
img = np.load(img_path)print(img.shape)    # (1024, 1024, 3)
img = img * 255
img = cv2.imwrite('demo.png',img)

转换生成的数据如下:

3、利用GUI图形推理

这里更改两个地方即可

第一个,在gui.py 脚本中,更改为训练好的权重

 

第二个,在 ' MedSAM\segment_anything\build_sam.py ' 最后面

因为这里训练的结果是字典,所以导入权重的时候,还需要取出model的val值

然后运行gui.py 脚本即可:

因为官方给的指标只有训练的loss,没有dice啥的,可以保存好mask,然后拿真是gt计算下dice即可,也很简单的

本地代码是调试成功了,后续有什么问题的话,再说吧

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

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

相关文章

leetcode第867题:转置矩阵

matrix[i][j]需要放在转置矩阵的(j,i)位置 public class Solution {public int[][] Transpose(int[][] matrix) {int rows matrix.Length; int columns matrix[0].Length; int[][] array2 new int[columns][];// 初始化内部数组(列数)for (int i 0…

数据库加密系统设计与实现的设计与开发

数据库加密系统设计与实现的设计与开发 Design and Development of a Database Encryption System: Design and Implementation 完整下载链接:数据库加密系统设计与实现的设计与开发 文章目录 数据库加密系统设计与实现的设计与开发摘要第一章 绪论1.1 引言1.2 研究目的与内容…

通过仪器分类方式修订看监测仪器发展新趋势

随着科技的进步和监测需求的不断升级,监测仪器的分类方式亟需与时俱进。本文旨在探讨《混凝土坝监测仪器系列型谱》中对现有仪器分类方式的修订,以及监测仪器发展的新趋势相关内容。 一、仪器分类方式的修订 传统的仪器分类方式往往基于功能、原理或应用…

Linux文本处理三剑客之awk命令

官方文档:https://www.gnu.org/software/gawk/manual/gawk.html 什么是awk? Awk是一种文本处理工具,它的名字是由其三位创始人(Aho、Weinberger和Kernighan)的姓氏首字母组成的。Awk的设计初衷是用于处理结构化文本数…

项目雅景临居---模块1 支付功能

一、查询全部支付方式列表 由于数据库中所有表均采用逻辑删除策略,所以查询数据时均需要增加过滤条件is_deleted0。 上述操作虽不难实现,但是每个查询接口都要考虑到,也显得有些繁琐。为简化上述操作,可以使用Mybatis-Plus提供的…

漏洞发现协议代理池GobyAWVSXray

Awvs漏扫-Sadedog-白名单-内置 加入白名单扫描,防Safedog拉黑IP Awws漏扫-BT&Aliyun-代理池-内置 Xray漏扫-BT&Aliyun-Proxifier-.进程 proxifier添加代理服务器 Goby漏扫-BT&Aliyun-Socket5-内置 对于不通过https对网站或操作系统进行信息收集的程…

在Three.js中实现模型点击高亮:整合EffectComposer与OutlinePass的终极指南

效果【后期实现鼠标点击选中轮廓后给出一个弹窗显示相应的模型信息】 标签指示线参考我的上一篇文章 引言 Three.js不仅让WebGL的3D图形编程变得简单易懂,还通过其强大的扩展库支持丰富的后期处理效果,为3D场景增添无限魅力。本篇文章将引导您深入了…

探索煤化工厂巡检机器人的功能、应用及前景

大家都知道、煤化工厂是以煤为原料生产化工产品的工厂,存在易燃易爆、高温、中毒等隐患等。因此,对煤化工厂进行巡检是非常必要的。巡检旨在是定时对厂内设备运行异常、泄漏等问题,并及时进行处理,保障工作场所的安全。除了以上存…

爬虫 -- 使用selenium和scrapy爬取BBC、NYTimes、Snopes等网站的内容

源代码:GitHub - QQQQQQBY/CrawlNYTimes: 使用scrapy爬虫爬取纽约时报、BBC、Snopes等网站数据 目录 架构组成 scrapy.cfg items.py middlewares.py pipelines.py settings.py spiders/nytimes.py main.py 架构组成 文件结构: myproject/main…

统计信号处理-匹配滤波器实现与验证(matlab仿真)

什么是匹配滤波器 匹配滤波器是一种信号处理技术,它用于从噪声中提取信号,特别是在信号与噪声比率较低的情况下。匹配滤波器之所以存在,是因为它在信号检测和估计方面具有几个关键的优势: 最大化信噪比:匹配滤波器设计…

RestTemplate --学习笔记

什么是RestTemplate? 想象一下你在一家快餐店点餐。你告诉服务员你想要的食物,服务员在系统中输入你的订单,然后厨房根据这个订单做餐。等待一会儿后,你拿到你的食物,整个过程既直接又高效。 在 Java 的世界里&#…

2024年,盘点国内数字人十大品牌!

出炉了,2024年,国内数字人十大品牌。根据用户的广泛认可度和应用普及多个维度产生的报告。 2024年,国内数字人十大品牌分别有腾讯智影、科大讯飞、商汤数字人、硅基数字人、灰豚AI数字人、奇妙元数字人、有道数字人、万兴播报、元分身、华为…

Elasticsearch reindex用管道转换类型

es环境 Elasticsearch 7.1x 使用方法 将通过 convert processor 实现 index准备 POST index_src_1/_doc/1 {"id":"111111","author": "zlh" }GET index_src_1/_search查询得到字符串id "_source" : {"id" : …

前端实现分页

在Vue.js中&#xff0c;可以通过使用v-for指令来遍历数据并渲染分页组件。同时&#xff0c;可以使用计算属性来处理分页逻辑&#xff0c;例如计算总页数、当前页码等。 下面是一个简单的示例&#xff0c;展示了如何在Vue.js中实现分页&#xff1a; <template><div&g…

SpringCloud微服务远程接口调用

一、概念 使用springcloud将项目拆分成一个一个微服务之后&#xff0c;微服务之间的接口调用就需要通过远程的方式实现&#xff0c;这里将介绍springcloud提供的两个微服务组件来介绍如何进行微服务间的远程接口调用。 1、使用RestTEmplate LoadBalanced来实现远程接口调用及…

Linux系统--Nacos的安装

Nacos&#xff1a;更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 随着云计算技术的不断发展&#xff0c;越来越多的企业开始将业务迁移到云端。在这个背景下&#xff0c;云原生应用的开发变得越来越重要。为了帮助企业更好地构建云原生应用&#xff0c;本文将…

React useCallback用法

useCallback 是 React 中的一个 Hook&#xff0c;它用于优化性能&#xff0c;通过缓存函数的引用来避免在组件的每次渲染时都创建新的函数实例。这对于避免不必要的子组件重新渲染特别有用&#xff0c;因为如果传递给子组件的回调函数在每次渲染时都不同&#xff0c;即使子组件…

面试题:讲讲你对闭包的理解?有什么优缺点

面试题&#xff1a;讲讲你对闭包的理解&#xff1f;有什么优缺点&#xff1f; 对闭包的理解 从 JS 作用域链的角度出发&#xff0c;函数外部无法访问到函数中的变量&#xff0c;但函数内部可以访问到其外部的变量。所谓闭包&#xff08;closure&#xff09;&#xff0c;是一种…

Qt 中QList、QListIterator 、QMutableListIterator、QMap用法

#include <QCoreApplication> #include <QDebug>//QListIterator void printList() {QList<int> list;list<<1<<2<<3<<4<<5;QListIterator<int> i(list);qDebug()<<"正序打印....";//正序打印for(;i.ha…

jsonl - JSON Lines

文章目录 一、关于 JSON Lines1.UTF-8编码2.每一行都是有效的JSON值3.行分隔符为\n 4.建议的惯例 二、示例1、Better than CSV2、Easy Nested Data 三、Json 相关工具应用 一、关于 JSON Lines 官网&#xff1a;https://jsonlines.org &#xff08;下文翻译自此&#xff09;js…