Cheque verde
Enlace copiado en el portapapeles

Optimización de los modelosYOLO Ultralytics con la integración de TensorRT

Aprende a exportar modelos Ultralytics YOLO utilizando la integración TensorRT para obtener un rendimiento de IA más rápido y eficiente en las GPU NVIDIA para aplicaciones en tiempo real.

Piensa en un coche autoconducido que circula por una calle muy transitada con sólo milisegundos para detectar a un peatón que se baja del bordillo. Al mismo tiempo, podría tener que 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 estas situaciones, la velocidad y las respuestas en tiempo real son fundamentales.

Aquí es donde la inteligencia artificial (IA), concretamente la visión por ordenador, una rama de la IA que ayuda a las máquinas a interpretar los datos visuales, desempeña un papel clave. Para que las soluciones de visión por ordenador funcionen de forma fiable en entornos reales, a menudo tienen que procesar la información con rapidez, gestionar varias tareas a la vez y utilizar la memoria de forma eficiente.

Una forma de conseguirlo es mediante la aceleración por hardware, utilizando dispositivos especializados como las unidades de procesamiento gráfico (GPU) para ejecutar los modelos más rápidamente. Las GPUs NVIDIA son especialmente conocidas para este tipo de 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 IA de visión suelen requerir optimización para aprovechar plenamente las capacidades de los dispositivos de hardware. Para conseguir el máximo rendimiento con un hardware específico, tenemos que compilar el modelo para que utilice el conjunto específico de instrucciones del hardware.

Por ejemplo, TensorRT es una biblioteca de optimización y formato de exportación desarrollada por NVIDIA para mejorar el rendimiento en máquinas de gama alta. 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 forma óptima en varios dispositivos NVIDIA .

En este artículo, exploraremos la integraciónTensorRT soportada por Ultralytics y veremos cómo puedes exportar tu modelo YOLO11 para una implementación más rápida y eficiente en hardware NVIDIA . ¡Vamos a empezar!

Visión general de TensorRT

TensorRT es un conjunto de herramientas desarrollado por NVIDIA para ayudar a los modelos de IA a ejecutarse con mayor rapidez y eficiencia en las GPU NVIDIA . Está diseñado para aplicaciones del mundo real en las que la velocidad y el rendimiento realmente importan, como los coches autoconducidos y el control de calidad en la industria manufacturera y farmacéutica. 

TensorRT incluye herramientas como compiladores y optimizadores de modelos que pueden trabajar entre bastidores para asegurarse de que tus modelos se ejecutan con baja latencia y pueden manejar un mayor rendimiento.

La integración de TensorRT que admite Ultralytics funciona optimizando tu modelo YOLO para que se ejecute de forma más eficiente en las GPU mediante métodos como la reducción de la precisión. Esto se refiere al uso de formatos de bits más bajos, como punto flotante de 16 bits (FP16) o 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. Un vistazo a la técnica de fusión de capas de TensorRT.

Características principales del formato de exportación TensorRT

Antes de hablar de cómo puedes exportar YOLO11 utilizando la integración TensorRT , echemos un vistazo a algunas características clave del formato del modelo TensorRT :

  • Fácil integración de marcos: TensorRT admite la integración directa con marcos 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.
  • Despliegue escalable con Triton: Los modelos optimizados en el formato TensorRT pueden implantarse a escala utilizando el Servidor de InferenciaNVIDIA Triton , que mejora la eficiencia mediante funciones como la dosificación de entradas, 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 de borde hasta potentes servidores, TensorRT funciona en todo el ecosistema NVIDIA , soportando herramientas como DeepStream para vídeo, Riva para IA de voz y otras para ciberseguridad, recomendaciones y más.

¿Cómo funciona la integración TensorRT ?

Exportar modelos Ultralytics YOLO como Ultralytics YOLO11 al formato de modelos TensorRT es fácil. Veamos los pasos que hay que seguir.

Para empezar, puedes instalar 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.

Tras instalar correctamente el paquetePython Ultralytics , podrás entrenar, probar, ajustar, exportar y desplegar modelos para diversas tareas de visión por ordenador, como la detección de objetos, la clasificación y la segmentación de instancias. Mientras instalas el paquete, si te encuentras con alguna dificultad, puedes consultar la guía de Problemas comunes para encontrar soluciones y consejos.

Para el siguiente paso, necesitarás un dispositivo NVIDIA . Utiliza el siguiente fragmento de código para cargar y exportar YOLOv11 al formato de modelo TensorRT . Carga una variante nano preentrenada del modelo YOLO11 (yolo11n.pt) y expórtala como un archivo de motor TensorRT (yolo11n.engine), preparándolo para su implantació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 desplegarlo para diversas aplicaciones. 

El siguiente ejemplo muestra cómo cargar el modelo YOLO11 exportado (yolo11n.engine) y ejecutar una inferencia con él. La inferencia consiste en utilizar el modelo entrenado para hacer predicciones sobre nuevos datos. En este caso, utilizaremos una imagen de entrada de un perro para probar el modelo. 

tensorrt_model = YOLO("yolo11n.engine")

results = tensorrt_model("https://images.pexels.com/photos/1254140/pexels-photo-1254140.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2.jpg", save=True)

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

Fig 3. Resultado de ejecutar una inferencia utilizando el modelo YOLO11 exportado en formato TensorRT .

Cuándo aprovechar la integración TensorRT

El paquetePython Ultralytics admite varias integraciones que permiten exportar modelos YOLO a distintos formatos, como TorchScript, CoreML, ONNX y TensorRT. Entonces, ¿cuándo deberías optar por utilizar la integración TensorRT ?

He aquí algunos factores que diferencian el formato del modelo TensorRT de otras opciones de integración de exportaciones:

  • Menor tamaño del modelo: Exportar un modelo YOLO al formato TensorRT con precisión INT8 puede reducir significativamente el tamaño del modelo. La cuantización de FP32 a INT8 puede conducir a una reducción de 4 veces 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 el despliegue.
  • Menor consumo de energía: La cuantización INT8 no sólo reduce el tamaño del modelo, sino que también disminuye el consumo de energía. Las operaciones de precisión reducida de los modelos YOLO exportados por INT8 pueden consumir menos energía en comparación con los modelos FP32, lo que es especialmente beneficioso para dispositivos alimentados por batería como drones, smartphones o dispositivos de borde.
  • Rendimiento más rápido: La combinación de la arquitectura eficiente de YOLO con la optimización INT8 de TensorRT puede mejorar la velocidad de inferencia.

Aplicaciones de YOLO11 y del formato de modelo TensorRT

Los modelosYOLO Ultralytics exportados al formato TensorRT pueden desplegarse en una amplia gama de escenarios del mundo real. Estos modelos optimizados son especialmente útiles cuando el rendimiento rápido y eficiente de la IA es clave. Exploremos algunos ejemplos interesantes de cómo pueden utilizarse.

Cajas inteligentes en comercios

Una amplia gama de tareas en las tiendas minoristas, como escanear códigos de barras, pesar productos o empaquetar artículos, siguen siendo realizadas manualmente por el personal. Sin embargo, depender únicamente de los empleados puede ralentizar las operaciones y provocar la frustración de los clientes, especialmente en la caja. Las largas colas son un inconveniente tanto para los compradores como para los propietarios de las tiendas. Las cajas automáticas inteligentes son una gran solución a este problema.

Estos contadores utilizan la visión por ordenador y las GPU para acelerar el proceso, ayudando a reducir los tiempos de espera. La visión por ordenador permite a estos sistemas ver y comprender su entorno mediante 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 se adaptan bien a las configuraciones de los comercios inteligentes que utilizan dispositivos de hardware compactos pero potentes como el NVIDIA Jetson Nano, diseñado específicamente para aplicaciones de IA de borde.

Fig. 4. Ejemplo de caja inteligente.

Detección automatizada de defectos en la fabricación

Un modelo de visión por ordenador como YOLO11 puede entrenarse 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 desplazan por las cintas transportadoras, las cámaras captan 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 los problemas con rapidez y precisión, 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 envases médicos. De hecho, el mercado mundial de sistemas inteligentes de detección de defectos crecerá hasta alcanzar los 5.000 millones de dólares en 2026.

Fig. 5. Utilización de YOLO para detectar defectos en la industria farmacéutica.

Consideraciones a tener en cuenta al utilizar TensorRT

Aunque la integración de TensorRT aporta muchas ventajas, como una mayor velocidad de inferencia y una latencia reducida, debes tener en cuenta algunas limitaciones:

  • Ligero descenso de 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 recuperación y lo bien que el modelo detecta los objetos (puntuaciones mAP) podrían disminuir ligeramente. Esto puede mitigarse utilizando un conjunto de datos representativo durante la cuantización. 
  • Mayor complejidad de depuración: Las optimizaciones realizadas por TensorRT pueden hacer más difícil rastrear errores o comprender comportamientos inesperados, especialmente cuando se comparan los resultados con el modelo original.
  • Sensibilidad al tamaño del lote: Las mejoras de rendimiento deTensorRT son más pronunciadas con tamaños de lote mayores. Para las aplicaciones que procesan imágenes individuales o lotes pequeños, las mejoras de rendimiento pueden ser menos significativas.

Puntos clave

La exportación de los modelosYOLO Ultralytics al formato TensorRT hace que se ejecuten con mucha más rapidez y eficacia, lo que los hace ideales para tareas en tiempo real como la detección de defectos en fábricas, la alimentación de sistemas de caja inteligentes o la vigilancia de zonas urbanas muy concurridas. 

Esta optimización ayuda a que los modelos funcionen mejor en las GPUs NVIDIA acelerando las predicciones y reduciendo el uso de memoria y energía. Aunque existen algunas limitaciones, el aumento de rendimiento hace que la integración de TensorRT sea una gran elección para cualquiera que esté construyendo sistemas de visión computerizada de alta velocidad en hardware NVIDIA .

¿Quieres saber más sobre IA? Explora nuestro repositorio de GitHub, conéctate con nuestra comunidad y consulta nuestras opciones de licencia para poner en marcha tu proyecto de visión por ordenador. Obtén más información sobre innovaciones como la IA en la fabricación y la visión por ordenador en la industria logística en nuestras páginas de soluciones.

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