Aperçu de l'évaluation et du réglage fin des modèles#
Après l'entraînement d'un modèle YOLO, l'étape suivante consiste à mesurer ses performances et à l'affiner pour combler les lacunes. L'évaluation utilise des métriques telles que le mAP et l'IoU pour quantifier la précision, tandis que l'affinage ajuste les paramètres d'entraînement pour renforcer les points faibles afin que le modèle réponde à l'objectif de ton projet. Ce guide explique les principales métriques d'évaluation, la manière de les lire et les techniques d'affinage qui élèvent les capacités de ton modèle.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
L'évaluation et l'affinage interviennent vers la fin du flux de travail du projet de vision par ordinateur, une fois que l'entraînement est en cours et que tu dois vérifier que le modèle est précis, efficace et prêt pour le déploiement.
Métriques d'évaluation clés#
Diverses métriques mesurent l'efficacité des performances d'un modèle. Ces métriques de performance fournissent des informations numériques claires qui guident les améliorations pour s'assurer que le modèle atteint les objectifs prévus.
Score de confiance#
Le score de confiance représente la certitude du modèle qu'un objet détecté appartient à une classe particulière. Il varie de 0 à 1, les scores les plus élevés indiquant une plus grande confiance. Le score de confiance aide à filtrer les prédictions ; seules les détections avec un score de confiance supérieur à un seuil spécifié sont considérées comme valides.
Lors de l'exécution de l'inférence, si tu ne vois aucune prédiction et que tu as tout vérifié, essaie d'abaisser le seuil de confiance. Parfois, le seuil est trop élevé, ce qui amène le modèle à ignorer des prédictions valides. L'abaisser permet au modèle de prendre en compte davantage de possibilités. Cela peut ne pas correspondre aux objectifs finaux de ton projet, mais c'est un bon moyen de voir ce que le modèle peut faire et de décider comment l'ajuster.
Intersection sur Union#
L'Intersection over Union (IoU) est une métrique de la détection d'objets qui mesure dans quelle mesure la boîte englobante prédite chevauche la boîte englobante de vérité terrain. Les valeurs d'IoU vont de 0 à 1, où un représente une correspondance parfaite. L'IoU est essentielle car elle mesure à quel point les limites prédites correspondent aux limites réelles de l'objet.
Précision moyenne moyenne#
Le Mean Average Precision (mAP) mesure les performances globales d'un modèle de détection d'objets. Il examine la précision de la détection de chaque classe d'objets, calcule la moyenne de ces scores et fournit un nombre unique qui montre avec quelle précision le modèle peut identifier et classifier les objets.
Deux métriques mAP sont le plus couramment signalées :
- mAP@.5 : Mesure la précision moyenne à un seuil IoU unique de 0,5. Cette métrique vérifie si le modèle peut correctement trouver des objets avec une exigence de précision plus souple. Elle se concentre sur le fait que l'objet est à peu près au bon endroit, sans nécessiter un placement parfait, et aide à voir si le modèle est globalement bon pour repérer les objets.
- mAP@.5:.95 : Fait la moyenne des valeurs mAP calculées à plusieurs seuils d'IoU, de 0,5 à 0,95 par incréments de 0,05. Cette métrique est plus détaillée et stricte. Elle donne une image plus complète de la précision avec laquelle le modèle peut trouver des objets à différents niveaux d'exigence et est particulièrement utile pour les applications nécessitant une détection d'objets précise.
D'autres métriques mAP incluent mAP@0.75, qui utilise un seuil d'IoU plus strict de 0,75, et mAP@small, medium, et large, qui évaluent la précision pour des objets de différentes tailles.
Évaluation d'un modèle YOLO26#
Tu peux évaluer un modèle YOLO26 entraîné avec le mode de validation. Pour un examen plus approfondi de la manière dont chaque métrique est calculée et interprétée, consulte le guide des métriques de performance YOLO26.
Gestion des tailles d'image variables#
Évaluer ton modèle sur des images de différentes tailles t'aide à comprendre ses performances sur divers ensembles de données. Le paramètre de validation rect=true regroupe les images par format et complète chaque lot à la plus petite forme qui convient, de sorte que les images rectangulaires sont évaluées sans être forcées en un carré.
Le paramètre imgsz définit la taille de l'image utilisée pendant la validation, appliquée sous forme de carré. 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 à laquelle un point de contrôle personnalisé a été entraîné). Avec rect=true, YOLO26 contraint le côté le plus long à imgsz et complète le côté le plus court à un multiple de pas, préservant ainsi le format. Ajuste imgsz en fonction des dimensions de ton ensemble de données et de la mémoire GPU disponible.
Accéder aux métriques YOLO26#
Pour comprendre en détail les performances de ton modèle, tu peux accéder à des métriques d'évaluation spécifiques avec quelques lignes de Python. L'extrait ci-dessous charge un modèle, exécute la validation et affiche les métriques les plus utiles.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Run validation on your dataset
results = model.val(data="coco8.yaml")
# Overall metrics
print("mAP50-95:", results.box.map) # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50) # mAP at IoU 0.50
print("mAP75:", results.box.map75) # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # weighted score used for model selection
# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)
# Per-stage timing breakdown in milliseconds per 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 des métriques comme map, map50 et mp sont des propriétés accessibles directement.
L'attribut results.box.image_metrics est un dictionnaire par image indexé par nom de fichier d'image, contenant precision, recall, f1, tp, fp et fn à un IoU de 0,5 pour chaque image. Les temps de prétraitement, d'inférence, de perte et de post-traitement sont signalés séparément dans le dictionnaire results.speed. Ensemble, ceux-ci te permettent d'identifier précisément les images avec lesquelles le modèle peine et d'ajuster en conséquence.
Réglage fin de ton modèle#
Le réglage fin prend un modèle pré-entraîné et ajuste ses paramètres pour améliorer les performances sur une tâche ou un jeu de données spécifique. Également appelé réentraînement de modèle, il permet au modèle de mieux comprendre et prédire les résultats pour les données qu'il rencontrera dans des applications réelles. Sur la base de tes résultats d'évaluation, tu réentraînes le modèle pour obtenir des résultats optimaux en prêtant une attention particulière à quelques paramètres et techniques clés.
Commencer avec un taux d'apprentissage plus élevé#
Pendant l'entraînement normal, le taux d'apprentissage commence bas et augmente progressivement au cours des premières époques pour stabiliser les premières mises à jour. Lors de l'affinage, le modèle transporte déjà des caractéristiques utiles du pré-entraînement, tu peux donc ignorer cet échauffement et commencer à t'adapter à tes nouvelles données immédiatement.
Définis l'argument d'entraînement warmup_epochs sur 0 dans model.train() pour désactiver la phase d'échauffement. L'entraînement se poursuit alors à partir des poids pré-entraînés au taux d'apprentissage de base configuré (lr0) au lieu d'y monter progressivement, s'adaptant aux nuances de tes nouvelles données.
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)Tuilage d'images pour les petits objets#
Le pavage d'images peut améliorer la précision de détection pour les petits objets. En divisant de grandes images en segments plus petits, comme la division d'images 1280x1280 en plusieurs segments 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 cela au moment de l'inférence via l'inférence pavée SAHI. Lors de l'entraînement sur des images pavées, assure-toi d'ajuster correctement tes étiquettes pour chaque nouveau segment.
Conclusion#
L'évaluation et l'affinage sont ce qui transforme un modèle entraîné en un modèle fiable et déployable : des métriques comme le mAP et l'IoU exposent les faiblesses, et des modifications ciblées des paramètres y remédient. Commence par le mode de validation pour étalonner ton modèle, puis applique les techniques d'affinage ci-dessus et continue à itérer avec de nouveaux paramètres, techniques et ensembles de données. Si des questions se posent en chemin, pose les questions à la communauté sur le référentiel GitHub d'Ultralytics ou sur le serveur Discord d'Ultralytics.
FAQ#
Pour évaluer les performances du modèle YOLO26, les métriques importantes incluent le score de confiance, l'Intersection over Union (IoU) et le Mean Average Precision (mAP). Le score de confiance mesure la certitude du modèle pour chaque classe d'objets détectée. L'IoU évalue dans quelle mesure la boîte englobante prédite chevauche la vérité terrain. Le Mean Average Precision (mAP) agrège les scores de précision entre les classes, le mAP@.5 et le mAP@.5:.95 étant deux types courants pour des seuils d'IoU variables. Apprends-en plus sur ces métriques dans notre guide des métriques de performance YOLO26.
Pour gérer des tailles d'image variables lors de l'évaluation, utilise le paramètre
rect=truedans YOLO26, qui regroupe les images par format et complète chaque lot au lieu de forcer chaque image en un carré. Le paramètreimgszdéfinit la taille de l'image pour la validation ; si tu ne le remplaces pas, YOLO26 réutilise la valeur enregistrée du modèle (640 pour les modèles pré-entraînés officiels). Ajusteimgszpour l'adapter à ton ensemble de données et à ta mémoire GPU. Pour plus de détails, visite notre section sur la gestion des tailles d'image variables.Améliorer la précision moyenne (mAP) pour un modèle YOLO26 implique plusieurs étapes :
- Réglage des hyperparamètres : Expérimente avec différents taux d'apprentissage, tailles de lots et augmentations d'images.
- Augmentation des données : Utilise des techniques comme Mosaic et MixUp pour créer divers échantillons d'entraînement.
- Tuilage d'images : Divise les images plus grandes en tuiles plus petites pour améliorer la précision de détection des petits objets.
Réfère-toi à notre section détaillée sur l'affinage de ton modèle pour des stratégies spécifiques.
Tu peux accéder aux métriques d'évaluation du modèle YOLO26 en utilisant Python après avoir exécuté la validation :
Utilisationfrom ultralytics import YOLO # Load a model model = YOLO("yolo26n.pt") # Run validation results = model.val(data="coco8.yaml") # Access key metrics 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 une plongée plus approfondie, consulte notre guide sur les métriques de performance YOLO.
L'affinage d'un modèle YOLO26 pré-entraîné implique l'ajustement de ses paramètres pour améliorer les performances sur une tâche ou un ensemble de données spécifique. Commence par évaluer ton modèle avec des métriques, puis définis l'argument d'entraînement
warmup_epochssur0dansmodel.train()afin que le taux d'apprentissage commence immédiatement à la valeur de base configurée au lieu d'augmenter progressivement. Pendant l'évaluation, des paramètres tels querect=trueaident à gérer efficacement des tailles d'image variées. Pour des conseils plus détaillés, réfère-toi à notre section sur l'affinage de ton modèle.