Analyses de l'évaluation et de l'affinage des modèles#
Après avoir entraîné un modèle YOLO, l'étape suivante consiste à mesurer ses performances et à l'affiner pour combler ses lacunes. L'évaluation s'appuie sur des métriques comme la mAP et l'IoU pour quantifier la précision, tandis que l'affinage ajuste les paramètres d'entraînement afin de renforcer les points faibles et de répondre à l'objectif de ton projet. Ce guide présente les principales métriques d'évaluation, explique comment les lire et indique comment agir en fonction des résultats.
À regarder : Comprendre l’évaluation et le réglage fin des modèles | Conseils pour améliorer la précision moyenne (AP)
L'évaluation et l'affinage interviennent vers la fin du workflow d'un projet de vision par ordinateur, une fois l'entraînement commencé et lorsqu'il faut vérifier que le modèle est précis, efficace et prêt à être déployé.
Principales métriques d'évaluation#
Différentes métriques permettent de mesurer l'efficacité d'un modèle. Ces métriques de performance fournissent des informations numériques claires qui orientent les améliorations et permettent de vérifier que le modèle atteint les objectifs visés.
Score de confiance#
Le score de confiance représente le degré de certitude du modèle quant à l'appartenance d'un objet détecté à une classe donnée. Il varie de 0 à 1 ; les scores élevés indiquent une confiance supérieure. Il aide à filtrer les prédictions : seules les détections dont le score dépasse un seuil défini sont considérées comme valides.
Lors de l'inférence, si tu ne vois aucune prédiction après avoir vérifié tout le reste, essaie de réduire le seuil de confiance. Il est parfois trop élevé, ce qui pousse le modèle à ignorer des prédictions valides. En l'abaissant, tu permets au modèle d'envisager davantage de possibilités. Cela ne répondra peut-être pas aux objectifs finaux de ton projet, mais c'est un bon moyen de voir ce que le modèle sait faire et de décider comment l'affiner.
Intersection sur union#
L'intersection sur union (IoU) est une métrique de détection d'objets qui mesure le chevauchement entre la boîte englobante prédite et la boîte englobante de référence. Les valeurs d'IoU vont de 0 à 1, où 1 correspond à une correspondance parfaite. L'IoU est essentielle, car elle mesure la correspondance entre les limites prédites et celles de l'objet réel.
Précision moyenne#
La précision moyenne (mAP) mesure les performances globales d'un modèle de détection d'objets. Elle évalue la précision de détection de chaque classe d'objets, calcule la moyenne de ces scores et fournit une valeur unique qui indique avec quelle précision le modèle peut identifier et classer les objets.
Deux métriques mAP sont les plus souvent rapportées :
- mAP@.5 : mesure la précision moyenne pour un seul seuil d'IoU de 0.5. Cette métrique vérifie si le modèle peut repérer correctement les objets selon un critère de précision moins strict. Elle évalue si l'objet se trouve à peu près au bon endroit, sans exiger un placement parfait, et aide à déterminer si le modèle repère généralement bien les objets.
- mAP@.5:.95 : calcule la moyenne des valeurs de mAP obtenues avec plusieurs seuils d'IoU, de 0.5 à 0.95 par incréments de 0.05. Cette métrique est plus détaillée et plus stricte. Elle donne une vision plus complète de la précision avec laquelle le modèle peut repérer les objets selon différents niveaux d'exigence et s'avère particulièrement utile pour les applications qui nécessitent une détection précise des objets.
Les autres métriques mAP comprennent mAP@0.75, qui utilise un seuil d'IoU plus strict de 0.75, ainsi que mAP@small, medium et large, qui évaluent la précision pour des objets de différentes tailles.
Évaluer un modèle YOLO26#
Tu peux évaluer un modèle YOLO26 entraîné avec le mode validation. Pour approfondir le calcul et l'interprétation de chaque métrique, consulte le guide sur les métriques de performance de YOLO26.
Gérer les différentes tailles d'image#
Évaluer ton modèle sur des images de différentes tailles t'aide à comprendre ses performances sur divers jeux de données. Par défaut, la validation utilise le regroupement rectangulaire (rect=True dans model.val()) : elle regroupe les images par rapport d'aspect et complète chaque lot pour obtenir une forme rectangulaire, ce qui permet d'évaluer les images rectangulaires sans les forcer à prendre une forme carrée.
Le paramètre imgsz définit la taille des images utilisées pendant la validation. Si tu ne le définis pas explicitement, YOLO26 réutilise la valeur enregistrée dans les paramètres du modèle (640 pour les modèles préentraînés officiels, ou la taille utilisée pour entraîner un checkpoint personnalisé). Avec rect=True, les formes utilisées pour la validation peuvent différer de celles de predict (voir rect). Ajuste imgsz en fonction des dimensions de ton jeu de données et de la mémoire GPU disponible.
Accéder aux métriques de YOLO26#
Pour comprendre en détail les performances de ton modèle, tu peux accéder à des métriques d'évaluation précises à l'aide de quelques lignes de Python. L'extrait ci-dessous charge un modèle, lance la validation et affiche les métriques les plus utiles.
from ultralytics import YOLO
# Charger un modèle
model = YOLO("yolo26n.pt")
# Exécuter la validation sur ton jeu de données
results = model.val(data="coco8.yaml")
# Métriques globales
print("mAP50-95:", results.box.map) # mAP à un IoU de 0.50:0.95
print("mAP50:", results.box.map50) # mAP à un IoU de 0.50
print("mAP75:", results.box.map75) # mAP à un IoU de 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # score pondéré utilisé pour la sélection du modèle
# Métriques par classe
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Précision, rappel, F1, TP, FP et FN par image
print("Per-image metrics:", results.box.image_metrics)
# Détail des temps par étape, en millisecondes par image
print("Timing breakdown (ms/image):", results.speed)Note que fitness() est une méthode et doit être appelée avec des parenthèses, tandis que les métriques telles que map, map50 et mp sont des propriétés auxquelles on accède directement.
L'attribut results.box.image_metrics est un dictionnaire par image, indexé par nom de fichier image, qui contient precision, recall, f1, tp, fp et fn à un IoU de 0.5 pour chaque image. Les temps de prétraitement, d'inférence, de calcul de la loss et de post-traitement sont indiqués séparément dans le dictionnaire results.speed. Ensemble, ces informations te permettent de repérer les images qui posent problème au modèle et d'affiner celui-ci en conséquence.
Affiner ton modèle#
L'affinage consiste à partir d'un modèle préentraîné et à ajuster ses paramètres pour améliorer ses performances sur une tâche ou un jeu de données spécifique. Également appelé réentraînement du modèle, il permet au modèle de mieux comprendre les données qu'il rencontrera dans des applications réelles et d'en prédire les résultats. En fonction de tes résultats d'évaluation, tu réentraînes le modèle sur tes propres données en ajustant les paramètres d'entraînement présentés dans le guide d'affinage.
Découpage des images pour les petits objets#
Le découpage des images peut améliorer la précision de détection des petits objets. En divisant les grandes images en segments plus petits, par exemple en découpant des images de 1280x1280 en plusieurs segments de 640x640, tu préserves la résolution d'origine et permets au modèle d'apprendre à partir de fragments haute résolution. Ultralytics prend en charge cette opération au moment de l'inférence avec l'inférence par tuiles SAHI. Lors de l'entraînement sur des images découpées en tuiles, veille à adapter correctement les annotations de chaque nouveau segment.
Conclusion#
L'évaluation et l'affinage transforment un modèle entraîné en un modèle fiable et déployable : des métriques comme mAP et IoU révèlent les faiblesses, et des modifications ciblées des paramètres permettent d'y remédier. Commence par le mode validation pour évaluer ton modèle, puis réentraîne-le avec les paramètres présentés dans le guide d'affinage et continue d'itérer avec de nouveaux paramètres, techniques et jeux de données. Si tu as des questions en cours de route, pose-les à la communauté sur le dépôt GitHub d'Ultralytics ou sur le serveur Discord d'Ultralytics.
FAQ#
Pour évaluer les performances d'un modèle YOLO26, les métriques importantes incluent le score de confiance, l'intersection sur l'union (IoU) et la précision moyenne (mAP). Le score de confiance mesure le degré de certitude du modèle pour chaque classe d'objet détectée. IoU évalue le chevauchement entre la boîte englobante prédite et la vérité terrain. La précision moyenne (mAP) agrège les scores de précision de toutes les classes ; mAP@.5 et mAP@.5:.95 sont deux valeurs courantes qui correspondent à différents seuils IoU. Découvre ces métriques plus en détail dans notre guide des métriques de performance de YOLO26.
L'affinage d'un modèle YOLO26 préentraîné consiste à ajuster ses paramètres pour améliorer ses performances sur une tâche ou un jeu de données spécifique. Commence par évaluer ton modèle à l'aide de métriques, puis réentraîne-le sur ton propre jeu de données à partir des poids préentraînés. Pendant l'évaluation, des paramètres comme
rect=truepermettent de gérer efficacement des tailles d'image variées. Pour connaître les paramètres d'entraînement à ajuster, consulte le guide d'affinage.Pour gérer des tailles d'image variables pendant l'évaluation, utilise la validation rectangulaire (
rect=True, la valeur par défaut demodel.val()), qui regroupe les images par rapport hauteur/largeur et ajoute du remplissage à chaque lot au lieu de forcer chaque image à adopter une forme carrée. Le paramètreimgszdéfinit la taille d'image utilisée pour la validation ; si tu ne le remplaces pas, YOLO26 réutilise la valeur enregistrée dans le modèle (640 pour les modèles préentraînés officiels). Ajusteimgszen fonction de ton jeu de données et de la mémoire de ton GPU. Pour en savoir plus, consulte notre section sur la gestion des tailles d'image variables.L'amélioration de la précision moyenne (mAP) d'un modèle YOLO26 passe par plusieurs étapes :
- Réglage des hyperparamètres : teste différents taux d'apprentissage, tailles de lot et augmentations d'image.
- Augmentation des données : utilise des techniques comme Mosaic et MixUp pour créer des exemples d'entraînement variés.
- Découpage des images : découpe les grandes images en tuiles plus petites pour améliorer la précision de détection des petits objets.
Pour les paramètres d'entraînement des étapes 1 et 2, consulte le guide d'affinage ; l'étape 3 est abordée dans la section sur le découpage des images.
Après avoir lancé la validation, tu peux accéder aux métriques d'évaluation d'un modèle YOLO26 en Python :
Utilisationfrom ultralytics import YOLO # Charger un modèle model = YOLO("yolo26n.pt") # Lancer la validation results = model.val(data="coco8.yaml") # Accéder aux principales métriques print("Mean average precision at IoU=0.50:", results.box.map50) print("Mean average precision at IoU=0.50:0.95:", results.box.map) print("Mean recall:", results.box.mr) print("Class indices evaluated:", results.box.ap_class_index)L'analyse de ces métriques t'aide à affiner et à optimiser ton modèle YOLO26. Pour approfondir le sujet, consulte notre guide sur les métriques de performance de YOLO.