Ir al contenido

ONNX Exportaci贸n para modelos YOLO11

A menudo, al desplegar modelos de visi贸n por ordenador, necesitar谩 un formato de modelo que sea flexible y compatible con m煤ltiples plataformas.

La exportaci贸n de modelos Ultralytics YOLO11 al formato ONNX agiliza la implantaci贸n y garantiza un rendimiento 贸ptimo en distintos entornos. Esta gu铆a le mostrar谩 c贸mo convertir f谩cilmente sus modelos YOLO11 a ONNX y mejorar su escalabilidad y eficacia en aplicaciones del mundo real.

ONNX y ONNX Runtime

ONNX, acr贸nimo de Open Neural Network Exchange (Intercambio abierto de redes neuronales ), es un proyecto comunitario que Facebook y Microsoft desarrollaron inicialmente. El desarrollo continuo de ONNX es un esfuerzo de colaboraci贸n apoyado por varias organizaciones como IBM, Amazon (a trav茅s de AWS) y Google. El objetivo del proyecto es crear un formato de archivo abierto dise帽ado para representar modelos de aprendizaje autom谩tico de forma que puedan utilizarse en diferentes marcos y hardware de IA.

ONNX pueden utilizarse para pasar de un marco a otro sin problemas. Por ejemplo, un modelo de aprendizaje profundo entrenado en PyTorch puede exportarse al formato ONNX e importarse f谩cilmente a TensorFlow.

ONNX

Alternativamente, los modelos de ONNX pueden utilizarse con ONNX Runtime. ONNX Runtime es un vers谩til acelerador multiplataforma para modelos de aprendizaje autom谩tico compatible con marcos de trabajo como PyTorch, TensorFlowTFLite, 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.

ONNX con ONNX Runtime

Tanto si se utiliza de forma independiente como en t谩ndem con ONNX Runtime, ONNX proporciona una soluci贸n flexible para la implantaci贸n y compatibilidad de modelos de aprendizaje autom谩tico.

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 sus pesos se traducen a esta representaci贸n com煤n. Esta uniformidad garantiza que el modelo pueda ser comprendido por cualquier marco compatible con ONNX.

  • Versiones y compatibilidad con versiones anteriores: ONNX mantiene un sistema de versiones para sus operadores. Esto garantiza que, aunque la norma evolucione, los modelos creados con 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 varios 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

Antes de pasar a c贸mo exportar modelos YOLO11 al formato ONNX , veamos d贸nde se suelen utilizar los modelos ONNX .

CPU Despliegue

ONNX suelen implantarse en CPU gracias a su compatibilidad con ONNX Runtime. Este runtime est谩 optimizado para la ejecuci贸n en CPU . Mejora significativamente la velocidad de inferencia y hace posible la implantaci贸n de CPU en tiempo real.

Opciones de implantaci贸n compatibles

Aunque los modelos ONNX se utilizan habitualmente en CPU, tambi茅n pueden implantarse en las siguientes plataformas:

  • GPU Aceleraci贸n: ONNX es totalmente compatible con la aceleraci贸n de 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, perfectos 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, impulsando aplicaciones de IA interactivas y din谩micas basadas en la web.

Exportaci贸n de modelos YOLO11 a ONNX

Puede ampliar la compatibilidad de los modelos y la flexibilidad de despliegue convirtiendo los modelos de YOLO11 al formato ONNX .

Instalaci贸n

Para instalar el paquete necesario, ejecute

Instalaci贸n

# Install the required package for YOLO11
pip install ultralytics

Para obtener instrucciones detalladas y buenas pr谩cticas relacionadas con el proceso de instalaci贸n, consulta nuestra gu铆a de instalaci贸nYOLO11 . Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra gu铆a de problemas comunes para obtener soluciones y consejos.

Utilizaci贸n

Antes de sumergirse en las instrucciones de uso, aseg煤rese de consultar la gama de modelos deYOLO11 que ofrece Ultralytics. Esto le ayudar谩 a elegir el modelo m谩s apropiado para los requisitos de su proyecto.

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")
# 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'

Para m谩s detalles sobre el proceso de exportaci贸n, visite la p谩gina de documentaci贸nUltralytics sobre exportaci贸n.

Despliegue de modelos exportados de YOLO11 ONNX

Una vez que haya exportado correctamente sus modelos Ultralytics YOLO11 al formato ONNX , el siguiente paso es desplegar estos modelos en varios entornos. Para obtener instrucciones detalladas sobre el despliegue de sus modelos ONNX , eche un vistazo a los siguientes recursos:

Resumen

En esta gu铆a, ha aprendido a exportar modelos Ultralytics YOLO11 al formato ONNX para aumentar su interoperabilidad y rendimiento en varias plataformas. Tambi茅n se le han presentado las opciones de despliegue ONNX Runtime y ONNX .

Para m谩s detalles sobre su uso, visite la documentaci贸n oficial deONNX .

Adem谩s, si quieres saber m谩s sobre otras integraciones de Ultralytics YOLO11 , visita nuestra p谩gina de gu铆a de integraci贸n. All铆 encontrar谩s un mont贸n de recursos e informaci贸n 煤tiles.

PREGUNTAS FRECUENTES

驴C贸mo puedo exportar modelos de YOLO11 al formato ONNX utilizando Ultralytics?

Para exportar sus modelos YOLO11 al formato ONNX utilizando Ultralytics, siga estos pasos:

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")
# 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'

Para m谩s detalles, consulte la documentaci贸n sobre exportaci贸n.

驴Cu谩les son las ventajas de utilizar ONNX Runtime para desplegar modelos YOLO11 ?

La utilizaci贸n de ONNX Runtime para desplegar los modelos YOLO11 ofrece varias ventajas:

  • Compatibilidad multiplataforma: ONNX El tiempo de ejecuci贸n es compatible con varias plataformas, como Windows, macOS y Linux, lo que garantiza que sus modelos se ejecuten sin problemas en distintos entornos.
  • Aceleraci贸n por hardware: ONNX El tiempo de ejecuci贸n puede aprovechar las optimizaciones espec铆ficas del hardware para CPU, GPU y aceleradores dedicados, lo que proporciona una inferencia de alto rendimiento.
  • Interoperabilidad de marcos: Los modelos entrenados en marcos populares como PyTorch o TensorFlow pueden convertirse f谩cilmente al formato ONNX y ejecutarse con ONNX Runtime.

Para m谩s informaci贸n, consulte la documentaci贸n deONNX Runtime.

驴Qu茅 opciones de despliegue existen para los modelos de YOLO11 exportados a ONNX?

YOLO11 Los modelos exportados a ONNX pueden implantarse en varias plataformas, entre ellas

  • CPU: Utilizaci贸n de ONNX Runtime para la inferencia optimizada de CPU .
  • GPU: Aprovechamiento de NVIDIA CUDA para aceleraci贸n de alto rendimiento GPU .
  • Dispositivos perif茅ricos: Ejecuci贸n de modelos ligeros en dispositivos perif茅ricos y m贸viles para la inferencia 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, consulte nuestra gu铆a sobre opciones de implantaci贸n de modelos.

驴Por qu茅 debo utilizar el formato ONNX para los modelos Ultralytics YOLO11 ?

El uso del formato ONNX para los modelos Ultralytics YOLO11 ofrece numerosas ventajas:

  • 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 le permite utilizar el mismo modelo en distintas plataformas sin necesidad de modificarlo.

Consulte la gu铆a completa para exportar modelos de YOLO11 a ONNX.

驴C贸mo puedo solucionar problemas al exportar modelos de YOLO11 a ONNX?

Al exportar modelos de YOLO11 a ONNX, puede encontrarse con problemas comunes, como dependencias no coincidentes u operaciones no compatibles. Para solucionar estos problemas:

  1. Compruebe que tiene instalada la versi贸n correcta de las dependencias necesarias.
  2. Consulte la documentaci贸n oficial deONNX para conocer los operadores y funciones compatibles.
  3. Revise los mensajes de error en busca de pistas y consulte la gu铆aUltralytics Common Issues.

Si el problema persiste, p贸ngase en contacto con el servicio de asistencia de Ultralytics para obtener m谩s ayuda.

Creado hace 10 meses 鉁忥笍 Actualizado hace 2 meses

Comentarios