ivadomed / model-canal-seg

MIT License
0 stars 0 forks source link

Results of the third nnunet trainnig fold 0 with 188 subjects #7

Closed WilliamSirois closed 2 weeks ago

WilliamSirois commented 6 months ago

Données utilisées

J'ai utilisé la base de donnée spine generic dataset avec la version r20231212 sous la branche suivante, car il s'agit des images que Sandrine à du recentrer (pour positionner la segmentation au bon endroit)images et segmentations utilisées Il s'agit d'un issue concernant un troisième training. Les résultats du second étant disponible ici : https://github.com/ivadomed/model-csf-seg/issues/6#issue-2204022333

Voici des fichiers json qui contiennent les noms des sujets utilisé pour training et testing :

Commandes pour reproduire

  1. Tout d'abord, j'ai créer un nouveau Dataset dans mon fichier nnUNet_raw avec la commande suivante :

    mkdir Dataset506_WScsfseg
  2. J'ai ensuite copié les images que j'ai utilisé pour mon premier entrainement dans les fichiers adéquats en respectant la structure nnUnet. Puis j'ai aussi ajouté les images que j'ai corrigées. Ce qui fait un total de 188 images pour l'entrainement répartis de la manière suivante : 150 pour le training et 38 pour le testing.

  3. J'ai ensuite fait une vérification de mes données avec la commande suivante :

    nnUNetv2_plan_and_preprocess -d 506 --verify_dataset_integrity -c 3d_fullres
  4. J'ai ensuite été en mesure de démarrer l'entrainement avec la commande suivante :

    CUDA_VISIBLE_DEVICES=0 nnUNetv2_train 506 3d_fullres 0 
  5. J'ai ensuite procéder aux prédictions sur les images de testing avec la commande suivante :

nnUNetv2_predict -i ${nnUNet_raw}/Dataset506_WScsfseg/imagesTs -o /home/williamsirois/testingmodel3 -d 506 -c 3d_fullres -f 0
  1. Un coefficient dice à ensuite été calculer sur les images de testing en utilisant une variante du code qu'il est possible de trouver ici : indice dice. J'ai adapter ce code pour qu'il soit possible de le faire pour plusieurs images à la suite, qu'il prennent des arguments en entrer et soit plus facile d'utilisation.

Résultats

a) Entrainement

Voici les résultats de mon entrainement. Il est possible de constater qu'après 250 epochs l'algorithme semblais encore s'améliorer : progress 250 epochs

J'ai donc lancé un entrainement pour 1000 epochs qui présente le comportement suivant :
progress

b) Images

Voici le qc_report que j'ai produit pour les images de testing : WS_QC_model3_testing

c) Score dice

Les score dice que j'ai calculés sont les suivant :

Le premier entrainement avait un dice score de 0.9649 voir : https://github.com/ivadomed/model-csf-seg/issues/5#issue-2170324631

Le second entrainement avait un dice score de : 0.9818 voir : https://github.com/ivadomed/model-csf-seg/issues/6#issue-2204022333

Application sur l'ensemble du dataset (267 sujets)

Voici le Qc report de la prédiction de l'algorithme pour l'ensemble des sujets : WS_QC_model3_all_seg

Avec le fichier json des sujets associés : All_subjects.json