Évaluation comparative de modèles avec Ultralytics YOLO
Visualisation des benchmarks
Il est possible que tu doives actualiser la page pour afficher correctement les graphiques en raison d'éventuels problèmes de cookies.
Introduction
Une fois ton modèle entraîné et validé, l'étape logique suivante consiste à évaluer ses performances dans divers scénarios réels. Le mode benchmark d'Ultralytics YOLO26 sert à cet objectif en fournissant un framework robuste pour évaluer la vitesse et la précision de ton modèle sur une gamme de formats d'exportation.
Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?
Pourquoi le benchmarking est-il crucial ?
- Décisions éclairées : Obtiens des informations sur les compromis entre vitesse et précision.
- Allocation des ressources : Comprends comment les différents formats d'exportation fonctionnent sur divers matériels.
- Optimisation : Apprends quel format d'exportation offre les meilleures performances pour ton cas d'usage spécifique.
- Efficacité des coûts : Utilise plus efficacement les ressources matérielles en fonction des résultats des benchmarks.
Mesures 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.
- Inference Time : Temps nécessaire pour chaque image en millisecondes.
Formats d'exportation pris en charge
- ONNX : Pour une performance CPU optimale
- TensorRT : Pour une efficacité GPU maximale
- OpenVINO : Pour une optimisation du matériel Intel
- CoreML, TensorFlow SavedModel, et plus : Pour divers besoins de déploiement.
- Exporte vers ONNX ou OpenVINO pour un gain de vitesse CPU allant jusqu'à 3x.
- Exporte vers TensorRT pour un gain de vitesse GPU allant jusqu'à 5x.
Exemples d'utilisation
Installe Ultralytics avec les dépendances d'exportation avant d'effectuer les benchmarks pour éviter les paquets manquants.
pip install ultralytics[export]Exécute les benchmarks YOLO26n sur tous les formats d'exportation pris en charge (ONNX, TensorRT, etc.). Consulte la section Arguments ci-dessous pour une liste complète des options d'exportation.
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
# Benchmark specific export format
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")Arguments
Des arguments tels que model, data, imgsz, half, device, verbose et format offrent aux utilisateurs la flexibilité d'ajuster les benchmarks à leurs besoins spécifiques et de comparer facilement les performances de 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 formats .pt et .yaml, par exemple "yolo26n.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 le jeu de données pour le benchmark, incluant généralement les chemins et paramètres des données de 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 les formats non carrés, 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. Utilise half=True pour activer. |
int8 | False | Active la quantification INT8 pour des performances optimisées sur les appareils pris en charge, particulièrement utile pour les appareils de périphérie (edge). Règle int8=True pour utiliser. |
device | None | Définit le(s) périphérique(s) de calcul pour le benchmark, tel que "cpu" ou "cuda:0". |
verbose | False | Contrôle le niveau de détail dans la sortie de journalisation. Règle verbose=True pour des journaux détaillés. |
format | '' | Benchmark uniquement le format d'exportation spécifié (par ex., format=onnx). Laisse vide pour tester automatiquement chaque format pris en charge. |
Formats d'exportation
Les benchmarks tenteront de s'exécuter automatiquement sur tous les formats d'exportation possibles listés ci-dessous. Alternativement, tu peux exécuter des benchmarks pour un format spécifique en utilisant l'argument format, qui accepte l'un des formats mentionnés ci-dessous.
| Format | Argument format | Modèle | Métadonnées | Arguments |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
Voir les détails complets sur l'export dans la page Export.
FAQ
Comment puis-je évaluer les performances de mon modèle YOLO26 en utilisant Ultralytics ?
Ultralytics YOLO26 propose un mode Benchmark pour évaluer les performances de ton modèle sur différents formats d'exportation. Ce mode fournit des informations sur des mesures clés telles que la précision moyenne (mAP50-95), la précision et le temps d'inférence en millisecondes. Pour exécuter les benchmarks, tu peux utiliser Python ou des commandes CLI. Par exemple, pour effectuer un benchmark sur un GPU :
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)Pour plus de détails sur les arguments de benchmark, visite la section Arguments.
Quels sont les avantages de l'exportation des modèles YOLO26 vers différents formats ?
L'exportation des modèles YOLO26 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 : Fournit jusqu'à 3x d'accélération CPU.
- TensorRT : Offre jusqu'à 5x d'accélération 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 Export pour les détails complets.
Pourquoi le benchmarking est-il crucial pour évaluer les modèles YOLO26 ?
Évaluer tes modèles YOLO26 est essentiel pour plusieurs raisons :
- Décisions éclairées : Comprends les compromis entre vitesse et précision.
- Allocation des ressources : Mesure les performances sur différentes options matérielles.
- Optimisation : Détermine quel format d'exportation offre les meilleures performances pour des cas d'usage spécifiques.
- Efficacité des coûts : Optimise l'utilisation du matériel en fonction des résultats des benchmarks.
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 formats d'exportation sont pris en charge par YOLO26, et quels sont leurs avantages ?
YOLO26 prend en charge une variété de formats d'exportation, chacun adapté à du matériel et des cas d'usage spécifiques :
- ONNX : Meilleur pour la performance CPU.
- TensorRT : Idéal pour l'efficacité GPU.
- OpenVINO : Optimisé pour le matériel Intel.
- CoreML & TensorFlow : Utile pour iOS et les applications ML générales.
Pour une liste complète des formats pris en charge et leurs avantages respectifs, consulte la section Formats d'exportation pris en charge.
Quels arguments puis-je utiliser pour affiner mes benchmarks YOLO26 ?
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 du modèle (par ex. "yolo26n.pt").
- data : Chemin d'accès à un fichier YAML définissant le jeu de données (par ex. "coco8.yaml").
- imgsz : La taille de l'image d'entrée, soit sous forme d'entier unique, soit sous forme de tuple.
- half : Active l'inférence FP16 pour de meilleures performances.
- int8 : Active la quantification INT8 pour les appareils de périphérie.
- device : Spécifie le périphérique de calcul (par ex. "cpu", "cuda:0").
- verbose : Contrôle le niveau de détail de la journalisation.
Pour une liste complète des arguments, reporte-toi à la section Arguments.