Ultralytics YOLO26 auf NVIDIA Jetson mit dem DeepStream SDK und TensorRT#
Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀
Dieser umfassende Leitfaden bietet eine detaillierte Anleitung zur Bereitstellung von Ultralytics YOLO26 auf NVIDIA Jetson-Geräten unter Verwendung des DeepStream SDK und TensorRT. Hier nutzen wir TensorRT, um die Inferenzleistung auf der Jetson-Plattform zu maximieren.
Dieser Leitfaden behandelt die DeepStream-Konfiguration für YOLO26, die INT8-Kalibrierung, das Multi-Stream-Setup und die Benchmark-Ergebnisse.

Dieser Leitfaden wurde mit dem NVIDIA Jetson Orin Nano Super Developer Kit unter dem neuesten stabilen JetPack-Release von JP6.1, dem Seeed Studio reComputer J4012, das auf dem NVIDIA Jetson Orin NX 16GB mit dem JetPack-Release JP5.1.3 basiert, sowie dem Seeed Studio reComputer J1020 v2, das auf dem NVIDIA Jetson Nano 4GB mit dem JetPack-Release JP4.6.4 basiert, getestet. Es wird erwartet, dass er über das gesamte NVIDIA Jetson-Hardware-Lineup hinweg funktioniert, einschließlich aktueller und älterer Modelle.
Was ist NVIDIA DeepStream?#
NVIDIAs DeepStream SDK ist ein vollständiges Streaming-Analysetoolkit auf Basis von GStreamer für KI-basierte Erfassung von Multisensoren, Video-, Audio- und Bildverständnis. Es ist ideal für Vision-KI-Entwickler, Softwarepartner, Start-ups und OEMs, die IVA-Apps und -Dienste (Intelligent Video Analytics) entwickeln. Du kannst jetzt Stream-Verarbeitungspipelines erstellen, die neuronale Netze und andere komplexe Verarbeitungsaufgaben wie Tracking, Videokodierung/-dekodierung und Video-Rendering integrieren. Diese Pipelines ermöglichen Echtzeitanalysen von Video-, Bild- und Sensordaten. Die plattformübergreifende Unterstützung von DeepStream bietet dir einen schnelleren und einfacheren Weg, Vision-KI-Anwendungen und -Dienste vor Ort (on-premise), am Edge und in der Cloud zu entwickeln.
Voraussetzungen#
Bevor du diesem Leitfaden folgst:
- Besuche unsere Dokumentation, Schnellstartanleitung: NVIDIA Jetson mit Ultralytics YOLO26, um dein NVIDIA Jetson-Gerät mit Ultralytics YOLO26 einzurichten.
- Installiere das DeepStream SDK entsprechend der JetPack-Version.
- Installiere für JetPack 4.6.4 DeepStream 6.0.1.
- Installiere für JetPack 5.1.3 DeepStream 6.3.
- Installiere für JetPack 6.1 DeepStream 7.1.
- Installiere für JetPack 7.1 DeepStream 9.0.
In diesem Leitfaden haben wir die Debian-Paketmethode zur Installation des DeepStream SDK auf dem Jetson-Gerät verwendet. Du kannst auch DeepStream SDK auf Jetson (Archiviert) besuchen, um auf ältere Versionen von DeepStream zuzugreifen.
DeepStream-Konfiguration für YOLO26#
Hier verwenden wir das GitHub-Repository marcoslucianops/DeepStream-Yolo, das die Unterstützung des NVIDIA DeepStream SDK für YOLO-Modelle enthält. Wir schätzen die Bemühungen von marcoslucianops für seine Beiträge!
-
Installiere Ultralytics mit den erforderlichen Abhängigkeiten.
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim -
Kone das DeepStream-Yolo Repository.
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo -
Kopiere die Datei
export_yolo26.pyaus dem VerzeichnisDeepStream-Yolo/utilsin den Ordnerultralytics.cp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
Lade ein Ultralytics YOLO26-Erkennungsmodell (.pt) deiner Wahl aus dem YOLO26-Projekt herunter. Hier verwenden wir yolo26s.pt.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
Du kannst auch ein benutzerdefiniert trainiertes YOLO26-Modell verwenden.
-
Konvertiere das Modell in ONNX.
python3 export_yolo26.py -w yolo26s.pt
Entferne für DeepStream 5.1 das Argument --dynamic und verwende opset 12 oder niedriger. Der Standardwert für opset ist 17.
--opset 12Um die Inferenzgröße zu ändern (Standard: 640)
-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTHBeispiel für 1280:
-s 1280
or
-s 1280 1280Um das ONNX-Modell zu vereinfachen (DeepStream >= 6.0)
--simplifyUm dynamische Batch-Größen zu verwenden (DeepStream >= 6.1)
--dynamicUm statische Batch-Größen zu verwenden (Beispiel für Batch-Größe = 4)
--batch 4-
Kopiere die generierte Modelldatei
.onnxund die Dateilabels.txtin den OrdnerDeepStream-Yolo.cp yolo26s.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo -
Setze die CUDA-Version entsprechend der installierten JetPack-Version.
Für JetPack 4.6.4:
export CUDA_VER=10.2Für JetPack 5.1.3:
export CUDA_VER=11.4Für JetPack 6.1:
export CUDA_VER=12.6 -
Kompiliere die Bibliothek.
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Bearbeite die Datei
config_infer_primary_yolo26.txtentsprechend deinem Modell (für YOLO26s mit 80 Klassen).[property] ... onnx-file=yolo26s.onnx ... num-detected-classes=80 ... parse-bbox-func-name=NvDsInferParseYolo ...
YOLO26 skaliert die Eingabe mit Zentrumspolsterung (Center Padding) und läuft ohne NMS. Füge für die beste Genauigkeit Folgendes zum Abschnitt [property] von config_infer_primary_yolo26.txt hinzu:
[property]
...
maintain-aspect-ratio=1
symmetric-padding=1
cluster-mode=4
...-
Bearbeite die Datei
deepstream_app_config.... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
Du kannst auch die Videoquelle in der Datei
deepstream_app_configändern. Hier wird eine Standardvideodatei geladen.... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
Führe die Inferenz aus.#
deepstream-app -c deepstream_app_config.txtEs wird eine Weile dauern, die TensorRT-Engine-Datei zu generieren, bevor die Inferenz startet. Bitte habe also etwas Geduld.

Wenn du das Modell in die FP16-Präzision konvertieren möchtest, setze einfach model-engine-file=model_b1_gpu0_fp16.engine und network-mode=2 innerhalb von config_infer_primary_yolo26.txt.
INT8-Kalibrierung#
Wenn du INT8-Präzision für die Inferenz verwenden möchtest, musst du die folgenden Schritte befolgen:
Derzeit funktioniert INT8 nicht mit TensorRT 10.x. Dieser Abschnitt des Leitfadens wurde mit TensorRT 8.x getestet, bei dem das funktionieren sollte.
-
Setze die Umgebungsvariable
OPENCV.export OPENCV=1 -
Kompiliere die Bibliothek.
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Lade für den COCO-Datensatz val2017 herunter, entpacke es und verschiebe es in den Ordner
DeepStream-Yolo. -
Erstelle ein neues Verzeichnis für Kalibrierungsbilder.
mkdir calibration -
Führe Folgendes aus, um 1000 zufällige Bilder aus dem COCO-Datensatz für die Kalibrierung auszuwählen.
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
NVIDIA empfiehlt mindestens 500 Bilder, um eine gute Genauigkeit zu erzielen. In diesem Beispiel werden 1000 Bilder ausgewählt, um eine bessere Genauigkeit zu erhalten (mehr Bilder = mehr Genauigkeit). Du kannst dies über head -1000 einstellen. Zum Beispiel für 2000 Bilder: head -2000. Dieser Vorgang kann einige Zeit in Anspruch nehmen.
-
Erstelle die Datei
calibration.txtmit allen ausgewählten Bildern.realpath calibration/*jpg > calibration.txt -
Setze die Umgebungsvariablen.
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
Höhere INT8_CALIB_BATCH_SIZE-Werte führen zu mehr Genauigkeit und einer schnelleren Kalibrierungsgeschwindigkeit. Setze diesen Wert entsprechend deinem GPU-Speicher.
-
Aktualisiere die Datei
config_infer_primary_yolo26.txt.Von
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...Zu
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
INT8-Inferenz ausführen#
Führe denselben Befehl aus, um die INT8-Engine zu bauen und die Inferenz zu starten:
deepstream-app -c deepstream_app_config.txtMultiStream-Einrichtung#
Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀
Um mehrere Streams unter einer einzigen DeepStream-Anwendung einzurichten, nimm die folgenden Änderungen an der Datei deepstream_app_config.txt vor:
-
Ändere die Zeilen und Spalten, um eine Rasteranzeige entsprechend der Anzahl der Streams zu erstellen, die du haben möchtest. Zum Beispiel können wir für 4 Streams 2 Zeilen und 2 Spalten hinzufügen.
[tiled-display] rows=2 columns=2 -
Füge für jeden Stream eine separate Gruppe
[sourceN]hinzu, jeweils mit ihren eigenenuriundnum-sources=1.[source0] enable=1 type=3 uri=file:///path/to/video1.mp4 num-sources=1 [source1] enable=1 type=3 uri=file:///path/to/video2.mp4 num-sources=1 [source2] enable=1 type=3 uri=file:///path/to/video3.mp4 num-sources=1 [source3] enable=1 type=3 uri=file:///path/to/video4.mp4 num-sources=1
Multi-Stream-Inferenz ausführen#
Führe denselben Befehl aus, um alle Streams in der Kachelanzeige zu starten:
deepstream-app -c deepstream_app_config.txt
Benchmark-Ergebnisse#
Die folgenden Benchmarks fassen zusammen, wie YOLO11-Modelle bei verschiedenen TensorRT-Präzisionsstufen mit einer Eingabegröße von 640x640 auf einem NVIDIA Jetson Orin NX 16GB abschneiden. YOLO26 verwendet denselben DeepStream-Export- und Inferenz-Workflow wie oben beschrieben.
Vergleichsdiagramm#

Detaillierte Vergleichstabelle#
| Format | Status | Inferenzzeit (ms/im) |
|---|---|---|
| TensorRT (FP32) | ✅ | 8.64 |
| TensorRT (FP16) | ✅ | 5.27 |
| TensorRT (INT8) | ✅ | 4.54 |
Danksagungen#
Dieser Leitfaden wurde ursprünglich von unseren Freunden bei Seeed Studio, Lakshantha und Elaine, erstellt.
FAQ#
Um Ultralytics YOLO26 auf einem NVIDIA Jetson-Gerät einzurichten, musst du zuerst das DeepStream SDK installieren, das mit deiner JetPack-Version kompatibel ist. Folge der Schritt-für-Schritt-Anleitung in unserer Schnellstartanleitung, um dein NVIDIA Jetson für die YOLO26-Bereitstellung zu konfigurieren.
Die Verwendung von TensorRT mit YOLO26 optimiert das Modell für die Inferenz, wodurch die Latenz signifikant reduziert und der Durchsatz auf NVIDIA Jetson-Geräten verbessert wird. TensorRT bietet eine leistungsstarke Deep-Learning-Inferenz mit geringer Latenz durch Layer Fusion, Präzisionskalibrierung und Kernel-Autotuning. Dies führt zu einer schnelleren und effizienteren Ausführung, die besonders nützlich für Echtzeitanwendungen wie Videoanalysen und autonome Maschinen ist.
Ja, der Leitfaden zur Bereitstellung von Ultralytics YOLO26 mit dem DeepStream SDK und TensorRT ist mit dem gesamten NVIDIA Jetson-Lineup kompatibel. Dazu gehören Geräte wie der Jetson Orin NX 16GB mit JetPack 5.1.3 und der Jetson Nano 4GB mit JetPack 4.6.4. Siehe den Abschnitt DeepStream-Konfiguration für YOLO26 für detaillierte Schritte.
Um ein YOLO26-Modell für die Bereitstellung mit DeepStream in das ONNX-Format zu konvertieren, verwende das Skript
utils/export_yolo26.pyaus dem Repository DeepStream-Yolo.Hier ist ein Beispielbefehl:
python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplifyWeitere Details zur Modellkonvertierung findest du in unserem Abschnitt zum Modellexport.
Um eine INT8-Inferenz auszuführen, kalibriere das Modell an einem repräsentativen Bildersatz und schalte die DeepStream-Konfiguration in den INT8-Modus. Lade die COCO val2017-Bilder herunter, wähle etwa 1000 Kalibrierungsbilder aus, setze die Umgebungsvariablen
INT8_CALIB_IMG_PATHundINT8_CALIB_BATCH_SIZEund aktualisiere dannconfig_infer_primary_yolo26.txtmitmodel-engine-file=model_b1_gpu0_int8.engine,int8-calib-file=calib.tableundnetwork-mode=1. Siehe den Abschnitt INT8-Kalibrierung für die vollständigen Schritte. INT8 erfordert derzeit TensorRT 8.x.Um mehrere Streams in einer einzigen DeepStream-Anwendung zu verarbeiten, bearbeite die Datei
deepstream_app_config.txt, um ein Kachel-Anzeige-Raster (tiled-display grid) hinzuzufügen und jede Quell-URI aufzulisten. Setzerowsundcolumnsunter[tiled-display], um das Raster aufzubauen, füge für jeden Stream eine separate Gruppe[sourceN]mit ihren eigenenuriundnum-sources=1hinzu und passe das Raster an die Anzahl der Streams an. Siehe den Abschnitt Multi-Stream-Setup für ein vollständiges Beispiel.Die Leistung von YOLO11-Modellen auf NVIDIA Jetson Orin NX 16GB variiert je nach TensorRT-Präzisionsstufen. Zum Beispiel erreichen YOLO11s-Modelle:
- FP32-Präzision: 14,53 ms/Bild, 68,8 FPS
- FP16-Präzision: 7,91 ms/Bild, 126 FPS
- INT8-Präzision: 6,05 ms/Bild, 165 FPS
Diese Benchmarks unterstreichen die Effizienz und Leistungsfähigkeit der Verwendung von TensorRT-optimierten YOLO11-Modellen auf NVIDIA Jetson-Hardware. Weitere Details findest du in unserem Abschnitt Benchmark-Ergebnisse.