使用dcm数据训练nnunet
条件
训练图像是dcm的集合,标注是nni数据
方法
-
配置nnunet环境
-
准备数据
首先需要提供三个路径nnUNet_raw_data_base、nnUNet_preprocessed和RESULTS_FOLDER。
可以将下面的代码放在.bashrc中的最后,然后使用source ~/.bashrc激活。
export nnUNet_raw_data_base="/workspace/data/nnUNet_raw_data_base"
export nnUNet_preprocessed="/workspace/data/nnUNet_preprocessed"
export RESULTS_FOLDER="/workspace/data/nnUNet_trained_models"
nnUNet_raw_data_base中包含Task500_MRSeg文件,其中500代表id,这个id 可以在500-999之间,
Task500_MRSeg包含训练集的两个文件 imagesTr和labelsTr
.
└── Task500_MRSeg├── dataset.json├── imagesTr│ ├── MR_001_0000.nii.gz│ ├── MR_002_0000.nii.gz│ ├── MR_003_0000.nii.gz│ ├── MR_004_0000.nii.gz│ ├── MR_005_0000.nii.gz
├── labelsTr│ ├── MR_001.nii.gz│ ├── MR_002.nii.gz│ ├── MR_003.nii.gz│ ├── MR_004.nii.gz
需要将训练图像数据整理成MR_001_0000.nii.gz这种格式
imagesTr中的图像需要如下:
MR_001_0000.nii.gz中 001代表是第一个case
MR_001_0000.nii.gz中0000代表第一个模态
labelsTr中的图像需要如下
对应的标注整理成 MR_001.nii.gz
另外需要dataset.json
{"description": " Segmentation","labels": {"0": "Background","1": "vessel"},"licence": "see challenge website","modality": {"0": "MRI"},"name": "MR","numTest": 0,"numTraining": 150,"reference": "see challenge website","release": "0.0","tensorImageSize": "3D","test": [],"training": [{"image": "./imagesTr/MR_001.nii.gz","label": "./labelsTr/MR_001.nii.gz"},{"image": "./imagesTr/MR_002.nii.gz","label": "./labelsTr/MR_002.nii.gz"},
- 数据对齐检查,使用如下代码进行数据检查
export nnUNet_raw_data_base="/workspace/data/nnUNet_raw_data_base"
export nnUNet_preprocessed="/workspace/data/nnUNet_preprocessed"
export RESULTS_FOLDER="/workspace/data/nnUNet_trained_models"
nnUNet_plan_and_preprocess -t 500 --verify_dataset_integrity
注解1 nnUNet_plan_and_preprocess -t id --verify_dataset_integrity,id代表任务500
注解2 如果出现数据方向对齐的问题,可以将训练的图像和标注的方向进行对齐。
例如方向没有对齐的报错
https://blog.csdn.net/weixin_37707670/article/details/142179585?spm=1001.2014.3001.5502
- 训练代码
nnUNet_train 3d_fullres nnUNetTrainerV2 'Task500_MRSeg' 0 --npz
3d_fullres 是进行3D训练,'Task500_MRSeg’数据集, 0代表0折