Ultralytics YOLO27 :
Get Started

Évaluation comparative 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 différents scénarios réels. Le mode benchmark d’Ultralytics YOLO26 répond à ce besoin en fournissant un cadre robuste pour évaluer la vitesse et l’exactitude de ton modèle dans divers formats d’exportation.

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



Regarder : Évaluer les modèles Ultralytics YOLO26 | Comment comparer les performances des modèles sur différents matériels ?

Pourquoi les benchmarks sont-ils essentiels ?#

  • Décisions éclairées : Comprends les compromis entre vitesse et exactitude.
  • Allocation des ressources : Comprends les performances des différents formats d’exportation sur divers matériels.
  • Optimisation : Découvre 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 benchmarks.

Indicateurs clés du mode benchmark#

  • mAP50-95 : Pour la détection d’objets, la segmentation d’instances, l’estimation de pose et l’OBB.
  • mIoU : Pour la segmentation sémantique.
  • delta1 : Pour l’estimation de profondeur.
  • accuracy_top1 : Pour la classification d’images.
  • Temps d’inférence : Temps nécessaire pour traiter chaque image, en millisecondes.

Formats d’exportation pris en charge#

  • ONNX : Pour des performances optimales sur CPU
  • TensorRT : Pour une efficacité maximale sur GPU
  • OpenVINO : Pour l’optimisation du matériel Intel
  • CoreML, TensorFlow SavedModel et autres : Pour répondre à divers besoins de déploiement.
Conseil
  • Exporte vers ONNX ou OpenVINO pour accélérer le CPU jusqu’à 3 fois.
  • Exporte vers TensorRT pour accélérer le GPU jusqu’à 5 fois.

Exemples d'utilisation#

Installation recommandée

Installe Ultralytics avec les dépendances d’exportation avant d’exécuter les benchmarks afin d’éviter les paquets manquants.

pip install ultralytics[export]

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

Exemple
from ultralytics.utils.benchmarks import benchmark

# Benchmark sur GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Benchmark d’un format d’exportation spécifique
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é nécessaire pour affiner les benchmarks selon leurs besoins spécifiques et comparer facilement les performances des différents formats d’exportation.

CléValeur par défautDescription
modelNoneIndique le chemin vers le 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 vers le fichier YAML du jeu de données utilisé pour le benchmark, qui inclut généralement les chemins et les paramètres des données de validation. Exemple : "coco8.yaml". Pour la classification, indique plutôt un répertoire de jeu de données ou le nom d’un jeu de données intégré (par exemple, imagenet10).
imgsz640Taille de l’image d’entrée du modèle. Doit être un entier unique pour les images carrées (par exemple, 640) ; benchmark() ne prend en charge que les tailles d’image carrées.
quantizeNonePrécision demandée : 16 (FP16) ou 8 (INT8 ; les méthodes PTQ nécessitent une calibration data/fraction, contrairement aux méthodes basées 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 agit sur elle et sélectionne l’inférence FP16, tandis que 8, 32 et l’absence de valeur exécutent FP32. Chaque format exécute ensuite l’inférence avec sa propre précision d’exécution. Remplace les indicateurs half/int8 obsolètes.
deviceNoneDéfinit le périphérique de calcul utilisé pour le benchmark, par exemple "cpu" ou "cuda:0" ; si aucune valeur n’est définie, le premier GPU disponible est utilisé, sinon le CPU.
verboseFalseSi la valeur est True ou un nombre décimal, les échecs du benchmark (sauf les assertions) provoquent une exception au lieu de consigner une erreur ; un nombre décimal tel que 0.25 vérifie aussi, par assertion, que la métrique de chaque format réussi dépasse ce seuil.
eps0.001Petit epsilon (en millisecondes) ajouté au temps d’inférence par image avant sa conversion en FPS, afin d’éviter une division par zéro. Rarement modifié.
format''Évalue uniquement le format d’exportation indiqué (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", imgsz=160 et device="cpu" ; passe explicitement imgsz et device pour obtenir le même comportement que l’interface CLI yolo benchmark.

Formats d’exportation#

Les benchmarks tentent automatiquement de s’exécuter avec tous les formats d’exportation possibles indiqués ci-dessous. Tu peux aussi exécuter des benchmarks pour un format spécifique en utilisant l’argument format, qui accepte n’importe lequel des formats mentionnés ci-dessous.

FormatArgument formatModèleMétadonnéesArguments
PyTorch-yolo26n.pt✅-
TorchScripttorchscriptyolo26n.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n.mnn✅imgsz, 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.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n_xilinx_model/✅imgsz, name, quantize, data, fraction, opset, simplify, device

nms=None produit par défaut des sorties brutes pour la NMS externe. Définis nms=False pour sélectionner une tête disponible sans NMS ; les formats non pris en charge utilisent leur voie de sortie native. Les entrées nms ci-dessus désignent les formats qui peuvent intégrer la NMS avec nms=True.

Consulte tous les détails de export sur la page Exportation.

FAQ#

  • Ultralytics YOLO26 propose un mode benchmark pour évaluer les performances de ton modèle dans différents formats d’exportation. Ce mode fournit des informations sur des indicateurs clés tels que la précision moyenne (mAP50-95), l’exactitude et le temps d’inférence en millisecondes. Pour exécuter des benchmarks, tu peux utiliser Python ou les commandes CLI. Par exemple, pour lancer un benchmark sur GPU :

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

    Pour plus de détails sur les arguments des benchmarks, consulte 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 : Accélère le CPU jusqu’à 3 fois.
    • TensorRT : Accélère le GPU jusqu’à 5 fois.
    • OpenVINO : Spécifiquement optimisé pour le matériel Intel.

    Ces formats améliorent la vitesse d’inférence sur le matériel cible et rendent tes modèles plus efficaces dans diverses applications réelles. Consulte la page Exportation pour obtenir tous les détails.

  • Évaluer tes modèles YOLO26 à l’aide de benchmarks est essentiel pour plusieurs raisons :

    • Décisions éclairées : Comprends les compromis entre vitesse et exactitude.
    • 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.
    • Rentabilité : Optimise l’utilisation du matériel en fonction des résultats des benchmarks.

    Des indicateurs clés tels que mAP50-95, l’exactitude Top-1 et le temps d’inférence facilitent ces évaluations. Consulte la section Indicateurs clés pour en savoir plus.

  • YOLO26 prend en charge divers formats d’exportation, chacun adapté à du matériel et à des cas d’utilisation spécifiques :

    • ONNX : Idéal pour les performances CPU.
    • TensorRT : Idéal pour l’efficacité GPU.
    • OpenVINO : Optimisé pour le matériel Intel.
    • CoreML et TensorFlow : Utiles pour iOS et les applications ML en général.

    Pour obtenir la liste complète des formats pris en charge et de leurs avantages respectifs, consulte la section Formats d’exportation pris en charge.

  • Lors de l’exécution de benchmarks, plusieurs arguments peuvent être personnalisés selon tes besoins spécifiques :

    • model : Chemin vers le fichier du modèle (par exemple, « yolo26n.pt »).
    • data : Chemin vers le fichier YAML du jeu de données (par exemple, "coco8.yaml") ; pour la classification, indique plutôt un répertoire de jeu de données ou le nom d’un jeu de données intégré (par exemple, imagenet10).
    • imgsz : Taille de l’image d’entrée carrée, exprimée par un seul entier, comme 640. Le mode benchmark utilise la même taille d’image carrée pour PyTorch et les formats exportés afin de garantir une comparaison équitable.
    • quantize : Précision demandée : 16 pour FP16, 8 pour INT8 (utile pour les appareils Edge) ; 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 agit sur elle et sélectionne l’inférence FP16, tandis que 8, 32 et l’absence de valeur exécutent FP32. Chaque format exécute ensuite l’inférence avec sa propre précision d’exécution.
    • device : Indique le périphérique de calcul (par exemple, « cpu », « cuda:0 »).
    • verbose : Déclenche une exception en cas d’échec du benchmark au lieu de consigner l’erreur ; passe un nombre décimal pour exiger également que la métrique de chaque format dépasse ce seuil.

    Pour obtenir la liste complète des arguments, consulte la section Arguments.

Commentaires