Tencent/MedicalNet
Many studies have shown that the performance on deep learning is significantly affected by volume of training data. The MedicalNet project provides a series of 3D-ResNet pre-trained models and relative code.
MedicalNet – 3-D 医学图像迁移学习
它是什么
- Med3D 论文(“Transfer Learning for 3D Medical Image Analysis”)的 PyTorch 实现。
- 提供了一系列大规模 3-D 医学影像数据集(23 个公开数据集)和一套预训练的 3-D ResNet 模型(深度 10-200)。
- 包含用于在肺部分割、结节分类或脑部 MRI 分割等新任务上微调这些模型的脚本。
为什么它很重要
- 从零开始训练 3-D CNN 需要海量的标注数据,而这在医学领域非常稀缺。MedicalNet 的预训练权重提供了一个强大的起点,显著提高了收敛速度和准确性(例如,肺部分割的 Dice 指数提升了 27%)。
关键组件
models/resnet.py– 3-D ResNet 变体的定义。datasets/– 数据预处理工具(例如 MRBrainS18 加载器)。train.py/test.py– 支持多 GPU 的开箱即用训练和评估循环。pretrain/– 每个架构可下载的.pth文件。utils/logger.py– 简单的日志记录。
典型工作流程
- 安装 Python 3.7, PyTorch 0.4.1, CUDA 9.0, cuDNN 7.0.5。
pip install -r requirements.txt。- 下载数据和预训练权重(Google Drive / Tencent Weiyun)并解压到仓库中。
- 运行
python train.py --gpu_id 0(或0 1用于多 GPU)以在您的数据集上进行微调。 - 使用
python test.py --gpu_id 0 --resume_path <model>.pth.tar --img_list data/val.txt进行评估。
性能快照
| 模型 | 参数量 (M) | Tesla P40 推理时间 (s) |
|---|---|---|
| 3D-ResNet10 | 14.36 | 0.18 |
| 3D-ResNet18 | 32.99 | 0.19 |
| 3D-ResNet34 | 63.31 | 0.22 |
| 3D-ResNet50 | 46.21 | 0.21 |
| 3D-ResNet101 | 85.31 | 0.29 |
| 3D-ResNet152 | 117.51 | 0.34 |
| 3D-ResNet200 | 126.74 | 0.45 |
微调结果(肺部分割 Dice 指数,结节分类准确率)显示,在所有深度上均比从零开始训练有持续的提升。
许可
- MIT License (见
LICENSE)。
引用
@article{chen2019med3d,
title={Med3D: Transfer Learning for 3D Medical Image Analysis},
author={Chen, Sihong and Ma, Kai and Zheng, Yefeng},
journal={arXiv preprint arXiv:1904.00625},
year={2019}
}
路线图 / 待办事项
- 已完成:预训练的 3-D ResNet,迁移学习代码,多 GPU 支持。
- 计划中:3-D 高效架构(MobileNet, ShuffleNet)和 2-D 医学预训练模型。
谁会使用它
- 需要为任何 3-D 医学影像任务(CT, MRI, PET)建立强大基准的研究人员。
- 构建原型分割或分类工具的临床医生。
- 将 3-D CNN 集成到大型医学 AI 流水线中的开发人员。
MedicalNet 是一个真正的、研究级的 3-D 医学图像深度学习工具箱,而不是一个通用的 AI 相关列表或教程。
相关
- 项目
- 项目
- 项目
- 项目