Validation du modèle avec Ultralytics YOLO
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
oumodel('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
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 True enregistre 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 True enregistre 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:0 etc.) 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 True Il 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 True Il 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 , test ou 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
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) :
Pour une personnalisation plus poussée, tu peux ajuster divers arguments tels que imgsz
, batch
et 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:
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:
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.