Skip to content

Validation du modèle avec Ultralytics YOLO

Ultralytics YOLO écosystème et intégrations

Introduction

Validation is a critical step in the machine learning pipeline, allowing you to assess the quality of your trained models. Val mode in Ultralytics YOLO11 provides a robust suite of tools and metrics for evaluating the performance of your object detection models. This guide serves as a complete resource for understanding how to effectively use the Val mode to ensure that your models are both accurate and reliable.



Regarde : Ultralytics Tutoriel sur les modes : Validation

Pourquoi valider avec Ultralytics YOLO ?

Here's why using YOLO11's Val mode is advantageous:

  • 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 jeux de donnĂ©es et des tailles d'images identiques ou diffĂ©rents.
  • Hyperparameter Tuning: Use validation metrics to fine-tune your model for better performance.

Caractéristiques principales de Val Mode

These are the notable functionalities offered by YOLO11's Val mode:

  • 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

  • YOLO11 models automatically remember their training settings, so you can validate a model at the same image size and on the original dataset easily with just yolo val model=yolo11n.pt ou model('yolo11n.pt').val()

Exemples d'utilisation

Validate trained YOLO11n model accuracy on the COCO8 dataset. No arguments are needed as the 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("yolo11n.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=yolo11n.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, coco8.yaml). This file includes paths to validation data, class names, and number of 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 sur 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 Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
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 Enables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
device str None Spécifie le dispositif de validation (cpu, cuda:0etc.) Permet une certaine flexibilité dans l'utilisation des ressources CPU ou GPU .
dnn bool False Si True, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
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 TrueIl utilise l'inférence rectangulaire pour la mise en lots, ce qui 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("yolo11n.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=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

FAQ

How do I validate my YOLO11 model with Ultralytics?

To validate your YOLO11 model, you can use the Val mode provided by Ultralytics. For example, using the Python API, you can load a model and run validation with:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

Tu peux aussi utiliser l'interface de ligne de commande (CLI) :

yolo val model=yolo11n.pt

Pour une personnalisation plus poussée, tu peux ajuster divers arguments tels que imgsz, batchet conf dans les modes Python et CLI . Vérifie le Arguments en faveur de la validation du modèle YOLO pour obtenir la liste complète des paramètres.

What metrics can I get from YOLO11 model validation?

YOLO11 model validation provides several key metrics to assess model performance. These include:

  • mAP50 (prĂ©cision moyenne au seuil de 0,5 de l'IoU)
  • mAP75 (prĂ©cision moyenne au seuil de l'IoU 0,75)
  • mAP50-95 (prĂ©cision moyenne sur plusieurs seuils de l'IoU de 0,5 Ă  0,95)

En utilisant l'API Python , tu peux accéder à ces mesures comme suit :

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category

Pour une évaluation complète des performances, il est crucial d'examiner toutes ces mesures. Pour plus de détails, reporte-toi aux caractéristiques principales du mode Val.

Quels sont les avantages de l'utilisation de Ultralytics YOLO pour la validation ?

L'utilisation de Ultralytics YOLO pour la validation présente plusieurs avantages :

  • Precision: YOLO11 offers accurate performance metrics including mAP50, mAP75, and mAP50-95.
  • Pratique : Les modèles se souviennent de leurs paramètres d'apprentissage, ce qui facilite la validation.
  • FlexibilitĂ© : Tu peux valider par rapport Ă  des ensembles de donnĂ©es et des tailles d'images identiques ou diffĂ©rents.
  • RĂ©glage des hyperparamètres : Les mesures de validation permettent d'affiner les modèles pour obtenir de meilleures performances.

Ces avantages garantissent que tes modèles sont évalués de façon approfondie et peuvent être optimisés pour obtenir des résultats supérieurs. Pour en savoir plus sur ces avantages, consulte la section Pourquoi valider avec Ultralytics YOLO .

Can I validate my YOLO11 model using a custom dataset?

Yes, you can validate your YOLO11 model using a custom dataset. Specify the data argument with the path to your dataset configuration file. This file should include paths to the validation data, class names, and other relevant details.

Exemple sur Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

Exemple avec CLI:

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

Pour plus d'options personnalisables lors de la validation, voir la section Exemple de validation avec des arguments.

How do I save validation results to a JSON file in YOLO11?

Pour enregistrer les résultats de la validation dans un fichier JSON, tu peux définir le paramètre save_json argument pour True lors de la validation. Cela peut être fait à la fois dans l'API Python et dans CLI.

Exemple sur Python:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

Exemple avec CLI:

yolo val model=yolo11n.pt save_json=True

Cette fonctionnalité est particulièrement utile pour des analyses plus poussées ou pour l'intégration avec d'autres outils. Consulte les arguments en faveur de la validation du modèle YOLO pour plus de détails.


📅 Created 11 months ago ✏️ Updated 6 days ago

Commentaires