Skip to content

Analyse comparative des modèles avec Ultralytics YOLO

Ultralytics YOLO écosystème et intégrations

Introduction

Une fois ton modèle formé et validé, la prochaine étape logique consiste à évaluer ses performances dans divers scénarios du monde réel. Le mode Benchmark de Ultralytics YOLOv8 répond à cet objectif en fournissant un cadre solide pour évaluer la vitesse et la précision de ton modèle dans toute une série de formats d'exportation.



Regarde : Ultralytics Tutoriel sur les modes : Benchmark

Pourquoi l'analyse comparative est-elle cruciale ?

  • Des dĂ©cisions Ă©clairĂ©es : Apprends Ă  connaĂ®tre les compromis entre la vitesse et la prĂ©cision.
  • Allocation des ressources : Comprendre comment les diffĂ©rents formats d'exportation se comportent sur diffĂ©rents matĂ©riels.
  • Optimisation : Apprends quel format d'exportation offre les meilleures performances pour ton cas d'utilisation spĂ©cifique.
  • RentabilitĂ© : Utilise plus efficacement les ressources matĂ©rielles en fonction des rĂ©sultats des analyses comparatives.

Métriques clés en mode benchmark

  • mAP50-95 : Pour la dĂ©tection d'objets, la segmentation et l'estimation de la pose.
  • accuracy_top5 : Pour la classification des images.
  • Temps d'infĂ©rence : temps pris pour chaque image en millisecondes.

Formats d'exportation pris en charge

  • ONNX: Pour une performance optimale CPU
  • TensorRT: Pour une efficacitĂ© maximale GPU
  • OpenVINO: Pour l'optimisation du matĂ©riel Intel
  • CoreML, TensorFlow SavedModel , et plus encore : Pour divers besoins de dĂ©ploiement.

Astuce

  • Exporte vers ONNX ou OpenVINO pour accĂ©lĂ©rer jusqu'Ă  3 fois CPU .
  • Exporte vers TensorRT pour accĂ©lĂ©rer jusqu'Ă  5 fois GPU .

Exemples d'utilisation

Exécute les tests YOLOv8n sur tous les formats d'exportation pris en charge, y compris ONNX, TensorRT , etc. Voir la section Arguments ci-dessous pour une liste complète des arguments d'exportation.

Exemple

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Arguments

Des arguments tels que model, data, imgsz, half, deviceet verbose offrent aux utilisateurs la possibilité d'adapter les repères à leurs besoins spécifiques et de comparer facilement les performances des différents formats d'exportation.

Clé Valeur par défaut Description
model None Spécifie le chemin d'accès au fichier du modèle. Accepte à la fois .pt et .yaml formats, par exemple, "yolov8n.pt" pour les modèles pré-entraînés ou les fichiers de configuration.
data None Chemin d'accès à un fichier YAML définissant l'ensemble de données pour l'analyse comparative, comprenant généralement les chemins et les paramètres pour les données de validation. Exemple : "coco8.yaml".
imgsz 640 La taille de l'image d'entrée pour le modèle. Il peut s'agir d'un seul entier pour les images carrées ou d'un tuple (width, height) pour non carré, par exemple, (640, 480).
half False Permet l'inférence FP16 (demi-précision), ce qui réduit l'utilisation de la mémoire et augmente éventuellement la vitesse sur le matériel compatible. Utilise half=True pour l'activer.
int8 False Active la quantification INT8 pour optimiser davantage les performances sur les appareils pris en charge, ce qui est particulièrement utile pour les appareils périphériques. Définir int8=True à utiliser.
device None DĂ©finit le(s) dispositif(s) de calcul pour l'analyse comparative, tel(s) que "cpu", "cuda:0"ou une liste d'appareils comme "cuda:0,1" pour les installations multiGPU .
verbose False Contrôle le niveau de détail de la sortie des journaux. Une valeur booléenne ; définie verbose=True pour obtenir des journaux détaillés ou une valeur flottante pour les erreurs de seuil.

Formats d'exportation

Les tests tenteront de s'exécuter automatiquement sur tous les formats d'exportation possibles ci-dessous.

Format format Argument Modèle Métadonnées Arguments
PyTorch - yolov8n.pt âś… -
TorchScript torchscript yolov8n.torchscript âś… imgsz, optimize, batch
ONNX onnx yolov8n.onnx âś… imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ âś… imgsz, half, int8, batch
TensorRT engine yolov8n.engine âś… imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage âś… imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ âś… imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb ❌ imgsz, batch
TF Lite tflite yolov8n.tflite âś… imgsz, half, int8, batch
TF Bord TPU edgetpu yolov8n_edgetpu.tflite âś… imgsz
TF.js tfjs yolov8n_web_model/ âś… imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ âś… imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ âś… imgsz, half, batch

Voir l'intégralité export détails dans le Exporter page.

FAQ

Comment puis-je évaluer les performances de mon modèle YOLOv8 à l'aide de Ultralytics?

Ultralytics YOLOv8 propose un mode Benchmark pour évaluer les performances de ton modèle dans différents formats d'exportation. Ce mode fournit des informations sur des paramètres clés tels que la précision moyenne (mAP50-95), la précision et le temps d'inférence en millisecondes. Pour effectuer des analyses comparatives, tu peux utiliser les commandes Python ou CLI . Par exemple, pour effectuer une analyse comparative sur un site GPU:

Exemple

from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolov8n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolov8n.pt data='coco8.yaml' imgsz=640 half=False device=0

Pour plus de détails sur les arguments du benchmark, visite la section Arguments.

Quels sont les avantages de l'exportation des modèles YOLOv8 vers différents formats ?

L'exportation des modèles YOLOv8 vers différents formats tels que ONNX, TensorRT, et OpenVINO te permet d'optimiser les performances en fonction de ton environnement de déploiement. Par exemple :

  • ONNX: Permet d'accĂ©lĂ©rer jusqu'Ă  3 fois CPU .
  • TensorRT: Offre jusqu'Ă  5 fois la vitesse de GPU .
  • OpenVINO: SpĂ©cifiquement optimisĂ© pour le matĂ©riel Intel . Ces formats amĂ©liorent Ă  la fois la vitesse et la prĂ©cision de tes modèles, les rendant plus efficaces pour diverses applications rĂ©elles. Visite la page d'exportation pour plus de dĂ©tails.

Pourquoi le benchmarking est-il crucial dans l'évaluation des modèles YOLOv8 ?

L'analyse comparative de tes modèles YOLOv8 est essentielle pour plusieurs raisons :

  • DĂ©cisions Ă©clairĂ©es : Comprendre les compromis entre la vitesse et la prĂ©cision.
  • Allocation des ressources : Évalue les performances des diffĂ©rentes options matĂ©rielles.
  • Optimisation : DĂ©termine le format d'exportation qui offre les meilleures performances pour des cas d'utilisation spĂ©cifiques.
  • RentabilitĂ© : Optimise l'utilisation du matĂ©riel en fonction des rĂ©sultats de l'analyse comparative. Des mesures clĂ©s telles que mAP50-95, la prĂ©cision Top-5 et le temps d'infĂ©rence aident Ă  faire ces Ă©valuations. Reporte-toi Ă  la section Mesures clĂ©s pour plus d'informations.

Quels sont les formats d'exportation pris en charge par YOLOv8, et quels sont leurs avantages ?

YOLOv8 prend en charge une variété de formats d'exportation, chacun adapté à un matériel et à des cas d'utilisation spécifiques :

  • ONNX: Meilleur pour CPU performance.
  • TensorRT: IdĂ©al pour GPU l'efficacitĂ©.
  • OpenVINO: OptimisĂ© pour le matĂ©riel Intel .
  • CoreML & TensorFlow: Utile pour iOS et les applications ML gĂ©nĂ©rales. Pour obtenir une liste complète des formats pris en charge et de leurs avantages respectifs, consulte la section Formats d'exportation pris en charge.

Quels arguments puis-je utiliser pour affiner mes repères sur YOLOv8 ?

Lors de l'exécution de benchmarks, plusieurs arguments peuvent être personnalisés pour répondre à des besoins spécifiques :

  • modèle : Chemin d'accès au fichier du modèle (par exemple, "yolov8n.pt ").
  • data : Chemin d'accès Ă  un fichier YAML dĂ©finissant l'ensemble de donnĂ©es (par exemple, "coco8.yaml").
  • imgsz : La taille de l'image d'entrĂ©e, soit sous forme d'un seul entier, soit sous forme d'un tuple.
  • moitiĂ© : Active l'infĂ©rence FP16 pour de meilleures performances.
  • int8 : Active la quantification INT8 pour les pĂ©riphĂ©riques de bord.
  • device : SpĂ©cifie le dispositif de calcul (par exemple, "cpu", "cuda:0 ").
  • verbose : ContrĂ´le le niveau de dĂ©tail de la journalisation. Pour obtenir la liste complète des arguments, reporte-toi Ă  la section Arguments.


Créé le 2023-11-12, Mis à jour le 2024-07-04
Auteurs : glenn-jocher (18), Burhan-Q (3), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)

Commentaires