Ultralytics YOLO11 en NVIDIA Jetson utilizando DeepStream SDK y TensorRT
Observa: C贸mo ejecutar m煤ltiples flujos con DeepStream SDK en Jetson Nano utilizando Ultralytics YOLO11
Esta completa gu铆a proporciona un recorrido detallado para implementar Ultralytics YOLO11 en NVIDIA dispositivos Jetson utilizando DeepStream SDK y TensorRT. Aqu铆 utilizamos TensorRT para maximizar el rendimiento de la inferencia en la plataforma Jetson.
Nota
Esta gu铆a ha sido probada tanto con Seeed Studio reComputer J4012 que est谩 basado en NVIDIA Jetson Orin NX 16GB ejecutando JetPack JP5.1.3 como con Seeed Studio reComputer J1020 v2 que est谩 basado en NVIDIA Jetson Nano 4GB ejecutando JetPack JP4.6.4. Se espera que funcione en toda la gama de hardware Jetson, incluyendo los m谩s recientes y los heredados. Se espera que funcione en toda la gama de hardware NVIDIA Jetson, incluyendo los m谩s recientes y los heredados.
驴Qu茅 es NVIDIA DeepStream?
NVIDIADeepStream SDK es un completo kit de herramientas de an谩lisis de streaming basado en GStreamer para el procesamiento multisensor basado en IA y la comprensi贸n de v铆deo, audio e im谩genes. Es ideal para desarrolladores de IA de visi贸n, socios de software, nuevas empresas y fabricantes de equipos originales que crean aplicaciones y servicios de IVA (an谩lisis inteligente de v铆deo). Ahora puede crear canales de procesamiento de flujos que incorporen redes neuronales y otras tareas de procesamiento complejas como el seguimiento, la codificaci贸n y descodificaci贸n de v铆deo y el renderizado de v铆deo. Estos canales permiten el an谩lisis en tiempo real de datos de v铆deo, im谩genes y sensores. La compatibilidad multiplataforma de DeepStream le ofrece una forma m谩s r谩pida y sencilla de desarrollar aplicaciones y servicios de IA de visi贸n in situ, en el per铆metro 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 YOLO11 para configurar su dispositivo NVIDIA Jetson con Ultralytics YOLO11
-
Instale DeepStream SDK seg煤n la versi贸n de JetPack
- Para JetPack 4.6.4, instale DeepStream 6.0.1
- Para JetPack 5.1.3, instale DeepStream 6.3
Consejo
En esta gu铆a hemos utilizado el m茅todo del paquete Debian para instalar DeepStream SDK en el dispositivo Jetson. Tambi茅n puedes visitar DeepStream SDK on Jetson (Archived) para acceder a versiones anteriores de DeepStream.
Configuraci贸n de DeepStream para YOLO11
Aqu铆 estamos usando marcoslucianops/DeepStream-Yolo repositorio GitHub que incluye NVIDIA DeepStream SDK soporte para YOLO modelos. Agradecemos los esfuerzos de marcoslucianops por sus contribuciones.
-
Instalar dependencias
-
Clone el siguiente repositorio
-
Descargue Ultralytics YOLO11 modelo de detecci贸n (.pt) de su elecci贸n de las versiones deYOLO11 . Aqu铆 utilizamos yolov8s.pt.
Nota
Tambi茅n puede utilizar un modelo YOLO11 entrenado a medida.
-
Convertir el modelo en ONNX
Pase los siguientes argumentos al comando anterior
Para DeepStream 6.0.1, utilice opset 12 o inferior. El opset por defecto es 16.
Para cambiar el tama帽o de inferencia (por defecto: 640)
Ejemplo para 1280:
Para simplificar el modelo ONNX (DeepStream >= 6.0)
Para utilizar el tama帽o de lote din谩mico (DeepStream >= 6.1)
Para utilizar el tama帽o de lote est谩tico (ejemplo para tama帽o de lote = 4)
-
Configure la versi贸n CUDA de acuerdo con la versi贸n de JetPack instalada
Para JetPack 4.6.4:
Para JetPack 5.1.3:
-
Compilar la biblioteca
-
Editar el
config_infer_primary_yoloV8.txt
seg煤n su modelo (para YOLOv8s con 80 clases) -
Editar el
deepstream_app_config
archivo -
Tambi茅n puedes cambiar la fuente de v铆deo en
deepstream_app_config
archivo. Aqu铆 se carga un archivo de v铆deo por defecto
Ejecutar Inferencia
Nota
Se tardar谩 mucho tiempo en generar el archivo del motor TensorRT antes de iniciar la inferencia. As铆 que por favor sea paciente.
Consejo
Si desea convertir el modelo a FP16 precisi贸nbasta con establecer model-engine-file=model_b1_gpu0_fp16.engine
y network-mode=2
en config_infer_primary_yoloV8.txt
Calibraci贸n INT8
Si desea utilizar la precisi贸n INT8 para la inferencia, debe seguir los siguientes pasos
-
Establecer
OPENCV
variable de entorno -
Compilar la biblioteca
-
Para el conjunto de datos COCO, descargue el val2017extraer y mover a
DeepStream-Yolo
carpeta -
Crear un nuevo directorio para las im谩genes de calibraci贸n
-
Ejecute lo siguiente para seleccionar 1000 im谩genes aleatorias del conjunto de datos COCO para ejecutar la calibraci贸n
Nota
NVIDIA recomienda al menos 500 im谩genes para obtener una buena precisi贸n. En este ejemplo, se han elegido 1000 im谩genes para obtener una mayor precisi贸n (m谩s im谩genes = m谩s precisi贸n). Se puede ajustar desde head -1000. Por ejemplo, para 2000 im谩genes, la cabeza -2000. Este proceso puede llevar mucho tiempo.
-
Crear el
calibration.txt
archivo con todas las im谩genes seleccionadas -
Establecer variables de entorno
Nota
Valores m谩s altos de INT8_CALIB_BATCH_SIZE resultar谩n en mayor precisi贸n y velocidad de calibraci贸n. Aj煤stelo en funci贸n de su memoria GPU .
-
Actualizar el
config_infer_primary_yoloV8.txt
archivoEn
A
Ejecutar Inferencia
Configuraci贸n MultiStream
Para configurar varios flujos en una 煤nica aplicaci贸n de deepstream, puedes realizar los siguientes cambios en el archivo deepstream_app_config.txt
archivo
-
Cambie las filas y columnas para construir una visualizaci贸n de cuadr铆cula seg煤n el n煤mero de flujos que desee tener. Por ejemplo, para 4 flujos, podemos a帽adir 2 filas y 2 columnas.
-
Establecer
num-sources=4
y a帽adauri
de los 4 flujos
Ejecutar Inferencia
Resultados de referencia
La siguiente tabla resume el rendimiento de los modelos YOLOv8s a diferentes niveles de precisi贸n TensorRT con un tama帽o de entrada de 640x640 en NVIDIA Jetson Orin NX 16GB.
Nombre del modelo | Precisi贸n | Tiempo de inferencia (ms/im) | FPS |
---|---|---|---|
YOLOv8s | FP32 | 15.63 | 64 |
FP16 | 7.94 | 126 | |
INT8 | 5.53 | 181 |
Agradecimientos
Esta gu铆a fue creada inicialmente por nuestros amigos de Seeed Studio, Lakshantha y Elaine.
PREGUNTAS FRECUENTES
驴C贸mo se configura Ultralytics YOLO11 en un dispositivo NVIDIA Jetson?
Para configurar Ultralytics YOLO11 en un dispositivo NVIDIA Jetson, primero debe instalar el SDK de DeepStream compatible con su versi贸n de JetPack. Siga la gu铆a paso a paso de nuestra Gu铆a de inicio r谩pido para configurar su NVIDIA Jetson para la implementaci贸n de YOLO11 .
驴Cu谩l es la ventaja de utilizar TensorRT con YOLO11 en NVIDIA Jetson?
El uso de TensorRT con YOLO11 optimiza el modelo para la inferencia, lo que reduce significativamente la latencia y mejora el rendimiento en los dispositivos Jetson NVIDIA . TensorRT proporciona una inferencia de aprendizaje profundo de alto rendimiento y baja latencia a trav茅s de la fusi贸n de capas, la calibraci贸n de precisi贸n y el autoajuste del n煤cleo. 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 YOLO11 con DeepStream SDK en diferentes equipos Jetson de NVIDIA ?
S铆, la gu铆a para desplegar Ultralytics YOLO11 con el SDK DeepStream y TensorRT es compatible con toda la gama Jetson de NVIDIA . Esto incluye dispositivos como el Jetson Orin NX 16GB con JetPack 5.1.3 y el Jetson Nano 4GB con JetPack 4.6.4. Consulte la secci贸n Configuraci贸n de DeepStream para YOLO11 para conocer los pasos detallados.
驴C贸mo puedo convertir un modelo YOLO11 a ONNX para DeepStream?
Para convertir un modelo YOLO11 al formato ONNX para su despliegue con DeepStream, utilice la funci贸n utils/export_yoloV8.py
del DeepStream-Yolo repositorio.
Aqu铆 tienes un comando de ejemplo:
Para m谩s detalles sobre la conversi贸n de modelos, consulte nuestra secci贸n de exportaci贸n de modelos.
驴Cu谩les son las pruebas de rendimiento de YOLO en NVIDIA Jetson Orin NX?
El rendimiento de los modelos YOLO11 en NVIDIA Jetson Orin NX 16GB var铆a en funci贸n de los niveles de precisi贸n TensorRT . Por ejemplo, los modelos YOLOv8s alcanzan:
- FP32 Precisi贸n: 15,63 ms/im, 64 FPS
- FP16 Precisi贸n: 7,94 ms/im, 126 FPS
- INT8 Precisi贸n: 5,53 ms/im, 181 FPS
Estas pruebas ponen de manifiesto la eficacia y capacidad de utilizar modelos YOLO11 optimizados para TensorRT en el hardware NVIDIA Jetson. Para m谩s informaci贸n, consulta nuestra secci贸n de resultados de pruebas.