Closed WilliamSirois closed 1 month ago
Super @WilliamSirois, beaux résultats!! Pourrais-tu aussi inclure un fichier text ou json ou csv avec le split (le nom des sujets) dans testing, training ou validation, question de reproductibilité, même chose pour ton premier training
Pourrais-tu aussi inclure un fichier text ou json ou csv avec le split (le nom des sujets) dans testing, training ou validation J'ai été ajouté les fichiers dans la section Données utilisées de ce commentaire : https://github.com/ivadomed/model-csf-seg/issues/6#issue-2204022333
Pourrais-tu me dire si c'est bien le genre de fichier que tu attendais? Si oui alors je vais aller les ajouter au même endroit dans mon premier algorithme.
Aussi voici le lien vers le QC report sur tout les sujets : https://drive.google.com/file/d/1fRxNYF0eAXzdw8IS8vqLvA_0nlYkVbbe/view?usp=drive_link
Avec son fichier json : WS_Algo2_all_subjects.json
Il est possible de constater encore des erreurs de segmentations en bas surtout. En effet, des trous sont encore bien présent dans le bas de la moelle épinière (là où l'intensité des pixels est la plus faible)
Beau travail William !
Pourrais-tu aussi inclure un fichier text ou json ou csv avec le split (le nom des sujets) dans testing, training ou validation J'ai été ajouté les fichiers dans la section Données utilisées de ce commentaire : #6 (comment)
Pourrais-tu me dire si c'est bien le genre de fichier que tu attendais? Si oui alors je vais aller les ajouter au même endroit dans mon premier algorithme.
C'est parfait!
Voici les sujets que je vais prendre pour l'entrainement de ma troisième version de l'algorithme : WS_algo3_dataset.json Si certains sujets n'était pas bien segmenté par le modèle, mais qui était présent lors de l'entrainement du modèle 2 alors je vais inclure le groundtruth du modèle 2. Ainsi, j'ai produit le QC_report suivant qui contient les segmentations qui seront utilisées : WS_QC_Training3
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 second training. Les résultats du premier étant disponible ici : https://github.com/ivadomed/model-csf-seg/issues/5
Voici des fichiers json qui contiennent les noms des sujets utilisé pour training, validation et testing :
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 30 images pour l'entrainement répartis de la manière suivante : 25 pour le training et 5 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 :
La commande restraint le nombre d'epochs à 250 puisque le dice score n'augmente plus après ce temps tel que mentionner dans la section Résultat ici : https://github.com/ivadomed/model-csf-seg/issues/5#issue-2170324631
J'ai ensuite procéder aux prédictions sur les 5 images de testing avec la commande suivante :
Résultats
a) Entrainement
Voici les résultats de mon entrainement. Il est possible de constater que 250 epochs ont en effet été réalisé :
b) Images
Voici les segmentation pour les cinq sujets de testing sur lesquels j'ai appliqué l'algorithme :
barcelona03
Image : MyDataset-sub-barcelona03_013_0000.nii.gz (Le nom n'est pas le même que dans la dataset j'ai repris l'image directement du serveur) Segmentation : MyDataset-sub-barcelona03_013.nii.gz Prédiction : MyDataset-sub-barcelona03_predcanal_algo2_T2w.nii.gz
cmrra03
Image : MyDataset-sub-cmrra03_017_0000.nii.gz (Le nom n'est pas le même que dans la dataset j'ai repris l'image directement du serveur) Segmentation : MyDataset-sub-cmrra03_017.nii.gz Prédiction : MyDataset-sub-cmrra03_predcanal_algo2_T2w.nii.gz
geneva01
Image : MyDataset-sub-geneva01_021_0000.nii.gz (Le nom n'est pas le même que dans la dataset j'ai repris l'image directement du serveur) Segmentation : MyDataset-sub-geneva01_021.nii.gz Prédiction : MyDataset-sub-geneva01_predcanal_algo2_T2w.nii.gz
nottwill04
Image : MyDataset-sub-nottwil04_004_0000.nii.gz (Le nom n'est pas le même que dans la dataset j'ai repris l'image directement du serveur) Segmentation : MyDataset-sub-nottwil04_004.nii.gz Prédiction : MyDataset-sub-nottwil04_predcanal_algo2_T2w.nii.gz
tokyoIngenia05
Image : MyDataset-sub-tokyoIngenia05_007_0000.nii.gz (Le nom n'est pas le même que dans la dataset j'ai repris l'image directement du serveur) Segmentation : MyDataset-sub-tokyoIngenia05_007.nii.gz Prédiction : MyDataset-sub-tokyoIngenia05_predcanal_algo2_T2w.nii.gz
Remarque
Il est possible de remarquer encore que pour deux sujets sur les 5 des trous sont encore présent dans la segmentation sur les dernières couches.
c) Score dice
Les score dice que j'ai calculés sont les suivant :
Le premier entrainement avant un dice score de 0.9649 voir : https://github.com/ivadomed/model-csf-seg/issues/5#issue-2170324631
d) Qc report
Voici le Qc report que j'ai produit pour ces 5 prédictions : Ws_QC_canal_training2.zip
Prochaine étape
Je vais ensuite lancer une prédiction sur le restant de la base de donnée et observer si le modèle est fiable pour tpute les images qu'il n'as jamais vu.