You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The training was done on 31 subjects from the spine-generic and OpenNeuro datasets. New images added on top of the V3 dataset were predicted with the V3 model then manually corrected. The dataset used is the same as the D5 one described here.
2) Model training
nnUNet 3d_fullres model trained on 31 subjects.
To initialize the dataset, the following command was used: nnUNetv2_plan_and_preprocess -d 106 --verify_dataset_integrity -c 3d_fullres
For starting the training, the following command was used for 1000 epochs: CUDA_VISIBLE_DEVICES=0 nnUNetv2_train 106 3d_fullres all
For 2000 epochs the following command was used: CUDA_VISIBLE_DEVICES=0 nnUNetv2_train 106 3d_fullres all -tr nnUNetTrainer_2000epochs
For running the inference with the 1000 epochs model on new images, the following command was used: nnUNetv2_predict -i nnUNet_raw/Dataset106_M1/imagesTs -o nnUNet_results/Dataset106_M1/labels_results -d 106 -c 3d_fullres -f all
For running the inference with the 2000 epochs model on new images, the following command was used: nnUNetv2_predict -i nnUNet_raw/Dataset106_M1/imagesTs -o nnUNet_results/Dataset106_M1/labels_results_2000 -d 106 -c 3d_fullres -f all -tr nnUNetTrainer_2000epochs
Where the Dataset106_M1/imagesTs folder contains the images on which inference was run.
3) Results
Here are the learning curves for the training with 1000 and 2000 epochs
From the first graph, we observed that the model was still learning after 1000 epochs, which was the motivation for trying training for 2000 epochs.
This next graph shows the performance of the V1 (Dataset101), V2 (Dataset104), V3_fold_0 and V3_fold_all (dataset105) and V4_1000epochs and V4_2000epochs (dataset106) models on the test subjects.
As we can see, the V3_fold_all, V4_1000epochs and V4_2000epochs models performed similarily on test images, with a really slight increase for each subsequent model after the V3_fold_all. The table below shows the Dice score per level for every test image, the mean Dice score for every test image and the mean Dice score across all the images for the V4_2000epochs model.
<style>
</style>
Image Name
Dice level 2
Dice level 3
Dice level 4
Dice level 5
Dice level 6
Dice level 7
Dice level 8
Mean
sub-barcelona01_212.nii.gz
0.7697
0.7442
0.7218
0.6556
0.7348
0.7731
0.7527
0.736
sub-amu02_215.nii.gz
0.76
0.563
0.5832
0.6131
0.5981
0.5856
0.6958
0.6284
sub-brnoUhb03_209.nii.gz
0.7244
0.654
0.6654
0.7298
0.7152
0.7164
0.7026
0.7011
sub-007_ses-headNormal_009.nii.gz
0.626
0.5963
0.5169
0.4447
0.5828
0.6345
0.1245
0.5037
sub-010_ses-headUp_015.nii.gz
0.7102
0.6328
0.6706
0.6738
0.6915
0.6083
0.3302
0.6168
Mean dice
0.6372
Standard deviation
0.0802
What we observe is that the model is performing worse on the images from the OpenNeuro dataset, especially for the C8 spinal level. This is largely due to the fact that the contrast and the intensity of the image are a lot lower in this part of the spinal cord, resulting in poor prediction by the model (see images below). To fix this problem, we could try to add more images from the OpenNeuro dataset with lower contrast in the lower part of the spinal cord in the training dataset or artificially raising the contrast of the images with some sort of preprocessing, which might negatively impact the prediction for the rest of the spinal cord.
Axial slice of the C8 spinal level of the 'sub-010_ses-headUp_015.nii.gz' image
Ground truth for the axial slice of the C8 spinal level of the 'sub-010_ses-headUp_015.nii.gz' image
Prediction from the V4_2000epochs model for the axial slice of the C8 spinal level of the 'sub-010_ses-headUp_015.nii.gz' image
The text was updated successfully, but these errors were encountered:
1) Dataset
The training was done on 31 subjects from the spine-generic and OpenNeuro datasets. New images added on top of the V3 dataset were predicted with the V3 model then manually corrected. The dataset used is the same as the D5 one described here.
2) Model training
nnUNet 3d_fullres model trained on 31 subjects.
To initialize the dataset, the following command was used:
nnUNetv2_plan_and_preprocess -d 106 --verify_dataset_integrity -c 3d_fullres
For starting the training, the following command was used for 1000 epochs:
CUDA_VISIBLE_DEVICES=0 nnUNetv2_train 106 3d_fullres all
For 2000 epochs the following command was used:
CUDA_VISIBLE_DEVICES=0 nnUNetv2_train 106 3d_fullres all -tr nnUNetTrainer_2000epochs
For running the inference with the 1000 epochs model on new images, the following command was used:
nnUNetv2_predict -i nnUNet_raw/Dataset106_M1/imagesTs -o nnUNet_results/Dataset106_M1/labels_results -d 106 -c 3d_fullres -f all
For running the inference with the 2000 epochs model on new images, the following command was used:
nnUNetv2_predict -i nnUNet_raw/Dataset106_M1/imagesTs -o nnUNet_results/Dataset106_M1/labels_results_2000 -d 106 -c 3d_fullres -f all -tr nnUNetTrainer_2000epochs
Where the Dataset106_M1/imagesTs folder contains the images on which inference was run.
3) Results
Here are the learning curves for the training with 1000 and 2000 epochs
This next graph shows the performance of the V1 (Dataset101), V2 (Dataset104), V3_fold_0 and V3_fold_all (dataset105) and V4_1000epochs and V4_2000epochs (dataset106) models on the test subjects.
As we can see, the V3_fold_all, V4_1000epochs and V4_2000epochs models performed similarily on test images, with a really slight increase for each subsequent model after the V3_fold_all. The table below shows the Dice score per level for every test image, the mean Dice score for every test image and the mean Dice score across all the images for the V4_2000epochs model.
<style> </style>What we observe is that the model is performing worse on the images from the OpenNeuro dataset, especially for the C8 spinal level. This is largely due to the fact that the contrast and the intensity of the image are a lot lower in this part of the spinal cord, resulting in poor prediction by the model (see images below). To fix this problem, we could try to add more images from the OpenNeuro dataset with lower contrast in the lower part of the spinal cord in the training dataset or artificially raising the contrast of the images with some sort of preprocessing, which might negatively impact the prediction for the rest of the spinal cord.
Axial slice of the C8 spinal level of the 'sub-010_ses-headUp_015.nii.gz' image
Ground truth for the axial slice of the C8 spinal level of the 'sub-010_ses-headUp_015.nii.gz' image
Prediction from the V4_2000epochs model for the axial slice of the C8 spinal level of the 'sub-010_ses-headUp_015.nii.gz' image
The text was updated successfully, but these errors were encountered: