Meet YOLO26: next-gen vision AI.

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

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

Souvent, lors du déploiement de modèles de vision par ordinateur, tu auras besoin d'un format de modèle qui soit à la fois flexible et compatible avec plusieurs 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 des modèles d'apprentissage automatique de manière à permettre leur utilisation à travers différents frameworks d'IA et matériels.

Les modèles ONNX peuvent être utilisés pour assurer une transition fluide entre différents frameworks. Par exemple, un modèle d'apprentissage profond 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 d'apprentissage automatique, compatible avec des frameworks comme 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, y compris les processeurs (CPU), les processeurs graphiques (GPU) et des 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 déploiement de modèles d'apprentissage automatique 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 compatibilité ascendante : ONNX maintient un système de versionnage pour ses opérateurs. Cela garantit que même si le standard évolue, les modèles créés dans des versions antérieures restent utilisables. La compatibilité ascendante est une fonctionnalité cruciale qui empêche les modèles de devenir rapidement obsolètes.

  • Représentation du modèle basée sur un graphe : ONNX représente les modèles sous forme de graphes de calcul. Cette structure basée sur un graphe est un moyen universel de représenter les modèles d'apprentissage automatique, 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 assistent dans 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 passer à la manière d'exporter les modèles YOLO26 vers le format ONNX, examinons 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 réalisables 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, en particulier NVIDIA CUDA. Cela permet une exécution efficace sur les GPU NVIDIA pour les tâches qui exigent une puissance de calcul élevée.

  • Appareils Edge et mobiles : ONNX s'étend aux appareils Edge et mobiles, parfaits pour les scénarios d'inférence en temps réel et sur l'appareil. 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, propulsant des applications d'IA basées sur le web interactives et dynamiques.

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

Tu peux étendre la compatibilité et la flexibilité de déploiement des modèles en convertissant les modèles YOLO26 au format ONNX. Ultralytics YOLO26 fournit 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 paquet 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 paquets nécessaires pour YOLO26, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour des solutions et des conseils.

Link to this sectionUtilisation#

Avant de plonger dans les instructions d'utilisation, assure-toi de jeter un coup d'œ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 effectuer l'inférence ou valider sa précision.

Exportation
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", int8=True, data="coco8.yaml")  # creates 'yolo26n_int8.onnx'
Prédiction
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 en utilisant divers arguments pour optimiser tes besoins de déploiement spécifiques :

ArgumentTypePar défautDescription
formatstr'onnx'Format cible pour le modèle exporté, définissant la compatibilité avec divers environnements de déploiement.
imgszint ou tuple640Desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions.
halfboolFalseActive la quantification FP16 (demi-précision), réduisant la taille du modèle et accélérant potentiellement l'inférence sur le matériel pris en charge.
int8boolFalseActive la quantification statique INT8 avec ONNX Runtime en utilisant des images de calibration provenant de data, produisant un modèle _int8.onnx.
datastrNoneYAML de jeu de données utilisé pour la calibration INT8. Si omis avec int8=True, Ultralytics sélectionne le jeu de données 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 des dimensions d'image variables.
simplifyboolTrueSimplifie le graphe du modèle avec onnxslim, améliorant potentiellement les performances et la compatibilité.
opsetintNoneSpécifie la version 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 la suppression non maximale (NMS), essentielle pour un post-traitement de détection précis et efficace.
batchint1Spécifie la taille de l'inférence par lot du modèle d'exportation ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict.
devicestrNoneSpécifie le périphérique 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 YOLO26 ONNX 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, jette un œil aux ressources suivantes :

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

  • Déploiement sur des appareils Edge : Consulte cette page de documentation pour différents exemples de déploiement de modèles ONNX sur le 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 comment 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 formats d'exportation pris en charge par Ultralytics YOLO26, te permettant de déployer tes modèles dans pratiquement n'importe quel environnement. Selon tes besoins spécifiques, tu pourrais également vouloir explorer d'autres options d'exportation comme TensorRT pour des performances GPU maximales 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 informations utiles.

Link to this sectionFAQ#

Link to this sectionComment exporter des modèles YOLO26 au format ONNX avec Ultralytics ?#

Pour exporter tes modèles YOLO26 au format ONNX avec 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, visite la documentation sur l'exportation.

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

L'utilisation de 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 exploiter des optimisations spécifiques au matériel pour les CPU, GPU et accélérateurs dédiés, fournissant 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 fournir jusqu'à 3x une accélération CPU 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 de ONNX Runtime pour une inférence CPU optimisée.
  • GPU : Exploitation 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 directe des modèles 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 offre de nombreux avantages :

  • Interopérabilité : ONNX permet aux modèles d'être transférés entre différents frameworks d'apprentissage automatique 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 par l'industrie, assurant une compatibilité à long terme.

Référez-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 la bonne version des dépendances requises installée.
  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 d'ajuster la version 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