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即可,也很简单的
本地代码是调试成功了,后续有什么问题的话,再说吧