English | 简体中文
MedicalSeg 是一个简单易使用的全流程 3D 医学图像分割工具包,它支持从数据预处理、训练评估、再到模型部署的全套分割流程。特别的,我们还提供了数据预处理加速,在肺部数据 COVID-19 CT scans 和椎骨数据 MRISpineSeg 上的高精度模型, 对于MSD、Promise12、Prostate_mri等数据集的支持,以及基于itkwidgets 的 3D 可视化Demo。如图所示是基于 MedicalSeg 在 Vnet 上训练之后的可视化结果:
Vnet 在 COVID-19 CT scans (评估集上的 mDice 指标为 97.04%) 和 MRISpineSeg 数据集(评估集上的 16 类 mDice 指标为 89.14%) 上的分割结果
MedicalSeg 目前正在开发中!如果您在使用中发现任何问题,或想分享任何开发建议,请提交 github issue 或扫描以下微信二维码加入我们。
我们使用 Vnet 在 COVID-19 CT scans 和 MRISpineSeg 数据集上成功验证了我们的框架。以左肺/右肺为标签,我们在 COVID-19 CT scans 中达到了 97.04% 的 mDice 系数。你可以下载日志以查看结果或加载模型并自行验证:)。
骨干网络 | 分辨率 | 学习率 | 训练轮数 | mDice | 链接 |
---|---|---|---|---|---|
- | 128x128x128 | 0.001 | 15000 | 97.04% | model | log | vdl |
- | 128x128x128 | 0.0003 | 15000 | 92.70% | model | log | vdl |
骨干网络 | 分辨率 | 学习率 | 训练轮数 | mDice(20 classes) | Dice(16 classes) | 链接 |
---|---|---|---|---|---|---|
- | 512x512x12 | 0.1 | 15000 | 74.41% | 88.17% | model | log | vdl |
- | 512x512x12 | 0.5 | 15000 | 74.69% | 89.14% | model | log | vdl |
我们使用 CuPy 在数据预处理中添加 GPU 加速。与 CPU 上的预处理数据相比,加速使我们在数据预处理中使用的时间减少了大约 40%。下面显示了加速前后,我们花在处理 COVID-19 CT scans 数据集预处理上的时间。
设备 | 时间(s) |
---|---|
CPU | 50.7 |
GPU | 31.4( ↓ 38%) |
这一部部分我们展示了一个快速在 COVID-19 CT scans 数据集上训练的例子,这个例子同样可以在我们的Aistudio 项目中找到。详细的训练部署,以及在自己数据集上训练的步骤可以参考这个教程。
-
下载仓库:
git clone https://github.com/PaddlePaddle/PaddleSeg.git cd contrib/MedicalSeg/
-
安装需要的库:
pip install -r requirements.txt
-
(可选) 如果需要GPU加速,则可以参考教程 安装 CuPY。
-
一键数据预处理。如果不是准备肺部数据,可以在这个目录下,替换你需要的其他数据:
- 如果你安装了CuPY并且想要 GPU 加速,修改这里的 use_gpu 配置为 True。
python tools/prepare_lung_coronavirus.py
-
基于脚本进行训练、评估、部署: (参考教程来了解详细的脚本内容。)
sh run-vnet.sh
这部分介绍了我们仓库的整体结构,这个结构决定了我们的不同的功能模块都是十分方便拓展的。我们的文件树如图所示:
├── configs # 关于训练的配置,每个数据集的配置在一个文件夹中。基于数据和模型的配置都可以在这里修改
├── data # 存储预处理前后的数据
├── deploy # 部署相关的文档和脚本
├── medicalseg
│ ├── core # 训练和评估的代码
│ ├── datasets
│ ├── models
│ ├── transforms # 在线变换的模块化代码
│ └── utils
├── export.py
├── run-unet.sh # 包含从训练到部署的脚本
├── tools # 数据预处理文件夹,包含数据获取,预处理,以及数据集切分
├── train.py
├── val.py
└── visualize.ipynb # 用于进行 3D 可视化
未来,我们想在这几个方面来发展 MedicalSeg,欢迎加入我们的开发者小组。
- 增加带有预训练加速,自动化参数配置的高精度 PP-nnunet 模型。
- 增加在 LITs 挑战中的 Top 1 肝脏分割算法。
- 增加 3D 椎骨可视化测量系统。
- 增加在多个数据上训练的预训练模型。
- 非常感谢 Lin Han, Lang Du, onecatcn 对我们仓库的贡献。
- 非常感谢 itkwidgets 强大的3D可视化功能。