Saltar al contenido

ONNX Exportar para YOLOv8 Modelos

A menudo, al implementar modelos de visi贸n artificial, necesitar谩 un formato de modelo que sea flexible y compatible con varias plataformas.

Exportar modelos Ultralytics YOLOv8 modelos al formato ONNX agiliza el despliegue y garantiza un rendimiento 贸ptimo en diversos entornos. Esta gu铆a te mostrar谩 c贸mo convertir f谩cilmente tus modelos YOLOv8 a ONNX y mejorar su escalabilidad y eficacia en aplicaciones del mundo real.

ONNX y ONNX Tiempo de ejecuci贸n

ONNXque significa Intercambio Abierto de Redes Neuronales, es un proyecto comunitario que Facebook y Microsoft desarrollaron inicialmente. El desarrollo actual 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 distintos 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 ONNX pueden utilizarse con ONNX Runtime. ONNX Runtime es un vers谩til acelerador multiplataforma para modelos de aprendizaje autom谩tico compatible con marcos como 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.

ONNX con ONNX Tiempo de ejecuci贸n

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 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

Antes de pasar a c贸mo exportar YOLOv8 modelos a la ONNX formato, echemos un vistazo a d贸nde ONNX Por lo general, se utilizan modelos.

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.

Exportar modelos de YOLOv8 a ONNX

Puedes ampliar la compatibilidad de modelos y la flexibilidad de despliegue convirtiendo los modelos de YOLOv8 al formato ONNX .

Instalaci贸n

Para instalar el paquete necesario, ejecuta

Instalaci贸n

# Install the required package for YOLOv8
pip install ultralytics

Para obtener instrucciones detalladas y buenas pr谩cticas relacionadas con el proceso de instalaci贸n, consulta nuestra gu铆a de instalaci贸nYOLOv8 . Mientras instalas los paquetes necesarios para YOLOv8, si encuentras alguna dificultad, consulta nuestra gu铆a de Problemas comunes para encontrar soluciones y consejos.

Utilizaci贸n

Antes de sumergirte en las instrucciones de uso, aseg煤rate de consultar la gama de modelosYOLOv8 que ofrece Ultralytics. Esto te ayudar谩 a elegir el modelo m谩s apropiado para los requisitos de tu proyecto.

Utilizaci贸n

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

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

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

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

# Run inference with the exported model
yolo predict model=yolov8n.onnx source='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.

Despliegue de modelos exportados de YOLOv8 ONNX

Una vez que hayas exportado con 茅xito tus modelos Ultralytics YOLOv8 al formato ONNX , el siguiente paso es desplegar estos modelos en varios entornos. Para obtener instrucciones detalladas sobre el despliegue de tus modelos ONNX , echa un vistazo a los siguientes recursos:

Resumen

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

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

Adem谩s, si quieres saber m谩s sobre otros Ultralytics YOLOv8 integraciones, visite nuestra p谩gina de gu铆a de integraci贸n. All铆 encontrar谩 muchos recursos e informaci贸n 煤tiles.

PREGUNTAS FRECUENTES

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

Para exportar tus modelos de YOLOv8 al formato ONNX utilizando Ultralytics, sigue estos pasos:

Utilizaci贸n

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

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

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

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

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

Para m谩s detalles, visita la documentaci贸n de exportaci贸n.

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

Utilizar ONNX Runtime para desplegar los modelos YOLOv8 ofrece varias ventajas:

  • 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.
  • 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, consulta la documentaci贸n deONNX Runtime.

驴Qu茅 opciones de despliegue est谩n disponibles para los modelos de YOLOv8 exportados a ONNX?

YOLOv8 Los modelos exportados a ONNX pueden desplegarse en varias plataformas, incluidas:

  • 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.

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

Utilizar el formato ONNX para los modelos Ultralytics YOLOv8 proporciona 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 te permite utilizar el mismo modelo en distintas plataformas sin necesidad de modificarlo.

Consulta la gu铆a completa para exportar modelos de YOLOv8 a ONNX.

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

Al exportar modelos de YOLOv8 a ONNX, puedes encontrarte con problemas comunes, como dependencias no coincidentes u operaciones no admitidas. Para solucionar estos problemas

  1. Comprueba que tienes instalada la versi贸n correcta de las dependencias necesarias.
  2. Consulta la documentaci贸n oficial deONNX para conocer los operadores y funciones compatibles.
  3. 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.



Creado 2024-01-25, Actualizado 2024-07-05
Autores: glenn-jocher (6), abirami-vina (1)

Comentarios