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 :
Tout d'abord, j'ai créer un nouveau Dataset dans mon fichier nnUNet_raw avec la commande suivante :
mkdir Dataset506_WScsfseg
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.
J'ai ensuite fait une vérification de mes données avec la commande suivante :
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 :
J'ai donc lancé un entrainement pour 1000 epochs qui présente le comportement suivant :
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 :
sub-amu04 : 0.9927
sub-balgrist02: 0.9953
sub-balgrist06 : 0.9942
sub-barcelona03 : 0.9935
sub-beijingGE02 : 0.9963
sub-beijingPrisma04 : 0.9952
sub-cardiff01 : 0.9910
sub-cmrrb01 : 0.9967
sub-cmrrb03 : 0.9414
sub-fslAchieva04 : 0.9943
sub-fslAchieva05 : 0.9944
sub-fslPrisma05: 0.9978
sub-juntendo750w01 : 0.9975
sub-mgh03 : 0.9981
sub-milan02 : 0.9954
sub-milan06 : 0.9967
sub-mniS03 : 0.9973
sub-mniS09 : 0.9952
sub-mountSinai04 : 0.9978
sub-mpicbs02 : 0.9962
sub-mpicbs05 : 0.9947
sub-nottwil02 : 0.9923
sub-oxfordFmrib04 : 0.9420
sub-oxfordFmrib06 : 0.9953
sub-oxfordOhba04 : 0.9822
sub-pavia06 : 0.9908
sub-sherbrooke02 : 0.9951
sub-stanford01 : 0.9949
sub-tehranS04 : 0.9951
sub-tokyo750w04 : 0.9897
sub-tokyoIngenia03 : 0.99767
sub-tokyoIngenia06 : 0.9809
sub-tokyoSkyra04 : 0.9974
sub-ucl03 : 0.9927
sub-unf04 : 0.9942
sub-vallHebron06 : 0.9939
sub-vuiisAchieva02 : 0.9944
sub-vuiisAchieva06 : 0.9946
Ce qui donne un indice dice moyen de : 0.9914
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 :
Training : WS_Algo3_Training_subjects.json
Validation : WS_Algo3_Validation_subjects.json
Testing : WS_Algo3_Testing_subjects.json
Commandes pour reproduire
Tout d'abord, j'ai créer un nouveau Dataset dans mon fichier nnUNet_raw avec la commande suivante :
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.
J'ai ensuite fait une vérification de mes données avec la commande suivante :
J'ai ensuite été en mesure de démarrer l'entrainement avec la commande suivante :
J'ai ensuite procéder aux prédictions sur les images de testing avec la commande suivante :
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 :
J'ai donc lancé un entrainement pour 1000 epochs qui présente le comportement suivant :
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