MIC-DKFZ/nnUNet
选择Linux环境运行该项目,Windows环境需要更改较多的参数,暂不支持。
安装环境
数据处理
因为开源的MRI数据一般是4D的,即把所有模态拼接起来,可以用nnUNet的转换命令;私人数据一般是存放3D的不同模态,可以按照本文私人数据集(3D)
的方式处理,也可以将所有模态拼接起来,用nnUNet的转换命令。
-
开源数据集(4D)
1.1 文件夹目录
└─Task01_BrainTumour │ dataset.json │ ├─imagesTr │ BRATS_001_0000.nii.gz │ BRATS_001_0001.nii.gz │ BRATS_001_0002.nii.gz │ BRATS_001_0003.nii.gz │ BRATS_002_0000.nii.gz │ BRATS_002_0001.nii.gz │ BRATS_002_0002.nii.gz │ BRATS_002_0003.nii.gz │ BRATS_003_0000.nii.gz │ BRATS_003_0001.nii.gz │ BRATS_003_0002.nii.gz │ BRATS_003_0003.nii.gz │ BRATS_004_0000.nii.gz │ BRATS_004_0001.nii.gz │ BRATS_004_0002.nii.gz │ BRATS_004_0003.nii.gz │ BRATS_005_0000.nii.gz │ BRATS_005_0001.nii.gz │ BRATS_005_0002.nii.gz │ BRATS_005_0003.nii.gz │ ... ├─imagesTs │ BRATS_485_0000.nii.gz │ BRATS_485_0001.nii.gz │ BRATS_485_0002.nii.gz │ BRATS_485_0003.nii.gz │ BRATS_486_0000.nii.gz │ BRATS_486_0001.nii.gz │ BRATS_486_0002.nii.gz │ BRATS_486_0003.nii.gz │ ... └─labelsTr BRATS_001.nii.gz BRATS_002.nii.gz BRATS_003.nii.gz BRATS_004.nii.gz BRATS_005.nii.gz ...
1.2 json文件信息
nnUNet/nnunet/dataset_conversion/utils.py
里面的函数generate_dataset_json
可以生成相应任务的json
文件。{ "name": "BRATS", "description": "Gliomas segmentation tumour and oedema in on brain images", "reference": "https://www.med.upenn.edu/sbia/brats2017.html", "licence":"CC-BY-SA 4.0", "release":"2.0 04/05/2018", "tensorImageSize": "4D", "modality": { "0": "FLAIR", "1": "T1w", "2": "t1gd", "3": "T2w" }, "labels": { "0": "background", "1": "edema", "2": "non-enhancing tumor", "3": "enhancing tumour" }, "numTraining": 484, "numTest": 266, "training":[{"image":"./imagesTr/BRATS_001.nii.gz","label":"./labelsTr/BRATS_001.nii.gz"},{"image":"./imagesTr/BRATS_002.nii.gz","label":"./labelsTr/BRATS_002.nii.gz"},{"image":"./imagesTr/BRATS_003.nii.gz","label":"./labelsTr/BRATS_003.nii.gz"},{"image":"./imagesTr/BRATS_004.nii.gz","label":"./labelsTr/BRATS_004.nii.gz"},{"image":"./imagesTr/BRATS_005.nii.gz","label":"./labelsTr/BRATS_005.nii.gz"},...], "test":["./imagesTs/BRATS_485.nii.gz","./imagesTs/BRATS_486.nii.gz",...] }
1.3 转换数据
nnUNet_convert_decathlon_task -i /xxx/Task01_BrainTumour
转换的数据存在
nnUNet_raw_data_base/nnUNet_raw_data/Task001_BrainTumour
,此时imagesTr
和imagesTs
里的文件名加了后缀"_0000"
,"_0001"
,"_0002"
,"_0003"
。注意:此处
Task01_BrainTumour
变为Task001_BrainTumour
。 -
私人数据集(3D)
直接转换数据,将数据存放到
nnUNet_raw_data_base/nnUNet_raw_data/Task001_BrainTumour
2.1 文件夹目录
└─Task001_BrainTumour │ dataset.json │ ├─imagesTr │ BRATS_001.nii.gz │ BRATS_002.nii.gz │ BRATS_003.nii.gz │ BRATS_004.nii.gz │ BRATS_005.nii.gz │ ... ├─imagesTs │ BRATS_485.nii.gz │ BRATS_486.nii.gz │ ... └─labelsTr BRATS_001.nii.gz BRATS_002.nii.gz BRATS_003.nii.gz BRATS_004.nii.gz BRATS_005.nii.gz ...
2.2 json文件信息
nnUNet/nnunet/dataset_conversion/utils.py
里面的函数generate_dataset_json
可以生成相应任务的json
文件。{ "name": "BRATS", "description": "Gliomas segmentation tumour and oedema in on brain images", "reference": "https://www.med.upenn.edu/sbia/brats2017.html", "licence":"CC-BY-SA 4.0", "release":"2.0 04/05/2018", "tensorImageSize": "4D", "modality": { "0": "FLAIR", "1": "T1w", "2": "t1gd", "3": "T2w" }, "labels": { "0": "background", "1": "edema", "2": "non-enhancing tumor", "3": "enhancing tumour" }, "numTraining": 484, "numTest": 266, "training":[{"image":"./imagesTr/BRATS_001.nii.gz","label":"./labelsTr/BRATS_001.nii.gz"},{"image":"./imagesTr/BRATS_002.nii.gz","label":"./labelsTr/BRATS_002.nii.gz"},{"image":"./imagesTr/BRATS_003.nii.gz","label":"./labelsTr/BRATS_003.nii.gz"},{"image":"./imagesTr/BRATS_004.nii.gz","label":"./labelsTr/BRATS_004.nii.gz"},{"image":"./imagesTr/BRATS_005.nii.gz","label":"./labelsTr/BRATS_005.nii.gz"},...], "test":["./imagesTs/BRATS_485.nii.gz","./imagesTs/BRATS_486.nii.gz",...] }
预处理
# 只进行3d预处理,不进行2d预处理
nnUNet_plan_and_preprocess -t 01 -pl2d None