Optimización de los modelos YOLO de Ultralytics con la integración de TensorRT

Abirami Vina

5 minutos de lectura

20 de mayo de 2025

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

Imaginemos un coche autónomo 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 datos visuales, desempeña un papel fundamental. Para que las soluciones de visión computerizada funcionen de forma fiable en entornos reales, a menudo necesitan 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, que utiliza dispositivos especializados como las unidades de procesamiento gráfico (GPU ) para ejecutar los modelos con mayor rapidez. Las GPU NVIDIA son especialmente conocidas para este tipo de tareas, gracias a su capacidad para proporcionar 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 al máximo la capacidad de los dispositivos de hardware. Para obtener el máximo rendimiento con un hardware específico, es necesario compilar el modelo para que utilice el conjunto de instrucciones específico 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ón TensorRT soportada por Ultralytics y veremos cómo 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 son realmente importantes, como los coches autónomos 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 sus modelos se ejecutan con baja latencia y pueden manejar un mayor rendimiento.

La integración de TensorRT con Ultralytics optimiza el 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 se traduce 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 discutir cómo se puede exportar YOLO11 utilizando la integración TensorRT, echemos un vistazo a algunas características clave del formato del modelo TensorRT:

  • Fácil integración con frameworks: 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 desarrollar motores de IA de alta velocidad en plataformas como Jetson, NVIDIA DRIVE y centros de datos.
  • Implantación escalable con Triton: Los modelos optimizados en el formato TensorRT pueden implementarse a escala utilizando el servidor de inferencia NVIDIA Triton, que mejora la eficiencia gracias a funciones como la agrupación de entradas, la ejecución simultánea de modelos, el soporte de conjuntos de modelos y la transmisión de audio y vídeo en tiempo real.
  • Flexible en todos los dispositivos: Desde pequeños dispositivos 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. Veamos los pasos que hay que seguir.

Para empezar, puede instalar el paquete Ultralytics Python utilizando un gestor de paquetes como "pip". Para ello, ejecute el comando "pip install ultralytics" en el símbolo del sistema o en el terminal.

Tras instalar correctamente el paquete Python de Ultralytics, podrá 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. Si durante la instalación del paquete encuentra alguna dificultad, puede consultar la guía de problemas comunes para obtener 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 pre-entrenada del modelo YOLO11 (yolo11n.pt) y lo exporta como un archivo de motor TensorRT (yolo11n.engine), dejándolo listo para su implementación en dispositivos NVIDIA.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="engine") 

Después de convertir su modelo al formato TensorRT, puede 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 realizar 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)

Al ejecutar 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 de TensorRT

El paquete Python de Ultralytics soporta varias integraciones que permiten exportar modelos YOLO a diferentes formatos como TorchScript, CoreML, ONNX y TensorRT. Entonces, ¿cuándo debería 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 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 el despliegue.
  • 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 de los modelos YOLO exportados a INT8 pueden consumir menos energía en comparación con los modelos FP32, lo que resulta especialmente beneficioso para dispositivos alimentados por batería como drones, smartphones o dispositivos de borde.
  • Mayor rendimiento: 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 modelos YOLO de 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 los 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 exclusivamente de los empleados puede ralentizar las operaciones y provocar la frustración de los clientes, especialmente en las cajas. Las largas colas son un inconveniente tanto para los compradores como para los propietarios de las tiendas. Las cajas inteligentes son una gran solución a este problema.

Estos contadores utilizan visión por ordenador y GPU para acelerar el proceso, lo que ayuda a reducir los tiempos de espera. La visión por computador 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 se adaptan bien a las configuraciones de tiendas inteligentes que utilizan dispositivos de hardware compactos pero potentes como el NVIDIA Jetson Nano, diseñado específicamente para aplicaciones de IA en los bordes.

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 problemas con rapidez y precisión, reduciendo 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, hay que tener en cuenta algunas limitaciones:

  • Ligera disminución de la precisión: Al exportar el 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 objetos (puntuaciones mAP) podrían disminuir ligeramente. Esto se puede mitigar utilizando un conjunto de datos representativo durante la cuantización. 
  • Mayor complejidad de depuración: Las optimizaciones realizadas por TensorRT pueden dificultar la localización de errores o la comprensión de comportamientos inesperados, especialmente cuando se comparan los resultados con el modelo original.
  • Sensibilidad al tamaño del lote: Las mejoras de rendimiento de TensorRT son más pronunciadas con tamaños de lote mayores. Para aplicaciones que procesan imágenes individuales o lotes pequeños, las mejoras de rendimiento pueden ser menos significativas.

Principales conclusiones

La exportación de los modelos YOLO de Ultralytics al formato TensorRT hace que se ejecuten de forma mucho 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, la alimentación de sistemas de pago inteligentes o la supervisión de zonas urbanas muy transitadas. 

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

¿Quieres saber más sobre IA? Explore nuestro repositorio de GitHub, conecte con nuestra comunidad y consulte nuestras opciones de licencia para poner en marcha su proyecto de visión por ordenador. Obtenga más información sobre innovaciones como la IA en la fabricación y la visión por ordenador en el sector logístico en nuestras páginas de soluciones.

¡Construyamos juntos el futuro
de la IA!

Comience su viaje con el futuro del aprendizaje automático

Empezar gratis
Enlace copiado en el portapapeles