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 les plus élevés indiquant une confiance supérieure. Le score de confiance permet de filtrer les prédictions ; seules les détections dont le score dépasse un seuil donné 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 l’union (IoU) est une métrique en détection d’objets qui mesure le chevauchement entre la boîte englobante prédite et la boîte englobante de vérité terrain. Les valeurs d’IoU s’échelonnent de 0 à 1, 1 correspondant à une correspondance parfaite. L’IoU est essentiel, car il mesure la proximité entre les contours prédits et les contours réels de l’objet.
Précision moyenne#
La précision moyenne moyenne (mAP) mesure les performances globales d’un modèle de détection d’objets. Elle examine la précision de détection de chaque classe d’objets, calcule la moyenne de ces scores et fournit un chiffre unique qui indique la précision avec laquelle le modèle peut identifier et classer les objets.
Deux métriques mAP sont les plus souvent rapportées :
- mAP50 : mesure la précision moyenne à un seuil d’IoU unique de 0.5. Cette métrique vérifie si le modèle peut trouver correctement les objets avec une exigence de précision moins stricte. Elle évalue si l’objet se trouve à peu près au bon endroit, sans exiger un placement parfait, et permet de déterminer si le modèle détecte généralement bien les objets.
- mAP50-95 : calcule la moyenne des valeurs mAP obtenues à 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 image plus complète de la précision avec laquelle le modèle détecte les objets à différents niveaux d’exigence et s’avère particulièrement utile pour les applications nécessitant une détection précise des objets.
Parmi les autres métriques mAP figurent mAP75, qui utilise un seuil d’IoU plus strict de 0.75, ainsi que APS, APM et APL, qui évaluent la précision sur les objets de petite, moyenne et grande taille.
É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) # les classes absentes de l’ensemble de validation reçoivent la valeur du mAP global
# 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#
Le réglage fin consiste à prendre 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, ce processus lui permet de mieux comprendre les données qu’il rencontrera dans des applications réelles et de produire des prédictions plus adaptées. Selon les résultats de ton évaluation, tu réentraînes le modèle sur tes propres données en ajustant les arguments d’entraînement présentés dans le guide sur le réglage fin.
Découpage des images pour les petits objets#
Le découpage des images en tuiles 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 en haute résolution. Ultralytics prend en charge cette méthode au moment de l’inférence grâce à l’inférence par tuiles SAHI. Lorsque tu entraînes le modèle sur des images découpées en tuiles, veille à ajuster correctement les étiquettes 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 comprennent le score de confiance, l’intersection sur 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) regroupe les scores de précision sur plusieurs classes ; mAP50 et mAP50-95 sont deux variantes courantes utilisant différents seuils d’IoU. Découvre ces métriques dans notre guide des métriques de performance YOLO26.
L’ajustement fin d’un modèle YOLO26 préentraîné consiste à modifier ses paramètres afin d’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. Lors de l’évaluation, des paramètres comme
rect=Trueaident à traiter efficacement des images de tailles variées.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, différentes tailles de lot et différentes 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.
Commentaires2
Pose une question, partage tes résultats ou aide quelqu’un d’autre.
ILIAHHne63
Hello, I'm using YoLOv10, how can I load the pretrained backbone, but leave the head unpretrained?
Glenn JocherUltralytics@ILIAHHne63 to load a pretrained backbone while leaving the head unpretrained in YOLOv10, you can initialize the model with the pretrained weights and then manually reset the head layers. This allows you to retain the pretrained features of the backbone while training the head from scratch. For detailed steps, refer to the model fine-tuning section in our documentation. If you encounter any issues, ensure you're using the latest version of the package.