Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Configuración de cookies
Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Explore cómo exportar modelos Ultralytics YOLO como Ultralytics YOLO11 al formato ExecuTorch para un despliegue eficiente y nativo de PyTorch en dispositivos edge y móviles.
Determinadas aplicaciones de visión por ordenador, como la inspección de calidad automatizada, los drones autónomos o los sistemas de seguridad inteligentes, funcionan mejor cuando los modelos Ultralytics YOLO, como Ultralytics YOLO11, se ejecutan cerca del sensor que captura las imágenes. En otras palabras, estos modelos necesitan procesar los datos directamente donde se generan, en cámaras, drones o sistemas integrados, en lugar de enviarlos a la nube.
Este enfoque, conocido como IA periférica, permite a los modelos realizar inferencias directamente en el dispositivo donde se capturan los datos. Al procesar la información localmente en lugar de depender de servidores remotos, los sistemas pueden lograr una menor latencia, una mayor privacidad de los datos y una mayor fiabilidad, incluso en entornos con conectividad a Internet limitada o inexistente.
Por ejemplo, una cámara de fabricación que inspecciona miles de productos cada minuto, o un dron que navega por entornos complejos, no pueden permitirse los retrasos que conlleva el procesamiento en la nube. Ejecutar YOLO11 directamente en el dispositivo permite realizar inferencias al instante.
Para que la ejecución de modelos Ultralytics YOLO en el borde sea más fácil y eficiente, la nueva integración ExecuTorch soportada por Ultralytics proporciona una forma simplificada de exportar y desplegar modelos directamente en dispositivos móviles e integrados. ExecuTorch forma parte del ecosistema PyTorch Edge y ofrece una solución integral para ejecutar modelos de inteligencia artificial directamente en hardware móvil y periférico, como teléfonos, wearables, placas integradas y microcontroladores.
Esta integración facilita la implantación de un modelo YOLO de Ultralytics, como YOLO11, desde la formación hasta la implementación en dispositivos periféricos. Al combinar las capacidades de visión de YOLO11 con el tiempo de ejecución ligero de ExecuTorch y el canal de exportación de PyTorch, los usuarios pueden desplegar modelos que se ejecutan de forma eficiente en hardware periférico, al tiempo que conservan la precisión y el rendimiento de la inferencia basada en PyTorch.
En este artículo, vamos a ver más de cerca cómo funciona la integración ExecuTorch, por qué es un gran ajuste para aplicaciones de borde AI, y cómo se puede empezar a implementar modelos Ultralytics YOLO con ExecuTorch. Comencemos.
¿Qué es ExecuTorch?
Normalmente, cuando se entrena un modelo en PyTorch, se ejecuta en potentes servidores o unidades de procesamiento gráfico (GPU) en la nube. Sin embargo, desplegar ese mismo modelo en un dispositivo móvil o integrado, como un smartphone, un dron o un microcontrolador, requiere una solución especializada que pueda gestionar una potencia de cálculo, una memoria y una conectividad limitadas.
Eso es exactamente lo que aporta ExecuTorch. ExecuTorch es una solución integral desarrollada como parte del ecosistema PyTorch Edge que permite una inferencia eficiente en el dispositivo a través de plataformas móviles, integradas y periféricas. Amplía las capacidades de PyTorch más allá de la nube, permitiendo que los modelos de IA se ejecuten directamente en dispositivos locales.
Llevar la inferencia de PyTorch al límite
En esencia, ExecuTorch proporciona un tiempo de ejecución C++ ligero que permite que los modelos PyTorch se ejecuten directamente en el dispositivo. ExecuTorch utiliza el formato de modelo PyTorch ExecuTorch (.pte), una exportación optimizada diseñada para una carga más rápida, una menor huella de memoria y una mejor portabilidad.
Admite XNNPACK como backend predeterminado para una inferencia eficiente de la unidad central de procesamiento (CPU) y amplía la compatibilidad a una amplia gama de backends de hardware, incluidos Core ML, Metal, Vulkan, Qualcomm, MediaTek, Arm EthosU y OpenVINO, entre otros.
Estos backends permiten una aceleración optimizada en dispositivos móviles, integrados y especializados. ExecuTorch también se integra con el canal de exportación PyTorch, lo que proporciona compatibilidad con funciones avanzadas como la cuantización y la gestión dinámica de formas para mejorar el rendimiento y la adaptabilidad en distintos entornos de implantación.
La cuantificación reduce el tamaño del modelo y aumenta la velocidad de inferencia al convertir valores de alta precisión (como los flotantes de 32 bits) en otros de menor precisión, mientras que el manejo dinámico de formas se utiliza para que los modelos procesen con eficacia tamaños de entrada variables. Ambas funciones son cruciales para ejecutar modelos de inteligencia artificial en dispositivos con recursos limitados.
Más allá de su tiempo de ejecución, ExecuTorch también actúa como una capa de abstracción unificada para múltiples backends de hardware. En pocas palabras, abstrae los detalles específicos del hardware y gestiona cómo interactúan los modelos con las distintas unidades de procesamiento, incluidas CPU, GPU y unidades de procesamiento neuronal (NPU).
Una vez exportado un modelo, ExecuTorch puede configurarse para que se dirija al backend más adecuado para un dispositivo determinado. Los desarrolladores pueden desplegar modelos de forma eficiente en distintos equipos sin necesidad de escribir código específico para cada dispositivo ni de mantener flujos de trabajo de conversión independientes.
Gracias a su diseño modular y portátil y a su perfecta integración con PyTorch, ExecuTorch es una gran opción para implementar modelos de visión por ordenador como Ultralytics YOLO11 en sistemas móviles e integrados. Acorta la distancia entre la formación del modelo y el despliegue en el mundo real, haciendo que la IA de vanguardia sea más rápida, eficiente y fácil de implementar.
Características principales de ExecuTorch
Antes de ver cómo exportar los modelos YOLO de Ultralytics al formato ExecuTorch, vamos a explorar qué hace de ExecuTorch una opción fiable para desplegar IA en el edge.
He aquí algunas de sus principales características:
Cuantificación: ExecuTorch admite la cuantificación de modelos, una técnica que convierte los valores de alta precisión en otros de menor precisión para reducir el tamaño del modelo y acelerar la inferencia. Esto ayuda a que los modelos se ejecuten más rápido y utilicen menos memoria en los dispositivos de borde, manteniendo prácticamente el mismo nivel de precisión.
Uso eficiente de la memoria: Una de las mayores ventajas de ExecuTorch es cómo gestiona la memoria. En lugar de confiar en la asignación dinámica de memoria, que puede introducir latencia y sobrecarga de energía, ExecuTorch utiliza la planificación de memoria AOT (Ahead-of-Time). Durante la exportación, analiza el gráfico del modelo y calcula previamente cuánta memoria se necesita para cada operación. Esto permite que el tiempo de ejecución ejecute los modelos utilizando un plan de memoria estático, garantizando un rendimiento predecible y evitando ralentizaciones o bloqueos en dispositivos con RAM o capacidad de procesamiento limitadas.
Metadatos del modelo incorporados: Al exportar mediante la integración que admite Ultralytics, cada modelo incluye un archivo YAML que contiene metadatos importantes, como el tamaño de la imagen de entrada, los nombres de las clases y los parámetros de configuración. Este archivo adicional simplifica la integración del modelo en diversas aplicaciones y garantiza un comportamiento coherente en diferentes plataformas de borde.
Cómo exportar los modelos YOLO de Ultralytics al formato ExecuTorch
Ahora que comprendemos mejor lo que ofrece ExecuTorch, vamos a ver cómo exportar los modelos YOLO de Ultralytics al formato ExecuTorch.
Paso 1: Instale el paquete de Python de Ultralytics
Para empezar, tendrá que instalar el paquete Ultralytics Python utilizando pip, que es un instalador de paquetes. Puede hacerlo ejecutando "pip install ultralytics" en su terminal o símbolo del sistema.
Si estás trabajando en un entorno Jupyter Notebook o Google Colab, simplemente añade un signo de exclamación antes del comando, como "!pip install ultralytics". Una vez instalado, el paquete Ultralytics proporciona todas las herramientas necesarias para entrenar, probar y exportar modelos de visión por ordenador, incluido Ultralytics YOLO11.
Si se encuentra con algún problema durante la instalación o la exportación del modelo, la documentación oficial de Ultralytics y la guía de problemas comunes contienen pasos detallados para la solución de problemas y las mejores prácticas para ayudarle a ponerse en marcha sin problemas.
Paso 2: Exportando Ultralytics YOLO11
Tras instalar el paquete Ultralytics, puede cargar una variante del modelo YOLO11 y exportarla al formato ExecuTorch. Por ejemplo, puede utilizar un modelo preentrenado como "yolo11n.pt" y exportarlo llamando a la función export con el formato configurado como "executorch".
Esto crea un directorio llamado "yolo11n_executorch_model", que incluye el archivo del modelo optimizado (.pte) y un archivo YAML de metadatos independiente que contiene detalles importantes como el tamaño de la imagen y los nombres de las clases.
Aquí tienes el código para exportar tu modelo:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="executorch")
Paso 3: Ejecución de inferencias tras exportar el modelo
Una vez exportado, el modelo está listo para ser desplegado en dispositivos móviles y de borde utilizando el tiempo de ejecución ExecuTorch. El archivo de modelo .pte exportado puede cargarse en su aplicación para ejecutar la inferencia en tiempo real en el dispositivo sin necesidad de conexión a la nube.
Por ejemplo, el siguiente fragmento de código muestra cómo cargar el modelo exportado y ejecutar la inferencia. Inferencia significa simplemente utilizar un modelo entrenado para hacer predicciones sobre nuevos datos. En este caso, el modelo se prueba con una imagen de un autobús tomada de una URL pública.
Tras ejecutar el código, encontrará la imagen de salida con los objetos detectados guardada en la carpeta "runs/detect/predict".
Fig. 2. Detección de objetos utilizando un modelo YOLO11 exportado en formato ExecuTorch.
Ventajas de la integración de ExecuTorch
Mientras explora las diferentes opciones de exportación soportadas por Ultralytics, puede que se pregunte qué hace que la integración de ExecuTorch sea única. La diferencia clave es lo bien que combina el rendimiento, la simplicidad y la flexibilidad, lo que facilita la implementación de potentes modelos de IA directamente en dispositivos móviles y periféricos.
He aquí algunas de las principales ventajas de utilizar la integración de ExecuTorch:
Opciones de despliegue flexibles: Los modelos de ExecuTorch se pueden implementar en aplicaciones móviles, sistemas integrados, dispositivos IoT (Internet de las cosas) y hardware de IA de borde especializado. Esta flexibilidad permite a los desarrolladores crear soluciones de IA escalables con un rendimiento uniforme en diversas plataformas y entornos.
Rendimiento probado: Las pruebas realizadas en dispositivos como la Raspberry Pi 5 demuestran que los modelos YOLO11 exportados al formato ExecuTorch funcionan aproximadamente el doble de rápido que sus homólogos PyTorch, con una precisión casi idéntica.
API de integración flexible: ExecuTorch proporciona API de C++, Kotlin y Objective-C para iOS, Android y Linux embebido, lo que permite a los desarrolladores integrar modelos YOLO directamente en aplicaciones nativas.
Compatibilidad con aceleración de hardware: ExecuTorch admite múltiples backends de aceleración de hardware, incluidos Vulkan y Metal para GPU móviles, con integración opcional para OpenCL y otras API específicas de proveedores. También puede aprovechar aceleradores dedicados, como NPU y DSP, para lograr aumentos de velocidad sustanciales con respecto a la inferencia solo en CPU.
Aplicaciones reales de YOLO11 y la exportación de ExecuTorch
Recientemente, Ultralytics fue reconocida como una historia de éxito de PyTorch ExecuTorch, destacando nuestro apoyo temprano para la inferencia en el dispositivo y las contribuciones en curso al ecosistema PyTorch. Este reconocimiento refleja un objetivo compartido de hacer que la IA de alto rendimiento sea más accesible en plataformas móviles y periféricas.
De la nube al límite: Cómo ExecuTorch y YOLO11 dan vida a Vision AI
En la práctica, esto se parece a las soluciones Vision AI del mundo real que funcionan con eficacia en todo tipo de dispositivos, desde teléfonos inteligentes hasta sistemas integrados. Por ejemplo, en la industria manufacturera, los dispositivos de vanguardia desempeñan un papel crucial en la supervisión de las líneas de producción y la detección de defectos en tiempo real.
Fig. 3. Ejemplo de utilización de YOLO11 para analizar una cadena de montaje.(Fuente)
En lugar de enviar imágenes o datos de sensores a la nube para su procesamiento, lo que puede introducir retrasos y depender de la conectividad a Internet, la integración de ExecuTorch permite que los modelos YOLO11 se ejecuten directamente en el hardware local. Esto significa que las fábricas pueden detectar problemas de calidad al instante, reducir el tiempo de inactividad y mantener la privacidad de los datos, todo ello con recursos informáticos limitados.
He aquí otros ejemplos de cómo se pueden aplicar la integración de ExecuTorch y los modelos YOLO de Ultralytics:
Ciudades inteligentes: Mediante la ejecución local de modelos YOLO11 con ExecuTorch, las ciudades pueden tomar decisiones más rápidas basadas en datos, desde la detección de atascos hasta la identificación de peligros, mejorando la movilidad y la seguridad en general.
Comercio minorista y almacenamiento: Con la inferencia en el dispositivo, los minoristas pueden automatizar la supervisión de estanterías, realizar un seguimiento del inventario e inspeccionar paquetes de forma rápida y segura sin depender de conexiones en la nube.
Robótica y drones: Los modelos YOLO11 optimizados para bordes permiten a robots y drones reconocer objetos, navegar por entornos y tomar decisiones en tiempo real incluso sin acceso a Internet.
Fig. 4. Detección y recuento de coches en el tráfico mediante YOLO11(Fuente)
Conclusiones clave
La exportación de modelos Ultralytics YOLO al formato ExecuTorch facilita el despliegue de modelos de visión por ordenador en muchos dispositivos, incluidos smartphones, tabletas y sistemas integrados como Raspberry Pi. Esto significa que es posible ejecutar inferencia optimizada en el dispositivo sin depender de la conectividad en la nube, lo que mejora la velocidad, la privacidad y la fiabilidad.
Junto con ExecuTorch, Ultralytics admite una amplia gama de integraciones, como TensorRT, OpenVINO y CoreML, entre otras, lo que ofrece a los desarrolladores la flexibilidad necesaria para ejecutar sus modelos en distintas plataformas. A medida que crece la adopción de Vision AI, estas integraciones simplifican el despliegue de sistemas inteligentes creados para funcionar eficazmente en condiciones reales.