Skip to content

ONNX Exportation pour les modèles YOLO11

Souvent, lorsque vous déployez des modèles de vision par ordinateur, vous avez besoin d'un format de modèle qui soit à la fois flexible et compatible avec plusieurs plates-formes.

L'exportation des modèles Ultralytics YOLO11 vers le format ONNX simplifie le déploiement et garantit des performances optimales dans divers environnements. Ce guide vous montrera comment convertir facilement vos modèles YOLO11 au format ONNX et comment améliorer leur évolutivité et leur efficacité dans des applications réelles.

ONNX et ONNX Runtime

ONNXqui signifie Open Neural Network Exchange, est un projet communautaire initialement développé par Facebook et Microsoft . Le développement continu de ONNX est un effort de collaboration soutenu par diverses organisations comme IBM, Amazon (par le biais d'AWS) et Google. Le projet vise à créer un format de fichier ouvert conçu pour représenter les modèles d'apprentissage automatique d'une manière qui leur permette d'être utilisés dans différents cadres et matériels d'IA.

ONNX peuvent être utilisés pour passer d'un cadre à l'autre en toute transparence. Par exemple, un modèle d'apprentissage profond formé dans PyTorch peut être exporté au format ONNX et ensuite facilement importé dans TensorFlow.

ONNX

Les modèles ONNX peuvent également être utilisés avec ONNX Runtime. ONNX Runtime est un accélérateur multiplateforme polyvalent pour les modèles d'apprentissage automatique qui est compatible avec des cadres tels que PyTorch, TensorFlowTFLite, scikit-learn, etc.

ONNX Runtime optimise l'exécution des modèles ONNX en exploitant les capacités spécifiques du matériel. Cette optimisation permet aux modèles de fonctionner efficacement et avec des performances élevées sur diverses plateformes matérielles, y compris les CPU, les GPU et les accélérateurs spécialisés.

ONNX avec ONNX Runtime

Qu'il soit utilisé indépendamment ou en tandem avec ONNX Runtime, ONNX offre une solution flexible pour le déploiement et la compatibilité des modèles d' apprentissage automatique.

Principales caractéristiques des modèles ONNX

La capacité de ONNX à gérer différents formats peut être attribuée aux caractéristiques 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 n'importe quel cadre prenant en charge ONNX.

  • Versionnement et compatibilitĂ© ascendante: ONNX maintient un système de versionnement pour ses opĂ©rateurs. Ce système garantit que, mĂŞme si la norme Ă©volue, les modèles crĂ©Ă©s dans des versions antĂ©rieures restent utilisables. La rĂ©trocompatibilitĂ© est une caractĂ©ristique essentielle qui empĂŞche les modèles de devenir rapidement obsolètes.

  • ReprĂ©sentation graphique des modèles: ONNX reprĂ©sente les modèles sous forme de graphes informatiques. Cette structure graphique est un moyen universel de reprĂ©senter les modèles d'apprentissage automatique, oĂą les nĹ“uds reprĂ©sentent les opĂ©rations ou les calculs, et les arĂŞtes reprĂ©sentent les tenseurs qui circulent entre eux. Ce format est facilement adaptable Ă  divers cadres qui reprĂ©sentent Ă©galement les modèles sous forme de graphes.

  • Outils et Ă©cosystème: Il existe un riche Ă©cosystème d'outils autour de ONNX qui aident Ă  la conversion, Ă  la visualisation et Ă  l'optimisation des modèles. Ces outils permettent aux dĂ©veloppeurs de travailler plus facilement avec les modèles ONNX et de convertir les modèles entre diffĂ©rents cadres de manière transparente.

Utilisation courante de ONNX

Avant de voir comment exporter les modèles YOLO11 vers le format ONNX , voyons où les modèles ONNX sont généralement utilisés.

CPU DĂ©ploiement

ONNX sont souvent déployés sur des unités centrales en raison de leur compatibilité avec ONNX Runtime. Ce moteur d'exécution est optimisé pour l'exécution de CPU . Il améliore considérablement la vitesse d'inférence et permet des déploiements en temps réel sur . Il améliore considérablement la vitesse d'inférence et permet de déployer CPU en temps réel.

Options de déploiement prises en charge

Si les modèles ONNX sont généralement utilisés sur les CPU, ils peuvent également être déployés sur les plates-formes suivantes :

  • GPU AccĂ©lĂ©ration: 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 grande puissance de calcul.

  • Appareils pĂ©riphĂ©riques et mobiles: ONNX s'Ă©tend aux appareils pĂ©riphĂ©riques et mobiles, ce qui est parfait 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 pĂ©riphĂ©rique.

  • Navigateurs web: ONNX peut fonctionner directement dans les navigateurs web, ce qui permet de crĂ©er des applications d'IA interactives et dynamiques basĂ©es sur le web.

Exportation des modèles YOLO11 vers ONNX

Vous pouvez étendre la compatibilité des modèles et la flexibilité du déploiement en convertissant les modèles YOLO11 au format ONNX .

Installation

Pour installer le paquetage requis, exécutez :

Installation

# Install the required package for YOLO11
pip install ultralytics

Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consultez notre guide d'installationYOLO11 . Lors de l'installation des paquets requis pour YOLO11, si vous rencontrez des difficultés, consultez notre guide des problèmes courants pour obtenir des solutions et des conseils.

Utilisation

Avant de vous plonger dans les instructions d'utilisation, n'oubliez pas de consulter la gamme de modèlesYOLO11 proposée par Ultralytics. Cela vous aidera à choisir le modèle le plus approprié aux exigences de votre projet.

Utilisation

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

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

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

# Run inference with the exported model
yolo predict model=yolo11n.onnx source='https://ultralytics.com/images/bus.jpg'

Pour plus de détails sur le processus d'exportation, consultez la page de documentationUltralytics sur l'exportation.

Déploiement des modèles exportés YOLO11 ONNX

Une fois que vous avez réussi à exporter vos modèles Ultralytics YOLO11 au format ONNX , l'étape suivante consiste à déployer ces modèles dans divers environnements. Pour obtenir des instructions détaillées sur le déploiement de vos modèles ONNX , consultez les ressources suivantes :

  • ONNX Runtime Python Documentation de l'API: Ce guide fournit des informations essentielles pour le chargement et l'exĂ©cution des modèles ONNX Ă  l'aide de ONNX Runtime.

  • DĂ©ploiement sur des appareils Edge: Consultez cette page de documentation pour obtenir diffĂ©rents exemples de dĂ©ploiement des modèles ONNX sur des appareils pĂ©riphĂ©riques.

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

Résumé

Dans ce guide, vous avez appris à exporter les modèles Ultralytics YOLO11 au format ONNX afin d'améliorer leur interopérabilité et leurs performances sur différentes plateformes. Vous avez également découvert les options de déploiement ONNX Runtime et ONNX .

Pour plus de détails sur l'utilisation, consultez la documentation officielle deONNX .

Par ailleurs, si vous souhaitez en savoir plus sur d'autres intégrations de Ultralytics YOLO11 , visitez notre page de guide d'intégration. Vous y trouverez de nombreuses ressources et informations utiles.

FAQ

Comment exporter les modèles YOLO11 vers le format ONNX en utilisant Ultralytics?

Pour exporter vos modèles YOLO11 vers le format ONNX à l'aide de Ultralytics, procédez comme suit :

Utilisation

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

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

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

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

# Run inference with the exported model
yolo predict model=yolo11n.onnx source='https://ultralytics.com/images/bus.jpg'

Pour plus de détails, consultez la documentation sur l'exportation.

Quels sont les avantages de l'utilisation de ONNX Runtime pour le déploiement des modèles YOLO11 ?

L'utilisation de ONNX Runtime pour déployer les modèles YOLO11 offre plusieurs avantages :

  • CompatibilitĂ© multiplateforme: ONNX Le moteur d'exĂ©cution prend en charge diverses plateformes, telles que Windows, macOS et Linux, ce qui garantit le bon fonctionnement de vos modèles dans diffĂ©rents environnements.
  • AccĂ©lĂ©ration matĂ©rielle: ONNX Le moteur d'exĂ©cution peut tirer parti d'optimisations matĂ©rielles spĂ©cifiques pour les CPU, les GPU et les accĂ©lĂ©rateurs dĂ©diĂ©s, ce qui permet d'obtenir une infĂ©rence très performante.
  • InteropĂ©rabilitĂ© des cadres: Les modèles formĂ©s dans des cadres populaires tels que PyTorch ou TensorFlow peuvent ĂŞtre facilement convertis au format ONNX et exĂ©cutĂ©s Ă  l'aide de ONNX Runtime.

Pour en savoir plus, consultez la documentation deONNX Runtime.

Quelles sont les options de déploiement disponibles pour les modèles YOLO11 exportés vers ONNX?

YOLO11 Les modèles exportés vers ONNX peuvent être déployés sur diverses plates-formes, notamment :

  • CPUs: Utilisation de ONNX Runtime pour une infĂ©rence optimisĂ©e de CPU .
  • GPU: Tirer parti de NVIDIA CUDA pour une accĂ©lĂ©ration haute performance de GPU .
  • Appareils pĂ©riphĂ©riques: ExĂ©cution de modèles lĂ©gers sur des appareils pĂ©riphĂ©riques 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.

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

Pourquoi dois-je utiliser le format ONNX pour les modèles Ultralytics YOLO11 ?

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

  • InteropĂ©rabilitĂ©: ONNX permet de transfĂ©rer les modèles entre diffĂ©rents cadres d'apprentissage automatique de manière transparente.
  • Optimisation des performances: ONNX Le moteur d'exĂ©cution peut amĂ©liorer les performances du modèle en utilisant des optimisations spĂ©cifiques au matĂ©riel.
  • FlexibilitĂ©: ONNX prend en charge divers environnements de dĂ©ploiement, ce qui vous permet d'utiliser le mĂŞme modèle sur diffĂ©rentes plates-formes sans modification.

Consultez le guide complet sur l'exportation des modèles YOLO11 vers ONNX.

Comment puis-je résoudre les problèmes lors de l'exportation des modèles YOLO11 vers ONNX?

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

  1. Vérifiez que vous avez installé la bonne version des dépendances requises.
  2. Consultez la documentation officielle deONNX pour connaître les opérateurs et les fonctionnalités pris en charge.
  3. Examinez les messages d'erreur pour trouver des indices et consultez le guideUltralytics Common Issues.

Si le problème persiste, contactez le service d'assistance Ultralytics pour obtenir de l'aide.

📅C réé il y a 10 mois ✏️ Mis à jour il y a 2 mois

Commentaires