Skip to content

Latest commit

 

History

History
118 lines (89 loc) · 7.15 KB

README_CN.md

File metadata and controls

118 lines (89 loc) · 7.15 KB

English | 简体中文

MedicalSeg 介绍

MedicalSeg 是一个简单易使用的全流程 3D 医学图像分割工具包,它支持从数据预处理、训练评估、再到模型部署的全套分割流程。特别的,我们还提供了数据预处理加速,在肺部数据 COVID-19 CT scans 和椎骨数据 MRISpineSeg 上的高精度模型, 对于MSDPromise12Prostate_mri等数据集的支持,以及基于itkwidgets 的 3D 可视化Demo。如图所示是基于 MedicalSeg 在 Vnet 上训练之后的可视化结果:

Vnet 在 COVID-19 CT scans (评估集上的 mDice 指标为 97.04%) 和 MRISpineSeg 数据集(评估集上的 16 类 mDice 指标为 89.14%) 上的分割结果

MedicalSeg 目前正在开发中!如果您在使用中发现任何问题,或想分享任何开发建议,请提交 github issue 或扫描以下微信二维码加入我们。

Contents

  1. 模型性能
  2. 快速开始
  3. 代码结构
  4. TODO
  5. 致谢

模型性能

1. 精度

我们使用 VnetCOVID-19 CT scansMRISpineSeg 数据集上成功验证了我们的框架。以左肺/右肺为标签,我们在 COVID-19 CT scans 中达到了 97.04% 的 mDice 系数。你可以下载日志以查看结果或加载模型并自行验证:)。

COVID-19 CT scans 上的分割结果

骨干网络 分辨率 学习率 训练轮数 mDice 链接
- 128x128x128 0.001 15000 97.04% model | log | vdl
- 128x128x128 0.0003 15000 92.70% model | log | vdl

MRISpineSeg 上的分割结果

骨干网络 分辨率 学习率 训练轮数 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

2. 速度

我们使用 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 可视化

TODO

未来,我们想在这几个方面来发展 MedicalSeg,欢迎加入我们的开发者小组。

  • 增加带有预训练加速,自动化参数配置的高精度 PP-nnunet 模型。
  • 增加在 LITs 挑战中的 Top 1 肝脏分割算法。
  • 增加 3D 椎骨可视化测量系统。
  • 增加在多个数据上训练的预训练模型。

致谢