YOLO Vision 2026 :

Guide de démarrage rapide : NVIDIA Jetson avec Ultralytics YOLO26#

Ce guide complet fournit une description détaillée pour déployer Ultralytics YOLO26 sur les appareils NVIDIA Jetson. De plus, il présente des benchmarks de performances pour démontrer les capacités de YOLO26 sur ces appareils petits et puissants.

Support de nouveaux produits

Nous avons mis à jour ce guide avec le dernier NVIDIA Jetson AGX Thor Developer Kit qui offre jusqu'à 2070 TFLOPS FP4 de calcul IA et 128 Go de mémoire avec une consommation réglable entre 40 W et 130 W. Il offre plus de 7,5 fois plus de puissance de calcul IA que le NVIDIA Jetson AGX Orin, avec une efficacité énergétique 3,5 fois supérieure pour exécuter en toute transparence les modèles d'IA les plus populaires.



Watch: How to use Ultralytics YOLO26 on NVIDIA Jetson Devices
NVIDIA Jetson Ecosystem
Remarque

Ce guide a été testé avec le NVIDIA Jetson AGX Thor Developer Kit (Jetson T5000) et le NVIDIA Jetson AGX Orin Developer Kit (64GB) exécutant la dernière version stable de JetPack 7.2, le NVIDIA Jetson Orin Nano Super Developer Kit exécutant la version JetPack de JP6.1, le Seeed Studio reComputer J4012 basé sur le NVIDIA Jetson Orin NX 16GB exécutant la version JetPack de JP6.0 / la version JetPack de JP5.1.3 et le Seeed Studio reComputer J1020 v2 basé sur le NVIDIA Jetson Nano 4GB exécutant la version JetPack de JP4.6.1. Il est prévu qu'il fonctionne sur toute la gamme de matériel NVIDIA Jetson, y compris les appareils récents et d'ancienne génération.

Qu'est-ce que NVIDIA Jetson ?#

NVIDIA Jetson est une série de cartes de calcul embarquées conçues pour apporter le calcul d'IA (intelligence artificielle) accéléré aux appareils en périphérie (edge). Ces appareils compacts et puissants sont construits autour de l'architecture GPU de NVIDIA et peuvent exécuter des algorithmes d'IA complexes et des modèles de deep learning directement sur l'appareil, sans dépendre des ressources de cloud computing. Les cartes Jetson sont souvent utilisées dans la robotique, les véhicules autonomes, l'automatisation industrielle et d'autres applications où l'inférence d'IA doit être effectuée localement avec une faible latence et une haute efficacité. De plus, ces cartes reposent sur l'architecture ARM64 et fonctionnent à plus faible puissance par rapport aux appareils de calcul GPU traditionnels.

Comparaison de la série NVIDIA Jetson#

NVIDIA Jetson AGX Thor est la dernière itération de la famille NVIDIA Jetson basée sur l'architecture NVIDIA Blackwell, qui apporte des performances d'IA considérablement améliorées par rapport aux générations précédentes. Le tableau ci-dessous compare quelques-uns des appareils Jetson de l'écosystème.

Jetson AGX Thor(T5000)Jetson AGX Orin 64GBJetson Orin NX 16GBJetson Orin Nano SuperJetson AGX XavierJetson Xavier NXJetson Nano
Performance IA2070 TFLOPS275 TOPS100 TOPS67 TOPS32 TOPS21 TOPS472 GFLOPS
GPUGPU 2560-core architecture NVIDIA Blackwell avec 96 Tensor CoresGPU 2048-core architecture NVIDIA Ampere avec 64 Tensor CoresGPU 1024-core architecture NVIDIA Ampere avec 32 Tensor CoresGPU 1024-core architecture NVIDIA Ampere avec 32 Tensor CoresGPU 512-core architecture NVIDIA Volta avec 64 Tensor CoresGPU 384-core architecture NVIDIA Volta™ avec 48 Tensor CoresGPU 128-core architecture NVIDIA Maxwell™
Fréquence max GPU1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921MHz
CPUCPU 14-core Arm® Neoverse®-V3AE 64-bit 1 Mo L2 + 16 Mo L3CPU 12-core NVIDIA Arm® Cortex A78AE v8.2 64-bit 3 Mo L2 + 6 Mo L3CPU 8-core NVIDIA Arm® Cortex A78AE v8.2 64-bit 2 Mo L2 + 4 Mo L3CPU 6-core Arm® Cortex®-A78AE v8.2 64-bit 1.5 Mo L2 + 4 Mo L3CPU 8-core NVIDIA Carmel Arm®v8.2 64-bit 8 Mo L2 + 4 Mo L3CPU 6-core NVIDIA Carmel Arm®v8.2 64-bit 6 Mo L2 + 4 Mo L3Processeur Quad-Core Arm® Cortex®-A57 MPCore
Fréquence max CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
Mémoire128 Go 256-bit LPDDR5X 273 Go/s64 Go 256-bit LPDDR5 204.8 Go/s16 Go 128-bit LPDDR5 102.4 Go/s8 Go 128-bit LPDDR5 102 Go/s32 Go 256-bit LPDDR4x 136.5 Go/s8 Go 128-bit LPDDR4x 59.7 Go/s4 Go 64-bit LPDDR4 25.6 Go/s

Pour consulter un tableau comparatif plus détaillé, visite la section Compare Specifications de la page officielle NVIDIA Jetson.

Qu'est-ce que NVIDIA JetPack ?#

Le NVIDIA JetPack SDK qui alimente les modules Jetson est la solution la plus complète et fournit un environnement de développement complet pour créer des applications d'IA accélérées de bout en bout et raccourcir le délai de mise sur le marché. JetPack comprend Jetson Linux avec un chargeur de démarrage, le noyau Linux, l'environnement de bureau Ubuntu et un ensemble complet de bibliothèques pour l'accélération du calcul GPU, du multimédia, des graphismes et de la computer vision. Il comprend également des exemples, de la documentation et des outils de développement pour l'ordinateur hôte et le kit de développement, et prend en charge des SDK de niveau supérieur tels que DeepStream pour l'analyse vidéo en continu, Isaac pour la robotique et Riva pour l'IA conversationnelle.

Flasher JetPack sur NVIDIA Jetson#

La première étape après avoir obtenu ton appareil NVIDIA Jetson est de flasher NVIDIA JetPack sur l'appareil. Il existe plusieurs façons différentes de flasher les appareils NVIDIA Jetson.

  1. Pour JetPack 7.2 sur un kit de développement officiel Jetson AGX Thor, AGX Orin ou Orin Nano, télécharge l'ISO unifiée Jetson, écris-la sur une clé USB et suis le guide de démarrage rapide spécifique à l'appareil pour AGX Thor, AGX Orin ou Orin Nano. À partir de JetPack 7.2, l'Orin Nano n'utilise plus d'image de carte SD téléchargeable ; l'USB ISO installe Jetson Linux sur la carte microSD ou le SSD NVMe de l'appareil.
  2. Si tu utilises intentionnellement JetPack 6 sur un kit de développement Jetson Orin Nano, suis les instructions de mise à jour et de carte SD de JetPack 6.x de NVIDIA.
  3. Si tu possèdes un autre kit de développement NVIDIA, tu peux flasher JetPack sur l'appareil à l'aide de SDK Manager.
  4. Si tu possèdes un appareil Seeed Studio reComputer J4012, tu peux flasher JetPack sur le SSD inclus et si tu possèdes un appareil Seeed Studio reComputer J1020 v2, tu peux flasher JetPack sur l'eMMC/SSD.
  5. Si tu possèdes tout autre appareil tiers alimenté par le module NVIDIA Jetson, il est recommandé de suivre le flashage en ligne de commande.
Remarque

Pour les méthodes 1, 4 et 5 ci-dessus, après avoir flashé le système et démarré l'appareil, saisis "sudo apt update && sudo apt install nvidia-jetpack -y" dans le terminal de l'appareil pour installer tous les composants JetPack restants nécessaires.

Support JetPack basé sur l'appareil Jetson#

Le tableau ci-dessous met en évidence les versions de NVIDIA JetPack prises en charge par les différents appareils NVIDIA Jetson.

JetPack 4JetPack 5JetPack 6JetPack 7
Jetson Nano
Jetson TX2
Jetson Xavier NX
Jetson AGX Xavier
Jetson AGX Orin
Jetson Orin NX
Jetson Orin Nano
Jetson AGX Thor

Démarrage rapide avec Docker#

Le moyen le plus rapide de commencer avec Ultralytics YOLO26 sur NVIDIA Jetson est de l'exécuter avec des images docker pré-construites pour Jetson. Reporte-toi au tableau ci-dessus et choisis la version de JetPack en fonction de l'appareil Jetson que tu possèdes.

t=ultralytics/ultralytics:latest-jetson-jetpack4
sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
Portée Docker pour JetPack 7

L'image publique latest-nvidia-arm64 ne prend actuellement en charge que le chemin JetPack 7.0 Thor/DGX Spark. Pour JetPack 7.2 sur Thor ou Orin, utilise l'installation native ci-dessous jusqu'à ce que l'image publique soit explicitement validée et mise à jour pour ces combinaisons.

Une fois cela fait, passe à la section Use TensorRT on NVIDIA Jetson.

Commencer avec une installation native#

Pour une installation native sans Docker, veuillez consulter les étapes ci-dessous.

Exécuter sur JetPack 7.2#

Installer le package Ultralytics#

Nous allons installer ici le package Ultralytics sur le Jetson avec les dépendances optionnelles afin de pouvoir exporter les modèles PyTorch vers d'autres formats. Nous nous concentrerons principalement sur les exportations NVIDIA TensorRT car TensorRT garantit l'obtention des performances maximales des appareils Jetson.

  1. Mettre à jour la liste des packages, installer pip et mettre à niveau vers la dernière version

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installer le package pip ultralytics avec les dépendances optionnelles

    pip install ultralytics[export]
  3. Redémarrer l'appareil

    sudo reboot

Installer PyTorch et Torchvision#

L'installation d'Ultralytics ci-dessus installera Torch et Torchvision. Cependant, ces 2 paquets installés via pip ne sont pas compatibles avec les appareils JetPack 7.2 utilisant CUDA 13. Par conséquent, nous devons les installer manuellement.

Installer torch et torchvision selon JP7.2

pip install torch torchvision --index-url https://download.pytorch.org/whl/cu130

Installer onnxruntime-gpu#

Le package onnxruntime-gpu hébergé sur PyPI ne possède pas de binaires aarch64 pour le Jetson. Nous devons donc installer manuellement ce package. Ce package est nécessaire pour certaines exportations.

Nous allons ici télécharger et installer onnxruntime-gpu 1.24.0 avec la prise en charge de Python3.12.

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.24.0-cp312-cp312-linux_aarch64.whl

Exécuter sur JetPack 6.1#

Installer le package Ultralytics#

Nous allons installer ici le package Ultralytics sur le Jetson avec les dépendances optionnelles afin de pouvoir exporter les modèles PyTorch vers d'autres formats. Nous nous concentrerons principalement sur les exportations NVIDIA TensorRT car TensorRT garantit l'obtention des performances maximales des appareils Jetson.

  1. Mettre à jour la liste des packages, installer pip et mettre à niveau vers la dernière version

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installer le package pip ultralytics avec les dépendances optionnelles

    pip install ultralytics[export]
  3. Redémarrer l'appareil

    sudo reboot

Installer PyTorch et Torchvision#

L'installation d'ultralytics ci-dessus installera Torch et Torchvision. Cependant, ces deux paquets installés via pip ne sont pas compatibles avec la plateforme Jetson, qui est basée sur une architecture ARM64. Par conséquent, nous devons installer manuellement une roue pip PyTorch précompilée et compiler ou installer Torchvision à partir des sources.

Installer torch 2.10.0 et torchvision 0.25.0 selon JP6.1

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.10.0-cp310-cp310-linux_aarch64.whl
pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.25.0-cp310-cp310-linux_aarch64.whl
Remarque

Visite la page PyTorch for Jetson pour accéder à toutes les différentes versions de PyTorch pour les diverses versions de JetPack. Pour une liste plus détaillée de la compatibilité entre PyTorch et Torchvision, visite la page de compatibilité PyTorch and Torchvision.

Installer cuDSS pour corriger un problème de dépendance avec torch 2.10.0

wget https://developer.download.nvidia.com/compute/cudss/0.7.1/local_installers/cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo dpkg -i cudss-local-tegra-repo-ubuntu2204-0.7.1_0.7.1-1_arm64.deb
sudo cp /var/cudss-local-tegra-repo-ubuntu2204-0.7.1/cudss-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudss

Installer onnxruntime-gpu#

Le package onnxruntime-gpu hébergé sur PyPI ne possède pas de binaires aarch64 pour le Jetson. Nous devons donc installer manuellement ce package. Ce package est nécessaire pour certaines exportations.

Tu peux trouver tous les packages onnxruntime-gpu disponibles — organisés par version de JetPack, version de Python et autres détails de compatibilité — dans la matrice de compatibilité ONNX Runtime pour Jetson Zoo.

Pour JetPack 6 avec la prise en charge de Python 3.10, tu peux installer onnxruntime-gpu 1.23.0 :

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.23.0-cp310-cp310-linux_aarch64.whl

Alternativement, pour onnxruntime-gpu 1.20.0 :

pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/onnxruntime_gpu-1.20.0-cp310-cp310-linux_aarch64.whl

Exécuter sur JetPack 5.1.2#

Installer le package Ultralytics#

Nous allons installer ici le package Ultralytics sur le Jetson avec les dépendances optionnelles afin de pouvoir exporter les modèles PyTorch vers d'autres formats. Nous nous concentrerons principalement sur les exportations NVIDIA TensorRT car TensorRT garantit l'obtention des performances maximales des appareils Jetson.

  1. Mettre à jour la liste des packages, installer pip et mettre à niveau vers la dernière version

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installer le package pip ultralytics avec les dépendances optionnelles

    pip install ultralytics[export]
  3. Redémarrer l'appareil

    sudo reboot

Installer PyTorch et Torchvision#

L'installation d'ultralytics ci-dessus installera Torch et Torchvision. Cependant, ces deux paquets installés via pip ne sont pas compatibles avec la plateforme Jetson, qui est basée sur une architecture ARM64. Par conséquent, nous devons installer manuellement une roue pip PyTorch précompilée et compiler ou installer Torchvision à partir des sources.

  1. Désinstalle PyTorch et Torchvision actuellement installés

    pip uninstall torch torchvision
  2. Installer torch 2.1.0 et torchvision 0.16.2 selon JP5.1.2

    pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
    pip install https://github.com/ultralytics/assets/releases/download/v0.0.0/torchvision-0.16.2+c6f3977-cp38-cp38-linux_aarch64.whl
Remarque

Visite la page PyTorch for Jetson pour accéder à toutes les différentes versions de PyTorch pour les diverses versions de JetPack. Pour une liste plus détaillée de la compatibilité entre PyTorch et Torchvision, visite la page de compatibilité PyTorch and Torchvision.

Installer onnxruntime-gpu#

Le package onnxruntime-gpu hébergé sur PyPI ne possède pas de binaires aarch64 pour le Jetson. Nous devons donc installer manuellement ce package. Ce package est nécessaire pour certaines exportations.

Tu peux trouver tous les packages onnxruntime-gpu disponibles — organisés par version de JetPack, version de Python et autres détails de compatibilité — dans la matrice de compatibilité ONNX Runtime pour Jetson Zoo. Nous allons ici télécharger et installer onnxruntime-gpu 1.17.0 avec la prise en charge de Python3.8.

wget https://nvidia.box.com/shared/static/zostg6agm00fb6t5uisw51qi6kpcuwzd.whl -O onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
pip install onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
Remarque

onnxruntime-gpu rétablira automatiquement la version de NumPy à la plus récente. Nous devons donc réinstaller NumPy à la version 1.23.5 pour corriger un problème en exécutant :

pip install numpy==1.23.5

Utilise TensorRT sur NVIDIA Jetson#

Parmi tous les formats d'exportation de modèles pris en charge par Ultralytics, TensorRT offre les performances d'inférence les plus élevées sur les appareils NVIDIA Jetson, ce qui en fait notre recommandation principale pour les déploiements Jetson. Pour les instructions de configuration et l'utilisation avancée, consulte notre guide d'intégration TensorRT dédié.

Tu peux également effectuer l'exportation depuis le navigateur sans configurer localement l'environnement de build. Dans l'onglet d'exportation de modèles d'Ultralytics Platform, sélectionne TensorRT et la cible Jetson souhaitée. Les sélections Thor sont validées sur du matériel Thor physique. Les six sélections Orin génèrent actuellement des moteurs candidats construits pour AGX Orin ; valide-les sur le SKU Orin visé avant le déploiement.

Les moteurs TensorRT sont spécifiques à l'appareil

TensorRT profile et optimise un moteur sur son GPU de construction. Fais correspondre l'architecture GPU de la cible et le runtime TensorRT/CUDA, et valide chaque moteur téléchargé sur l'appareil de déploiement. Les SKU Orin de même architecture ne constituent pas une garantie automatique de portabilité, et la calibration INT8 doit utiliser l'appareil cible pour obtenir les meilleurs résultats.

Convertir le modèle en TensorRT et exécuter l'inférence#

Le modèle YOLO26n au format PyTorch est converti en TensorRT pour exécuter l'inférence avec le modèle exporté.

Exemple
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT
model.export(format="engine")  # creates 'yolo26n.engine'

# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")

# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
Remarque

Visite la page Export pour accéder aux arguments supplémentaires lors de l'exportation de modèles vers différents formats

Utilise le NVIDIA Deep Learning Accelerator (DLA)#

Le NVIDIA Deep Learning Accelerator (DLA) est un composant matériel spécialisé intégré dans les appareils NVIDIA Jetson qui optimise l'inférence de deep learning pour l'efficacité énergétique et les performances. En déchargeant les tâches du GPU (le libérant ainsi pour des processus plus intensifs), le DLA permet aux modèles de s'exécuter avec une consommation d'énergie réduite tout en maintenant un débit élevé, ce qui est idéal pour les systèmes embarqués et les applications d'IA en temps réel.

TensorRT 11.0 et DLA

DLA n'est pas pris en charge dans TensorRT 11.0 et son retour est prévu dans une version ultérieure, donc l'exportation DLA nécessite TensorRT 10.x. Sur JetPack 6.x/7.x, effectue l'exportation avec une build de TensorRT 10.x pour utiliser DLA, ou utilise le GPU pour les moteurs TensorRT 11.0.

Les appareils Jetson suivants sont équipés de matériel DLA :

Appareil JetsonCœurs DLAFréquence maximale DLA
Série Jetson AGX Orin21.6 GHz
Jetson Orin NX 16GB2614 MHz
Jetson Orin NX 8GB1614 MHz
Série Jetson AGX Xavier21.4 GHz
Série Jetson Xavier NX21.1 GHz
Exemple
from ultralytics import YOLO

# Load a YOLO26n PyTorch model
model = YOLO("yolo26n.pt")

# Export the model to TensorRT with DLA enabled (only works with FP16 or INT8)
model.export(format="engine", device="dla:0", quantize=16)  # dla:0 or dla:1 corresponds to the DLA cores

# Load the exported TensorRT model
trt_model = YOLO("yolo26n.engine")

# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
Remarque

Lors de l'utilisation des exportations DLA, certaines couches peuvent ne pas être prises en charge pour s'exécuter sur le DLA et reviendront au GPU pour l'exécution. Ce repli peut introduire une latence supplémentaire et impacter la performance globale de l'inférence. Par conséquent, le DLA n'est pas principalement conçu pour réduire la latence de l'inférence par rapport à TensorRT s'exécutant entièrement sur le GPU. Au lieu de cela, son objectif principal est d'augmenter le débit et d'améliorer l'efficacité énergétique.

Benchmarks NVIDIA Jetson YOLO11/ YOLO26#

Les benchmarks de YOLO11/ YOLO26 ont été exécutés par l'équipe Ultralytics sur 11 formats de modèles différents mesurant la vitesse et la précision : PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. Les benchmarks ont été exécutés sur le NVIDIA Jetson AGX Thor Developer Kit, le NVIDIA Jetson AGX Orin Developer Kit (64GB), le NVIDIA Jetson Orin Nano Super Developer Kit et le Seeed Studio reComputer J4012 alimenté par un appareil Jetson Orin NX 16GB en précision FP32 avec une taille d'image d'entrée par défaut de 640.

Graphiques de comparaison#

Même si toutes les exportations de modèles fonctionnent sur NVIDIA Jetson, nous n'avons inclus que PyTorch, TorchScript, TensorRT pour le graphique de comparaison ci-dessous car ils utilisent le GPU du Jetson et sont garantis de produire les meilleurs résultats. Toutes les autres exportations utilisent uniquement le CPU et la performance n'est pas aussi bonne que les trois précédentes. Tu peux trouver les benchmarks pour toutes les exportations dans la section après ce graphique.

NVIDIA Jetson AGX Thor Developer Kit#

Jetson AGX Thor Benchmarks
Benchmarked with Ultralytics 8.3.226

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Jetson AGX Orin Benchmarks
Benchmarked with Ultralytics 8.4.32

NVIDIA Jetson Orin Nano Super Developer Kit#

Jetson Orin Nano Super Benchmarks
Benchmarked with Ultralytics 8.4.33

NVIDIA Jetson Orin NX 16GB#

Jetson Orin NX 16GB Benchmarks
Benchmarked with Ultralytics 8.4.33

Tableaux de comparaison détaillés#

Le tableau ci-dessous représente les résultats des benchmarks pour cinq modèles différents (YOLO11n, YOLO11s, YOLO11m, YOLO11l, YOLO11x) à travers 11 formats différents (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), nous donnant le statut, la taille, la métrique mAP50-95(B) et le temps d'inférence pour chaque combinaison.

NVIDIA Jetson AGX Thor Developer Kit#

Performance
FormatStatutTaille sur le disque (MB)mAP50-95(B)Temps d'inférence (ms/im)
PyTorch5.30.47987.39
TorchScript9.80.47894.21
ONNX9.50.47676.58
OpenVINO10.10.479417.50
TensorRT (FP32)13.90.47911.90
TensorRT (FP16)7.60.47971.39
TensorRT (INT8)6.50.42731.52
TF SavedModel25.70.476447.24
TF GraphDef9.50.476445.98
TF Lite9.90.4764182.04
MNN9.40.478421.83

Évalué avec Ultralytics 8.4.7

Remarque

Le temps d'inférence n'inclut pas le pré/post-traitement.

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Performance
FormatStatutTaille sur le disque (MB)mAP50-95(B)Temps d'inférence (ms/im)
PyTorch5.30.479011.58
TorchScript9.80.47704.60
ONNX9.50.47709.87
OpenVINO9.60.482028.80
TensorRT (FP32)11.50.04504.18
TensorRT (FP16)7.90.04502.62
TensorRT (INT8)5.40.46402.30
TF SavedModel24.60.476071.10
TF GraphDef9.50.476070.02
TF Lite9.90.4760227.94
MNN9.40.476032.46
NCNN9.30.481029.93

Évalué avec Ultralytics 8.4.32

Remarque

Le temps d'inférence n'inclut pas le pré/post-traitement.

NVIDIA Jetson Orin Nano Super Developer Kit#

Performance
FormatStatutTaille sur le disque (MB)mAP50-95(B)Temps d'inférence (ms/im)
PyTorch5.30.479015.60
TorchScript9.80.477012.60
ONNX9.50.476015.76
OpenVINO9.60.482056.23
TensorRT (FP32)11.30.47707.53
TensorRT (FP16)8.10.48004.57
TensorRT (INT8)5.30.44903.80
TF SavedModel24.60.4760118.33
TF GraphDef9.50.4760116.30
TF Lite9.90.4760286.00
MNN9.40.476068.77
NCNN9.30.481047.50

Benchmarké avec Ultralytics 8.4.33

Remarque

Le temps d'inférence n'inclut pas le pré/post-traitement.

NVIDIA Jetson Orin NX 16GB#

Performance
FormatStatutTaille sur le disque (MB)mAP50-95(B)Temps d'inférence (ms/im)
PyTorch5.30.479913.90
TorchScript9.80.478711.60
ONNX9.50.476314.18
OpenVINO9.60.481940.19
TensorRT (FP32)11.40.47707.01
TensorRT (FP16)8.00.47894.13
TensorRT (INT8)5.50.44893.49
TF SavedModel24.60.476492.34
TF GraphDef9.50.476492.06
TF Lite9.90.4764254.43
MNN9.40.476048.55
NCNN9.30.480534.31

Benchmarké avec Ultralytics 8.4.33

Remarque

Le temps d'inférence n'inclut pas le pré/post-traitement.

Explore d'autres initiatives de benchmarking par Seeed Studio s'exécutant sur différentes versions de matériel NVIDIA Jetson.

Reproduis nos résultats#

Pour reproduire les benchmarks Ultralytics ci-dessus sur tous les formats d'exportation, exécute ce code :

Exemple
from ultralytics import YOLO

# Load a YOLO11n PyTorch model
model = YOLO("yolo11n.pt")

# Benchmark YOLO11n speed and accuracy on the COCO128 dataset for all export formats
results = model.benchmark(data="coco128.yaml", imgsz=640)

Note que les résultats des benchmarks peuvent varier en fonction de la configuration matérielle et logicielle exacte d'un système, ainsi que de la charge de travail actuelle du système au moment où les benchmarks sont exécutés. Pour obtenir les résultats les plus fiables, utilise un grand jeu de données d'images, par exemple data='coco.yaml' (5000 images de validation).

Meilleures pratiques lors de l'utilisation de NVIDIA Jetson#

Lorsque tu utilises NVIDIA Jetson, il y a quelques meilleures pratiques à suivre pour permettre une performance maximale sur le NVIDIA Jetson exécutant YOLO26.

  1. Active le mode MAX Power

    Activer le mode MAX Power sur le Jetson garantira que tous les cœurs CPU et GPU sont activés.

    sudo nvpmodel -m 0
  2. Active les horloges Jetson

    Activer les horloges Jetson garantira que tous les cœurs CPU et GPU fonctionnent à leur fréquence maximale.

    sudo jetson_clocks
  3. Installe l'application jetson stats

    Nous pouvons utiliser l'application jetson stats pour surveiller les températures des composants du système et vérifier d'autres détails du système comme voir l'utilisation du CPU, GPU, RAM, changer les modes d'alimentation, régler sur les horloges max, vérifier les informations JetPack

    sudo apt update
    sudo pip install jetson-stats
    sudo reboot
    jtop
Jetson Stats

Conseils d'optimisation de la mémoire pour NVIDIA Jetson#

La mémoire disponible est souvent le facteur limitant sur les appareils Jetson, en particulier sur les variantes à plus faible mémoire telles que le Jetson Orin Nano (8 Go) ou l'Orin NX 8 Go. Les astuces ci-dessous sont des modifications pratiques et à faible risque qui peuvent collectivement libérer plusieurs centaines de mégaoctets et te permettre d'exécuter des modèles YOLO plus grands ou de prendre en charge des charges de travail parallèles supplémentaires. Pour un traitement complet, consulte le blog NVIDIA sur l'optimisation de l'efficacité mémoire sur Jetson.

Passe au démarrage Headless (sans GUI)#

Si ton Jetson est connecté via SSH ou fonctionne comme un appareil de production sans écran attaché, éliminer l'environnement de bureau et le serveur d'affichage peut récupérer jusqu'à 865 MB de RAM :

sudo systemctl set-default multi-user.target
sudo reboot

Pour restaurer le bureau plus tard :

sudo systemctl set-default graphical.target
sudo reboot

Désactive les services système inutilisés#

Les services d'arrière-plan non essentiels (Bluetooth, gestionnaires de connectivité, démons matériels inutilisés) consomment environ 32 MB au total. Liste les services actifs et désactive tout ce dont ton déploiement n'a pas besoin :

# List running services
systemctl list-units --type=service --state=running

# Disable a service
sudo systemctl disable SERVICE_NAME

Profile l'utilisation de la mémoire#

Avant d'optimiser, identifie quels processus consomment réellement de la RAM. procrank trie les processus par PSS (Proportional Set Size), ce qui reflète l'empreinte mémoire réelle par processus avec plus de précision que le RSS (Resident Set Size, le total des pages de RAM physique mappées par un processus, y compris les pages partagées avec d'autres processus) :

git clone https://github.com/csimmonds/procrank_linux.git
cd procrank_linux && make
sudo ./procrank

Pour voir les allocations GPU et NvMap (CUDA/pipeline vidéo) par processus :

sudo cat /sys/kernel/debug/nvmap/iovmm/clients

Exécute l'inférence sans écran en production#

Pour les pipelines d'inférence qui n'ont pas besoin de prévisualisation en direct, désactiver les composants liés à l'affichage (Tiler, OSD, DisplaySink) peut économiser 200+ MB pour le pipeline seul. Avec Ultralytics YOLO, supprime la visionneuse et écris les résultats sur le disque à la place :

Exemple
from ultralytics import YOLO

model = YOLO("yolo11n.engine")

# show=False prevents any display window; save=True writes annotated output to disk
results = model.predict(source="video.mp4", show=False, save=True)

Impact cumulé#

OptimisationMémoire approx. économisée
Désactiver le GUI du bureau~865 MB
Désactiver les services OS inutilisés~32 MB
Pipeline d'inférence headless (sans écran)~200+ MB
Total (victoires faciles)~1 GB+

Combiner ces changements est particulièrement précieux lorsque tu cibles des modèles TensorRT INT8 sur des appareils à mémoire limitée — cela peut faire la différence entre réussir à faire tenir une variante de modèle plus large en mémoire ou non.

Prochaines étapes#

Pour un apprentissage et un support supplémentaires, consulte la documentation Ultralytics YOLO26.

FAQ#

  • Le déploiement d'Ultralytics YOLO26 sur les appareils NVIDIA Jetson est un processus simple. Tout d'abord, flashe ton appareil Jetson avec le NVIDIA JetPack SDK. Ensuite, utilise soit une image Docker pré-construite pour une configuration rapide, soit installe manuellement les packages requis. Les étapes détaillées pour chaque approche se trouvent dans les sections Quick Start with Docker et Start with Native Installation.

  • Les modèles YOLO11 ont été testés sur divers appareils NVIDIA Jetson, montrant des améliorations significatives des performances. Par exemple, le format TensorRT offre les meilleures performances d'inférence. Le tableau de la section Detailed Comparison Tables offre une vue d'ensemble complète des métriques de performance telles que le mAP50-95 et le temps d'inférence selon les différents formats de modèles.

  • TensorRT est fortement recommandé pour déployer des modèles YOLO26 sur NVIDIA Jetson en raison de ses performances optimales. Il accélère l'inférence en exploitant les capacités du GPU du Jetson, garantissant une efficacité et une vitesse maximales. Apprends-en plus sur la conversion vers TensorRT et l'exécution de l'inférence dans la section Use TensorRT on NVIDIA Jetson.

  • Pour installer PyTorch et Torchvision sur NVIDIA Jetson, commence par désinstaller toutes les versions existantes qui auraient pu être installées via pip. Ensuite, installe manuellement les versions compatibles de PyTorch et Torchvision pour l'architecture ARM64 du Jetson. Les instructions détaillées pour ce processus sont fournies dans la section Install PyTorch and Torchvision.

  • Pour maximiser les performances sur NVIDIA Jetson avec YOLO26, suis ces bonnes pratiques :

    1. Active le mode MAX Power pour utiliser tous les cœurs CPU et GPU.
    2. Active les Jetson Clocks pour faire fonctionner tous les cœurs à leur fréquence maximale.
    3. Installe l'application Jetson Stats pour surveiller les mesures du système.

    Pour les commandes et des détails supplémentaires, réfère-toi à la section Best Practices when using NVIDIA Jetson.

  • La RAM disponible est souvent le goulot d'étranglement sur les appareils Jetson à faible mémoire. Trois astuces simples qui peuvent libérer ensemble plus de 1 Go :

    1. Passer au démarrage sans interface graphique (headless) (sudo systemctl set-default multi-user.target) pour éliminer l'interface graphique du bureau (~865 Mo économisés).
    2. Désactive les services inutilisés tels que le Bluetooth ou les gestionnaires de connectivité (~32 Mo économisés).
    3. Exécuter l'inférence sans affichage en configurant show=False dans ton appel YOLO predict, ce qui évite d'allouer de la mémoire pour le pipeline d'affichage (~200+ Mo économisés).

    Utilise procrank pour profiler l'utilisation de la RAM par processus et sudo cat /sys/kernel/debug/nvmap/iovmm/clients pour inspecter les allocations GPU. Consulte la section Memory Optimization Tips pour tous les détails.

  • TensorRT 10.3.0 fourni avec JetPack 6 présente un problème connu qui empêche la construction de moteurs INT8 lorsque end2end=True est activé. Lorsqu'Ultralytics détecte cette combinaison, il désactive automatiquement la branche end2end pour s'assurer que l'exportation réussit.

    Pour restaurer les exports INT8 end2end, mets à niveau TensorRT vers une version plus récente (par ex. 10.7.0+) :

    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/arm64/cuda-keyring_1.1-1_all.deb
    sudo dpkg -i cuda-keyring_1.1-1_all.deb
    sudo apt-get update
    sudo apt-get install -y tensorrt

    Après la mise à niveau, relance ton exportation. Pour plus de détails, consulte l'issue GitHub #23841.

Commentaires