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
Aprenda a exportar modelos Ultralytics YOLO utilizando la integración de TensorRT para un rendimiento de IA más rápido y eficiente en las GPU de NVIDIA para aplicaciones en tiempo real.
Considere un coche autónomo que se mueve por una calle concurrida con solo milisegundos para detectar a un peatón que se baja de la acera. Al mismo tiempo, es posible que necesite reconocer una señal de stop parcialmente oculta por un árbol o reaccionar rápidamente ante un vehículo cercano que se desvía hacia su carril. En tales situaciones, la velocidad y las respuestas en tiempo real son críticas.
Aquí es donde la inteligencia artificial (IA), específicamente la visión artificial, una rama de la IA que ayuda a las máquinas a interpretar datos visuales, juega un papel clave. Para que las soluciones de visión artificial funcionen de manera fiable en entornos del mundo real, a menudo necesitan procesar información rápidamente, manejar múltiples tareas a la vez y usar la memoria de manera eficiente.
Una forma de lograr esto es mediante la aceleración por hardware, utilizando dispositivos especializados como unidades de procesamiento gráfico (GPU) para ejecutar modelos más rápido. Las GPU de NVIDIA son especialmente conocidas por estas tareas, gracias a su capacidad para ofrecer baja latencia y alto rendimiento.
Sin embargo, ejecutar un modelo en una GPU tal cual no siempre garantiza un rendimiento óptimo. Los modelos de Visión Artificial normalmente requieren optimización para aprovechar al máximo las capacidades de los dispositivos de hardware. Para lograr el máximo rendimiento con hardware específico, necesitamos compilar el modelo para usar el conjunto específico de instrucciones para el hardware.
Por ejemplo, TensorRT es un formato de exportación y una biblioteca de optimización desarrollada por NVIDIA para mejorar el rendimiento en máquinas de alta gama. Utiliza técnicas avanzadas para reducir significativamente el tiempo de inferencia manteniendo la precisión.
Fig 1. NVIDIA TensorRT permite que los modelos se ejecuten de manera óptima en varios dispositivos NVIDIA.
En este artículo, exploraremos la integración de TensorRT soportada por Ultralytics y explicaremos cómo puede exportar su modelo YOLO11 para una implementación más rápida y eficiente en hardware NVIDIA. ¡Empecemos!
Una visión general de TensorRT
TensorRT es un conjunto de herramientas desarrollado por NVIDIA para ayudar a que los modelos de IA se ejecuten más rápido y de manera más eficiente en las GPU de NVIDIA. Está diseñado para aplicaciones del mundo real donde la velocidad y el rendimiento realmente importan, como los coches autónomos y el control de calidad en la fabricación y los productos farmacéuticos.
TensorRT incluye herramientas como compiladores y optimizadores de modelos que pueden funcionar en segundo plano para asegurar que tus modelos se ejecuten con baja latencia y puedan manejar un mayor rendimiento.
La integración de TensorRT soportada por Ultralytics funciona optimizando tu modelo YOLO para que se ejecute de forma más eficiente en las GPU utilizando métodos como la reducción de la precisión. Esto se refiere al uso de formatos de bits más bajos, como el punto flotante de 16 bits (FP16) o el entero de 8 bits (INT8), para representar los datos del modelo, lo que reduce el uso de memoria y acelera el cálculo con un impacto mínimo en la precisión.
Además, las capas de redes neuronales compatibles se fusionan en modelos TensorRT optimizados para reducir el uso de memoria, lo que resulta en una inferencia más rápida y eficiente.
Fig 2. Una mirada a la técnica de fusión de capas de TensorRT.
Características principales del formato de exportación TensorRT
Antes de que discutamos cómo puedes exportar YOLO11 usando la integración de TensorRT, echemos un vistazo a algunas características clave del formato de modelo TensorRT:
Fácil integración del framework: TensorRT admite la integración directa con frameworks de IA populares como PyTorch, Hugging Face y ONNX, ofreciendo un rendimiento hasta 6 veces más rápido. También es compatible con MATLAB, lo que permite el desarrollo de motores de IA de alta velocidad en plataformas como Jetson, NVIDIA DRIVE y centros de datos.
Implementación escalable con Triton: Los modelos optimizados en el formato TensorRT se pueden implementar a escala utilizando NVIDIA Triton Inference Server, que mejora la eficiencia a través de características como el procesamiento por lotes de entrada, la ejecución concurrente de modelos, el soporte de conjuntos de modelos y la transmisión de audio/vídeo en tiempo real.
Flexible en todos los dispositivos: Desde pequeños dispositivos edge hasta potentes servidores, TensorRT funciona en todo el ecosistema NVIDIA, y es compatible con herramientas como DeepStream para vídeo, Riva para IA de voz y otras para ciberseguridad, recomendaciones y mucho más.
¿Cómo funciona la integración de TensorRT?
Exportar modelos Ultralytics YOLO como Ultralytics YOLO11 al formato de modelo TensorRT es fácil. Repasemos los pasos involucrados.
Para empezar, puede instalar el paquete de Python de Ultralytics utilizando un gestor de paquetes como ‘pip’. Esto se puede hacer ejecutando el comando “pip install ultralytics” en su símbolo del sistema o terminal.
Después de instalar correctamente el paquete de Python de Ultralytics, puedes entrenar, probar, ajustar, exportar e implementar modelos para diversas tareas de visión artificial, como la detección de objetos, la clasificación y la segmentación de instancias. Si encuentras alguna dificultad al instalar el paquete, puedes consultar la guía de problemas comunes para obtener soluciones y consejos.
Para el siguiente paso, necesitará un dispositivo NVIDIA. Utilice el fragmento de código siguiente para cargar y exportar YOLOv11 al formato de modelo TensorRT. Carga una variante nano preentrenada del modelo YOLO11 (yolo11n.pt) y la exporta como un archivo de motor TensorRT (yolo11n.engine), preparándola para su implementación en dispositivos NVIDIA.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="engine")
Después de convertir tu modelo al formato TensorRT, puedes implementarlo para diversas aplicaciones.
El siguiente ejemplo muestra cómo cargar el modelo YOLO11 exportado (yolo11n.engine) y ejecutar una inferencia con él. La inferencia implica el uso del modelo entrenado para hacer predicciones sobre nuevos datos. En este caso, usaremos una imagen de entrada de un perro para probar el modelo.
Cuando ejecute este código, la siguiente imagen de salida se guardará en la carpeta runs/detect/predict.
Fig. 3. El resultado de ejecutar una inferencia utilizando el modelo YOLO11 exportado en formato TensorRT.
¿Cuándo aprovechar la integración de TensorRT?
El paquete de Python de Ultralytics admite varias integraciones que permiten exportar modelos YOLO a diferentes formatos como TorchScript, CoreML, ONNX y TensorRT. Entonces, ¿cuándo deberías elegir usar la integración de TensorRT?
Aquí hay algunos factores que distinguen el formato de modelo TensorRT de otras opciones de integración de exportación:
Tamaño de modelo más pequeño: Exportar un modelo YOLO al formato TensorRT con precisión INT8 puede reducir significativamente el tamaño del modelo. La cuantificación de FP32 a INT8 puede conducir a una reducción de 4 veces en el tamaño del modelo, lo que permite tiempos de descarga más rápidos, menores requisitos de almacenamiento y una huella de memoria reducida durante la implementación.
Menor consumo de energía: La cuantización INT8 no solo reduce el tamaño del modelo, sino que también disminuye el consumo de energía. Las operaciones de precisión reducida para los modelos YOLO exportados en INT8 pueden consumir menos energía en comparación con los modelos FP32, lo que es especialmente beneficioso para los dispositivos alimentados por baterías como drones, teléfonos inteligentes o dispositivos edge.
Rendimiento más rápido: La combinación de la arquitectura eficiente de YOLO con la optimización INT8 de TensorRT puede mejorar las velocidades de inferencia.
Aplicaciones de YOLO11 y el formato de modelo TensorRT
Los modelos Ultralytics YOLO exportados al formato TensorRT se pueden desplegar en una amplia gama de escenarios del mundo real. Estos modelos optimizados son especialmente útiles donde el rendimiento de la IA rápido y eficiente es clave. Exploremos algunos ejemplos interesantes de cómo se pueden utilizar.
Cajas de pago inteligentes en tiendas minoristas
Una amplia gama de tareas en las tiendas minoristas, como escanear códigos de barras, pesar productos o empaquetar artículos, todavía son realizadas manualmente por el personal. Sin embargo, depender únicamente de los empleados puede ralentizar las operaciones y generar frustración en los clientes, especialmente en la caja. Las largas colas son un inconveniente tanto para los compradores como para los dueños de las tiendas. Los mostradores de autopago inteligentes son una excelente solución a este problema.
Estos contadores utilizan visión artificial y GPU para acelerar el proceso, lo que ayuda a reducir los tiempos de espera. La visión artificial permite a estos sistemas ver y comprender su entorno a través de tareas como la detección de objetos. Los modelos avanzados como YOLO11, cuando se optimizan con herramientas como TensorRT, pueden ejecutarse mucho más rápido en dispositivos GPU.
Estos modelos exportados son muy adecuados para configuraciones de venta minorista inteligente que utilizan dispositivos de hardware compactos pero potentes como la NVIDIA Jetson Nano, diseñada específicamente para aplicaciones de IA en el borde.
Fig 4. Un ejemplo de un mostrador de pago inteligente.
Detección automatizada de defectos en la fabricación
Un modelo de visión artificial como YOLO11 puede ser entrenado a medida para detectar productos defectuosos en la industria manufacturera. Una vez entrenado, el modelo puede exportarse al formato TensorRT para su despliegue en instalaciones equipadas con sistemas de IA de alto rendimiento.
A medida que los productos se mueven a lo largo de las cintas transportadoras, las cámaras capturan imágenes y el modelo YOLO11, que se ejecuta en formato TensorRT, las analiza en tiempo real para detectar defectos. Esta configuración permite a las empresas detectar problemas de forma rápida y precisa, reduciendo los errores y mejorando la eficiencia.
Del mismo modo, industrias como la farmacéutica están utilizando este tipo de sistemas para identificar defectos en el envasado de medicamentos. De hecho, se prevé que el mercado mundial de sistemas inteligentes de detección de defectos alcance los 5.000 millones de dólares en 2026.
Fig. 5. Uso de YOLO para detectar defectos en la industria farmacéutica.
Consideraciones a tener en cuenta al usar TensorRT
Si bien la integración de TensorRT aporta muchas ventajas, como velocidades de inferencia más rápidas y una latencia reducida, estas son algunas de las limitaciones que hay que tener en cuenta:
Ligera caída en la precisión: Cuando exportas tu modelo en formato TensorRT, es posible que el modelo exportado no sea tan preciso como el original. Las métricas de rendimiento como la precisión, la exhaustividad y la calidad con la que el modelo detecta objetos (puntuaciones mAP) podrían disminuir ligeramente. Esto se puede mitigar utilizando un conjunto de datos representativo durante la cuantificación.
Mayor complejidad de depuración: Las optimizaciones realizadas por TensorRT pueden dificultar el rastreo de errores o la comprensión de comportamientos inesperados, especialmente al comparar los resultados con el modelo original.
Sensibilidad al tamaño del lote: Las ganancias de rendimiento de TensorRT son más pronunciadas con tamaños de lote más grandes. Para las aplicaciones que procesan imágenes individuales o lotes pequeños, las mejoras de rendimiento podrían ser menos significativas.
Conclusiones clave
Exportar modelos Ultralytics YOLO al formato TensorRT hace que se ejecuten de forma significativamente más rápida y eficiente, lo que los hace ideales para tareas en tiempo real como la detección de defectos en fábricas, el funcionamiento de sistemas de pago inteligentes o la supervisión de áreas urbanas concurridas.
Esta optimización ayuda a que los modelos funcionen mejor en las GPU de NVIDIA al acelerar las predicciones y reducir el uso de memoria y energía. Si bien existen algunas limitaciones, el aumento del rendimiento hace que la integración de TensorRT sea una excelente opción para cualquiera que construya sistemas de visión artificial de alta velocidad en hardware de NVIDIA.