Link to this sectionUltralytics YOLO26 su NVIDIA Jetson utilizzando DeepStream SDK e TensorRT#
Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀
Questa guida completa fornisce una procedura dettagliata per distribuire Ultralytics YOLO26 su dispositivi NVIDIA Jetson utilizzando DeepStream SDK e TensorRT. Qui utilizziamo TensorRT per massimizzare le prestazioni di inferenza sulla piattaforma Jetson.

Questa guida è stata testata con NVIDIA Jetson Orin Nano Super Developer Kit con l'ultima release stabile di JetPack JP6.1, Seeed Studio reComputer J4012 che si basa su NVIDIA Jetson Orin NX 16GB con la release JetPack JP5.1.3 e Seeed Studio reComputer J1020 v2 che si basa su NVIDIA Jetson Nano 4GB con la release JetPack JP4.6.4. Ci si aspetta che funzioni su tutta la linea di hardware NVIDIA Jetson, inclusi i modelli recenti e quelli legacy.
Link to this sectionCos'è NVIDIA DeepStream?#
NVIDIA's DeepStream SDK è un toolkit completo per l'analisi in streaming basato su GStreamer per l'elaborazione multi-sensore basata su IA, la comprensione di video, audio e immagini. È ideale per sviluppatori di vision AI, partner software, startup e OEM che creano app e servizi di IVA (Intelligent Video Analytics). Ora puoi creare pipeline di elaborazione stream che incorporano reti neurali e altre attività di elaborazione complesse come il tracking, la codifica/decodifica video e il rendering video. Queste pipeline consentono l'analisi in tempo reale su dati video, immagini e sensori. Il supporto multi-piattaforma di DeepStream ti offre un modo più rapido e semplice per sviluppare applicazioni e servizi di vision AI on-premise, all'edge e nel cloud.
Link to this sectionPrerequisiti#
Prima di iniziare a seguire questa guida:
- Visita la nostra documentazione, Quick Start Guide: NVIDIA Jetson with Ultralytics YOLO26 per configurare il tuo dispositivo NVIDIA Jetson con Ultralytics YOLO26
- Installa DeepStream SDK in base alla versione di JetPack
- Per JetPack 4.6.4, installa DeepStream 6.0.1
- Per JetPack 5.1.3, installa DeepStream 6.3
- Per JetPack 6.1, installa DeepStream 7.1
- Per JetPack 7.1, installa DeepStream 9.0
In questa guida abbiamo utilizzato il metodo del pacchetto Debian per installare DeepStream SDK sul dispositivo Jetson. Puoi anche visitare DeepStream SDK on Jetson (Archived) per accedere alle versioni legacy di DeepStream.
Link to this sectionConfigurazione di DeepStream per YOLO26#
Qui stiamo utilizzando il repository GitHub marcoslucianops/DeepStream-Yolo che include il supporto di NVIDIA DeepStream SDK per i modelli YOLO. Apprezziamo gli sforzi di marcoslucianops per i suoi contributi!
-
Installa Ultralytics con le dipendenze necessarie
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim -
Clona il repository DeepStream-Yolo
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo -
Copia il file
export_yolo26.pydalla directoryDeepStream-Yolo/utilsalla cartellaultralyticscp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
Scarica il modello di rilevamento Ultralytics YOLO26 (.pt) che preferisci dalle YOLO26 releases. Qui utilizziamo yolo26s.pt.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
Puoi anche utilizzare un modello YOLO26 addestrato su misura.
-
Converti il modello in ONNX
python3 export_yolo26.py -w yolo26s.pt
Per DeepStream 5.1, rimuovi l'argomento --dynamic e usa opset 12 o inferiore. L' opset predefinito è 17.
--opset 12Per modificare la dimensione dell'inferenza (predefinita: 640)
-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTHEsempio per 1280:
-s 1280
or
-s 1280 1280Per semplificare il modello ONNX (DeepStream >= 6.0)
--simplifyPer utilizzare batch-size dinamica (DeepStream >= 6.1)
--dynamicPer utilizzare batch-size statica (esempio per batch-size = 4)
--batch 4-
Copia il file del modello
.onnxgenerato e il filelabels.txtnella cartellaDeepStream-Yolocp yolo26s.pt.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo -
Imposta la versione di CUDA in base alla versione di JetPack installata
Per JetPack 4.6.4:
export CUDA_VER=10.2Per JetPack 5.1.3:
export CUDA_VER=11.4Per JetPack 6.1:
export CUDA_VER=12.6 -
Compila la libreria
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Modifica il file
config_infer_primary_yolo26.txtin base al tuo modello (per YOLO26s con 80 classi)[property] ... onnx-file=yolo26s.pt.onnx ... num-detected-classes=80 ... -
Modifica il file
deepstream_app_config... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
Puoi anche modificare la sorgente video nel file
deepstream_app_config. Qui viene caricato un file video predefinito... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
Link to this sectionEsegui l'inferenza#
deepstream-app -c deepstream_app_config.txtCi vorrà molto tempo per generare il file del motore TensorRT prima di avviare l'inferenza. Quindi ti preghiamo di avere pazienza.

Se vuoi convertire il modello con precisione FP16, imposta semplicemente model-engine-file=model_b1_gpu0_fp16.engine e network-mode=2 all'interno di config_infer_primary_yolo26.txt
Link to this sectionCalibrazione INT8#
Se vuoi utilizzare la precisione INT8 per l'inferenza, devi seguire i passaggi seguenti:
Attualmente INT8 non funziona con TensorRT 10.x. Questa sezione della guida è stata testata con TensorRT 8.x, che dovrebbe funzionare.
-
Imposta la variabile d'ambiente
OPENCVexport OPENCV=1 -
Compila la libreria
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Per il dataset COCO, scarica il val2017, estrai e sposta nella cartella
DeepStream-Yolo -
Crea una nuova directory per le immagini di calibrazione
mkdir calibration -
Esegui quanto segue per selezionare 1000 immagini casuali dal dataset COCO per eseguire la calibrazione
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
NVIDIA consiglia almeno 500 immagini per ottenere una buona precisione. In questo esempio, vengono scelte 1000 immagini per ottenere una precisione migliore (più immagini = maggiore precisione). Puoi impostarlo da head -1000. Ad esempio, per 2000 immagini, head -2000. Questo processo può richiedere molto tempo.
-
Crea il file
calibration.txtcon tutte le immagini selezionaterealpath calibration/*jpg > calibration.txt -
Imposta le variabili d'ambiente
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
Valori più elevati di INT8_CALIB_BATCH_SIZE comporteranno una maggiore precisione e una velocità di calibrazione più elevata. Impostalo in base alla memoria della tua GPU.
-
Aggiorna il file
config_infer_primary_yolo26.txtDa
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...A
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
Link to this sectionEsegui l'inferenza#
deepstream-app -c deepstream_app_config.txtLink to this sectionConfigurazione MultiStream#
Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀
Per configurare più stream in un'unica applicazione DeepStream, apporta le seguenti modifiche al file deepstream_app_config.txt:
-
Modifica le righe e le colonne per creare una visualizzazione a griglia in base al numero di stream che desideri avere. Ad esempio, per 4 stream, possiamo aggiungere 2 righe e 2 colonne.
[tiled-display] rows=2 columns=2 -
Imposta
num-sources=4e aggiungi le vociuriper tutti e quattro gli stream.[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
Link to this sectionEsegui l'inferenza#
deepstream-app -c deepstream_app_config.txt
Link to this sectionRisultati del Benchmark#
I seguenti benchmark riassumono le prestazioni dei modelli YOLO26 a diversi livelli di precisione TensorRT con una dimensione di input di 640x640 su NVIDIA Jetson Orin NX 16GB.
Link to this sectionTabella di confronto#

Link to this sectionTabella di confronto dettagliata#
| Formato | Stato | Tempo di inferenza (ms/im) |
|---|---|---|
| TensorRT (FP32) | ✅ | 8.64 |
| TensorRT (FP16) | ✅ | 5.27 |
| TensorRT (INT8) | ✅ | 4.54 |
Link to this sectionRingraziamenti#
Questa guida è stata creata inizialmente dai nostri amici di Seeed Studio, Lakshantha ed Elaine.
Link to this sectionFAQ#
Link to this sectionCome configuro Ultralytics YOLO26 su un dispositivo NVIDIA Jetson?#
Per configurare Ultralytics YOLO26 su un dispositivo NVIDIA Jetson, devi prima installare il DeepStream SDK compatibile con la tua versione di JetPack. Segui la guida passo-passo nella nostra Quick Start Guide per configurare il tuo NVIDIA Jetson per la distribuzione di YOLO26.
Link to this sectionQual è il vantaggio di utilizzare TensorRT con YOLO26 su NVIDIA Jetson?#
L'utilizzo di TensorRT con YOLO26 ottimizza il modello per l'inferenza, riducendo significativamente la latenza e migliorando il throughput sui dispositivi NVIDIA Jetson. TensorRT fornisce un'inferenza deep learning ad alte prestazioni e bassa latenza attraverso la fusione di layer, calibrazione di precisione e auto-tuning del kernel. Ciò porta a un'esecuzione più rapida ed efficiente, particolarmente utile per applicazioni in tempo reale come l'analisi video e le macchine autonome.
Link to this sectionPosso eseguire Ultralytics YOLO26 con DeepStream SDK su diversi hardware NVIDIA Jetson?#
Sì, la guida per la distribuzione di Ultralytics YOLO26 con DeepStream SDK e TensorRT è compatibile con l'intera linea NVIDIA Jetson. Ciò include dispositivi come Jetson Orin NX 16GB con JetPack 5.1.3 e Jetson Nano 4GB con JetPack 4.6.4. Consulta la sezione DeepStream Configuration for YOLO26 per i passaggi dettagliati.
Link to this sectionCome posso convertire un modello YOLO26 in ONNX per DeepStream?#
Per convertire un modello YOLO26 in formato ONNX per la distribuzione con DeepStream, utilizza lo script utils/export_yolo26.py dal repository DeepStream-Yolo.
Ecco un comando di esempio:
python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplifyPer ulteriori dettagli sulla conversione del modello, dai un'occhiata alla nostra sezione esportazione modello.
Link to this sectionQuali sono i benchmark delle prestazioni per YOLO su NVIDIA Jetson Orin NX?#
Le prestazioni dei modelli YOLO26 su NVIDIA Jetson Orin NX 16GB variano in base ai livelli di precisione di TensorRT. Ad esempio, i modelli YOLO26s ottengono:
- Precisione FP32: 14.6 ms/im, 68.5 FPS
- Precisione FP16: 7.94 ms/im, 126 FPS
- Precisione INT8: 5,95 ms/im, 168 FPS
Questi benchmark sottolineano l'efficienza e le capacità dell'utilizzo di modelli YOLO26 ottimizzati con TensorRT su hardware NVIDIA Jetson. Per ulteriori dettagli, consulta la nostra sezione Risultati dei Benchmark.