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 de l'unitĂ© centrale
  • TensorRT: Pour une efficacitĂ© maximale du 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 une accĂ©lĂ©ration de l'unitĂ© centrale jusqu'Ă  3 fois.
  • Exporte vers TensorRT pour accĂ©lĂ©rer jusqu'Ă  5 fois la vitesse du 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 configurations multi-GPU.
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.



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (16), Burhan-Q (3), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)

Commentaires