Ultralytics YOLO27 :

Évaluation des performances des modèles avec Ultralytics YOLO#

Ultralytics YOLO ecosystem and integrations

Visualisation des benchmarks#

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 répond à cet objectif en fournissant un cadre robuste pour évaluer la vitesse et la précision de ton modèle sur une gamme de formats d'exportation.

Consulte l' aperçu non publié de YOLO27 pour des benchmarks de vitesse préliminaires.



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 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.
  • Efficacité des coûts : Utilise plus efficacement les ressources matérielles en fonction des résultats des benchmarks.

Métriques clés en mode Benchmark#

Formats d’export 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 plus encore : Pour divers besoins de déploiement.
Conseil
  • Exporte vers ONNX ou OpenVINO pour obtenir jusqu'à 3x plus de vitesse sur CPU.
  • Exporte vers TensorRT pour obtenir jusqu'à 5x plus de vitesse sur GPU.

Exemples d’utilisation#

Installation recommandée

Installe Ultralytics avec les dépendances d'exportation avant d'effectuer les benchmarks pour éviter les paquets manquants.

pip install ultralytics[export]

Exécute des benchmarks YOLO26n sur tous les formats d'exportation pris en charge (ONNX, TensorRT, etc.). Consulte la section Arguments ci-dessous pour obtenir une liste complète des options d'exportation.

Exemple
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, 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, quantize, device, verbose et format offrent aux utilisateurs la flexibilité d'affiner les benchmarks selon leurs besoins spécifiques et de comparer facilement les performances de différents formats d'exportation.

CléValeur par défautDescription
modelNoneSpé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.
dataNoneChemin d'accès au fichier YAML du jeu de données pour le benchmarking, comprenant généralement les chemins et les paramètres pour les données de validation. Exemple : "coco8.yaml". La classification prend plutôt un répertoire de jeu de données ou un nom de jeu de données intégré (par exemple, imagenet10).
imgsz640La taille de l'image d'entrée pour le modèle. Doit être un entier unique pour les images carrées (par exemple, 640) ; benchmark() prend uniquement en charge les tailles d'image carrées.
quantizeNonePrécision demandée : 16 (FP16) ou 8 (INT8 ; les schémas PTQ nécessitent un étalonnage data/fraction, ce n'est pas le cas de ceux basés uniquement sur les poids) ; 32/non défini correspond à FP32 lorsque le format le prend en charge — un format qui ne peut pas exporter en FP32 rejette un 32 explicite ou revient à la précision requise. La ligne PyTorch native n'est pas exportée : seul 16 l'affecte en sélectionnant l'inférence FP16, tandis que 8, 32 et l'absence de définition exécutent FP32. Chaque format exécute ensuite l'inférence à sa propre précision d'exécution. Remplace les indicateurs obsolètes half/int8.
device'cpu'Définit le ou les périphériques de calcul pour le benchmarking, tels que "cpu" ou "cuda:0".
verboseFalseContrôle le niveau de détail de la sortie des journaux. Définis verbose=True pour des journaux détaillés.
eps0.001Petit epsilon (en millisecondes) ajouté au temps d'inférence par image avant de le convertir en FPS, ce qui évite la division par zéro. Rarement modifié.
format''Exécute un benchmark uniquement sur le format d'exportation spécifié (par exemple, format=onnx). Laisse ce champ vide pour tester automatiquement tous les formats pris en charge.
Valeurs par défaut de la fonction autonome `benchmark()`

La fonction autonome benchmark() (from ultralytics.utils.benchmarks import benchmark) utilise ses propres valeurs par défaut de signature au lieu des valeurs du tableau ci-dessus, notamment model="yolo26n.pt" et imgsz=160 ; passe imgsz explicitement pour correspondre à l'interface en ligne de commande (CLI) yolo benchmark.

Formats d'exportation#

Les benchmarks tenteront de s'exécuter automatiquement sur tous les formats d'exportation possibles répertoriés ci-dessous. Tu peux également exécuter des benchmarks pour un format spécifique en utilisant l'argument format, qui accepte l'un des formats mentionnés ci-dessous.

FormatArgument formatModèleMétadonnéesArguments
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, batch, quantize

nms=None utilise par défaut des sorties brutes pour NMS externe. Définis nms=False pour sélectionner une tête sans NMS disponible ; les formats non pris en charge reviennent à leur chemin de sortie natif. Les entrées nms ci-dessus identifient les formats capables d'intégrer NMS avec nms=True.

Consulte les détails complets du mode export dans la page Exportation.

FAQ#

  • 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 moyenne (mAP50-95), la précision et le temps d'inférence en millisecondes. Pour exécuter des benchmarks, tu peux utiliser Python ou des commandes CLI. Par exemple, pour effectuer un benchmark sur un GPU :

    Exemple
    from ultralytics.utils.benchmarks import benchmark
    
    # Benchmark on GPU
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

    Pour plus de détails sur les arguments des benchmarks, visite la section Arguments.

  • 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 plus de vitesse sur CPU.
    • TensorRT : Offre jusqu'à 5x plus de vitesse sur 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 concrètes. Consulte la page Export pour tous les détails.

  • L'évaluation de tes modèles YOLO26 est essentielle pour plusieurs raisons :

    • Décisions éclairées : Comprends les compromis entre vitesse et précision.
    • Allocation des ressources : Évalue les performances sur différentes options matérielles.
    • Optimisation : Détermine quel format d'exportation offre les meilleures performances pour des cas d'utilisation spécifiques.
    • Efficacité des coûts : Optimise l'utilisation du matériel en fonction des résultats des benchmarks.

    Des métriques clés telles que le mAP50-95, la précision Top-1 et le temps d'inférence aident à réaliser ces évaluations. Consulte la section Key Metrics pour plus d'informations.

  • YOLO26 prend en charge une variété de formats d'exportation, chacun étant conçu pour un matériel et des cas d'utilisation spécifiques :

    • ONNX : Idéal pour les performances du processeur.
    • TensorRT : Idéal pour l'efficacité du GPU.
    • OpenVINO : Optimisé pour le matériel Intel.
    • CoreML & TensorFlow : Utiles pour les applications iOS et d'apprentissage automatique général.

    Pour obtenir une liste complète des formats pris en charge et de leurs avantages respectifs, consulte la section Supported Export Formats.

  • 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 exemple, "yolo26n.pt").
    • data : Chemin d'accès au fichier YAML du jeu de données (par exemple, "coco8.yaml") ; la classification prend à la place un répertoire de jeu de données ou un nom de jeu de données intégré (par exemple, imagenet10).
    • imgsz : La taille de l'image d'entrée carrée sous forme d'un entier unique, tel que 640. Le mode Benchmark utilise la même taille d'image carrée entre PyTorch et les formats exportés pour une comparaison équitable.
    • quantize : Précision demandée : 16 pour FP16, 8 pour INT8 (utile pour les appareils de périphérie) ; 32/non défini correspond à FP32 lorsque le format le prend en charge — un format qui ne peut pas exporter en FP32 rejette un 32 explicite ou revient à la précision requise. La ligne PyTorch native n'est pas exportée : seul 16 l'affecte en sélectionnant l'inférence FP16, tandis que 8, 32 et l'absence de définition exécutent FP32. Chaque format exécute ensuite l'inférence à sa propre précision d'exécution.
    • device : Spécifie le périphérique de calcul (par exemple, "cpu", "cuda:0").
    • verbose : Contrôle le niveau de détail des journaux.

    Pour obtenir une liste complète des arguments, reporte-toi à la section Arguments.

Commentaires