Skip to content

Validation du modèle avec Ultralytics YOLO

Ultralytics YOLO écosystème et intégrations

Introduction

La validation est une étape critique du pipeline d'apprentissage automatique, qui te permet d'évaluer la qualité de tes modèles entraînés. Le mode Val du site Ultralytics YOLOv8 fournit une suite robuste d'outils et de mesures pour évaluer les performances de tes modèles de détection d'objets. Ce guide constitue une ressource complète pour comprendre comment utiliser efficacement le mode Val afin de s'assurer que tes modèles sont à la fois précis et fiables.



Regarde : Ultralytics Tutoriel sur les modes : Validation

Pourquoi valider avec Ultralytics YOLO ?

Voici pourquoi il est avantageux d'utiliser le mode Val de YOLOv8:

  • PrĂ©cision : Obtiens des mesures prĂ©cises comme mAP50, mAP75 et mAP50-95 pour Ă©valuer ton modèle de façon complète.
  • Pratique : Utilise les fonctions intĂ©grĂ©es qui se souviennent des paramètres de formation, ce qui simplifie le processus de validation.
  • FlexibilitĂ© : Valide ton modèle avec des ensembles de donnĂ©es et des tailles d'images identiques ou diffĂ©rents.
  • RĂ©glage des hyperparamètres : Utilise les mesures de validation pour affiner ton modèle afin d'obtenir de meilleures performances.

Caractéristiques principales de Val Mode

Ce sont les fonctionnalités notables offertes par le mode Val de YOLOv8:

  • RĂ©glages automatisĂ©s : Les modèles se souviennent de leurs configurations d'entraĂ®nement pour une validation simple.
  • Soutien multi-mĂ©trique : Évalue ton modèle en fonction d'une sĂ©rie de mesures de prĂ©cision.
  • CLI et Python API : Choisis l'interface en ligne de commande ou l'API Python en fonction de tes prĂ©fĂ©rences en matière de validation.
  • CompatibilitĂ© des donnĂ©es : Fonctionne de façon transparente avec les ensembles de donnĂ©es utilisĂ©s pendant la phase de formation ainsi qu'avec les ensembles de donnĂ©es personnalisĂ©s.

Astuce

  • YOLOv8 Les modèles se souviennent automatiquement de leurs paramètres d'apprentissage, ce qui te permet de valider un modèle Ă  la mĂŞme taille d'image et sur l'ensemble de donnĂ©es d'origine en toute simplicitĂ©. yolo val model=yolov8n.pt ou model('yolov8n.pt').val()

Exemples d'utilisation

Valide la précision du modèle YOLOv8n entraîné sur le jeu de données COCO128. Aucun argument n'a besoin d'être passé en tant que model conserve sa formation data et les arguments en tant qu'attributs du modèle. Voir la section Arguments ci-dessous pour une liste complète des arguments d'exportation.

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load an official model
model = YOLO('path/to/best.pt')  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

Arguments en faveur de la validation du modèle YOLO

Lors de la validation des modèles YOLO , plusieurs arguments peuvent être ajustés pour optimiser le processus d'évaluation. Ces arguments contrôlent des aspects tels que la taille de l'image d'entrée, le traitement par lots et les seuils de performance. Tu trouveras ci-dessous une description détaillée de chaque argument pour t'aider à personnaliser efficacement tes paramètres de validation.

Argument Type DĂ©faut Description
data str None Spécifie le chemin d'accès au fichier de configuration du jeu de données (par ex, coco128.yaml). Ce fichier comprend les chemins d'accès aux données de validation, les noms des classes et le nombre de classes.
imgsz int 640 Définit la taille des images d'entrée. Toutes les images sont redimensionnées à cette dimension avant d'être traitées.
batch int 16 Règle le nombre d'images par lot. Utilise -1 pour AutoBatch, qui s'ajuste automatiquement en fonction de la disponibilité de la mémoire du GPU.
save_json bool False Si Trueenregistre les résultats dans un fichier JSON en vue d'une analyse plus approfondie ou d'une intégration à d'autres outils.
save_hybrid bool False Si Trueenregistre une version hybride des étiquettes qui combine les annotations originales avec des prédictions de modèle supplémentaires.
conf float 0.001 Définit le seuil de confiance minimum pour les détections. Les détections dont le niveau de confiance est inférieur à ce seuil sont rejetées.
iou float 0.6 Définit le seuil d'intersection au-dessus de l'union (IoU) pour la suppression non maximale (NMS). Aide à réduire les détections de doublons.
max_det int 300 Limite le nombre maximum de détections par image. Utile dans les scènes denses pour éviter les détections excessives.
half bool True Permet le calcul en demi-précision (FP16), ce qui réduit l'utilisation de la mémoire et augmente potentiellement la vitesse avec un impact minimal sur la précision.
device str None Spécifie le dispositif de validation (cpu, cuda:0etc.) Permet une certaine flexibilité dans l'utilisation des ressources du processeur ou du processeur graphique.
dnn bool False Si Trueutilise le module DNN d'OpenCV pour l'inférence du modèle ONNX , offrant ainsi une alternative aux méthodes d'inférence de PyTorch .
plots bool False Lorsqu'il est réglé sur TrueIl génère et enregistre les tracés des prédictions par rapport à la vérité de terrain pour une évaluation visuelle de la performance du modèle.
rect bool False Si TrueL'application de l'inférence rectangulaire pour la mise en lots permet de réduire le rembourrage et d'augmenter potentiellement la vitesse et l'efficacité.
split str val Détermine la division du jeu de données à utiliser pour la validation (val, testou train). Permet une certaine souplesse dans le choix du segment de données pour l'évaluation des performances.

Chacun de ces paramètres joue un rôle essentiel dans le processus de validation, permettant une évaluation personnalisable et efficace des modèles YOLO . L'ajustement de ces paramètres en fonction de tes besoins et de tes ressources spécifiques peut permettre d'atteindre le meilleur équilibre entre précision et performance.

Exemple de validation avec des arguments

Les exemples ci-dessous présentent la validation du modèle YOLO avec des arguments personnalisés dans Python et CLI.

Exemple

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')

# Customize validation settings
validation_results = model.val(data='coco8.yaml',
                               imgsz=640,
                               batch=16,
                               conf=0.25,
                               iou=0.6,
                               device='0')
yolo val model=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


Créé le 2023-11-12, Mis à jour le 2024-03-03
Auteurs : glenn-jocher (8), Burhan-Q (1), chr043416@gmail.com (1)

Commentaires