Évaluation des modèles avec Ultralytics YOLO
Visualisation des benchmarks
Actualiser le navigateur
Vous devrez peut-être actualiser la page pour afficher correctement les graphiques en raison de problèmes potentiels de cookies.
Introduction
Une fois que votre modèle est entraîné et validé, l'étape logique suivante consiste à évaluer ses performances dans divers scénarios réels. Le mode Benchmark dans Ultralytics YOLO11 sert cet objectif en fournissant un cadre robuste pour évaluer la vitesse et la précision de votre modèle dans une gamme de formats d'exportation.
Regarder : Benchmark des modèles Ultralytics YOLO11 | Comment comparer les performances des modèles sur différents matériels ?
Pourquoi l'évaluation comparative est-elle cruciale ?
- Décisions éclairées : Obtenez des informations sur les compromis entre la vitesse et la précision.
- Allocation des ressources : Comprenez comment différents formats d'exportation fonctionnent sur différents matériels.
- Optimisation : Découvrez quel format d'exportation offre les meilleures performances pour votre cas d'utilisation spécifique.
- Rentabilité : Utilisez plus efficacement les ressources matérielles en fonction des résultats des benchmarks.
Métriques clés en mode Benchmark
- mAP50-95 : Pour la détection d'objets, la segmentation et l'estimation de pose.
- accuracy_top5 : Pour la classification d'images.
- Temps d'inférence : Temps nécessaire pour chaque image en millisecondes.
Formats d'exportation pris en charge
- ONNX : Pour des performances CPU optimales
- TensorRT : Pour une efficacité GPU maximale
- OpenVINO : Pour l'optimisation du matériel Intel
- CoreML, TensorFlow SavedModel, et bien plus : Pour répondre à divers besoins de déploiement.
Astuce
- Exportez vers ONNX ou OpenVINO pour un gain de vitesse CPU jusqu'à 3x.
- Exportez vers TensorRT pour un gain de vitesse GPU jusqu'à 5x.
Exemples d'utilisation
Exécutez les benchmarks YOLO11n sur tous les formats d'exportation pris en charge, y compris ONNX, TensorRT, etc. Consultez 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="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
# Benchmark specific export format
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 format=onnx
Arguments
Les arguments tels que model
, data
, imgsz
, half
, device
, verbose
et format
offrent aux utilisateurs la flexibilité d'affiner les benchmarks en fonction de 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 les deux formats .pt et .yaml par exemple, "yolo11n.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 le benchmarking, incluant généralement les chemins d'accès et les paramètres pour validation. Exemple : "coco8.yaml" . |
imgsz |
640 |
La taille de l'image d'entrée pour le modèle. Peut être un entier unique pour les images carrées ou un tuple (width, height) pour non carré, par exemple, (640, 480) . |
half |
False |
Active l'inférence FP16 (demi-précision), réduisant l'utilisation de la mémoire et augmentant potentiellement la vitesse sur le matériel compatible. Utilisez half=True pour activer. |
int8 |
False |
Active la quantification INT8 pour des performances encore optimisées sur les appareils pris en charge, particulièrement utile pour les appareils périphériques. Définissez int8=True pour utiliser. |
device |
None |
Définit le(s) périphérique(s) de calcul pour le benchmarking, tels que "cpu" ou "cuda:0" . |
verbose |
False |
Contrôle le niveau de détail dans la sortie de journalisation. Définir verbose=True pour des journaux détaillés. |
format |
'' |
Évaluer le modèle sur un seul format d'exportation, par exemple : format=onnx |
Formats d'exportation
Les évaluations comparatives tenteront de s'exécuter automatiquement sur tous les formats d'exportation possibles énumérés ci-dessous. Vous pouvez également exécuter des évaluations comparatives pour un format spécifique en utilisant le format
argument, qui accepte l'un des formats mentionnés ci-dessous.
Format | format Argument |
Modèle | Métadonnées | Arguments |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n_rknn_model/ |
✅ | imgsz , batch , name , device |
Voir tous les export
détails dans la section Exporter page.
FAQ
Comment puis-je évaluer les performances de mon modèle YOLO11 à l'aide d'Ultralytics ?
Ultralytics YOLO11 offre un mode Benchmark pour évaluer les performances de votre modèle dans différents formats d'exportation. Ce mode fournit des informations sur des métriques clés telles que la précision moyenne moyenne (mAP50-95), la précision et le temps d'inférence en millisecondes. Pour exécuter des benchmarks, vous pouvez utiliser des commandes Python ou CLI. Par exemple, pour effectuer un benchmark sur un GPU :
Exemple
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
yolo benchmark model=yolo11n.pt data='coco8.yaml' imgsz=640 half=False device=0
Pour plus de détails sur les arguments de benchmark, consultez la section Arguments.
Quels sont les avantages de l'exportation des modèles YOLO11 vers différents formats ?
L'exportation de modèles YOLO11 vers différents formats tels que ONNX, TensorRT et OpenVINO vous permet d'optimiser les performances en fonction de votre environnement de déploiement. Par exemple :
- ONNX : Fournit un gain de vitesse CPU jusqu'à 3x.
- TensorRT : Offre une accélération GPU jusqu'à 5x.
- OpenVINO : Spécifiquement optimisé pour le matériel Intel.
Ces formats améliorent à la fois la vitesse et la précision de vos modèles, les rendant plus efficaces pour diverses applications du monde réel. Visitez la page Exportation pour tous les détails.
Pourquoi l'évaluation comparative est-elle cruciale dans l'évaluation des modèles YOLO11 ?
L'évaluation comparative de vos modèles YOLO11 est essentielle pour plusieurs raisons :
- Décisions éclairées : Comprendre les compromis entre vitesse et précision.
- Allocation des ressources : Évaluer les performances sur différentes options matérielles.
- Optimisation : Déterminer quel format d'exportation offre les meilleures performances pour des cas d'utilisation spécifiques.
- Rentabilité : Optimisez l'utilisation du matériel en fonction des résultats des benchmarks.
Les indicateurs clés tels que mAP50-95, la précision Top-5 et le temps d'inférence aident à effectuer ces évaluations. Consultez la section Indicateurs clés pour plus d'informations.
Quels formats d'exportation sont pris en charge par YOLO11, et quels sont leurs avantages ?
YOLO11 prend en charge une variété de formats d'exportation, chacun étant adapté à des cas d'utilisation et à du matériel spécifiques :
- ONNX : Idéal pour les performances du CPU.
- TensorRT : Idéal pour l'efficacité du GPU.
- OpenVINO : Optimisé pour le matériel Intel.
- CoreML & TensorFlow : Utile pour les applications iOS et ML générales.
Pour une liste complète des formats pris en charge et de leurs avantages respectifs, consultez la section Formats d'exportation pris en charge.
Quels arguments puis-je utiliser pour affiner mes benchmarks YOLO11 ?
Lors de l'exécution de benchmarks, plusieurs arguments peuvent être personnalisés pour répondre à des besoins spécifiques :
- model : Chemin d'accès au fichier de modèle (par exemple, « yolo11n.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 entier unique, soit sous forme d'un tuple.
- half : Activer l'inférence FP16 pour de meilleures performances.
- int8 : Activer la quantification INT8 pour les appareils périphériques.
- device : Spécifier le dispositif de calcul (par exemple, « cpu », « cuda:0 »).
- verbose : Contrôle le niveau de détail de la journalisation.
Pour une liste complète des arguments, consultez la section Arguments.