batchgenerators

医学图像训练数据太少?一行管道批量增强2D/3D图像与标签

开源 free 数据集
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1175
维护状态 活跃
是否开源 是
定价模式 free

项目预览

项目数据

分类数据集
开发团队MIC-DKFZ
所属国家
官网地址
定价模式free
价格说明开源免费,无在线服务
访问状态
是否开源是
开源协议Apache-2.0
主要语言Jupyter Notebook
技术栈/模型
GitHub 星标★ 1175
30天Star增速
HF 下载量
上线时间2017-10-27 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-10-15
浏览次数0

项目介绍

batchgenerators 是一个面向 2D/3D 医学图像分类与分割任务的数据增强框架,最初为 nnU-Net 等医学影像流程提供底层支持。它解决的问题是:医学图像数据量小、标注昂贵,且 3D 体数据增强操作复杂,普通图像增强库难以直接套用。核心能力包括多线程/多进程批量生成器,可在训练时并行执行增强,避免 GPU 等待;内置丰富的空间变换(旋转、缩放、弹性形变、镜像)、强度变换(亮度、对比度、Gamma、噪声)以及针对分割标签的同步增强,保证图像与掩码一致。它提供可组合的变换管道,支持在 2D 和 3D 数据上统一使用,并允许自定义增强算子。框架与 PyTorch 等训练循环解耦,可灵活嵌入现有流程,是医学图像分割竞赛和研究中常用的数据增强底座。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

正在加载星标数据…

技术标签

使用教程

—

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • 已安装 Python 与 pip 环境
  • 运行 README 中的 .ipynb 示例需要 Jupyter Notebook
  • 准备自己的 2D/3D 医学图像数据(分类或分割任务)

安装与启动步骤

  1. 1安装 batchgenerators

    使用 pip 安装并升级到最新版,README 中给出的官方安装方式。建议在虚拟环境中执行,避免污染全局 Python 环境。

    pip install --upgrade batchgenerators
  2. 2验证导入

    导入 README 中示例的对比度增强变换类,若不报错说明安装成功。报错时应先确认 Python 解释器与 pip 是否一致。

    python -c "from batchgenerators.transforms.color_transforms import ContrastAugmentationTransform"
  3. 3阅读入门示例

    README 指向包内 examples 目录下的 example_ipynb.ipynb,先照此了解基本用法。文件随安装包一起提供,可用 Jupyter 打开阅读。

  4. 4阅读多线程示例

    multithreaded_with_batches.ipynb 详细注释了 SlimDataLoaderBase 与 MultiThreadedAugmentor 的配合,展示多进程加载与增强、每个 epoch 只遍历一次数据集的用法。

  5. 5参考 BraTS 完整示例

    batchgenerators/examples/brats2017/ 提供了 BraTS2017/2018 的 2D 与 3D DataLoader 及增强的完整示例,可直接对照自己的数据改造。

  6. 6编写自定义数据加载器

    按 README 的工作方式:继承 DataLoaderBase 类,重写 generate_train_batch 成员函数,在其中串联你的增强算子并返回批次数据。

如何确认成功

执行导入命令 from batchgenerators.transforms.color_transforms import ContrastAugmentationTransform 无报错,即表示安装成功。

常见问题

Q:示例代码在哪里?

A:README 指出简单示例在 batchgenerators/examples/example_ipynb.ipynb,多线程示例在 multithreaded_with_batches.ipynb,另有 brats2017 目录和 datasets/cifar.py。

Q:怎么用这个框架做数据增强?

A:继承 DataLoaderBase 类,重写 generate_train_batch 成员函数,在函数中堆叠增强操作,再由批量生成器输出训练批次。

Q:能用于 3D 医学图像吗?

A:可以。README 提供了 BraTS2017/2018 的 2D 与 3D DataLoader 及增强示例,另外还包含解剖感知和错位(Misalignment)等专用增强。

Q:使用该项目需要注意什么?

A:需遵守项目 LICENSE 许可条款;如在研究中使用,请引用 README 给出的 batchgenerators 论文(doi:10.5281/zenodo.3632567)。

Q:遇到 bug 怎么办?

A:README 说明可直接联系作者或在 GitHub 仓库提交 issue(https://github.com/MIC-DKFZ/batchgenerators)。

注意事项

  • 使用前请确认已阅读并遵守项目 LICENSE 的许可要求。
  • 发表成果时请引用 README 中给出的 batchgenerators 论文 DOI。
  • README 未给出端口、服务或 Docker 相关配置,本项目按 Python 包方式使用,无需启动服务。

核心亮点

  • 支持图像与分割掩码同步增强,避免标签错位
  • 多进程批量生成,训练时数据增强不阻塞GPU
  • 内置弹性形变、随机旋转缩放等医学影像常用3D增强算子

不足之处

  • 项目以 Jupyter Notebook 为主要语言,工程化封装和类型提示较弱
  • 文档和示例相对分散,新手上手需要阅读源码

适用场景

  • 医学图像分割模型训练时在线增强CT/MRI体数据
  • 小样本医学分类任务中扩充2D切片数据
  • 复现nnU-Net等流程时作为底层数据增强组件

替代项目

Albumentations、MONAI、torchio

上一篇:Awesome-Embodied-AI

下一篇:没有了!

同类项目推荐

X-AnyLabeling 开源

一站式AI辅助标注,图像视频文本通吃,导出格式随心配

X-AnyLabeling: A lightweight, efficient, and unified cross-platform desktop applicat···

★ 10685 2026-08-10
aisheets 开源

像用表格一样批量调 AI,不写代码就能造和改数据集

Build, enrich, and transform datasets using AI models with no code

★ 1652 2026-09-20
DataGen 开源

用大模型一键生成定制化训练数据,告别数据荒

[ICLR'25] DataGen: Unified Synthetic Dataset Generation via Large Language Models

★ 69 2026-08-09
distilabel 开源

基于论文的合成数据流水线,快速生成高质量 AI 反馈数据。

Distilabel is a framework for synthetic data and AI feedback for engineers who need ···

★ 3418 2026-08-10