Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ventral rootlets - results of fourth segmentation model #43

Closed
LouisThomasLapointe opened this issue Apr 22, 2024 · 1 comment
Closed

Comments

@LouisThomasLapointe
Copy link
Contributor

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

training_log_2024_4_6_21_07_59

training_log_2024_4_9_11_20_14

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.
image

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

axial_sliceC8

Ground truth for the axial slice of the C8 spinal level of the 'sub-010_ses-headUp_015.nii.gz' image

axial_slice_gt

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

axial_slice_pred

@valosekj
Copy link
Member

Closing -- see summary: #42

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants