Ultralytics YOLO27:

Guida rapida: NVIDIA Jetson con Ultralytics YOLO26#

Questa guida completa illustra dettagliatamente come distribuire Ultralytics YOLO26 sui dispositivi NVIDIA Jetson. Inoltre, presenta benchmark delle prestazioni per dimostrare le capacità di YOLO26 su questi dispositivi piccoli e potenti.

Supporto per il nuovo prodotto

Abbiamo aggiornato questa guida con l'ultimo NVIDIA Jetson AGX Thor Developer Kit, che offre fino a 2070 TFLOPS FP4 di calcolo AI e 128 GB di memoria, con una potenza configurabile tra 40 W e 130 W. Offre oltre 7,5 volte la capacità di calcolo AI di NVIDIA Jetson AGX Orin, con un'efficienza energetica 3,5 volte superiore, per eseguire senza problemi i modelli AI più diffusi.



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

Questa guida è stata testata con NVIDIA Jetson AGX Thor Developer Kit (Jetson T5000) e NVIDIA Jetson AGX Orin Developer Kit (64GB) con l'ultima versione stabile JetPack 7.2, NVIDIA Jetson Orin Nano Super Developer Kit con la versione JetPack di JP6.1, Seeed Studio reComputer J4012, basato su NVIDIA Jetson Orin NX 16GB con la versione JetPack di JP6.0/ la versione JetPack di JP5.1.3, e Seeed Studio reComputer J1020 v2, basato su NVIDIA Jetson Nano 4GB con la versione JetPack di JP4.6.1. Si prevede che funzioni sull'intera gamma di hardware NVIDIA Jetson, inclusi i dispositivi più recenti e quelli legacy.

Che cos'è NVIDIA Jetson?#

NVIDIA Jetson è una serie di schede di calcolo embedded progettate per portare il calcolo AI accelerato sui dispositivi edge. Questi dispositivi compatti e potenti sono basati sull'architettura GPU di NVIDIA e possono eseguire algoritmi AI complessi e modelli di deep learning direttamente sul dispositivo, senza dipendere dalle risorse del cloud computing. Le schede Jetson sono spesso utilizzate nella robotica, nei veicoli autonomi, nell'automazione industriale e in altre applicazioni in cui l'inferenza AI deve essere eseguita localmente con bassa latenza e alta efficienza. Inoltre, queste schede sono basate sull'architettura ARM64 e consumano meno energia rispetto ai dispositivi tradizionali per il calcolo su GPU.

Confronto tra le serie NVIDIA Jetson#

NVIDIA Jetson AGX Thor è l'ultima versione della famiglia NVIDIA Jetson, basata sull'architettura NVIDIA Blackwell, che offre prestazioni AI notevolmente superiori rispetto alle generazioni precedenti. La tabella seguente confronta alcuni dispositivi Jetson dell'ecosistema.

Jetson AGX Thor(T5000)Jetson AGX Orin 64GBJetson Orin NX 16GBJetson Orin Nano SuperJetson AGX XavierJetson Xavier NXJetson Nano
Prestazioni AI2070 TFLOPS275 TOPS100 TOPS67 TOPS32 TOPS21 TOPS472 GFLOPS
GPUGPU con architettura NVIDIA Blackwell a 2560 core e 96 Tensor CoreGPU con architettura NVIDIA Ampere a 2048 core e 64 Tensor CoreGPU con architettura NVIDIA Ampere a 1024 core e 32 Tensor CoreGPU con architettura NVIDIA Ampere a 1024 core e 32 Tensor CoreGPU con architettura NVIDIA Volta a 512 core e 64 Tensor CoreGPU con architettura NVIDIA Volta™ a 384 core e 48 Tensor CoreGPU con architettura NVIDIA Maxwell™ a 128 core
Frequenza massima GPU1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921MHz
CPUCPU Arm® Neoverse®-V3AE a 14 core e 64 bit, 1MB L2 + 16MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 a 12 core e 64 bit, 3MB L2 + 6MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 a 8 core e 64 bit, 2MB L2 + 4MB L3CPU Arm® Cortex®-A78AE v8.2 a 6 core e 64 bit, 1.5MB L2 + 4MB L3CPU NVIDIA Carmel Arm®v8.2 a 8 core e 64 bit, 8MB L2 + 4MB L3CPU NVIDIA Carmel Arm®v8.2 a 6 core e 64 bit, 6MB L2 + 4MB L3Processore Quad-Core Arm® Cortex®-A57 MPCore
Frequenza massima CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
Memoria128GB LPDDR5X a 256 bit, 273GB/s64GB LPDDR5 a 256 bit, 204.8GB/s16GB LPDDR5 a 128 bit, 102.4GB/s8GB LPDDR5 a 128 bit, 102 GB/s32GB LPDDR4x a 256 bit, 136.5GB/s8GB LPDDR4x a 128 bit, 59.7GB/s4GB LPDDR4 a 64 bit, 25.6GB/s

Per una tabella di confronto più dettagliata, visita la sezione Confronta le specifiche della pagina ufficiale NVIDIA Jetson.

Che cos'è NVIDIA JetPack?#

NVIDIA JetPack SDK, che alimenta i moduli Jetson, è la soluzione più completa e fornisce un ambiente di sviluppo completo per creare applicazioni AI accelerate end-to-end, riducendo il time-to-market. JetPack include Jetson Linux con bootloader, kernel Linux, ambiente desktop Ubuntu e un set completo di librerie per l'accelerazione del calcolo su GPU, dei contenuti multimediali, della grafica e della computer vision. Include anche esempi, documentazione e strumenti per sviluppatori sia per il computer host sia per il kit di sviluppo, e supporta SDK di livello superiore come DeepStream per l'analisi video in streaming, Isaac per la robotica e Riva per l'AI conversazionale.

Installare JetPack su NVIDIA Jetson#

Il primo passo dopo aver ricevuto un dispositivo NVIDIA Jetson consiste nell'installare NVIDIA JetPack sul dispositivo. Esistono diversi modi per installare NVIDIA JetPack sui dispositivi NVIDIA Jetson.

  1. Per JetPack 7.2 su un Jetson AGX Thor, AGX Orin o Orin Nano Developer Kit ufficiale, scarica l'ISO unificata di Jetson, scrivila su un'unità flash USB e segui la guida rapida specifica del dispositivo per AGX Thor, AGX Orin o Orin Nano. A partire da JetPack 7.2, Orin Nano non utilizza più un'immagine della scheda SD scaricabile; l'installazione ISO da USB installa Jetson Linux sulla scheda microSD o sull'SSD NVMe del dispositivo.
  2. Se utilizzi intenzionalmente JetPack 6 su un Jetson Orin Nano Developer Kit, segui le istruzioni di NVIDIA per l'aggiornamento di JetPack 6.x e la scheda SD.
  3. Se possiedi un altro Development Kit NVIDIA, puoi installare JetPack sul dispositivo utilizzando SDK Manager.
  4. Se possiedi un dispositivo Seeed Studio reComputer J4012, puoi installare JetPack sull'SSD incluso; se possiedi un dispositivo Seeed Studio reComputer J1020 v2, puoi installare JetPack sull'eMMC/SSD.
  5. Se possiedi un altro dispositivo di terze parti basato sul modulo NVIDIA Jetson, ti consigliamo di seguire la procedura di installazione dalla riga di comando.
Nota

Per i metodi 1, 4 e 5 indicati sopra, dopo aver installato il sistema e avviato il dispositivo, inserisci "sudo apt update && sudo apt install nvidia-jetpack -y" nel terminale del dispositivo per installare tutti i componenti JetPack rimanenti necessari.

Supporto JetPack in base al dispositivo Jetson#

La tabella seguente evidenzia le versioni di NVIDIA JetPack supportate dai diversi dispositivi 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

Guida rapida con Docker#

Il modo più rapido per iniziare a utilizzare Ultralytics YOLO26 su NVIDIA Jetson consiste nell'eseguirlo con immagini Docker precompilate per Jetson. Consulta la tabella precedente e scegli la versione di JetPack in base al dispositivo Jetson che possiedi.

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

L'immagine latest-nvidia-arm64 utilizza NVIDIA PyTorch 26.08, inclusi CUDA 13.4 e TensorRT 11.2. NVIDIA elenca JetPack 7.1 per PyTorch nella sua tabella di compatibilità, ma TensorRT 11.2.1 non supporta JetPack, incluso Thor. Usa questa immagine solo per i carichi di lavoro PyTorch su un host supportato. Per le esportazioni TensorRT su Jetson, usa l'installazione nativa di seguito con il runtime TensorRT 10.x supportato dalla tua release di JetPack. JetPack 7.2 su Thor o Orin richiede una validazione del contenitore separata. Ricompila i motori per la GPU di destinazione e la versione di TensorRT.

Per le immagini di JetPack 4, 5 e 6, continua su Usa TensorRT su NVIDIA Jetson. L'immagine di JetPack 7.1 sopra è solo per i carichi di lavoro PyTorch.

Inizia con l'installazione nativa#

Per un'installazione nativa senza Docker, fai riferimento ai passaggi riportati di seguito.

Eseguire su JetPack 7.2#

Installare il pacchetto Ultralytics#

Qui installeremo il pacchetto Ultralytics su Jetson. Le dipendenze per l'esportazione vengono installate automaticamente la prima volta che esporti un modello, quindi qui è necessario solo il pacchetto di base. Ci concentreremo principalmente sulle esportazioni NVIDIA TensorRT, perché TensorRT garantisce di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiornare l'elenco dei pacchetti, installare pip e aggiornarlo all'ultima versione

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installare il pacchetto pip ultralytics

    pip install ultralytics
  3. Riavviare il dispositivo

    sudo reboot

Installare PyTorch e Torchvision#

L'installazione di ultralytics descritta sopra installerà Torch e Torchvision. Tuttavia, questi due pacchetti installati tramite pip non sono compatibili con i dispositivi JetPack 7.2 dotati di CUDA 13. Pertanto, dobbiamo installarli manualmente.

Installare torch e torchvision in base a JP7.2

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

Installare onnxruntime-gpu#

Usa un wheel GPU di ONNX Runtime abbinato alle tue versioni di JetPack, Python e CUDA. Le attuali release di PyPI includono wheel ARM64, ma non sostituiscono i pacchetti specifici del dispositivo per ogni release di JetPack.

Qui scaricheremo e installeremo onnxruntime-gpu 1.24.0 con il supporto per Python3.12.

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

Eseguire su JetPack 6.1#

Installare il pacchetto Ultralytics#

Qui installeremo il pacchetto Ultralytics su Jetson. Le dipendenze per l'esportazione vengono installate automaticamente la prima volta che esporti un modello, quindi qui è necessario solo il pacchetto di base. Ci concentreremo principalmente sulle esportazioni NVIDIA TensorRT, perché TensorRT garantisce di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiornare l'elenco dei pacchetti, installare pip e aggiornarlo all'ultima versione

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installare il pacchetto pip ultralytics

    pip install ultralytics
  3. Riavviare il dispositivo

    sudo reboot

Installare PyTorch e Torchvision#

L'installazione di ultralytics descritta sopra installerà Torch e Torchvision. Tuttavia, questi due pacchetti installati tramite pip non sono compatibili con la piattaforma Jetson, basata sull'architettura ARM64. Pertanto, dobbiamo installare manualmente un wheel pip PyTorch precompilato e compilare o installare Torchvision dal codice sorgente.

Installare torch 2.10.0 e torchvision 0.25.0 in base a 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
Nota

Visita la pagina PyTorch per Jetson per accedere a tutte le diverse versioni di PyTorch per le diverse versioni di JetPack. Per un elenco più dettagliato della compatibilità tra PyTorch e Torchvision, visita la pagina sulla compatibilità tra PyTorch e Torchvision.

Installa cuDSS per risolvere un problema di dipendenza con 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

Installare onnxruntime-gpu#

Usa un wheel GPU di ONNX Runtime abbinato alle tue versioni di JetPack, Python e CUDA. Le attuali release di PyPI includono wheel ARM64, ma non sostituiscono i pacchetti specifici del dispositivo per ogni release di JetPack.

Puoi trovare tutti i pacchetti onnxruntime-gpu disponibili, organizzati per versione di JetPack, versione di Python e altri dettagli di compatibilità, nella matrice di compatibilità di ONNX Runtime di Jetson Zoo.

Per JetPack 6 con supporto a Python 3.10, puoi installare 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

In alternativa, per 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

Eseguire su JetPack 5.1.2#

Installare il pacchetto Ultralytics#

Qui installeremo il pacchetto Ultralytics su Jetson. Le dipendenze per l'esportazione vengono installate automaticamente la prima volta che esporti un modello, quindi qui è necessario solo il pacchetto di base. Ci concentreremo principalmente sulle esportazioni NVIDIA TensorRT, perché TensorRT garantisce di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiornare l'elenco dei pacchetti, installare pip e aggiornarlo all'ultima versione

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installare il pacchetto pip ultralytics

    pip install ultralytics
  3. Riavviare il dispositivo

    sudo reboot

Installare PyTorch e Torchvision#

L'installazione di ultralytics descritta sopra installerà Torch e Torchvision. Tuttavia, questi due pacchetti installati tramite pip non sono compatibili con la piattaforma Jetson, basata sull'architettura ARM64. Pertanto, dobbiamo installare manualmente un wheel pip PyTorch precompilato e compilare o installare Torchvision dal codice sorgente.

  1. Disinstallare PyTorch e Torchvision attualmente installati

    pip uninstall torch torchvision
  2. Installare torch 2.1.0 e torchvision 0.16.2 in base a 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
Nota

Visita la pagina PyTorch per Jetson per accedere a tutte le diverse versioni di PyTorch per le diverse versioni di JetPack. Per un elenco più dettagliato della compatibilità tra PyTorch e Torchvision, visita la pagina sulla compatibilità tra PyTorch e Torchvision.

Installare onnxruntime-gpu#

Usa un wheel GPU di ONNX Runtime abbinato alle tue versioni di JetPack, Python e CUDA. Le attuali release di PyPI includono wheel ARM64, ma non sostituiscono i pacchetti specifici del dispositivo per ogni release di JetPack.

Puoi trovare tutti i pacchetti onnxruntime-gpu disponibili, organizzati per versione di JetPack, versione di Python e altri dettagli di compatibilità, nella matrice di compatibilità di ONNX Runtime di Jetson Zoo. Qui scaricheremo e installeremo onnxruntime-gpu 1.17.0 con il supporto per 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
Nota

onnxruntime-gpu ripristinerà automaticamente la versione di NumPy all'ultima disponibile. Pertanto, dobbiamo reinstallare NumPy alla versione 1.23.5 per risolvere un problema, eseguendo:

pip install numpy==1.23.5

Utilizzare TensorRT su NVIDIA Jetson#

Tra tutti i formati di esportazione dei modelli supportati da Ultralytics, TensorRT offre le massime prestazioni di inferenza sui dispositivi NVIDIA Jetson, rendendolo la nostra raccomandazione principale per le distribuzioni su Jetson. Prima di esportare, installa i binding Python di TensorRT forniti per la tua release di JetPack e verificali con python3 -c "import tensorrt; print(tensorrt.__version__)". Mantieni il runtime TensorRT 10.x supportato su JetPack 6/7; non sostituirlo con TensorRT 11.2.1. Per le istruzioni di configurazione e l'uso avanzato, consulta la nostra guida all'integrazione TensorRT dedicata.

Puoi anche esportare dal browser senza configurare localmente l'ambiente di compilazione. Nella scheda Esportazione dei modelli della Ultralytics Platform, seleziona TensorRT e il dispositivo Jetson di destinazione. Le selezioni Thor vengono convalidate su hardware Thor fisico. Le sei selezioni Orin attualmente producono motori candidati compilati per AGX-Orin; convalidali sullo SKU Orin di destinazione prima della distribuzione.

I motori TensorRT sono specifici per dispositivo

TensorRT crea il profilo e ottimizza un motore sulla GPU di compilazione. Associa l'architettura GPU e il runtime TensorRT/CUDA del dispositivo di destinazione, quindi convalida ogni motore scaricato sul dispositivo di distribuzione. Gli SKU Orin con la stessa architettura non garantiscono automaticamente la portabilità, e per ottenere i risultati migliori la calibrazione INT8 deve essere eseguita sul dispositivo di destinazione.

Converti il modello in TensorRT ed esegui l'inferenza#

Il modello YOLO26n in formato PyTorch viene convertito in TensorRT per eseguire l'inferenza con il modello esportato.

Esempio
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")
Nota

Visita la pagina Esportazione per accedere ad argomenti aggiuntivi durante l'esportazione dei modelli in formati diversi.

Usa NVIDIA Deep Learning Accelerator (DLA)#

NVIDIA Deep Learning Accelerator (DLA) è un componente hardware specializzato integrato nei dispositivi NVIDIA Jetson, che ottimizza l'inferenza del deep learning per garantire efficienza energetica e prestazioni. Scaricando le attività dalla GPU (liberandola per processi più intensivi), DLA consente ai modelli di funzionare con un consumo energetico inferiore mantenendo un throughput elevato, caratteristica ideale per i sistemi embedded e le applicazioni di IA in tempo reale.

Compatibilità tra TensorRT e DLA

NVIDIA elenca TensorRT 10.7 come l'ultima release con supporto DLA; TensorRT 11.0, 11.1 e 11.2 non supportano DLA. Usa una release di TensorRT compatibile con DLA supportata dalla tua versione di JetPack. TensorRT 11.2.1 non supporta JetPack, incluse le esportazioni solo GPU.

I seguenti dispositivi Jetson sono dotati di hardware DLA:

Dispositivo JetsonCore DLAFrequenza massima DLA
Serie Jetson AGX Orin21.6 GHz
Jetson Orin NX 16GB2614 MHz
Jetson Orin NX 8GB1614 MHz
Serie Jetson AGX Xavier21.4 GHz
Serie Jetson Xavier NX21.1 GHz
Esempio
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")
Nota

Quando usi esportazioni DLA, alcuni layer potrebbero non essere supportati da DLA e verranno eseguiti dalla GPU come fallback. Questo fallback può introdurre latenza aggiuntiva e influire sulle prestazioni complessive dell'inferenza. Pertanto, DLA non è progettato principalmente per ridurre la latenza dell'inferenza rispetto a TensorRT eseguito interamente sulla GPU. Il suo scopo principale è invece aumentare il throughput e migliorare l'efficienza energetica.

Benchmark di YOLO26 su NVIDIA Jetson#

I benchmark di YOLO26 sono stati eseguiti dal team di Ultralytics su 11 diversi formati di modello misurando velocità e accuratezza: PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch. I benchmark sono stati eseguiti su NVIDIA Jetson AGX Thor Developer Kit, NVIDIA Jetson AGX Orin Developer Kit (64GB), NVIDIA Jetson Orin Nano Super Developer Kit e Seeed Studio reComputer J4012 alimentato dal dispositivo Jetson Orin NX 16GB a precisione FP32 con una dimensione dell'immagine di input predefinita di 640.

Grafici comparativi#

Sebbene tutte le esportazioni dei modelli funzionino su NVIDIA Jetson, nel grafico comparativo riportato di seguito abbiamo incluso solo PyTorch, TorchScript, TensorRT, perché utilizzano la GPU del Jetson e garantiscono i risultati migliori. Tutte le altre esportazioni utilizzano esclusivamente la CPU e le prestazioni non sono altrettanto buone delle tre precedenti. Puoi trovare i benchmark di tutte le esportazioni nella sezione successiva a questo grafico.

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

Tabelle comparative dettagliate#

La tabella sottostante rappresenta i risultati dei benchmark per cinque diversi modelli (YOLO26n, YOLO26s, YOLO26m, YOLO26l, YOLO26x) su 11 formati differenti (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), fornendo lo stato, la dimensione, la metrica mAP50-95(B) e il tempo di inferenza per ciascuna combinazione.

NVIDIA Jetson AGX Thor Developer Kit#

Prestazioni
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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

Benchmark eseguito con Ultralytics 8.4.7

Nota

Il tempo di inferenza non include la pre-elaborazione e la post-elaborazione.

NVIDIA Jetson AGX Orin Developer Kit (64GB)#

Prestazioni
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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

Benchmark eseguito con Ultralytics 8.4.32

Nota

Il tempo di inferenza non include la pre-elaborazione e la post-elaborazione.

NVIDIA Jetson Orin Nano Super Developer Kit#

Prestazioni
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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 eseguito con Ultralytics 8.4.33

Nota

Il tempo di inferenza non include la pre-elaborazione e la post-elaborazione.

NVIDIA Jetson Orin NX 16GB#

Prestazioni
FormatoStatoDimensione su disco (MB)mAP50-95(B)Tempo di inferenza (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 eseguito con Ultralytics 8.4.33

Nota

Il tempo di inferenza non include la pre-elaborazione e la post-elaborazione.

Scopri altre attività di benchmarking di Seeed Studio eseguite su diverse versioni dell'hardware NVIDIA Jetson.

Riproduci i nostri risultati#

Per riprodurre i benchmark Ultralytics precedenti su tutti i formati di esportazione, esegui questo codice:

Esempio
from ultralytics import YOLO

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

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

Tieni presente che i risultati dei benchmark possono variare in base alla configurazione hardware e software esatta di un sistema, nonché al carico di lavoro del sistema nel momento in cui vengono eseguiti i benchmark. Per ottenere i risultati più affidabili, usa un dataset con un numero elevato di immagini, ad esempio data='coco.yaml' (5000 immagini di validazione).

Best practice per l'uso di NVIDIA Jetson#

Quando usi NVIDIA Jetson, devi seguire alcune best practice per ottenere le massime prestazioni su NVIDIA Jetson durante l'esecuzione di YOLO26.

  1. Abilita la modalità di alimentazione MAX

    L'attivazione della modalità di alimentazione MAX su Jetson assicura che tutti i core CPU e GPU siano attivi.

    sudo nvpmodel -m 0
  2. Abilita Jetson Clocks

    L'attivazione di Jetson Clocks assicura che tutti i core CPU e GPU funzionino alla frequenza massima.

    sudo jetson_clocks
  3. Installa l'applicazione Jetson Stats

    Puoi usare l'applicazione jetson stats per monitorare le temperature dei componenti del sistema e controllare altri dettagli del sistema, come la visualizzazione dell'utilizzo di CPU, GPU e RAM, la modifica delle modalità di alimentazione, l'impostazione delle frequenze massime e il controllo delle informazioni su JetPack

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

Suggerimenti per l'ottimizzazione della memoria su NVIDIA Jetson#

La memoria disponibile è spesso il fattore limitante sui dispositivi Jetson, in particolare sulle varianti con meno memoria, come Jetson Orin Nano (8 GB) o Orin NX 8 GB. I suggerimenti riportati di seguito sono modifiche pratiche e a basso rischio che, nel complesso, possono liberare diverse centinaia di megabyte e consentirti di eseguire modelli YOLO più grandi o supportare ulteriori carichi di lavoro paralleli. Per una trattazione completa, consulta il blog NVIDIA sulla massimizzazione dell'efficienza della memoria su Jetson.

1. Passa all'avvio headless (senza interfaccia grafica)#

Se il tuo Jetson è connesso tramite SSH o funziona come dispositivo di produzione senza uno schermo collegato, eliminare l'ambiente desktop e il display server può recuperare fino a 865 MB di RAM:

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

Per ripristinare in seguito il desktop:

sudo systemctl set-default graphical.target
sudo reboot

2. Disabilita i servizi di sistema inutilizzati#

I servizi in background non essenziali (Bluetooth, gestori della connettività, demoni hardware inutilizzati) consumano complessivamente circa 32 MB. Elenca i servizi attivi e disabilita quelli non richiesti dalla tua implementazione:

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

# Disable a service
sudo systemctl disable SERVICE_NAME

3. Analizza l'utilizzo della memoria#

Prima di ottimizzare, individua i processi che stanno effettivamente consumando RAM. procrank ordina i processi in base a PSS (Proportional Set Size), che riflette l'impronta di memoria effettiva per processo in modo più accurato rispetto a RSS (Resident Set Size, il totale delle pagine di RAM fisica mappate da un processo, incluse quelle condivise con altri processi):

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

Per visualizzare le allocazioni GPU e NvMap (pipeline CUDA/video) per processo:

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

4. Esegui l'inferenza senza schermo in produzione#

Per le pipeline di inferenza che non richiedono un'anteprima dal vivo, disabilitare i componenti correlati al display (Tiler, OSD, DisplaySink) può far risparmiare 200+ MB della sola pipeline. Con Ultralytics YOLO, nascondi il visualizzatore e scrivi invece i risultati su disco:

Esempio
from ultralytics import YOLO

model = YOLO("yolo26n.engine")

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

Impatto cumulativo#

OttimizzazioneMemoria risparmiata, circa
Disabilitazione dell'interfaccia grafica desktop~865 MB
Disabilitazione dei servizi del sistema operativo inutilizzati~32 MB
Pipeline di inferenza headless (senza display)~200+ MB
Totale (ottimizzazioni semplici)~1 GB+

Combinare queste modifiche è particolarmente utile quando usi modelli TensorRT INT8 su dispositivi con memoria limitata: può fare la differenza tra riuscire o meno a caricare in memoria una variante di modello più grande.

Passaggi successivi#

Per ulteriori informazioni e supporto, consulta la documentazione di Ultralytics YOLO26.

FAQ#

  • L'implementazione di Ultralytics YOLO26 sui dispositivi NVIDIA Jetson è un processo semplice. Innanzitutto, esegui il flashing del dispositivo Jetson con NVIDIA JetPack SDK. Poi, usa un'immagine Docker precompilata per una configurazione rapida oppure installa manualmente i pacchetti richiesti. I passaggi dettagliati per ciascun approccio sono disponibili nelle sezioni Avvio rapido con Docker e Inizia con l'installazione nativa.

  • I modelli YOLO26 sono stati testati su vari dispositivi NVIDIA Jetson mostrando significativi miglioramenti delle prestazioni. Ad esempio, il formato TensorRT offre le migliori prestazioni di inferenza. La tabella nella sezione Detailed Comparison Tables offre una visione completa delle metriche di prestazione come mAP50-95 e il tempo di inferenza tra i diversi formati di modello.

  • TensorRT è altamente consigliato per implementare i modelli YOLO26 su NVIDIA Jetson grazie alle sue prestazioni ottimali. Accelera l'inferenza sfruttando le capacità della GPU del Jetson, garantendo la massima efficienza e velocità. Scopri di più su come effettuare la conversione in TensorRT ed eseguire l'inferenza nella sezione Usa TensorRT su NVIDIA Jetson.

  • Per installare PyTorch e Torchvision su NVIDIA Jetson, disinstalla innanzitutto le versioni esistenti eventualmente installate tramite pip. Installa quindi manualmente le versioni compatibili di PyTorch e Torchvision per l'architettura ARM64 del Jetson. Le istruzioni dettagliate per questa procedura sono disponibili nella sezione Installa PyTorch e Torchvision.

  • Per massimizzare le prestazioni di YOLO26 su NVIDIA Jetson, segui queste best practice:

    1. Abilita la modalità di alimentazione MAX per utilizzare tutti i core CPU e GPU.
    2. Abilita Jetson Clocks per far funzionare tutti i core alla frequenza massima.
    3. Installa l'applicazione Jetson Stats per monitorare le metriche del sistema.

    Per i comandi e ulteriori dettagli, consulta la sezione Best practice per l'uso di NVIDIA Jetson.

  • La RAM disponibile è spesso il collo di bottiglia sui dispositivi Jetson con meno memoria. Tre semplici ottimizzazioni possono recuperare complessivamente oltre 1 GB:

    1. Passa all'avvio headless (sudo systemctl set-default multi-user.target) per eliminare l'interfaccia grafica desktop (risparmio di ~865 MB).
    2. Disabilita i servizi inutilizzati, come Bluetooth o i gestori della connettività (risparmio di ~32 MB).
    3. Esegui l'inferenza senza schermo impostando show=False nella chiamata predict di YOLO, evitando così di allocare memoria per la pipeline del display (risparmio di ~200+ MB).

    Usa procrank per analizzare l'utilizzo della RAM per processo e sudo cat /sys/kernel/debug/nvmap/iovmm/clients per ispezionare le allocazioni GPU. Consulta la sezione Suggerimenti per l'ottimizzazione della memoria per tutti i dettagli.

  • TensorRT 10.3.0 distribuito con JetPack 6 presenta un problema noto che impedisce la compilazione di engine INT8 quando nms=False è abilitato. Quando Ultralytics rileva questa combinazione, seleziona automaticamente la testa one-to-many per garantire il successo dell'esportazione.

    Per ripristinare le esportazioni INT8 senza NMS, aggiorna TensorRT a una versione più recente (ad esempio, 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

    Dopo l'aggiornamento, esegui nuovamente l'esportazione. Per ulteriori dettagli, consulta il problema GitHub #23841.

Commenti