Ultralytics YOLO26 en NVIDIA Jetson usando DeepStream SDK y TensorRT
Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀
Esta guía exhaustiva proporciona un recorrido detallado para implementar Ultralytics YOLO26 en NVIDIA Jetson dispositivos usando DeepStream SDK y TensorRT. Aquí usamos TensorRT para maximizar el rendimiento de la inferencia en la plataforma Jetson.

Esta guía ha sido probada con NVIDIA Jetson Orin Nano Super Developer Kit ejecutando la versión estable más reciente de JetPack de JP6.1, Seeed Studio reComputer J4012 que se basa en NVIDIA Jetson Orin NX 16GB ejecutando la versión de JetPack de JP5.1.3 y Seeed Studio reComputer J1020 v2 que se basa en NVIDIA Jetson Nano 4GB ejecutando la versión de JetPack de JP4.6.4. Se espera que funcione en toda la gama de hardware NVIDIA Jetson, incluyendo los últimos modelos y los antiguos.
¿Qué es NVIDIA DeepStream?
NVIDIA DeepStream SDK es un kit de herramientas completo de análisis de streaming basado en GStreamer para el procesamiento multisensor, vídeo, audio y comprensión de imágenes basado en IA. Es ideal para desarrolladores de visión artificial, socios de software, startups y OEMs que crean aplicaciones y servicios de IVA (Intelligent Video Analytics). Ahora puedes crear pipelines de procesamiento de flujo que incorporen redes neuronales y otras tareas de procesamiento complejas como seguimiento, codificación/decodificación de vídeo y renderizado de vídeo. Estos pipelines permiten realizar análisis en tiempo real sobre datos de vídeo, imágenes y sensores. El soporte multiplataforma de DeepStream te ofrece una forma más rápida y sencilla de desarrollar aplicaciones y servicios de visión artificial en entornos locales, en el borde y en la nube.
Requisitos previos
Antes de empezar a seguir esta guía:
- Visita nuestra documentación, Guía de inicio rápido: NVIDIA Jetson con Ultralytics YOLO26 para configurar tu dispositivo NVIDIA Jetson con Ultralytics YOLO26
- Instala DeepStream SDK según la versión de JetPack
- Para JetPack 4.6.4, instala DeepStream 6.0.1
- Para JetPack 5.1.3, instala DeepStream 6.3
- Para JetPack 6.1, instala DeepStream 7.1
- Para JetPack 7.1, instala DeepStream 9.0
En esta guía hemos utilizado el método de paquetes Debian para instalar DeepStream SDK en el dispositivo Jetson. También puedes visitar DeepStream SDK en Jetson (Archivado) para acceder a versiones antiguas de DeepStream.
Configuración de DeepStream para YOLO26
Aquí estamos usando el repositorio de GitHub marcoslucianops/DeepStream-Yolo el cual incluye soporte para NVIDIA DeepStream SDK para modelos YOLO. ¡Agradecemos el esfuerzo de marcoslucianops por sus contribuciones!
-
Instala Ultralytics con las dependencias necesarias
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim -
Clona el repositorio DeepStream-Yolo
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo -
Copia el archivo
export_yolo26.pydesde el directorioDeepStream-Yolo/utilsa la carpetaultralyticsfoldercp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
Descarga el modelo de detección Ultralytics YOLO26 (.pt) de tu elección desde lanzamientos de YOLO26. Aquí usamos yolo26s.pt.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
También puedes usar un modelo YOLO26 entrenado a medida.
-
Convierte el modelo a ONNX
python3 export_yolo26.py -w yolo26s.pt
Para DeepStream 5.1, elimina el argumento --dynamic y usa opset 12 o menos. El valor predeterminado de opset es 17.
--opset 12Para cambiar el tamaño de inferencia (predeterminado: 640)
-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTHEjemplo para 1280:
-s 1280
or
-s 1280 1280Para simplificar el modelo ONNX (DeepStream >= 6.0)
--simplifyPara usar un tamaño de lote dinámico (DeepStream >= 6.1)
--dynamicPara usar un tamaño de lote estático (ejemplo para batch-size = 4)
--batch 4-
Copia el archivo de modelo
.onnxgenerado y el archivolabels.txta la carpetaDeepStream-Yolofoldercp yolo26s.pt.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo -
Establece la versión de CUDA según la versión de JetPack instalada
Para JetPack 4.6.4:
export CUDA_VER=10.2Para JetPack 5.1.3:
export CUDA_VER=11.4Para JetPack 6.1:
export CUDA_VER=12.6 -
Compila la biblioteca
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Edita el archivo
config_infer_primary_yolo26.txtsegún tu modelo (para YOLO26s con 80 clases)[property] ... onnx-file=yolo26s.pt.onnx ... num-detected-classes=80 ... -
Edita el archivo
deepstream_app_configarchivo... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
También puedes cambiar la fuente de vídeo en el archivo
deepstream_app_config. Aquí se carga un archivo de vídeo predeterminado... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
Ejecuta la inferencia
deepstream-app -c deepstream_app_config.txtLlevará bastante tiempo generar el archivo del motor de TensorRT antes de iniciar la inferencia. Por favor, sé paciente.

Si quieres convertir el modelo a precisión FP16, simplemente establece model-engine-file=model_b1_gpu0_fp16.engine y network-mode=2 dentro de config_infer_primary_yolo26.txt
Calibración INT8
Si quieres usar precisión INT8 para la inferencia, debes seguir los pasos a continuación:
Actualmente INT8 no funciona con TensorRT 10.x. Esta sección de la guía ha sido probada con TensorRT 8.x, con el cual debería funcionar.
-
Establece la variable de entorno
OPENCVenvironment variableexport OPENCV=1 -
Compila la biblioteca
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Para el conjunto de datos COCO, descarga val2017, extráelo y muévelo a
DeepStream-Yolofolder -
Crea un nuevo directorio para las imágenes de calibración
mkdir calibration -
Ejecuta lo siguiente para seleccionar 1000 imágenes aleatorias del conjunto de datos COCO para realizar la calibración
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
NVIDIA recomienda al menos 500 imágenes para obtener una buena precisión. En este ejemplo, se eligen 1000 imágenes para obtener una mayor precisión (más imágenes = más precisión). Puedes establecerlo desde head -1000. Por ejemplo, para 2000 imágenes, head -2000. Este proceso puede llevar mucho tiempo.
-
Crea el archivo
calibration.txtcon todas las imágenes seleccionadasrealpath calibration/*jpg > calibration.txt -
Establece las variables de entorno
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
Valores más altos de INT8_CALIB_BATCH_SIZE resultarán en una mayor precisión y una velocidad de calibración más rápida. Establécelo según la memoria de tu GPU.
-
Actualiza el
config_infer_primary_yolo26.txtarchivoDesde
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...Para
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
Ejecuta la inferencia
deepstream-app -c deepstream_app_config.txtConfiguración de MultiStream
Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀
Para configurar múltiples flujos bajo una única aplicación DeepStream, realiza los siguientes cambios en el deepstream_app_config.txt:
-
Cambia las filas y columnas para crear una visualización en cuadrícula según el número de flujos que desees tener. Por ejemplo, para 4 flujos, podemos añadir 2 filas y 2 columnas.
[tiled-display] rows=2 columns=2 -
Establece la variable de entorno
num-sources=4y añade lasurientradas para los cuatro flujos.[source0] enable=1 type=3 uri=path/to/video1.jpg uri=path/to/video2.jpg uri=path/to/video3.jpg uri=path/to/video4.jpg num-sources=4
Ejecuta la inferencia
deepstream-app -c deepstream_app_config.txt
Resultados de los benchmarks
Los siguientes benchmarks resumen cómo funcionan los modelos YOLO26 en diferentes niveles de precisión de TensorRT con un tamaño de entrada de 640x640 en NVIDIA Jetson Orin NX 16GB.
Gráfico comparativo

Tabla comparativa detallada
| Formato | Estado | Tiempo de inferencia (ms/im) |
|---|---|---|
| TensorRT (FP32) | ✅ | 8.64 |
| TensorRT (FP16) | ✅ | 5.27 |
| TensorRT (INT8) | ✅ | 4.54 |
Agradecimientos
Esta guía fue creada originalmente por nuestros amigos de Seeed Studio, Lakshantha y Elaine.
Preguntas frecuentes
¿Cómo configuro Ultralytics YOLO26 en un dispositivo NVIDIA Jetson?
Para configurar Ultralytics YOLO26 en un NVIDIA Jetson dispositivo, primero necesitas instalar el DeepStream SDK compatible con tu versión de JetPack. Sigue la guía paso a paso en nuestra Guía de inicio rápido para configurar tu NVIDIA Jetson para la implementación de YOLO26.
¿Cuál es la ventaja de usar TensorRT con YOLO26 en NVIDIA Jetson?
El uso de TensorRT con YOLO26 optimiza el modelo para la inferencia, reduciendo significativamente la latencia y mejorando el rendimiento en dispositivos NVIDIA Jetson. TensorRT proporciona una inferencia deep learning de alto rendimiento y baja latencia mediante la fusión de capas, la calibración de precisión y el ajuste automático del kernel. Esto conduce a una ejecución más rápida y eficiente, especialmente útil para aplicaciones en tiempo real como el análisis de vídeo y las máquinas autónomas.
¿Puedo ejecutar Ultralytics YOLO26 con DeepStream SDK en diferentes hardware de NVIDIA Jetson?
Sí, la guía para implementar Ultralytics YOLO26 con DeepStream SDK y TensorRT es compatible con toda la línea NVIDIA Jetson. Esto incluye dispositivos como Jetson Orin NX 16GB con JetPack 5.1.3 y Jetson Nano 4GB con JetPack 4.6.4. Consulta la sección Configuración de DeepStream para YOLO26 para obtener pasos detallados.
¿Cómo puedo convertir un modelo YOLO26 a ONNX para DeepStream?
Para convertir un modelo YOLO26 al formato ONNX para su implementación con DeepStream, usa el utils/export_yolo26.py script del DeepStream-Yolo repositorio.
Aquí tienes un comando de ejemplo:
python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplifyPara obtener más detalles sobre la conversión de modelos, consulta nuestra sección de exportación de modelos.
¿Cuáles son los benchmarks de rendimiento para YOLO en NVIDIA Jetson Orin NX?
El rendimiento de los modelos YOLO26 en NVIDIA Jetson Orin NX 16GB varía según los niveles de precisión de TensorRT. Por ejemplo, los modelos YOLO26s logran:
- Precisión FP32: 14.6 ms/im, 68.5 FPS
- Precisión FP16: 7.94 ms/im, 126 FPS
- Precisión INT8: 5.95 ms/im, 168 FPS
Estos benchmarks subrayan la eficiencia y capacidad de usar modelos YOLO26 optimizados con TensorRT en hardware NVIDIA Jetson. Para más detalles, consulta nuestra Resultados de los benchmarks.