Ce répertoire présente une comparaison de méthodes basées sur nnU-Net V2 pour segmenter la matière grise dans la région lombaire.
Les images IRM axiales pondérées en T2* permettent de mesurer la section transversale de la matière grise et blanche, fournissant des métriques quantitatives de l’ampleur d'un traumatisme et aidant les médecins à quantifier précisément l’importance d’une compression médullaire. La segmentation manuelle de ces tissus par le radiologue est longue, expliquant l’émergence de techniques de segmentation automatique.
Figure 1 : Comparaison des méthodes deepseg_gm de la SCT, nnunet 2d et nnunet3d
légende :
- jaune : segmentation manuelle par l'expert (groundtruth)
- bleu : algorithme deepseg_gm implémenté dans la SCT
- rouge : méthode nnunet 2d testée
- vert : méthode nnunet 3d testée
Figure 2 : Comparaison des méthodes deepseg_gm de la SCT, nnunet 2d et 3d basées sur les régions (region based)
légende :
- gris : segmentation manuelle par l'expert de la matière grise (groundtruth)
- blanc : segmentation manuelle par l'expert de la matière blanche (groundtruth)
- rouge : segmentation de la matière blanche par la méthode nnunet 3d basée sur les régions testée
- vert : segmentation de la matière grise par la méthode nnunet 3d basée sur les régions testée
Diagrammes en boîte :
Diagramme 1 | Diagramme 2 | Diagramme 3 |
---|---|---|
Distance de surface moyenne | Indice de Dice | Distance de Hausdorff |
Diagramme 4 | Diagramme 5 | Diagramme 6 |
---|---|---|
Indice de Jaccard | Erreur relative sur le volume | Sensibilité |
-
Convertir le jeu de données du format BIDS vers le format nnUNet :
- Utiliser le script convert_bids_to_nnUNetV2.py.
-
Entraîner le modèle :
- a) Vérifier l'intégrité du jeu de données :
nnUNetv2_plan_and_preprocess -d DATASET_ID --verify_dataset_integrity -c 2d 3d_fullres 3d_lowres
- b) Lancer l'entraînement sur GPU :
CUDA_VISIBLE_DEVICES=X nnUNetv2_train DATASET_ID CONFIG FOLD
- a) Vérifier l'intégrité du jeu de données :
-
Calculer des métriques avec ANIMA :
- Utiliser le script compute_anima_metrics.py.
-
Tracer des diagrammes en boîte :
- Utiliser le script
boxplot_comparison.py
.
- Utiliser le script
Des modifications ont été apportées aux scripts pour la méthode basée sur les régions :
-
Convertir le jeu de données du format BIDS vers le format nnUNet :
- Utiliser le script
convert_bids_to_nnUNetV2_region_based.py
. Il faudra ensuite fusionner les labels SC et GM.
- Utiliser le script
-
Fusionner les labels SC et GM :
- Utiliser le script
fusion_labels_GM_SC.py
.
- Utiliser le script
-
Modifier le fichier
dataset.json
pour indiquer à nnUNet qu'on souhaite travailler avec des régions :{ "channel_names": { "0": "background" }, "labels": { "background": 0, "SC": [1,2], "GM": [2] }, "regions_class_order": [1, 2], "numTraining": 41, "file_ending": ".nii.gz", "overwrite_image_reader_writer": "SimpleITKIO" }
-
Lancer l'entrainement
-
Calculer les métriques avec le script :
compute_anima_metrics_RB.py