ONNX Export for YOLO11 Models
Often, when deploying computer vision models, you'll need a model format that's both flexible and compatible with multiple platforms.
Exporting Ultralytics YOLO11 models to ONNX format streamlines deployment and ensures optimal performance across various environments. This guide will show you how to easily convert your YOLO11 models to ONNX and enhance their scalability and effectiveness in real-world applications.
ONNX y ONNX Tiempo de ejecuci贸n
ONNX, which stands for Open Neural Network Exchange, is a community project that Facebook and Microsoft initially developed. The ongoing development of ONNX is a collaborative effort supported by various organizations like IBM, Amazon (through AWS), and Google. The project aims to create an open file format designed to represent machine learning models in a way that allows them to be used across different AI frameworks and hardware.
ONNX models can be used to transition between different frameworks seamlessly. For instance, a deep learning model trained in PyTorch can be exported to ONNX format and then easily imported into TensorFlow.
Alternatively, ONNX models can be used with ONNX Runtime. ONNX Runtime is a versatile cross-platform accelerator for machine learning models that is compatible with frameworks like PyTorch, TensorFlow, TFLite, scikit-learn, etc.
ONNX Runtime optimiza la ejecuci贸n de los modelos ONNX aprovechando las capacidades espec铆ficas del hardware. Esta optimizaci贸n permite que los modelos se ejecuten con eficacia y alto rendimiento en diversas plataformas de hardware, incluidas CPU, GPU y aceleradores especializados.
Whether used independently or in tandem with ONNX Runtime, ONNX provides a flexible solution for machine learning model deployment and compatibility.
Caracter铆sticas principales de los modelos ONNX
La capacidad de ONNX para manejar diversos formatos puede atribuirse a las siguientes caracter铆sticas clave:
-
Representaci贸n com煤n del modelo: ONNX define un conjunto com煤n de operadores (como convoluciones, capas, etc.) y un formato de datos est谩ndar. Cuando un modelo se convierte al formato ONNX , su arquitectura y pesos se traducen a esta representaci贸n com煤n. Esta uniformidad garantiza que el modelo pueda ser comprendido por cualquier marco que admita ONNX.
-
Versionado y compatibilidad con versiones anteriores: ONNX mantiene un sistema de versionado para sus operadores. Esto garantiza que, aunque la norma evolucione, los modelos creados en versiones anteriores sigan siendo utilizables. La compatibilidad con versiones anteriores es una caracter铆stica crucial que evita que los modelos se queden obsoletos r谩pidamente.
-
Representaci贸n de modelos basada en grafos: ONNX representa los modelos como grafos computacionales. Esta estructura basada en grafos es una forma universal de representar modelos de aprendizaje autom谩tico, donde los nodos representan operaciones o c谩lculos, y las aristas representan los tensores que fluyen entre ellos. Este formato es f谩cilmente adaptable a diversos marcos que tambi茅n representan modelos como grafos.
-
Herramientas y ecosistema: Existe un rico ecosistema de herramientas en torno a ONNX que ayudan en la conversi贸n, visualizaci贸n y optimizaci贸n de modelos. Estas herramientas facilitan a los desarrolladores el trabajo con los modelos de ONNX y la conversi贸n de modelos entre distintos marcos sin problemas.
Uso com煤n de ONNX
Before we jump into how to export YOLO11 models to the ONNX format, let's take a look at where ONNX models are usually used.
CPU Despliegue
ONNX suelen implantarse en CPU debido a su compatibilidad con ONNX Runtime. Este tiempo de ejecuci贸n est谩 optimizado para la ejecuci贸n de CPU . Mejora significativamente la velocidad de inferencia y hace factibles las implantaciones de CPU en tiempo real.
Opciones de implantaci贸n admitidas
Aunque los modelos ONNX se utilizan habitualmente en CPUs, tambi茅n pueden implantarse en las siguientes plataformas:
-
GPU Aceleraci贸n: ONNX es totalmente compatible con la aceleraci贸n GPU , en particular NVIDIA CUDA . Esto permite una ejecuci贸n eficiente en las GPU de NVIDIA para tareas que exigen una gran potencia de c谩lculo.
-
Dispositivos perif茅ricos y m贸viles: ONNX se extiende a dispositivos perif茅ricos y m贸viles, perfecto para escenarios de inferencia en el dispositivo y en tiempo real. Es ligero y compatible con el hardware Edge.
-
Navegadores web: ONNX puede ejecutarse directamente en navegadores web, potenciando aplicaciones de IA interactivas y din谩micas basadas en la web.
Exporting YOLO11 Models to ONNX
You can expand model compatibility and deployment flexibility by converting YOLO11 models to ONNX format.
Instalaci贸n
Para instalar el paquete necesario, ejecuta
For detailed instructions and best practices related to the installation process, check our YOLO11 Installation guide. While installing the required packages for YOLO11, if you encounter any difficulties, consult our Common Issues guide for solutions and tips.
Utilizaci贸n
Before diving into the usage instructions, be sure to check out the range of YOLO11 models offered by Ultralytics. This will help you choose the most appropriate model for your project requirements.
Utilizaci贸n
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")
Para m谩s detalles sobre el proceso de exportaci贸n, visita la p谩gina de documentaci贸nUltralytics sobre exportaci贸n.
Deploying Exported YOLO11 ONNX Models
Once you've successfully exported your Ultralytics YOLO11 models to ONNX format, the next step is deploying these models in various environments. For detailed instructions on deploying your ONNX models, take a look at the following resources:
-
ONNX Runtime Python Documentaci贸n de la API: Esta gu铆a proporciona informaci贸n esencial para cargar y ejecutar modelos ONNX utilizando ONNX Runtime.
-
Despliegue en dispositivos Edge: Consulta esta p谩gina de documentaci贸n para ver distintos ejemplos de despliegue de los modelos ONNX en dispositivos Edge.
-
ONNX Tutoriales en GitHub: Una colecci贸n de completos tutoriales que cubren diversos aspectos del uso y la aplicaci贸n de los modelos ONNX en diferentes escenarios.
Resumen
In this guide, you've learned how to export Ultralytics YOLO11 models to ONNX format to increase their interoperability and performance across various platforms. You were also introduced to the ONNX Runtime and ONNX deployment options.
Para m谩s detalles sobre su uso, visita la documentaci贸n oficial deONNX .
Also, if you'd like to know more about other Ultralytics YOLO11 integrations, visit our integration guide page. You'll find plenty of useful resources and insights there.
PREGUNTAS FRECUENTES
How do I export YOLO11 models to ONNX format using Ultralytics?
To export your YOLO11 models to ONNX format using Ultralytics, follow these steps:
Utilizaci贸n
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")
Para m谩s detalles, visita la documentaci贸n de exportaci贸n.
What are the advantages of using ONNX Runtime for deploying YOLO11 models?
Using ONNX Runtime for deploying YOLO11 models offers several advantages:
- Compatibilidad entre plataformas: ONNX El tiempo de ejecuci贸n es compatible con varias plataformas, como Windows, macOS y Linux, lo que garantiza que tus modelos funcionen sin problemas en distintos entornos.
- Aceleraci贸n de hardware: ONNX El tiempo de ejecuci贸n puede aprovechar las optimizaciones espec铆ficas de hardware para CPU, GPU y aceleradores dedicados, proporcionando una inferencia de alto rendimiento.
- Framework interoperability: Models trained in popular frameworks like PyTorch or TensorFlow can be easily converted to ONNX format and run using ONNX Runtime.
Para m谩s informaci贸n, consulta la documentaci贸n deONNX Runtime.
What deployment options are available for YOLO11 models exported to ONNX?
YOLO11 models exported to ONNX can be deployed on various platforms including:
- CPUs: Utilizando ONNX Runtime para la inferencia optimizada de CPU .
- GPUs: Aprovechando NVIDIA CUDA para la aceleraci贸n de alto rendimiento GPU .
- Dispositivos Edge: Ejecutar modelos ligeros en dispositivos perif茅ricos y m贸viles para realizar inferencias en tiempo real y en el dispositivo.
- Navegadores web: Ejecuci贸n de modelos directamente en navegadores web para aplicaciones interactivas basadas en web.
Para m谩s informaci贸n, explora nuestra gu铆a sobre opciones de despliegue de modelos.
Why should I use ONNX format for Ultralytics YOLO11 models?
Using ONNX format for Ultralytics YOLO11 models provides numerous benefits:
- Interoperabilidad: ONNX permite transferir modelos entre distintos marcos de aprendizaje autom谩tico sin problemas.
- Optimizaci贸n del rendimiento: ONNX El tiempo de ejecuci贸n puede mejorar el rendimiento del modelo utilizando optimizaciones espec铆ficas del hardware.
- Flexibilidad: ONNX admite varios entornos de implantaci贸n, lo que te permite utilizar el mismo modelo en distintas plataformas sin necesidad de modificarlo.
Refer to the comprehensive guide on exporting YOLO11 models to ONNX.
How can I troubleshoot issues when exporting YOLO11 models to ONNX?
When exporting YOLO11 models to ONNX, you might encounter common issues such as mismatched dependencies or unsupported operations. To troubleshoot these problems:
- Comprueba que tienes instalada la versi贸n correcta de las dependencias necesarias.
- Consulta la documentaci贸n oficial deONNX para conocer los operadores y funciones compatibles.
- Revisa los mensajes de error en busca de pistas y consulta la gu铆aUltralytics Problemas comunes.
Si los problemas persisten, ponte en contacto con el servicio de asistencia Ultralytics para obtener m谩s ayuda.