Analyse comparative des modèles avec Ultralytics YOLO
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
Arguments
Des arguments tels que model
, data
, imgsz
, half
, device
et 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 , 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 , batch |
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.
Créé le 2023-11-12, Mis à jour le 2024-04-27
Auteurs : glenn-jocher (12), Burhan-Q (1), RizwanMunawar (1), Laughing-q (1), maianumerosky (1)