条件
训练图像是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折