Pytorch-Medical-Segmentation

GitHub
926 199 中等 1 次阅读 2天前MIT图像开发框架
AI 解读 由 AI 自动生成,仅供参考

Pytorch-Medical-Segmentation 是一个基于 PyTorch 框架的开源项目,专注于提供医学图像分割的 2D 与 3D 算法实现。它主要解决了医疗影像分析中模型复现难、数据格式兼容性差以及训练流程繁琐等痛点,帮助开发者快速搭建从数据预处理到模型训练、推理的完整流水线。

该工具非常适合从事医学影像分析的科研人员、算法工程师及深度学习开发者使用。其核心亮点在于极强的灵活性与兼容性:不仅支持几乎所有主流的医学数据格式(如 nii.gz, mhd, nrrd 等),还通过独特的 Patch 处理机制,允许输入图像尺寸不一致,大幅降低了数据预处理门槛。用户只需简单修改配置文件(hparam.py),即可轻松切换 2D/3D 模式、调整超参数或适配多分类任务。

需要注意的是,原仓库目前已停止维护,作者建议有长期开发需求的用户迁移至其升级版项目 SLab-Medical-Segmentation 以获取更稳定的支持。对于希望快速验证医学分割算法或进行教学演示的用户,Pytorch-Medical-Segmentation 依然提供了一个清晰、易上手的代码参考范本。

使用场景

某三甲医院影像科团队正致力于开发一套自动化的肝脏肿瘤 CT 影像辅助诊断系统,需要从大量三维医学数据中精准分割出病灶区域。

没有 Pytorch-Medical-Segmentation 时

  • 数据格式适配难:面对医院混杂的 .nii.gz.mhd 等多种 DICOM 衍生格式,需编写大量繁琐的自定义代码进行格式转换与对齐。
  • 3D 模型复现成本高:从零搭建支持三维体素(Patch)处理的 U-Net3D 架构极其复杂,且容易在显存优化和切片逻辑上出现隐蔽 Bug。
  • 评估指标不统一:缺乏标准的医学分割评估模块(如 Dice 系数),团队需手动实现并验证算法准确性,耗时且易出错。
  • 参数调整混乱:2D 与 3D 模式切换、多分类设置分散在不同脚本中,每次实验都需修改多处核心代码,效率低下。

使用 Pytorch-Medical-Segmentation 后

  • 多格式无缝兼容:仅需在 hparam.py 中简单配置 fold_arch,即可直接读取并处理 .mhd.nrrd 等主流医学格式,无需额外转换。
  • 开箱即用的 3D 架构:直接调用已修复 Bug 的 U-Net3D 实现,基于 Patch 的训练机制自动处理不同尺寸的 CT 影像,大幅降低开发门槛。
  • 内置专业评估体系:集成标准的 Dice 等医学分割指标代码,训练过程中实时反馈模型性能,确保结果可信。
  • 灵活统一的配置管理:通过单一配置文件即可自由切换 2D/3D 模式及多分类任务,快速迭代实验方案,将研发周期从数周缩短至数天。

Pytorch-Medical-Segmentation 通过提供标准化、高兼容性的三维分割基线,让医疗 AI 团队能从繁琐的工程基建中解脱,专注于提升病灶识别的临床准确率。

运行环境要求

操作系统
  • 未说明
GPU

未说明 (基于 PyTorch,通常建议使用 NVIDIA GPU 进行加速,但 README 未明确指定型号或显存要求)

内存

未说明

依赖
notes该仓库已弃用,作者建议迁移至新仓库 'SLab-Medical-Segmentation'。支持多种医疗数据格式(如 nii.gz, mhd 等),但使用前需将图像和标签转换为相同格式,且标签值应标记为 1 而非 255。项目基于 Patch 处理,2D/3D 分割均可通过修改 hparam.py 配置。若需多分类任务,需用户自行修改代码。
python>=3.6
pytorch==1.7
torchio<=0.18.20
Pytorch-Medical-Segmentation hero image

快速开始

PyTorch 医学分割

阅读中文简介:点击这里!

❗️🚨 重要通知 🚨❗️

🔗 请参考我们的新仓库:SLab-Medical-Segmentation

🛑 现有仓库已弃用!

备注

我们计划在近期对代码进行重大更新,如果您有任何建议,欢迎随时通过邮件 me 与我联系,或在 issue 中提出。

最新动态

  • 2021.1.8 发布了训练和测试代码。
  • 2021.2.6 在 Shanshan Li 的帮助下修复了 dice 指标中的一个 bug。
  • 2021.2.24 发布了一段视频教程(https://www.bilibili.com/video/BV1gp4y1H7kq/)。
  • 2021.5.16 修复了 Unet3D 实现中的一个 bug。
  • 2021.5.16 发布了指标代码。
  • 2021.6.24 所有参数现在都可以在 hparam.py 中调整。
  • 2021.7.7 现在您可以参考 Pytorch-Medical-Classification 中的医学分类任务。
  • 2022.5.15 现在您可以参考 SSL-For-Medical-Segmentation 中关于医学分割的半监督学习内容。
  • 2022.5.17 我们更新了训练和推理代码,并修复了一些 bug。

环境要求

  • pytorch 1.7
  • torchio <= 0.18.20
  • python >= 3.6

注意事项

  • 您可以通过修改 hparam.py 来决定是进行 2D 还是 3D 分割,以及是否支持多类别分割。
  • 我们提供了几乎所有 2D 和 3D 分割算法。
  • 本仓库兼容几乎所有的医学数据格式(如 nii.gz、nii、mhd、nrrd 等),只需在配置文件的 hparam.py 中修改 fold_arch 即可。建议您在使用前将源图像和标签图像统一转换为同一种格式,并确保标签用 1 标记,而不是 255。
  • 如果您希望使用 多类别 分割程序,请自行修改相关代码。我无法识别您的具体类别。
  • 无论 2D 还是 3D,本项目都采用 patch 方式处理数据,因此图像不必严格保持相同尺寸。但在 2D 情况下,您应设置足够大的 patch 尺寸。

数据集准备

示例1

如果您的源数据集为:

source_dataset
├── source_1.mhd
├── source_1.zraw
├── source_2.mhd
├── source_2.zraw
├── source_3.mhd
├── source_3.zraw
├── source_4.mhd
├── source_4.zraw
└── ...

而您的标签数据集为:

label_dataset
├── label_1.mhd
├── label_1.zraw
├── label_2.mhd
├── label_2.zraw
├── label_3.mhd
├── label_3.zraw
├── label_4.mhd
├── label_4.zraw
└── ...

那么您需要在 hparam.py 中将 fold_arch 修改为 *.mhd,并将 source_train_dir 设置为 source_datasetlabel_train_dir 设置为 label_dataset

示例2

如果您的源数据集为:

source_dataset
├── 1
    ├── source_1.mhd
    ├── source_1.zraw
├── 2
    ├── source_2.mhd
    ├── source_2.zraw
├── 3
    ├── source_3.mhd
    ├── source_3.zraw
├── 4
    ├── source_4.mhd
    ├── source_4.zraw
└── ...

而您的标签数据集为:

label_dataset
├── 1
    ├── label_1.mhd
    ├── label_1.zraw
├── 2
    ├── label_2.mhd
    ├── label_2.zraw
├── 3
    ├── label_3.mhd
    ├── label_3.zraw
├── 4
    ├── label_4.mhd
    ├── label_4.zraw
└── ...

那么您需要在 hparam.py 中将 fold_arch 修改为 */*.mhd,并将 source_train_dir 设置为 source_datasetlabel_train_dir 设置为 label_dataset

训练

  • 不使用预训练模型
将 hparam.train_or_test 设置为 'train'
python main.py
  • 使用预训练模型
将 hparam.train_or_test 设置为 'train'
python main.py -k True

推理

  • 测试
将 hparam.train_or_test 设置为 'test'
python main.py

示例

教程

已完成

网络

  • 2D
  • 3D

指标

  • metrics.py 用于评估您的结果

待办事项

  • 数据集
  • 基准测试
  • nnunet

顺便说一句

本项目并不完美,仍存在许多问题。如果您正在使用该项目并希望向作者提供反馈,欢迎发送邮件至 Me

致谢

本仓库是非官方的 PyTorch 3D 和 2D 医学分割实现,高度参考了 MedicalZooPytorchtorchio。感谢上述项目的贡献。本项目在 Prof. Ruoxiu XiaoProf. Shuang SongDr. Cheng Chen 的指导下完成。同时,感谢 Youming ZhangDaiheng GaoJie ZhangXing TaoWeili JiangShanshan Li 对我的所有帮助。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2周前
Agent开发框架图像

n8n

n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。

184.7k|★★☆☆☆|今天
数据工具开发框架Agent

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

161.1k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|昨天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像