Meet YOLO26: next-gen vision AI.

Link to this sectionExportation ONNX pour les modèles YOLO26#

~43% d'inférence plus rapide.
  • L'exportation du modèle Ultralytics YOLO26 vers ONNX peut offrir jusqu'à 43 % de gain en vitesse d'inférence, permettant un déploiement plus rapide et plus efficace.

Souvent, lors du déploiement de modèles de computer vision, tu auras besoin d'un format de modèle qui soit à la fois flexible et compatible avec de multiples plateformes.

L'exportation des modèles Ultralytics YOLO26 vers le format ONNX rationalise le déploiement et garantit des performances optimales dans divers environnements. Ce guide te montrera comment convertir facilement tes modèles YOLO26 vers ONNX et améliorer leur évolutivité ainsi que leur efficacité dans des applications réelles.



Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀

Link to this sectionONNX et ONNX Runtime#

ONNX, qui signifie Open Neural Network Exchange, est un projet communautaire initialement développé par Facebook et Microsoft. Le développement continu d'ONNX est un effort collaboratif soutenu par diverses organisations comme IBM, Amazon (via AWS) et Google. Le projet vise à créer un format de fichier ouvert conçu pour représenter les modèles de machine learning de manière à permettre leur utilisation à travers différents frameworks d'IA et différents matériels.

Les modèles ONNX peuvent être utilisés pour passer d'un framework à l'autre de manière transparente. Par exemple, un modèle de deep learning entraîné dans PyTorch peut être exporté au format ONNX puis facilement importé dans TensorFlow.

ONNX model portability across deep learning frameworks

Alternativement, les modèles ONNX peuvent être utilisés avec ONNX Runtime. ONNX Runtime est un accélérateur multiplateforme polyvalent pour les modèles de machine learning qui est compatible avec des frameworks tels que PyTorch, TensorFlow, TFLite, scikit-learn, etc.

ONNX Runtime optimise l'exécution des modèles ONNX en tirant parti des capacités spécifiques au matériel. Cette optimisation permet aux modèles de s'exécuter efficacement et avec de hautes performances sur diverses plateformes matérielles, notamment les CPU, les GPU et les accélérateurs spécialisés.

ONNX Runtime cross-platform inference acceleration

Qu'il soit utilisé indépendamment ou en tandem avec ONNX Runtime, ONNX offre une solution flexible pour le model deployment de machine learning et la compatibilité.

Link to this sectionFonctionnalités clés des modèles ONNX#

La capacité d'ONNX à gérer divers formats peut être attribuée aux fonctionnalités clés suivantes :

  • Représentation commune du modèle : ONNX définit un ensemble commun d'opérateurs (comme les convolutions, les couches, etc.) et un format de données standard. Lorsqu'un modèle est converti au format ONNX, son architecture et ses poids sont traduits dans cette représentation commune. Cette uniformité garantit que le modèle peut être compris par tout framework prenant en charge ONNX.

  • Versionnage et rétrocompatibilité : ONNX maintient un système de versionnage pour ses opérateurs. Cela garantit que même à mesure que la norme évolue, les modèles créés dans des versions antérieures restent utilisables. La rétrocompatibilité est une fonctionnalité cruciale qui évite aux modèles de devenir rapidement obsolètes.

  • Représentation de modèle basée sur des graphes : ONNX représente les modèles sous forme de graphes de calcul. Cette structure basée sur des graphes est une méthode universelle pour représenter les modèles de machine learning, où les nœuds représentent des opérations ou des calculs, et les arêtes représentent les tenseurs circulant entre eux. Ce format est facilement adaptable à divers frameworks qui représentent également les modèles sous forme de graphes.

  • Outils et écosystème : Il existe un riche écosystème d'outils autour d'ONNX qui aident à la conversion, à la visualisation et à l'optimisation des modèles. Ces outils facilitent le travail des développeurs avec les modèles ONNX et permettent de convertir les modèles entre différents frameworks de manière transparente.

Link to this sectionUtilisation courante d'ONNX#

Avant de plonger dans la manière d'exporter les modèles YOLO26 vers le format ONNX, jetons un coup d'œil à l'endroit où les modèles ONNX sont généralement utilisés.

Link to this sectionDéploiement sur CPU#

Les modèles ONNX sont souvent déployés sur des CPU en raison de leur compatibilité avec ONNX Runtime. Ce runtime est optimisé pour l'exécution sur CPU. Il améliore considérablement la vitesse d'inférence et rend possibles les déploiements sur CPU en temps réel.

Link to this sectionOptions de déploiement prises en charge#

Bien que les modèles ONNX soient couramment utilisés sur les CPU, ils peuvent également être déployés sur les plateformes suivantes :

  • Accélération GPU : ONNX prend entièrement en charge l'accélération GPU, notamment NVIDIA CUDA. Cela permet une exécution efficace sur les GPU NVIDIA pour les tâches nécessitant une grande puissance de calcul.

  • Appareils Edge et mobiles : ONNX s'étend aux appareils Edge et mobiles, parfaits pour les scénarios d'inférence embarquée et en temps réel. Il est léger et compatible avec le matériel Edge, et sert de base aux formats NPU des fournisseurs tels que Qualcomm QNN pour les appareils Snapdragon et RKNN pour les NPU Rockchip.

  • Navigateurs Web : ONNX peut s'exécuter directement dans les navigateurs Web, alimentant des applications d'IA interactives et dynamiques basées sur le Web.

Link to this sectionExportation des modèles YOLO26 vers ONNX#

Tu peux étendre la compatibilité des modèles et la flexibilité de déploiement en convertissant les modèles YOLO26 au format ONNX. Ultralytics YOLO26 propose un processus d'exportation simple qui peut améliorer considérablement les performances de ton modèle sur différentes plateformes.

Link to this sectionInstallation#

Pour installer le package requis, exécute :

Installation
# Install the required package for YOLO26
pip install ultralytics

Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installation YOLO26. Lors de l'installation des packages requis pour YOLO26, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour des solutions et astuces.

Link to this sectionUtilisation#

Avant de plonger dans les instructions d'utilisation, assure-toi de jeter un œil à la gamme de modèles YOLO26 proposés par Ultralytics. Cela t'aidera à choisir le modèle le plus approprié pour les exigences de ton projet.

Le format ONNX prend en charge les modes Export, Predict et Validate. Exporte ton modèle, puis charge le modèle exporté pour exécuter l'inférence ou valider sa précision.

Exporter (Export)
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", quantize=8, data="coco8.yaml")  # creates 'yolo26n_int8.onnx'
Prédire (Predict)
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Valider
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionArguments d'exportation#

Lors de l'exportation de ton modèle YOLO26 au format ONNX, tu peux personnaliser le processus à l'aide de divers arguments pour optimiser tes besoins de déploiement spécifiques :

ArgumentTypeDéfautDescription
formatstr'onnx'Format cible pour le modèle exporté, définissant la compatibilité avec divers environnements de déploiement.
imgszint ou tuple640Taille d'image souhaitée pour l'entrée du modèle. Peut être un entier pour des images carrées ou un tuple (height, width) pour des dimensions spécifiques.
quantizeint ou strNonePrécision de quantification : 16 (FP16) ou 8 (quantification statique INT8 avec ONNX Runtime en utilisant des images de calibration provenant de data, produisant un modèle _int8.onnx) ; 32/non défini correspond à FP32. Remplace les anciens flags half/int8.
datastrNoneYAML de dataset utilisé pour la calibration INT8. Si omis avec quantize=8, Ultralytics sélectionne le dataset de calibration par défaut pour la tâche du modèle.
fractionfloat1.0Fraction des images de calibration à utiliser pour la quantification INT8.
dynamicboolFalseAutorise des tailles d'entrée dynamiques, améliorant la flexibilité dans la gestion de dimensions d'image variables.
simplifyboolTrueSimplifie le graphe du modèle avec onnxslim, améliorant potentiellement les performances et la compatibilité.
opsetintNoneSpécifie la version de l'opset ONNX pour la compatibilité avec différents analyseurs et runtimes ONNX. Si non défini, utilise la dernière version prise en charge.
nmsboolFalseAjoute le NMS (Non-Maximum Suppression), essentiel pour un post-traitement de détection précis et efficace.
batchint1Spécifie la taille de l'inférence par lot du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict.
devicestrNoneSpécifie l'appareil pour l'exportation : GPU (device=0), CPU (device=cpu), MPS pour Apple silicon (device=mps).

Pour plus de détails sur le processus d'exportation, visite la page de documentation Ultralytics sur l'exportation.

Link to this sectionDéploiement des modèles ONNX YOLO26 exportés#

Une fois que tu as exporté avec succès tes modèles Ultralytics YOLO26 au format ONNX, l'étape suivante consiste à déployer ces modèles dans divers environnements. Pour des instructions détaillées sur le déploiement de tes modèles ONNX, consulte les ressources suivantes :

  • Documentation de l'API Python ONNX Runtime : Ce guide fournit les informations essentielles pour charger et exécuter des modèles ONNX en utilisant ONNX Runtime.

  • Déploiement sur appareils Edge : Consulte cette page de documentation pour différents exemples de déploiement de modèles ONNX sur l'Edge.

  • Tutoriels ONNX sur GitHub : Une collection de tutoriels complets qui couvrent divers aspects de l'utilisation et de la mise en œuvre de modèles ONNX dans différents scénarios.

  • Triton Inference Server : Apprends à déployer tes modèles ONNX avec le Triton Inference Server de NVIDIA pour des déploiements haute performance et évolutifs.

Link to this sectionRésumé#

Dans ce guide, tu as appris à exporter des modèles Ultralytics YOLO26 au format ONNX pour augmenter leur interopérabilité et leurs performances sur diverses plateformes. Tu as également été initié au ONNX Runtime et aux options de déploiement ONNX.

L'exportation ONNX n'est que l'un des nombreux export formats pris en charge par Ultralytics YOLO26, te permettant de déployer tes modèles dans pratiquement n'importe quel environnement. En fonction de tes besoins spécifiques, tu pourrais également vouloir explorer d'autres options d'exportation comme TensorRT pour une performance GPU maximale ou CoreML pour les appareils Apple.

Pour plus de détails sur l'utilisation, visite la documentation officielle ONNX.

De plus, si tu souhaites en savoir plus sur d'autres intégrations Ultralytics YOLO26, visite notre page de guide d'intégration. Tu y trouveras de nombreuses ressources et idées utiles.

Link to this sectionFAQ#

Link to this sectionComment puis-je exporter des modèles YOLO26 au format ONNX en utilisant Ultralytics ?#

Pour exporter tes modèles YOLO26 au format ONNX en utilisant Ultralytics, suis ces étapes :

Utilisation
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")

Pour plus de détails, consulte la documentation d'exportation.

Link to this sectionQuels sont les avantages de l'utilisation d'ONNX Runtime pour le déploiement de modèles YOLO26 ?#

L'utilisation d'ONNX Runtime pour le déploiement de modèles YOLO26 offre plusieurs avantages :

  • Compatibilité multiplateforme : ONNX Runtime prend en charge diverses plateformes, telles que Windows, macOS et Linux, garantissant que tes modèles s'exécutent de manière fluide dans différents environnements.
  • Accélération matérielle : ONNX Runtime peut tirer parti des optimisations spécifiques au matériel pour les CPU, les GPU et les accélérateurs dédiés, offrant une inférence haute performance.
  • Interopérabilité des frameworks : Les modèles entraînés dans des frameworks populaires comme PyTorch ou TensorFlow peuvent être facilement convertis au format ONNX et exécutés en utilisant ONNX Runtime.
  • Optimisation des performances : ONNX Runtime peut offrir une accélération CPU jusqu'à 3x par rapport aux modèles PyTorch natifs, ce qui le rend idéal pour les scénarios de déploiement où les ressources GPU sont limitées.

Apprends-en plus en consultant la documentation ONNX Runtime.

Link to this sectionQuelles options de déploiement sont disponibles pour les modèles YOLO26 exportés vers ONNX ?#

Les modèles YOLO26 exportés vers ONNX peuvent être déployés sur diverses plateformes, notamment :

  • CPU : Utilisation d'ONNX Runtime pour une inférence optimisée sur CPU.
  • GPU : Utilisation de NVIDIA CUDA pour une accélération GPU haute performance.
  • Appareils Edge : Exécution de modèles légers sur des appareils Edge et mobiles pour une inférence en temps réel sur l'appareil.
  • Navigateurs Web : Exécution de modèles directement dans les navigateurs Web pour des applications interactives basées sur le Web.
  • Services Cloud : Déploiement sur des plateformes Cloud prenant en charge le format ONNX pour une inférence évolutive.

Pour plus d'informations, explore notre guide sur les options de déploiement de modèles.

Link to this sectionPourquoi devrais-je utiliser le format ONNX pour les modèles Ultralytics YOLO26 ?#

L'utilisation du format ONNX pour les modèles Ultralytics YOLO26 présente de nombreux avantages :

  • Interopérabilité : ONNX permet aux modèles d'être transférés entre différents frameworks de machine learning de manière transparente.
  • Optimisation des performances : ONNX Runtime peut améliorer les performances des modèles en utilisant des optimisations spécifiques au matériel.
  • Flexibilité : ONNX prend en charge divers environnements de déploiement, te permettant d'utiliser le même modèle sur différentes plateformes sans modification.
  • Standardisation : ONNX fournit un format standardisé largement pris en charge dans l'industrie, garantissant une compatibilité à long terme.

Reporte-toi au guide complet sur l'exportation des modèles YOLO26 vers ONNX.

Link to this sectionComment puis-je résoudre les problèmes lors de l'exportation des modèles YOLO26 vers ONNX ?#

Lors de l'exportation des modèles YOLO26 vers ONNX, tu pourrais rencontrer des problèmes courants tels que des dépendances incompatibles ou des opérations non prises en charge. Pour résoudre ces problèmes :

  1. Vérifie que tu as installé la bonne version des dépendances requises.
  2. Consulte la documentation ONNX officielle pour les opérateurs et fonctionnalités pris en charge.
  3. Examine les messages d'erreur pour obtenir des indices et consulte le guide des problèmes courants d'Ultralytics.
  4. Essaie d'utiliser différents arguments d'exportation comme simplify=True ou ajuste la version de l'opset.
  5. Pour les problèmes de taille d'entrée dynamique, définis dynamic=True lors de l'exportation.

Si les problèmes persistent, contacte le support Ultralytics pour obtenir une assistance supplémentaire.

Commentaires