Open ClemGerard opened 5 months ago
Sur le réentrainement du modèle, Les résultats sont correct, la detection des cartes se fait bien. Le temps d'inférence est court ~0.2s contre 1s sur YOLOV5 (à confirmer) Entrainements réalisés:
Pas de différence majeure sur les performances du modèle ce qui parait etonnant
Après exploration en profondeur : Les métriques de validation sont moins bonnes que prévue et les bounding box de val sont décalés dans les labels.
Cela semble venir d'un problème concernant la validation du modèle -> donc pas d'impact sur l'entrainement https://github.com/ultralytics/ultralytics/pull/9899 L'issue a été remontée sur le repo ultralytics, la nouvelle version devra normalement resoudre ce soucis
Update: YOLOV8.1.46 semble bien avoir réglé le problème de validation, la MAP50-95 est bien plus en accord avec les résultats visuels. En attente de la fin du training pour valider la résolution
Evaluation du modèle, Le modèle semble avoir overfitté sur les images de carte artificielle et a du mal a generaliser sur les cartes réelles du dataset d'evaluation Essai en cours de reduire les epochs pour limiter l'overfiiting
La reduction d'epochs n'améliore pas la prediction du modèle en conditions réelles, Autre piste: ajout d'images "background" qui semblent avoir été effacées lors de la conversion de dataset vers YOLOV8.
Augmenter la durée des entrainements (nombre d'epoch) améliore sensiblement les résultats. Des difficulutés subsistent sur la detection de cartes foncées. Cela pourrait venir d'une sous representation dans le dataset. Une experimentation est en cours avec un entrainement poussé à 500 epochs avec une taille de batch de 16 et AdamW en optimizer
Labelisation des images de l'IRCGN et ajout du dataset de val pour suivre la performance avec des valeurs quantitatives
Écarts entre les résultats de validation et d'inférence : étude des processus de préprocessing dans le code de YOLO et des fonctions associées.
Intégrer le module à la chaîne globale de mesure de longueurs d'arme. Puis test post intégration pour valider les performances (temps d'inférence + précision)
Gain de 0,2 secondes (20%) Perte de 15-18% de précisions
Nouveaux entrainements à venir pour gagner en précision.
Tests de montée de charge en YOLO V5 : OK (déploiement) / KO (tests avec YOLO V8) Si tests avec YOLO V8 OK => entrainement pour améliorer la précision Si tests avec YOLO V8 KO => Autres
Nouvelle combinaisons de paramètres : modèle à priori prometteur et toujours aussi rapide. Résultats à venir ce jour
Update results: Après réentrainement du modèle avec un IOU threshold plus restrictif 0.7 ->0.9 les résultats ne sont pas meilleurs en terme de précision (>5.5cm). On conserve cependant la vitesse d'inférence.
Prochaine piste, augmenter la résolution des images en entrée
Avec une taille image entrée 640px ->960 On passe à 5cm de précision, cela reste au dessus de la performance de YOLOV5 ~4cm De plus le temps d'inférence passe autour d'1s de traitement.
A l'heure actuelle YOLOV8 semble moins performant que YOLOV5 avec le même dataset d'entrainement sur de l'OBB.
Si l'on souhaite passer à YOLOV8 il faudra repenser le dataset, en attendant si il n'ya pas de problème de charge on peut rester sur la V5
Changement du modèle de détection des cartes, passage de YOLO V5 à YOLO V8
Tasks