Link to this sectionUltralytics YOLO26 sur NVIDIA Jetson utilisant le DeepStream SDK et TensorRT#
Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀
Ce guide complet fournit une procédure détaillée pour déployer Ultralytics YOLO26 sur des appareils NVIDIA Jetson en utilisant le DeepStream SDK et TensorRT. Ici, nous utilisons TensorRT pour maximiser les performances d'inférence sur la plateforme Jetson.

Ce guide a été testé avec le NVIDIA Jetson Orin Nano Super Developer Kit exécutant la dernière version stable de JetPack, JP6.1, le Seeed Studio reComputer J4012 basé sur un NVIDIA Jetson Orin NX 16GB exécutant la version JetPack JP5.1.3 et le Seeed Studio reComputer J1020 v2 basé sur un NVIDIA Jetson Nano 4GB exécutant la version JetPack JP4.6.4. Il est censé fonctionner sur toute la gamme de matériel NVIDIA Jetson, incluant les modèles récents et hérités.
Link to this sectionQu'est-ce que NVIDIA DeepStream ?#
Le DeepStream SDK de NVIDIA est une boîte à outils complète d'analyse en streaming basée sur GStreamer pour le traitement multi-capteurs par IA, ainsi que la compréhension vidéo, audio et d'images. C'est l'outil idéal pour les développeurs en IA visuelle, les partenaires logiciels, les startups et les OEM concevant des applications et services d'IVA (Intelligent Video Analytics). Tu peux désormais créer des pipelines de traitement de flux qui intègrent des réseaux neuronaux et d'autres tâches complexes comme le suivi, l'encodage/décodage vidéo et le rendu vidéo. Ces pipelines permettent une analyse en temps réel sur des données vidéo, d'image et de capteurs. Le support multi-plateforme de DeepStream te donne un moyen plus rapide et plus simple de développer des applications et services d'IA visuelle sur site, en périphérie et dans le cloud.
Link to this sectionPrérequis#
Avant de commencer à suivre ce guide :
- Consulte notre documentation, Guide de démarrage rapide : NVIDIA Jetson avec Ultralytics YOLO26 pour configurer ton appareil NVIDIA Jetson avec Ultralytics YOLO26
- Installe le DeepStream SDK selon la version de JetPack
- Pour JetPack 4.6.4, installe DeepStream 6.0.1
- Pour JetPack 5.1.3, installe DeepStream 6.3
- Pour JetPack 6.1, installe DeepStream 7.1
- Pour JetPack 7.1, installe DeepStream 9.0
Dans ce guide, nous avons utilisé la méthode du paquet Debian pour installer le DeepStream SDK sur l'appareil Jetson. Tu peux également visiter DeepStream SDK sur Jetson (Archivé) pour accéder aux versions antérieures de DeepStream.
Link to this sectionConfiguration DeepStream pour YOLO26#
Ici, nous utilisons le dépôt GitHub marcoslucianops/DeepStream-Yolo qui inclut le support du NVIDIA DeepStream SDK pour les modèles YOLO. Nous remercions marcoslucianops pour ses contributions !
-
Installe Ultralytics avec les dépendances nécessaires
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim -
Clone le dépôt DeepStream-Yolo
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo -
Copie le fichier
export_yolo26.pydu répertoireDeepStream-Yolo/utilsvers le dossierultralyticscp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
Télécharge le modèle de détection Ultralytics YOLO26 (.pt) de ton choix depuis les versions YOLO26. Ici, nous utilisons yolo26s.pt.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
Tu peux également utiliser un modèle YOLO26 entraîné sur mesure.
-
Convertis le modèle en ONNX
python3 export_yolo26.py -w yolo26s.pt
Pour DeepStream 5.1, supprime l'argument --dynamic et utilise opset 12 ou inférieur. L' opset par défaut est 17.
--opset 12Pour changer la taille d'inférence (par défaut : 640)
-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTHExemple pour 1280 :
-s 1280
or
-s 1280 1280Pour simplifier le modèle ONNX (DeepStream >= 6.0)
--simplifyPour utiliser une taille de lot dynamique (DeepStream >= 6.1)
--dynamicPour utiliser une taille de lot statique (exemple pour une taille de lot = 4)
--batch 4-
Copie le fichier modèle
.onnxgénéré et le fichierlabels.txtdans le dossierDeepStream-Yolocp yolo26s.pt.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo -
Définis la version CUDA en fonction de la version JetPack installée
Pour JetPack 4.6.4 :
export CUDA_VER=10.2Pour JetPack 5.1.3 :
export CUDA_VER=11.4Pour JetPack 6.1 :
export CUDA_VER=12.6 -
Compile la bibliothèque
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Modifie le fichier
config_infer_primary_yolo26.txtselon ton modèle (pour YOLO26s avec 80 classes)[property] ... onnx-file=yolo26s.pt.onnx ... num-detected-classes=80 ... -
Modifie le fichier
deepstream_app_config... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
Tu peux également changer la source vidéo dans le fichier
deepstream_app_config. Ici, un fichier vidéo par défaut est chargé... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
Link to this sectionExécute l'inférence#
deepstream-app -c deepstream_app_config.txtIl faudra un certain temps pour générer le fichier moteur TensorRT avant de commencer l'inférence. Sois donc patient.

Si tu veux convertir le modèle en précision FP16, règle simplement model-engine-file=model_b1_gpu0_fp16.engine et network-mode=2 dans config_infer_primary_yolo26.txt
Link to this sectionCalibration INT8#
Si tu veux utiliser la précision INT8 pour l'inférence, tu dois suivre les étapes ci-dessous :
Actuellement, l'INT8 ne fonctionne pas avec TensorRT 10.x. Cette section du guide a été testée avec TensorRT 8.x, avec lequel cela devrait fonctionner.
-
Définis la variable d'environnement
OPENCVexport OPENCV=1 -
Compile la bibliothèque
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
Pour le jeu de données COCO, télécharge val2017, extrais-le et déplace-le vers le dossier
DeepStream-Yolo -
Crée un nouveau répertoire pour les images de calibration
mkdir calibration -
Exécute ce qui suit pour sélectionner 1000 images aléatoires du jeu de données COCO afin d'effectuer la calibration
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
NVIDIA recommande au moins 500 images pour obtenir une bonne précision. Dans cet exemple, 1000 images sont choisies pour obtenir une meilleure précision (plus d'images = plus de précision). Tu peux le définir avec head -1000. Par exemple, pour 2000 images, head -2000. Ce processus peut prendre beaucoup de temps.
-
Crée le fichier
calibration.txtavec toutes les images sélectionnéesrealpath calibration/*jpg > calibration.txt -
Définis les variables d'environnement
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
Des valeurs plus élevées pour INT8_CALIB_BATCH_SIZE entraîneront une meilleure précision et une vitesse de calibration plus rapide. Règle-les en fonction de la mémoire de ton GPU.
-
Mets à jour le fichier
config_infer_primary_yolo26.txtDe
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...À
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
Link to this sectionExécute l'inférence#
deepstream-app -c deepstream_app_config.txtLink to this sectionConfiguration MultiStream#
Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀
Pour configurer plusieurs flux sous une seule application DeepStream, effectue les changements suivants dans le fichier deepstream_app_config.txt :
-
Change les lignes et colonnes pour créer une grille d'affichage selon le nombre de flux que tu souhaites avoir. Par exemple, pour 4 flux, nous pouvons ajouter 2 lignes et 2 colonnes.
[tiled-display] rows=2 columns=2 -
Règle
num-sources=4et ajoute les entréesuripour les quatre flux.[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 sectionExécute l'inférence#
deepstream-app -c deepstream_app_config.txt
Link to this sectionRésultats des tests de performance#
Les tests de performance suivants résument comment les modèles YOLO26 fonctionnent à différents niveaux de précision TensorRT avec une taille d'entrée de 640x640 sur NVIDIA Jetson Orin NX 16GB.
Link to this sectionTableau de comparaison#

Link to this sectionTableau de comparaison détaillé#
| Format | Statut | Temps d'inférence (ms/im) |
|---|---|---|
| TensorRT (FP32) | ✅ | 8.64 |
| TensorRT (FP16) | ✅ | 5.27 |
| TensorRT (INT8) | ✅ | 4.54 |
Link to this sectionRemerciements#
Ce guide a été initialement créé par nos amis de Seeed Studio, Lakshantha et Elaine.
Link to this sectionFAQ#
Link to this sectionComment configurer Ultralytics YOLO26 sur un appareil NVIDIA Jetson ?#
Pour configurer Ultralytics YOLO26 sur un appareil NVIDIA Jetson, tu dois d'abord installer le DeepStream SDK compatible avec ta version de JetPack. Suis le guide étape par étape dans notre Guide de démarrage rapide pour configurer ton NVIDIA Jetson pour le déploiement de YOLO26.
Link to this sectionQuel est l'avantage d'utiliser TensorRT avec YOLO26 sur NVIDIA Jetson ?#
Utiliser TensorRT avec YOLO26 optimise le modèle pour l'inférence, réduisant considérablement la latence et améliorant le débit sur les appareils NVIDIA Jetson. TensorRT fournit une inférence deep learning haute performance et à faible latence grâce à la fusion de couches, la calibration de précision et l'auto-tuning du noyau. Cela conduit à une exécution plus rapide et plus efficace, particulièrement utile pour les applications en temps réel comme l'analyse vidéo et les machines autonomes.
Link to this sectionPuis-je exécuter Ultralytics YOLO26 avec le DeepStream SDK sur différents matériels NVIDIA Jetson ?#
Oui, le guide pour déployer Ultralytics YOLO26 avec le DeepStream SDK et TensorRT est compatible avec toute la gamme NVIDIA Jetson. Cela inclut des appareils comme le Jetson Orin NX 16GB avec JetPack 5.1.3 et le Jetson Nano 4GB avec JetPack 4.6.4. Consulte la section Configuration DeepStream pour YOLO26 pour des étapes détaillées.
Link to this sectionComment puis-je convertir un modèle YOLO26 en ONNX pour DeepStream ?#
Pour convertir un modèle YOLO26 au format ONNX pour un déploiement avec DeepStream, utilise le script utils/export_yolo26.py du dépôt DeepStream-Yolo.
Voici un exemple de commande :
python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplifyPour plus de détails sur la conversion de modèles, consulte notre section d'exportation de modèles.
Link to this sectionQuels sont les résultats des tests de performance pour YOLO sur NVIDIA Jetson Orin NX ?#
Les performances des modèles YOLO26 sur NVIDIA Jetson Orin NX 16GB varient en fonction des niveaux de précision TensorRT. Par exemple, les modèles YOLO26s atteignent :
- Précision FP32 : 14.6 ms/im, 68.5 FPS
- Précision FP16 : 7.94 ms/im, 126 FPS
- Précision INT8 : 5,95 ms/im, 168 FPS
Ces benchmarks soulignent l'efficacité et les capacités de l'utilisation des modèles YOLO26 optimisés par TensorRT sur le matériel NVIDIA Jetson. Pour plus de détails, consulte notre section Benchmark Results.