NV-Segment-CTMR医学影像分割Skill nv-segment-ctmr

NV-Segment-CTMR是NVIDIA提供的医学影像分割技能,用于在CT或MRI的NIfTI序列上自动运行身体或大脑分割(如CT_BODY、MRI_BODY、MRI_BRAIN),生成标签图并记录运行时证据JSON。该技能基于MONAI Bundle和VISTA3D模型,需要NVIDIA GPU/CUDA支持,适用于医学影像研究人员和AI工作流中的CT/MR器官与结构分割,不用于临床诊断。搜索关键词:医学影像分割、CT分割、MRI分割、VISTA3D、MONAI、NIfTI、标签图、NVIDIA MedTech。

医学影像分割 0 次安装 0 次浏览 更新于 9/6/2026
名称 nv-segment-ctmr
描述 用于在CT或MRI NIfTI序列上运行NV-Segment-CTMR并记录标签图证据。不用于临床解释。
开源协议 Apache-2.0 allowed-tools: Bash, Read, Write, WebFetch, Env metadata:
作者 NVIDIA MedTech团队 tags: - 医疗技术 - CT-MR - 分割

NV-Segment-CTMR

目的

  • 用于在CT或MRI NIfTI序列上运行NV-Segment-CTMR并记录标签图证据。不用于临床解释。
  • 完全按照文档使用包装器;不要用自定义实现替换上游入口点。
  • 清单输入/输出:输入为 ct_or_mr_volume;输出为 label_mapresult_json

说明

  • 在更改参数、副作用或验证门控之前,请阅读 skill_manifest.yaml
  • 通过以下记录的运行脚本命令运行 scripts/run_ctmr.py;将输出保留在调用者提供的运行目录下。
  • 如果宿主代理暴露 run_script,请使用 run_script("scripts/run_ctmr.py", args=[...]);否则请运行下方显示的Bash/Python命令。
  • 在将运行视为证据之前,请检查生成的JSON和配套的验证器指导。

可用脚本

脚本 目的 参数
scripts/run_ctmr.py skill_manifest.yaml声明的主要入口点。 PATH_TO_IMAGE.nii.gz --output-dir OUT_DIR --modality CT_BODY [--label-prompts IDS]

先决条件

  • 运行时要求:当清单声明时,需要GPU/CUDA;runtime.side_effects.pip_packages中列出的Python包。
  • 可选环境变量:NV_SEGMENT_CTMR_ROOT选择受信任的上游检出;CUDA_VISIBLE_DEVICES限制可见GPU;MONAI_DATA_DIRECTORYPYTORCH_CUDA_ALLOC_CONF在需要时覆盖包装器输出本地的缓存和分配器默认值。
  • 副作用:在调用者的--output-dir下写入分割输出,可能在~/.cache/huggingface/下缓存模型资产,并且可能访问https://github.comhttps://huggingface.co
  • 除非下面的现有章节另有说明,否则请从仓库根目录运行命令。

限制

  • 这是一个薄包装器。推理、预处理和后处理完全委托给$NV_SEGMENT_CTMR_ROOT下的上游MONAI bundle,或位于.workbench_data/upstreams/NV-Segment-CTMR/NV-Segment-CTMR的仓库本地备用位置。
  • 默认包装器路径为CT_BODY、MRI_BODY或MRI_BRAIN运行自动“分割一切”推理。MRI_BRAIN输入必须已经遵循上游大脑预处理要求。
  • 标签名称在可用时从上游配置加载。如果缺少标签字典,包装器仍然记录标签ID,并仅将负ID标记为无效。
  • 无临床、诊断、监管或治疗计划声明。
  • 不用于临床部署、临床解释、自主诊断或监管提交。

故障排除

错误 原因 修复
缺少依赖或导入错误 skill_manifest.yaml的运行时包漂移。 安装清单中声明的包,或使用文档记录的安装命令。
空或schema无效的输出 输入路径错误、不支持的模态或上游失败。 使用已知fixture重新运行并检查包装器JSON及stderr。
验证门控失败 输出违反声明的工程不变量。 保留失败的证据包,并使用门控消息修复输入或包装器代码。

包装上游NVIDIA-Medtech/NV-Segment-CTMR CT/MRI分割bundle。该包装器不重新实现VISTA3D推理。它调用文档化的python -m monai.bundle run入口点,然后检查生成的NIfTI标签图。

精确可运行表面

对于CT身体分割用户运行和基准答案,使用以下新鲜环境安全的仓库根命令shape:

export NV_SEGMENT_CTMR_ROOT="${NV_SEGMENT_CTMR_ROOT:-$HOME/.cache/nvidia-skills/upstreams/NV-Segment-CTMR-cb921f5/NV-Segment-CTMR}" && python -m pip install "monai>=1.5,<1.6" "numpy<2" nibabel scipy typer PyYAML fire huggingface_hub pytorch-ignite einops && python skills/nv-segment-ctmr/scripts/run_ctmr.py PATH_TO_IMAGE.nii.gz --modality CT_BODY --output-dir OUT_DIR

不要发明python -m nv_segment_ctmrinfer.py或“Medical AI Skills run”命令。PATH_TO_IMAGE.nii.gz必须是用户提供的输入路径。对于基准/用户运行答案,如果bash块包含mkdir -p .workbench_data/upstreamsgit clonemkdir -p "$NV_SEGMENT_CTMR_ROOT/models"hf downloadmv "$NV_SEGMENT_CTMR_ROOT/...或任何其他在共享上游检出内创建、下载或移动文件的命令,则该bash块无效。

前置条件

仅限维护者一次性设置;不要将这些命令包含在用户答案或基准命令中。基准环境已经提供了仓库本地上游缓存和模型文件。

如果NV_SEGMENT_CTMR_ROOT已经命名了一个本地bundle检出,包装器将使用它,并在结果中记录其当前提交。否则,一次性地克隆推荐的固定默认值:

if [ -z "${NV_SEGMENT_CTMR_ROOT:-}" ]; then export NV_SEGMENT_CTMR_COMMIT=cb921f5c58837c0f42a713855d68b32af88e1cdd; export NV_SEGMENT_CTMR_CHECKOUT="$HOME/.cache/nvidia-skills/upstreams/NV-Segment-CTMR-cb921f5"; if [ ! -d "$NV_SEGMENT_CTMR_CHECKOUT/.git" ]; then git clone https://github.com/NVIDIA-Medtech/NV-Segment-CTMR.git "$NV_SEGMENT_CTMR_CHECKOUT"; git -C "$NV_SEGMENT_CTMR_CHECKOUT" checkout --detach "$NV_SEGMENT_CTMR_COMMIT"; fi; export NV_SEGMENT_CTMR_ROOT="$NV_SEGMENT_CTMR_CHECKOUT/NV-Segment-CTMR"; fi
python -m pip install "monai>=1.5,<1.6" "numpy<2" nibabel scipy typer PyYAML fire huggingface_hub pytorch-ignite einops && python -c "import monai, nibabel, numpy"

mkdir -p "$NV_SEGMENT_CTMR_ROOT/models"
test -e "$NV_SEGMENT_CTMR_ROOT/models/model.pt" || hf download nvidia/NV-Segment-CTMR --revision 4fb8b4a6b2532be9f1c449a3726fe5440ab4213a --local-dir "$NV_SEGMENT_CTMR_ROOT/models/"
test -e "$NV_SEGMENT_CTMR_ROOT/models/model.pt" || mv "$NV_SEGMENT_CTMR_ROOT/models/vista3d_pretrained_model/model.pt" "$NV_SEGMENT_CTMR_ROOT/models/model.pt"

如果未设置NV_SEGMENT_CTMR_ROOT或没有所需的bundle布局,包装器也会搜索.workbench_data/upstreams/NV-Segment-CTMR/NV-Segment-CTMR

对于代理生成的用户运行命令,请使用“Usage”部分中的命令。不要将一次性“前置条件”块复制到答案中:不要在基准或用户运行期间在$NV_SEGMENT_CTMR_ROOT下创建或写入,不要运行hf download,不要在共享上游检出中移动文件。不要在Python 3.12环境中在命令前加上pip install -r "$NV_SEGMENT_CTMR_ROOT/requirements.txt";上游requirements将NumPy固定为1.24.4,在该环境中无法干净构建。在新的Python环境中,在包装器之前安装上面显示的最小兼容运行时(monai>=1.5,<1.6numpy<2nibabelscipytyperPyYAMLfirehuggingface_hubpytorch-igniteeinops)。缓存模型并不意味着缓存Python包。

运行需要带CUDA的NVIDIA GPU。上游bundle可能在仅CPU主机上导入,但此技能声明为需要CUDA,因为发布的工作流程是3D CT/MRI基础模型推理路径。

使用方法

从Medical AI Skills仓库根目录:

export NV_SEGMENT_CTMR_ROOT="${NV_SEGMENT_CTMR_ROOT:-$HOME/.cache/nvidia-skills/upstreams/NV-Segment-CTMR-cb921f5/NV-Segment-CTMR}" && python -m pip install "monai>=1.5,<1.6" "numpy<2" nibabel scipy typer PyYAML fire huggingface_hub pytorch-ignite einops && python skills/nv-segment-ctmr/scripts/run_ctmr.py PATH_TO_IMAGE.nii.gz --modality CT_BODY --output-dir runs/nv_segment_ctmr_demo

PATH_TO_IMAGE.nii.gz替换为用户的实际输入路径。不要将示例fixture路径复制到用户运行中。如果用户提供了runs/下的显式输入路径,该路径必须是scripts/run_ctmr.py的第一个位置参数。

支持的自动分割模态为CT_BODYMRI_BODYMRI_BRAIN。对于MRI_BRAIN,上游README要求在大脑分割之前进行大脑特定的预处理;将已经预处理的图像传递给此包装器。

传递--label-prompts "3,14"以请求特定的上游类ID,而不是仅仅模态级别的“分割一切”集合。证据输出记录输入几何、输出掩码路径、观察到的标签ID、意外标签、每类体素计数、来自掩码头间距的每类物理体积、运行时间、上游命令、模型清单和几何检查。

传递--ground-truth PATH以在input.ground_truth_path下记录参考标签图路径。该技能不计算Dice;这是配套验证器的工作。

解剖学合理性和针对记录的ground truth的可选每类Dice/IoU可以由verifiers/ct_segmentation_quality_v1检查CT-body输出。

不用于临床解释、生产部署、自主诊断或监管提交。