Saltar al contenido

ONNX Exportar para YOLOv8 Modelos

A menudo, al desplegar modelos de visi贸n por ordenador, necesitar谩s un formato de modelo que sea flexible y compatible con m煤ltiples 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

ONNX, que 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 modelos YOLOv8 al formato ONNX , veamos d贸nde se suelen utilizar los modelos ONNX .

Despliegue de la CPU

ONNX suelen implantarse en CPUs debido a su compatibilidad con ONNX Runtime. Este tiempo de ejecuci贸n est谩 optimizado para la ejecuci贸n en CPU. Mejora significativamente la velocidad de inferencia y hace factibles las implantaciones en 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:

  • Aceleraci贸n de la GPU: ONNX es totalmente compatible con la aceleraci贸n de la GPU, en particular con NVIDIA CUDA. Esto permite una ejecuci贸n eficiente en las GPU 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 otras integraciones de Ultralytics YOLOv8 , visita nuestra p谩gina de gu铆a de integraciones. All铆 encontrar谩s un mont贸n de recursos e ideas 煤tiles.



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

Comentarios