Cheque verde
Enlace copiado en el portapapeles

Utilizar la integración ONNX para exportar modelosYOLO Ultralytics

Aprende a exportar modelos Ultralytics YOLO , como Ultralytics YOLO11, utilizando la integración ONNX para su despliegue multiplataforma en distintos equipos.

Cuando las soluciones de IA empezaron a llamar la atención, la mayoría de los modelos se desplegaban en potentes servidores en entornos controlados. Sin embargo, a medida que la tecnología ha avanzado, el despliegue se ha ampliado mucho más allá del centro de datos.

Hoy en día, los modelos de IA se ejecutan en todo, desde servidores en la nube y ordenadores de sobremesa hasta teléfonos inteligentes y dispositivos periféricos. Este cambio permite un procesamiento más rápido, funcionalidad offline y sistemas más inteligentes que operan más cerca de donde se generan los datos.

Un área en la que esto está especialmente claro es la visión por ordenador, una rama de la IA que permite a las máquinas interpretar datos visuales. Se está utilizando para impulsar aplicaciones como el reconocimiento facial, la conducción autónoma y el análisis de vídeo en tiempo real. A medida que crecen estos casos de uso, también lo hace la necesidad de modelos que puedan funcionar sin problemas en diversos equipos y plataformas.

Pero desplegar modelos de visión por ordenador en una serie de objetivos de despliegue no siempre es sencillo. Los dispositivos difieren en cuanto a hardware, sistemas operativos y marcos compatibles, por lo que la flexibilidad y la compatibilidad son esenciales.

Por eso, tener la opción de exportar modelos de visión por ordenador como Ultralytics YOLO11 a distintos formatos es clave. Por ejemplo, la integración ONNX (Open Neural Network Exchange) que admite Ultralytics proporciona una forma práctica de salvar la distancia entre la formación y la implantación. ONNX es un formato abierto que hace que los modelos sean independientes del marco y estén listos para su despliegue en distintas plataformas.

Fig. 1. ONNX te ayuda a tomar un modelo entrenado en un marco y ejecutarlo en otro fácilmente.

En este artículo, veremos más de cerca la integraciónONNX que admite Ultralytics y exploraremos cómo puedes exportar tu modelo YOLO11 para un despliegue flexible y multiplataforma.

¿Qué es ONNX y ONNX Runtime?

El Intercambio Abierto de Redes Neuronales es un proyecto de código abierto que define un formato estándar para los modelos de aprendizaje automático. Desarrollado originalmente por Microsoft y Facebook, permite a los desarrolladores entrenar un modelo en un marco, como PyTorch, y ejecutarlo en otro, como TensorFlow. Esto hace que el desarrollo de la IA sea más flexible, colaborativo y accesible, especialmente en campos como la visión por ordenador.

ONNX proporciona un conjunto común de operadores y un formato de archivo unificado, lo que facilita la transferencia de modelos entre diferentes herramientas, marcos, tiempos de ejecución y compiladores. Normalmente, un modelo entrenado en un marco no es fácilmente compatible con otro, pero con ONNX, puedes exportar tu modelo una vez y desplegarlo casi en cualquier lugar: en CPU (Unidades Centrales de Procesamiento), GPU (Unidades de Procesamiento Gráfico), dispositivos móviles o hardware de borde.

Además, ONNX Runtime es un motor de inferencia de alto rendimiento desarrollado específicamente para ejecutar modelos en formato ONNX . Está diseñado para que los modelos ONNX se ejecuten con mayor rapidez y eficacia en una amplia gama de plataformas, incluidos servidores, dispositivos móviles y hardware de borde. ONNX Runtime es compatible con marcos populares como PyTorch, TensorFlow, TensorFlow Lite y scikit-learn, lo que facilita su integración en diferentes flujos de trabajo y la implantación de modelos allí donde se necesiten.

Fig. 2. ONNX y ONNX Runtime permiten un despliegue flexible de modelos entre plataformas.

Características principales de ONNX 

Antes de hablar de cómo exportar YOLO11 al formato ONNX , veamos algunas características clave del formato de modelo ONNX . 

Tanto si cambias de herramienta, como si despliegas en distintos dispositivos o actualizas sistemas, ONNX te ayuda a que todo funcione sin problemas. Esto es lo que hace que el formato del modelo ONNX sea único:

  • Un formato estándar: ONNX utiliza una forma común de describir cómo se construyen los modelos, como capas y operaciones (piensa en ellos como bloques de construcción). Cuando un modelo se convierte a ONNX, sigue este estándar para que cualquier sistema compatible con ONNX pueda entenderlo y ejecutarlo.
  • Compatibilidad con versiones anteriores: Aunque ONNX siga mejorando, garantiza que los modelos antiguos sigan funcionando con las versiones más recientes. Esto significa que no tendrás que volver a entrenar o reconstruir tus modelos cada vez que ONNX reciba una actualización.
  • Diseño de modelos basado en gráficos: Los modelos ONNX se estructuran como grafos de computación, en los que cada nodo representa una operación (como una capa o una función matemática), y las aristas indican el flujo de datos. Este diseño basado en grafos facilita la integración con diversos sistemas que utilizan estructuras de grafos computacionales similares.
  • Herramientas fáciles de desarrollar: Viene con una amplia gama de herramientas que te ayudan a convertir, validar y optimizar tus modelos. Estas herramientas simplifican el proceso de mover modelos entre distintos marcos y pueden acelerar la implantación, especialmente para aplicaciones de visión por ordenador.

Visión general de la integración ONNX

Exportar modelosUltralytics YOLO como Ultralytics YOLO11 en formato ONNX es sencillo y se puede hacer en pocos pasos. 

Para empezar, instala el paqueteUltralytics Python utilizando un gestor de paquetes como "pip". Para ello, ejecuta el comando "pip install ultralytics" en tu símbolo del sistema o terminal para empezar.

Con el paquete Ultralytics , puedes entrenar, probar, ajustar, exportar y desplegar fácilmente modelos para diversas tareas de visión por ordenador, haciendo que todo el proceso sea más rápido y eficaz. Mientras lo instalas, si encuentras alguna dificultad, puedes consultar la guía de problemas comunes para obtener soluciones y consejos.

Una vez instalado el paquete Ultralytics , puedes cargar y exportar el modelo YOLO11 al formato ONNX utilizando el código siguiente. Este ejemplo carga un modelo YOLO11 preentrenado (yolo11n.pt) y lo exporta como archivo ONNX (yolo11nonnx), dejándolo listo para su despliegue en diferentes plataformas y dispositivos.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="onnx") 

Tras convertir tu modelo al formato ONNX , puedes desplegarlo en diversas plataformas. 

El ejemplo siguiente muestra cómo cargar el modelo YOLO11 exportado (yolo11nonnx) y ejecutar una inferencia con él. Hacer una inferencia significa simplemente utilizar el modelo entrenado para hacer predicciones sobre nuevos datos. En este caso, utilizaremos la URL de una imagen de un autobús para probar el modelo.

onnx_model = YOLO("yolo11n.onnx")

results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)

Cuando ejecutes este código, se guardará la siguiente imagen de salida en la carpeta runs/detect/predict.

Fig. 3. Ejecución de una inferencia utilizando el modelo YOLO11 exportado sobre una imagen.

¿Cuándo debes elegir la integración ONNX ?

El paquetePython Ultralytics admite la exportación de modelos a varios formatos, como TorchScript, CoreML, TensorRT y ONNX. Entonces, ¿por qué elegir ONNX?

Lo que hace que ONNX destaque es que es un formato independiente del marco de trabajo. Mientras que muchos otros formatos de exportación están vinculados a herramientas o entornos específicos, ONNX utiliza un formato estandarizado y un conjunto compartido de operadores. Esto lo hace altamente portátil, compatible con el hardware e ideal para el despliegue multiplataforma, tanto si trabajas con servidores en la nube, aplicaciones móviles o dispositivos periféricos. 

He aquí algunas razones por las que la integración de ONNX podría ser la opción ideal para tus proyectos YOLO11 :

  • Despliegue portátil: Una vez exportado a ONNX, tu modelo YOLO11 puede desplegarse en varias plataformas sin cambios de código ni reentrenamiento.
  • Apoyo de toda la industria: ONNX es compatible con las principales empresas y marcos de IA, lo que lo convierte en un formato fiable y ampliamente aceptado. Garantiza la compatibilidad a largo plazo, al igual que los PDF funcionan en todos los dispositivos.
  • Desarrollo a prueba de futuro: Utilizar ONNX ayuda a proteger tus inversiones en modelos. A medida que las herramientas evolucionan, ONNX mantiene tus modelos relevantes y utilizables, incluso en entornos nuevos o diferentes.
  • Sin dependencia del proveedor: Algunas herramientas te atan a utilizar sólo su sistema, lo que puede limitar lo que tu modelo puede hacer. ONNX evita esto permitiéndote elegir la plataforma que mejor se adapte a tus necesidades, sin estar atado a una única configuración.

Aplicaciones de YOLO11 y del formato del modelo ONNX

A continuación, vamos a explorar algunas aplicaciones del mundo real en las que YOLO11 puede desplegarse con ayuda de la integración ONNX .

Seguimiento del inventario en los almacenes mediante YOLO11

En los almacenes con mucho movimiento, es difícil vigilar todos los productos y paquetes en todo momento. Los sistemas de visión por ordenador pueden ayudar a los trabajadores a encontrar productos en las estanterías y obtener información como, por ejemplo, el número de productos, el tipo, etc. Estos sistemas pueden ayudar a las empresas a gestionar automáticamente su vasto inventario y ahorrar mucho tiempo a los trabajadores del almacén.

Concretamente, en los almacenes inteligentes, los modelos YOLO11 exportados a ONNX pueden utilizarse para identificar y contar artículos en tiempo real mediante cámaras y dispositivos de borde. El modelo exportado puede ayudar a escanear estanterías o palés para detectar niveles de existencias, artículos que faltan o espacios vacíos. Como la exportación a ONNX hace que el modelo sea ligero y eficiente, puede ejecutarse directamente en pequeños dispositivos de borde, como cámaras inteligentes, eliminando la necesidad de costosos servidores o el acceso constante a la nube.

Fig. 4. Un ejemplo de utilización de YOLO11 para detectar y contar paquetes.

Gestión de residuos hospitalarios con YOLO11

Los hospitales de todo el mundo generan grandes cantidades de residuos cada día, desde guantes y jeringuillas usados hasta equipos utilizados durante la cirugía (como herramientas quirúrgicas de un solo uso o contaminadas, como tijeras y bisturís). De hecho, las investigaciones demuestran que los hospitales producen unos 5 millones de toneladas de residuos al año, lo que equivale a 29 libras de residuos por cama y día. 

Clasificar correctamente estos residuos es esencial para la higiene, la seguridad y el cumplimiento de la normativa. Con los modelos YOLO11 exportados en formato ONNX , los hospitales pueden automatizar y controlar la eliminación de residuos en tiempo real.

Por ejemplo, las cámaras colocadas cerca de las papeleras en zonas como quirófanos o pasillos pueden controlar los artículos a medida que se desechan. Un modelo YOLO11 personalizado, entrenado para reconocer los distintos tipos de residuos médicos, puede analizar las imágenes e identificar lo que se tira. Si un artículo acaba en el contenedor equivocado, como una jeringuilla usada en la basura normal, el sistema puede configurarse para alertar inmediatamente al personal con una luz o un sonido, lo que ayuda a evitar la contaminación y a garantizar el cumplimiento de las normas.

Fig. 5. Utilización de YOLO11 para detectar instrumental médico.

Monitorización de cultivos YOLO11

Saber cuál es el momento adecuado para cosechar los cultivos puede tener un gran impacto tanto en la calidad de los productos como en la productividad general de una explotación. Tradicionalmente, los agricultores confían en la experiencia y en las inspecciones manuales, pero con los recientes avances tecnológicos, eso está empezando a cambiar.

Ahora, con innovaciones de visión por ordenador como YOLO11, exportadas en formato ONNX , los agricultores pueden llevar la automatización y la precisión al campo. Utilizando drones o cámaras montadas en tractores o postes, los agricultores pueden captar imágenes de sus cultivos (como tomates, manzanas o trigo). YOLO11 puede utilizarse entonces para detectar indicadores clave como el color, el tamaño y la distribución de los cultivos. Basándose en esta información, los agricultores pueden determinar si los cultivos están listos para la cosecha, si aún están madurando o si ya han pasado su punto álgido.

Fig. 6. YOLO11 puede utilizarse para detectar cultivos en grabaciones aéreas de drones. 

Limitaciones de ONNX a tener en cuenta

Aunque ONNX ofrece numerosas ventajas, como la portabilidad, la compatibilidad entre plataformas y la interoperabilidad de marcos, hay que tener en cuenta algunas limitaciones.

  • Tamaño del modelo: La conversión de modelos al formato ONNX a veces puede dar lugar a archivos de mayor tamaño en comparación con sus formatos originales. Técnicas como la cuantización y la poda pueden ayudar a mitigar este problema reduciendo el tamaño del modelo sin afectar significativamente al rendimiento.
  • Compatibilidad del tiempo de ejecución: Aunque ONNX Runtime está diseñado para ser compatible con varias plataformas, el rendimiento y la compatibilidad pueden variar según el hardware y los sistemas operativos. 
  • Retos de depuración: Depurar modelos ONNX puede ser más complejo que en marcos nativos como PyTorch o TensorFlow. Los mensajes de error pueden ser menos descriptivos, lo que dificulta la localización de problemas. Sin embargo, herramientas como Netron para la visualización de modelos y las capacidades de registro de ONNX Runtime pueden ayudar en la resolución de problemas.

Puntos clave

Exportar Ultralytics YOLO11 a ONNX facilita tomar un modelo de visión por ordenador entrenado y desplegarlo casi en cualquier lugar, ya sea en un ordenador portátil, un dispositivo móvil o incluso una cámara inteligente compacta. Con la integración en ONNX , no estás atado a un único marco o plataforma, lo que te da flexibilidad para ejecutar tu modelo en el entorno que mejor se adapte a tu aplicación. 

Esto hace que la transición de la formación a la implantación en el mundo real sea más rápida y eficaz. Tanto si haces un seguimiento del inventario en un almacén como si te aseguras de que los residuos hospitalarios se eliminan correctamente, esta configuración ayuda a que los sistemas funcionen mejor, reduce los errores y ahorra un tiempo valioso.

¿Quieres saber más sobre visión por ordenador e IA? Explora nuestro repositorio GitHub, conéctate con nuestra comunidad y consulta nuestras opciones de licencia para poner en marcha tu proyecto de visión por ordenador. Si estás explorando innovaciones como la IA en la fabricación y la visión por ordenador en la industria del automóvil, visita nuestras páginas de soluciones para descubrir más. 

Logotipo de LinkedInLogotipo de TwitterLogotipo de FacebookSímbolo de enlace de copia

Leer más en esta categoría

¡Construyamos juntos el futuro
de la IA!

Comienza tu viaje con el futuro del aprendizaje automático

OSZAR »