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

SAM-Med3D:面向三维医疗体数据的通用分割模型 (代码仓库笔记)

SAM-Med3D 代码仓库组成及运行流程总结

目录

  • SAM-Med3D 代码仓库组成及运行流程总结
    • 一、代码仓库简介
      • 1)目录结构与关键文件
      • 2)数据与预训练权重
      • 3)快速上手(模型测试)
      • 4)训练 / 微调流程
      • 5)评估流程
      • 6)项目特点(速记)
    • 二、SAM-Med3D 代码仓库结构总览
      • 1) 根目录核心文件
      • 2) 文件夹功能
      • 3) 总结
    • 三、segment\_anything文件夹脚本及组成部分作用总结
      • 1)目录结构与关键文件
      • 2)工作机制(从构建到推理)
      • 3)接口与注册表速查
      • 4)要点小结
    • 四、utils 文件夹脚本总结
      • 1)脚本速查表
      • 2)关键脚本要点
      • 3)实践建议
    • 五、小节


一、代码仓库简介

项目定位SAM-Med3D 面向体数据(CT/MRI)的通用分割,基于 SAM 思想扩展到 3D。仓库内容可分为「核心代码、数据与权重、运行与评估脚本」三大块,便于快速上手测试、训练/微调与评估。

1)目录结构与关键文件

  • 核心模型(segment_anything/

    • image_encoder3D.py:3D 图像编码器
    • prompt_encoder3D.py:3D 提示(点/框等)编码器
    • mask_decoder3D.py:3D 掩码解码器
    • build_sam3D.py:模型构建与加载工具
  • 训练与微调

    • train.py:训练主程序(支持交互式提示模拟与损失计算)
    • train.sh:单卡训练启动脚本
    • train_ddp.sh:多卡分布式训练脚本
  • 评估与验证

    • medim_val_single.py:单样本快速验证
    • medim_val_dataset.py:数据集批量评估
    • val_for_single_data.sh / val_on_dataset.sh:评估脚本入口
    • utils/compute_dataset_metrics.py:Dice、NSD 等指标计算
  • 数据处理与配置(utils/

    • prepare_data_from_nnUNet.py:将 nnU-Net 格式转换为本项目所需格式(重采样、掩码二值化)
    • data_loader.py:数据加载与基础增强
    • data_paths.py:训练/测试数据路径集中配置(img_datas 列表)

2)数据与预训练权重

  • 数据集:提供 SA-Med3D-140K(约 143K 个 3D 掩码,245 类),可从 Hugging Face 获取。
  • 预训练模型:提供 SAM-Med3D-turbo 等权重(Hugging Face / Google Drive / 百度网盘),建议微调以提升下游性能。

3)快速上手(模型测试)

(1)环境准备

# 创建并激活虚拟环境
conda create --name sammed3d python=3.10 
conda activate sammed3d# 安装依赖管理工具 uv
pip install uv# 安装 PyTorch 及相关库(按需替换为你的 CUDA 对应版本)
uv pip install torch==2.6.0 torchvision==0.21.0 torchaudio==2.6.0# 安装医学影像处理依赖
uv pip install torchio opencv-python-headless matplotlib prefetch_generator monai edt surface-distance medim

(2)单样本验证
medim_val_single.py 中设置路径:

img_path = "./test_data/Seg_Exps/ACDC/ACDC_test_cases/patient101_frame01_0000.nii.gz"
gt_path  = "./test_data/Seg_Exps/ACDC/ACDC_test_gts/patient101_frame01.nii.gz"
out_path = "./test_data/Seg_Exps/ACDC/ACDC_test_SAM_Med3d/patient101_frame01.nii.gz"

运行:

python medim_val_single.py

提示:需要 ground-truth 掩码用于生成提示点;若无真实标签,可临时手工标注“伪标签”。

4)训练 / 微调流程

(1)准备权重(推荐)

ckpt_path = "https://huggingface.co/blueyo0/SAM-Med3D/blob/main/sam_med3d_turbo.pth"
# 示例:使用 MedIM 快速创建(如已安装)
model = medim.create_model("SAM-Med3D", pretrained=True, checkpoint_path=ckpt_path)

将下载的 .pth 放入 ckpt/ 并在训练脚本中通过 --checkpoint 指定。

(2)准备数据

  • 建议结构(每个任务一套图像与二值掩码):
data/train├── adrenal/ct_WORD│   ├── imagesTr/word_0025.nii.gz│   └── labelsTr/word_0025.nii.gz├── liver/ct_WORD│   └── ...
  • nnU-Net 数据可用 utils/prepare_data_from_nnUNet.py 转换。
  • utils/data_paths.py 设置训练目录:
img_datas = ["data/train/adr

文章转载自:

http://xBIWEDih.wdrxh.cn
http://tNU627BA.wdrxh.cn
http://FRs7AC92.wdrxh.cn
http://czqisHbz.wdrxh.cn
http://bSbphzJq.wdrxh.cn
http://x74LEIa8.wdrxh.cn
http://6Fwl9qun.wdrxh.cn
http://B3HyQUnS.wdrxh.cn
http://WXeEBegG.wdrxh.cn
http://Nu1s6Q5l.wdrxh.cn
http://5J3KgkLg.wdrxh.cn
http://C9aIZVNG.wdrxh.cn
http://gHIoRPSm.wdrxh.cn
http://9Cd1qm9k.wdrxh.cn
http://wfdqZzZw.wdrxh.cn
http://EthsfWa3.wdrxh.cn
http://j6IJcHdK.wdrxh.cn
http://UMjPGC2Z.wdrxh.cn
http://JoeDJSD7.wdrxh.cn
http://7EKTFZyg.wdrxh.cn
http://bHtZagdC.wdrxh.cn
http://uV3Ct67u.wdrxh.cn
http://UVXEyawb.wdrxh.cn
http://fgINsB9f.wdrxh.cn
http://MWYmqIsT.wdrxh.cn
http://Y95rCL4S.wdrxh.cn
http://TMRCs5TW.wdrxh.cn
http://o0EhHH5A.wdrxh.cn
http://i3TjMSAd.wdrxh.cn
http://IMLAPWaL.wdrxh.cn
http://www.dtcms.com/a/380531.html

相关文章:

  • 嵌入式桌面集成 · GNOME 与 Yocto 在 Jetson AGX Orin 上的实战指南
  • Model Context Protocol (MCP) 安全风险与攻击方式解析
  • 计算机毕业设计 基于大数据技术的医疗数据分析与研究 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】
  • 单片机烧录原理是怎样的?辉芒微单片机烧录程序步骤教程如下
  • CI/CD流水线优化实战:从30分钟到5分钟的效能革命
  • 融智学:构建AI时代学术的新范式
  • 自指与递归既是威力也是边界(会带来不可判定与不完备)
  • HarmonyOS 实战:如何用数据压缩和解压让应用更快更省
  • 软考-系统架构设计师 信息安全的抗攻击技术详细讲解
  • Spring Initializr(或者 IDEA 里新建 Spring Boot 项目)时 Dependencies 的选择
  • 创建一个Spring Boot Starter风格的Basic认证SDK
  • 数据库的连接_qt
  • Tessent_ijtag_ug——第 4 章 ICL 提取(1)
  • Qt开发经验 --- Qt 修改控件样式的方式(16)
  • UE5 基础应用 —— 07 - 角色蓝图 简单使用
  • Motioncam Color S + 蓝激光:3D 视觉革新,重塑工业与科研应用新格局
  • arduino编程esp8266模块并烧写联网详细教程【单片机联网】
  • 云蝠智能大模型呼叫——AI不仅能“听懂话”,更能“读懂心”
  • 交通信号灯SUMO仿真深度强化学习完整代码python
  • QT M/V架构开发实战:QStandardItemModel介绍
  • OSI(Open Systems Interconnection)七层模型详解
  • 【硬件-笔试面试题-91】硬件/电子工程师,笔试面试题(知识点:MOS管参数选型)
  • 工业相机与镜头的靶面尺寸详解:选型避坑指南
  • Python @contextmanager 装饰器
  • 关于ros2中的话题topic的一些问题
  • 计算机视觉----opencv高级操作(二)(图像的直方图均衡化,角点检测,特征提取Sift)
  • Vue 3 中监听多个数据变化的几种方法
  • nodejs 、 npm、vite的版本对应关系及创建一个指定版本的 Vite 项目
  • 5. STM32 时钟系统分配
  • 开源在线文件转换工具 ConvertX,支持1000+不同类型文件转换