Skip to content

Validation du modèle avec Ultralytics YOLO

Ultralytics YOLO écosystème et intégrations

Introduction

La validation est une étape critique dans le pipeline d'apprentissage automatique, vous permettant d'évaluer la qualité de vos modèles formés. Le mode Val dans Ultralytics YOLO11 fournit une suite robuste d'outils et de mesures pour évaluer les performances de vos 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 vos modèles sont à la fois précis et fiables.



Regarder : Ultralytics Tutoriel sur les modes : Validation

Pourquoi valider avec Ultralytics YOLO ?

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

  • PrĂ©cision : Obtenez des mesures prĂ©cises telles que mAP50, mAP75 et mAP50-95 pour Ă©valuer votre modèle de manière exhaustive.
  • Pratique : Utilisez les fonctions intĂ©grĂ©es qui mĂ©morisent les paramètres de formation, ce qui simplifie le processus de validation.
  • FlexibilitĂ© : Validez votre modèle avec des ensembles de donnĂ©es et des tailles d'images identiques ou diffĂ©rents.
  • Ajustement des hyperparamètres: Utilisez les mesures de validation pour affiner votre modèle afin d'en amĂ©liorer les performances.

Principales caractéristiques de Val Mode

Telles sont les principales fonctionnalités offertes par le mode Val de YOLO11:

  • Paramètres automatisĂ©s : Les modèles gardent en mĂ©moire leurs configurations d'entraĂ®nement pour une validation aisĂ©e.
  • Support multi-mĂ©trique : Évaluez votre modèle sur la base d'une sĂ©rie de mesures de prĂ©cision.
  • CLI et Python API : Choisissez l'interface en ligne de commande ou l'API Python en fonction de vos prĂ©fĂ©rences en matière de validation.
  • CompatibilitĂ© des donnĂ©es : Fonctionne de manière transparente avec les ensembles de donnĂ©es utilisĂ©s pendant la phase de formation ainsi qu'avec les ensembles de donnĂ©es personnalisĂ©s.

Conseil

  • YOLO11 se souviennent automatiquement de leurs paramètres d'apprentissage, de sorte que vous pouvez valider un modèle Ă  la mĂŞme taille d'image et sur l'ensemble de donnĂ©es d'origine facilement en utilisant simplement la fonction yolo val model=yolo11n.pt ou model('yolo11n.pt').val()

Exemples d'utilisation

Valider le modèle YOLO11n formé précision sur le jeu de données COCO8. Aucun argument n'est nécessaire car la fonction 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 affinés afin d'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. Vous trouverez ci-dessous une description détaillée de chaque argument pour vous aider à personnaliser efficacement vos 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 exemple, coco8.yaml). Ce fichier comprend les chemins d'accès à données de validationLes 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 Définit le nombre d'images par lot. Utiliser -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 avec 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èles 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). Permet de 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), réduisant l'utilisation de la mémoire et augmentant 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 flexibilité dans l'utilisation des ressources CPU ou GPU .
dnn bool False Si True, utilise le OpenCV Module DNN pour l'inférence du modèle ONNX , offrant une alternative à PyTorch les méthodes d'inférence.
plots bool False Lorsqu'il est réglé sur TrueIl génère et enregistre des tracés des prédictions par rapport à la vérité de terrain pour une évaluation visuelle de la performance du modèle.
rect bool True Si TrueIl utilise l'inférence rectangulaire pour la mise en lots, ce qui permet de réduire le remplissage et d'augmenter potentiellement la vitesse et l'efficacité.
split str val Détermine la partie 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.
project str None Nom du répertoire du projet dans lequel les résultats de la validation sont enregistrés.
name str None Nom du cycle de validation. Utilisé pour créer un sous-répertoire dans le dossier du projet, où les journaux de validation et les résultats sont stockés.

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

Exemple de validation avec arguments

Les exemples ci-dessous illustrent 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

Comment valider mon modèle YOLO11 avec Ultralytics?

Pour valider votre modèle YOLO11 , vous pouvez utiliser le mode Val fourni par Ultralytics. Par exemple, en utilisant l'API Python , vous pouvez charger un modèle et lancer la validation avec :

from ultralytics import YOLO

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

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

Vous pouvez Ă©galement utiliser l'interface de ligne de commande (CLI) :

yolo val model=yolo11n.pt

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

Quelles mesures puis-je obtenir de la validation du modèle YOLO11 ?

YOLO11 La validation du modèle fournit plusieurs mesures clés pour évaluer la performance du modèle. Il s'agit notamment de

  • 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 , vous pouvez accéder à ces mesures de la manière suivante :

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 essentiel d'examiner tous ces paramètres. Pour plus de détails, voir les 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 :

  • PrĂ©cision: YOLO11 offre des mesures de performance prĂ©cises, y compris mAP50, mAP75 et mAP50-95.
  • CommoditĂ© : Les modèles mĂ©morisent leurs paramètres d'apprentissage, ce qui facilite la validation.
  • FlexibilitĂ© : Vous pouvez valider des ensembles de donnĂ©es et des tailles d'images identiques ou diffĂ©rents.
  • Ajustement des hyperparamètres : Les mesures de validation permettent d'affiner les modèles pour obtenir de meilleures performances.

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

Puis-je valider mon modèle YOLO11 en utilisant un ensemble de données personnalisé ?

Oui, vous pouvez valider votre modèle YOLO11 à l'aide d'un ensemble de données personnalisé. Spécifier le data avec le chemin d'accès au fichier de configuration de votre jeu de données. Ce fichier doit inclure les chemins vers les fichiers données de validationLes noms des classes et d'autres détails pertinents.

Exemple Ă  l'adresse 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 arguments.

Comment enregistrer les résultats de la validation dans un fichier JSON dans YOLO11?

Pour enregistrer les résultats de la validation dans un fichier JSON, vous pouvez définir la propriété save_json argument à True lors de la validation. Cela peut être fait à la fois dans l'API Python et dans CLI.

Exemple Ă  l'adresse 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. Pour plus de détails, consultez les arguments en faveur de la validation du modèle YOLO .

📅C réé il y a 1 an ✏️ Mis à jour il y a 2 mois

Commentaires