Résumé de section

  • Si les fichiers de résultats de votre modèle sont satisfaisant, vous pourrez ensuite tester votre modèle sur d’autres données, notamment votre dossier “test”.

    Mais comment savoir si son modèle est bien ? Ouvrez votre dossier de résultats et repassons sur les points importants à aller vérifier.

      

    SYNTHÈSE DES MÉTRIQUES DE PERFORMANCE

               

    • Score mAp50-95 :
      • où le trouver : dans le fichier results.csv. Point important : dans ce fichier, le séparateur est une virgule "," alors que si vous utilisez Excel, il s'attend à des point-virgule donc le fichier sera illisible. Pour pallier ce problème, ouvrez d'abord votre fichier dans un éditeur de texte, et rajoutez une première ligne où vous écrirez "sep=," comme dans l'image ci dessous :

          

      • enregistrez la modification, fermez le fichier puis vous pouvez l'ouvrir dans Excel.
      • chaque ligne correspond à une époque et chaque colonne contient les valeurs des différentes mesures de pertes, de métriques et du taux d'apprentissage pour l'époque donnée. La colonne qui nous intéresse est celle appelée : metrics/mAP50-95(B).
      • descendez tout en bas de votre document pour pouvoir avoir la valeur de cette métrique lors de la dernière époque de votre modèle.
      • quelle valeur est une bonne valeur
        • inférieur à 0.3 : mauvais
        • supérieur à 0.5 : pour des objets complexes : bien
        • supérieur à 0.7 : excellent

                     

    • Courbes de pertes :
      • où les trouver : dans le fichiers results.png pour pouvoir visualiser directement les courbes pour voir leur tendance.
      • ce qu'il faut observer :
        • si les deux courbes descendent et se stabilisent, votre modèle est bien
        • si les courbes de validation (val) remontent alors que celles de l'entrainement (train) descendent, votre modèle est mauvais (signe de surapprentissage)

                      

    • Score F1 :
      • où la trouver : c'est le fichier BoxF1_curve.png 
      • ce qu'il faut vérifier :
        • il faut que le courbe monte haut, le plus proche de 1.0.
      • ce qu'il faut récupérer :
        • récupérez l'abscisse du maximum car c'est la valeur optimale à donner à votre seuil de confiance. C'est la valeur qui est écrite dans la légende à côté de "all classes". On y lit : "all classes valeur_max at seuil_optimal" donc vous récupérez la deuxième valeur pour la mettre dans la variable "conf" au moment du déploiement de votre modèle.

                 

    • Retour visuel (valbatchXpred.jpg) :
      • ces images correspondent à la sortie du modèle, donc cela vous permet d'avoir un retour visuel de votre entrainement. Vous pouvez y vérifier que la détection se passe bien, que les boites sont au bon endroit et qu'aucun objet n'est oublié.

                     

                

    VALIDATION SUR LE JEU DE TEST

           

    Si le modèle semble satisfaisant, évaluez le sur des données inédites (dossier « test ») :

    Chargement : Importez le modèle optimisé (best.pt) situé dans runs/detect/trainX/weights :

    from ultralytics import YOLO

    model = YOLO(“chemin/vers/votre/fichier/best.pt)  # n’hésitez pas à mettre le chemin absolu sauf si vous êtes sur le cluster

                           

    Configuration : Assurez-vous que le fichier data.yaml contient le chemin vers le jeu de test (ou créez un data_test.yaml).

    Exécution : Lancez la validation spécifique :

    metrics = model.val(split=”test”)

           

    Analyse : Consultez les résultats générés dans runs/detect/valX. Si les performances sont insuffisantes, un réentraînement est nécessaire.

                         

              

    RÉENTRAINEMENT ET OPTIMISATION

                        

    Pour améliorer un modèle sous-performant, deux stratégies sont possibles :

    • Prolongation de l'entraînement :
      • Chargez impérativement les poids de la dernière époque (last.pt) et non les meilleurs (best.pt).
      • Lancez l'entraînement avec l'option resume=True. Le paramètre epochs indique alors le nombre total d'époques visé (ex. : pour passer de 100 à 150 époques, indiquez epochs=150).

    from ultralytics import YOLO

    model = YOLO(“chemin/vers/votre/fichier/last.pt)

    results = model.train(epochs=150, resume=True)

    • Ajustement des hyperparamètres : Si la prolongation de l'entraînement s'avère insuffisante, il pourra être nécessaire de modifier la configuration du modèle (taux d'apprentissage, taille du batch, architecture, etc.). Ces réglages avancés, spécifiques à chaque cas d'usage, ne sont pas détaillés dans ce document ; il est recommandé de consulter la documentation officielle d'Ultralytics ou les ressources spécialisées en ligne pour approfondir ces aspects.