nnUNet是一个用于医学图像分割的深度学习框架,相比其他分割网络,它具有自动化配置、自适应训练和良好的泛化能力。本文将介绍nnUNet的环境配置、训练和推理过程,供新手参考。

一、环境配置

nnUNet依赖于多个Python库和工具,首先确保你安装了Python 3.6及以上版本和pip。以下是推荐的环境配置步骤:

  1. 安装Python及相关依赖 bash # 使用pip安装必要的库 pip install numpy scipy scikit-image matplotlib simpleitk imageio pip install torch torchvision # 根据你的CUDA版本选择合适的PyTorch版本 pip install nnunet

  2. 安装nnUNet 通过pip可以直接安装nnUNet: bash pip install nnunet

  3. 配置CUDA和cuDNN 确保你的GPU驱动、CUDA和cuDNN版本匹配,安装成功后可通过以下命令验证: bash nvcc --version

二、数据准备

nnUNet需要特定格式的数据集。数据集通常需要以“划分”格式存放,即训练集和验证集分开。以下是数据集的标准结构:

nnUNet/
├── Dataset/
│   ├── Task001_Spleen/
│       ├── imagesTr/
│       ├── imagesTs/
│       ├── labelsTr/
│       └── dataset.json

dataset.json文件需要包含任务的详细信息,例如类的数量、训练和验证图像的路径等。以下是一个dataset.json的示例:

{
  "name": "Spleen Segmentation",
  "description": "Task for spleen segmentation",
  "tensorImageSize": "3D",
  "reference": "nnUNet",
  "licence": "CC BY-NC-SA 4.0",
  "release": "1.0",
  "imageQuality": 1,
  "numTraining": 30,
  "numTest": 10,
  "trainImages": ["imagesTr/image1.nii.gz", "imagesTr/image2.nii.gz"],
  "trainLabels": ["labelsTr/label1.nii.gz", "labelsTr/label2.nii.gz"],
  "testImages": ["imagesTs/test1.nii.gz", "imagesTs/test2.nii.gz"],
  "labelColours": [[0, 0, 0], [255, 0, 0]]
}

三、训练模型

  1. 训练 使用以下命令训练nnUNet模型: bash nnUNet_train 3d_fullres nnUNetTrainerV2 Task001_Spleen 0 其中,3d_fullres是使用的模型类型,Task001_Spleen是你自定义的任务名称,0是使用的GPU编号。

  2. 调整参数 在训练时,nnUNet会自动调整超参数。你可以在nnUNet/nnUNet/experiments文件夹中看到训练的日志和模型权重。

四、推理

  1. 推理 训练完成后,可以进行推理。使用以下命令: bash nnUNet_predict -i /path/to/imagesTs -o /path/to/output -t Task001_Spleen -m 3d_fullres

其中,-i指定测试图像的路径,-o指定输出路径,-t是任务名称,-m是模型类型。

  1. 查看结果 推理完成后,可以在输出路径中找到分割结果,通常是.nii.gz格式的文件。

结论

nnUNet框架的自动化和自适应特性使得医学图像分割的工作更加高效,特别适合新手。通过了解上述步骤及代码示例,你可以快速上手nnUNet,并在自己的任务中进行应用。希望这篇教程能对你有所帮助!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部