Guida rapida: NVIDIA Jetson con Ultralytics YOLO26

Questa guida completa fornisce una procedura dettagliata per implementare Ultralytics YOLO26 su dispositivi NVIDIA Jetson. Inoltre, mostra benchmark sulle prestazioni per dimostrare le capacità di YOLO26 su questi dispositivi piccoli e potenti.

Supporto per nuovi prodotti

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



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

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

Cos'è NVIDIA Jetson?

NVIDIA Jetson è una serie di schede di elaborazione embedded progettate per portare il calcolo AI (intelligenza artificiale) accelerato sui dispositivi edge. Questi dispositivi compatti e potenti sono costruiti attorno all'architettura GPU di NVIDIA e possono eseguire algoritmi AI complessi e modelli di deep learning direttamente sul dispositivo, senza fare affidamento sulle risorse di 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 ed alta efficienza. Inoltre, queste schede sono basate sull'architettura ARM64 e funzionano a potenze inferiori rispetto ai tradizionali dispositivi di calcolo GPU.

Confronto della serie NVIDIA Jetson

NVIDIA Jetson AGX Thor è l'ultima iterazione della famiglia NVIDIA Jetson basata sull'architettura NVIDIA Blackwell, che offre prestazioni AI drasticamente migliorate rispetto alle generazioni precedenti. La tabella sottostante confronta alcuni dei dispositivi Jetson nell'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 con 96 Tensor CoreGPU con architettura NVIDIA Ampere a 2048 core con 64 Tensor CoreGPU con architettura NVIDIA Ampere a 1024 core con 32 Tensor CoreGPU con architettura NVIDIA Ampere a 1024 core con 32 Tensor CoreGPU con architettura NVIDIA Volta a 512 core con 64 Tensor CoreGPU con architettura NVIDIA Volta™ a 384 core con 48 Tensor CoreGPU con architettura NVIDIA Maxwell™ a 128 core
Frequenza massima GPU1,57 GHz1,3 GHz918 MHz1020 MHz1377 MHz1100 MHz921 MHz
CPUCPU Arm® Neoverse®-V3AE a 64 bit a 14 core, 1 MB L2 + 16 MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 a 64 bit a 12 core, 3 MB L2 + 6 MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 a 64 bit a 8 core, 2 MB L2 + 4 MB L3CPU Arm® Cortex®-A78AE v8.2 a 64 bit a 6 core, 1,5 MB L2 + 4 MB L3CPU NVIDIA Carmel Arm®v8.2 a 64 bit a 8 core, 8 MB L2 + 4 MB L3CPU NVIDIA Carmel Arm®v8.2 a 64 bit a 6 core, 6 MB L2 + 4 MB L3Processore Quad-Core Arm® Cortex®-A57 MPCore
Frequenza massima CPU2,6 GHz2,2 GHz2,0 GHz1,7 GHz2,2 GHz1,9 GHz1,43 GHz
Memoria128 GB LPDDR5X a 256 bit 273 GB/s64 GB LPDDR5 a 256 bit 204,8 GB/s16 GB LPDDR5 a 128 bit 102,4 GB/s8 GB LPDDR5 a 128 bit 102 GB/s32 GB LPDDR4x a 256 bit 136,5 GB/s8 GB LPDDR4x a 128 bit 59,7 GB/s4 GB LPDDR4 a 64 bit 25,6 GB/s

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

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 i tempi di commercializzazione. JetPack include Jetson Linux con bootloader, kernel Linux, ambiente desktop Ubuntu e un set completo di librerie per l'accelerazione del calcolo GPU, multimedia, grafica e computer vision. Include inoltre esempi, documentazione e strumenti per sviluppatori sia per il computer host che 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.

Flash di JetPack su NVIDIA Jetson

Il primo passo dopo aver messo le mani su un dispositivo NVIDIA Jetson è flashare NVIDIA JetPack sul dispositivo. Esistono diversi modi per flashare i dispositivi NVIDIA Jetson.

  1. Se possiedi un kit di sviluppo ufficiale NVIDIA come il Jetson AGX Thor Developer Kit, puoi scaricare un'immagine e preparare una chiavetta USB avviabile per flashare JetPack sull'SSD incluso.
  2. Se possiedi un kit di sviluppo ufficiale NVIDIA come il Jetson Orin Nano Developer Kit, puoi scaricare un'immagine e preparare una scheda SD con JetPack per avviare il dispositivo.
  3. Se possiedi qualsiasi altro kit di sviluppo NVIDIA, puoi flashare JetPack sul dispositivo utilizzando SDK Manager.
  4. Se possiedi un dispositivo Seeed Studio reComputer J4012, puoi flashare JetPack sull'SSD incluso e se possiedi un dispositivo Seeed Studio reComputer J1020 v2, puoi flashare JetPack sull'eMMC/SSD.
  5. Se possiedi qualsiasi altro dispositivo di terze parti alimentato dal modulo NVIDIA Jetson, ti consigliamo di seguire il flash da riga di comando.
Nota

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

Supporto JetPack in base al dispositivo Jetson

La tabella sottostante 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ù veloce per iniziare con Ultralytics YOLO26 su NVIDIA Jetson è eseguirlo con immagini Docker pre-build per Jetson. Fai riferimento alla tabella sopra 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

Dopo averlo fatto, passa alla sezione Utilizzare TensorRT su NVIDIA Jetson.

Inizia con l'installazione nativa

Per un'installazione nativa senza Docker, fai riferimento ai passaggi seguenti.

Esecuzione su JetPack 7.0

Installa il pacchetto Ultralytics

Qui installeremo il pacchetto Ultralytics sul Jetson con dipendenze opzionali in modo da poter esportare i modelli PyTorch in altri formati diversi. Ci concentreremo principalmente sulle esportazioni NVIDIA TensorRT poiché TensorRT garantirà di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiorna l'elenco dei pacchetti, installa pip ed esegui l'upgrade all'ultima versione

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installa il pacchetto pip ultralytics con le dipendenze opzionali

    pip install ultralytics[export]
  3. Riavvia il dispositivo

    sudo reboot

Installa PyTorch e Torchvision

L'installazione di ultralytics sopra descritta installerà Torch e Torchvision. Tuttavia, questi 2 pacchetti installati tramite pip non sono compatibili per l'esecuzione su Jetson AGX Thor che viene fornito con JetPack 7.0 e CUDA 13. Pertanto, dobbiamo installarli manualmente.

Installa torch e torchvision in base a JP7.0

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

Installa onnxruntime-gpu

Il pacchetto onnxruntime-gpu ospitato in PyPI non dispone di binari aarch64 per Jetson. Quindi dobbiamo installare manualmente questo pacchetto. Questo pacchetto è necessario per alcune delle esportazioni.

Qui scaricheremo e installeremo onnxruntime-gpu 1.24.0 con 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

Esecuzione su JetPack 6.1

Installa il pacchetto Ultralytics

Qui installeremo il pacchetto Ultralytics sul Jetson con dipendenze opzionali in modo da poter esportare i modelli PyTorch in altri formati diversi. Ci concentreremo principalmente sulle esportazioni NVIDIA TensorRT poiché TensorRT garantirà di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiorna l'elenco dei pacchetti, installa pip ed esegui l'upgrade all'ultima versione

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installa il pacchetto pip ultralytics con le dipendenze opzionali

    pip install ultralytics[export]
  3. Riavvia il dispositivo

    sudo reboot

Installa PyTorch e Torchvision

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

Installa 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 for Jetson per accedere a tutte le diverse versioni di PyTorch per le diverse versioni di JetPack. Per un elenco più dettagliato sulla compatibilità di PyTorch e Torchvision, visita la pagina di compatibilità di 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

Installa onnxruntime-gpu

Il pacchetto onnxruntime-gpu ospitato in PyPI non dispone di binari aarch64 per Jetson. Quindi dobbiamo installare manualmente questo pacchetto. Questo pacchetto è necessario per alcune delle esportazioni.

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 Jetson Zoo ONNX Runtime.

Per JetPack 6 con supporto 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

Esecuzione su JetPack 5.1.2

Installa il pacchetto Ultralytics

Qui installeremo il pacchetto Ultralytics sul Jetson con dipendenze opzionali in modo da poter esportare i modelli PyTorch in altri formati diversi. Ci concentreremo principalmente sulle esportazioni NVIDIA TensorRT poiché TensorRT garantirà di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiorna l'elenco dei pacchetti, installa pip ed esegui l'upgrade all'ultima versione

    sudo apt update
    sudo apt install python3-pip -y
    pip install -U pip
  2. Installa il pacchetto pip ultralytics con le dipendenze opzionali

    pip install ultralytics[export]
  3. Riavvia il dispositivo

    sudo reboot

Installa PyTorch e Torchvision

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

  1. Disinstalla PyTorch e Torchvision attualmente installati

    pip uninstall torch torchvision
  2. Installa 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 for Jetson per accedere a tutte le diverse versioni di PyTorch per le diverse versioni di JetPack. Per un elenco più dettagliato sulla compatibilità di PyTorch e Torchvision, visita la pagina di compatibilità di PyTorch e Torchvision.

Installa onnxruntime-gpu

Il pacchetto onnxruntime-gpu ospitato in PyPI non dispone di binari aarch64 per Jetson. Quindi dobbiamo installare manualmente questo pacchetto. Questo pacchetto è necessario per alcune delle esportazioni.

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à ONNX Runtime di Jetson Zoo. Qui scaricheremo e installeremo onnxruntime-gpu 1.17.0 con 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 riporterà automaticamente la versione di NumPy alla più recente. Quindi dobbiamo reinstallare NumPy alla 1.23.5 per risolvere un problema eseguendo:

pip install numpy==1.23.5

Usa TensorRT su NVIDIA Jetson

Tra tutti i formati di esportazione dei modelli supportati da Ultralytics, TensorRT offre le migliori prestazioni di inferenza sui dispositivi NVIDIA Jetson, rendendolo la nostra raccomandazione principale per le distribuzioni su Jetson. Per istruzioni di configurazione e utilizzo avanzato, consulta la nostra guida dedicata all'integrazione di TensorRT.

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 Esporta per accedere ad argomenti aggiuntivi durante l'esportazione di modelli in diversi formati

Usa NVIDIA Deep Learning Accelerator (DLA)

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

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", half=True)  # 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 utilizzi esportazioni DLA, alcuni strati potrebbero non essere supportati per l'esecuzione su DLA e ripiegheranno sulla GPU per l'elaborazione. Questo fallback può introdurre latenza aggiuntiva e influire sulle prestazioni complessive dell'inferenza. Pertanto, DLA non è progettato principalmente per ridurre la latenza di inferenza rispetto a TensorRT in esecuzione interamente sulla GPU. Il suo scopo principale, invece, è aumentare il throughput e migliorare l'efficienza energetica.

Benchmark NVIDIA Jetson YOLO11/ YOLO26

I benchmark di YOLO11/ 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 basato su dispositivo Jetson Orin NX 16GB alla precisione FP32 con una dimensione dell'immagine di input predefinita di 640.

Grafici di confronto

Sebbene tutte le esportazioni di modelli funzionino su NVIDIA Jetson, abbiamo incluso solo PyTorch, TorchScript, TensorRT nel grafico di confronto qui sotto perché utilizzano la GPU sul Jetson e garantiscono i migliori risultati. Tutte le altre esportazioni utilizzano solo la CPU e le prestazioni non sono valide quanto le tre precedenti. Puoi trovare i benchmark per tutte le esportazioni nella sezione dopo 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 di confronto dettagliate

La tabella seguente rappresenta i risultati del benchmark per cinque diversi modelli (YOLO11n, YOLO11s, YOLO11m, YOLO11l, YOLO11x) su 11 formati differenti (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch), fornendo stato, dimensione, metrica mAP50-95(B) e tempo di inferenza per ogni combinazione.

NVIDIA Jetson AGX Thor Developer Kit

Prestazioni
FormatoStatoDimensioni 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

Testato con Ultralytics 8.4.7

Nota

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

NVIDIA Jetson AGX Orin Developer Kit (64GB)

Prestazioni
FormatoStatoDimensioni 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

Testato con Ultralytics 8.4.32

Nota

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

NVIDIA Jetson Orin Nano Super Developer Kit

Prestazioni
FormatoStatoDimensioni 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

Testato con Ultralytics 8.4.33

Nota

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

NVIDIA Jetson Orin NX 16GB

Prestazioni
FormatoStatoDimensioni 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

Testato con Ultralytics 8.4.33

Nota

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

Esplora altri benchmark di Seeed Studio eseguiti su diverse versioni di hardware NVIDIA Jetson.

Riproduci i nostri risultati

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

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

Tieni presente che i risultati dei benchmark potrebbero variare in base all'esatta configurazione hardware e software del sistema, nonché al carico di lavoro corrente del sistema al momento dell'esecuzione dei benchmark. Per ottenere i risultati più affidabili, utilizza un dataset con un gran numero di immagini, ad esempio data='coco.yaml' (5000 immagini di validazione).

Best practice durante l'utilizzo di NVIDIA Jetson

Quando utilizzi NVIDIA Jetson, ci sono un paio di best practice da seguire per ottenere le massime prestazioni su NVIDIA Jetson con YOLO26.

  1. Abilita la modalità MAX Power

    Abilitare la modalità MAX Power sul Jetson assicurerà che tutti i core CPU e GPU siano attivi.

    sudo nvpmodel -m 0
  2. Abilita i Jetson Clocks

    Abilitare i Jetson Clocks assicurerà che tutti i core CPU e GPU funzionino alla loro frequenza massima.

    sudo jetson_clocks
  3. Installa l'applicazione Jetson Stats

    Puoi utilizzare l'applicazione jetson stats per monitorare le temperature dei componenti di sistema e controllare altri dettagli, come visualizzare l'utilizzo di CPU, GPU e RAM, cambiare le modalità di alimentazione, impostare i clock al massimo e verificare le informazioni di JetPack.

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

Suggerimenti per l'ottimizzazione della memoria per 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 seguenti sono modifiche pratiche e a basso rischio che possono liberare collettivamente diverse centinaia di megabyte e consentirti di eseguire modelli YOLO più grandi o supportare ulteriori carichi di lavoro in parallelo. Per una trattazione completa, consulta il blog NVIDIA sull'ottimizzazione dell'efficienza della memoria su Jetson.

1. Passa all'avvio headless (senza GUI)

Se il tuo Jetson è connesso tramite SSH o è in esecuzione come appliance di produzione senza un display collegato, eliminare l'ambiente desktop e il server di visualizzazione può recuperare fino a 865 MB di RAM:

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

Per ripristinare il desktop in seguito:

sudo systemctl set-default graphical.target
sudo reboot

2. Disabilita i servizi di sistema inutilizzati

I servizi in background non essenziali (Bluetooth, gestori di connettività, daemon hardware inutilizzati) consumano circa 32 MB in totale. Elenca i servizi attivi e disabilita tutto ciò che non è necessario per la tua distribuzione:

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

# Disable a service
sudo systemctl disable <service-name>

3. Profila l'utilizzo della memoria

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

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

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

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

4. Esegui l'inferenza senza display in produzione

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

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

Impatto cumulativo

OttimizzazioneMemoria risparmiata approssimativa
Disabilita GUI desktop~865 MB
Disabilita servizi OS inutilizzati~32 MB
Pipeline di inferenza headless (senza display)~200+ MB
Totale (vantaggi immediati)~1 GB+

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

Prossimi passi

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

FAQ

Come posso distribuire Ultralytics YOLO26 sui dispositivi NVIDIA Jetson?

Distribuire Ultralytics YOLO26 sui dispositivi NVIDIA Jetson è un processo semplice. Per prima cosa, installa l'NVIDIA JetPack SDK sul tuo dispositivo Jetson. Quindi, utilizza un'immagine Docker preconfigurata per una configurazione rapida oppure installa manualmente i pacchetti richiesti. I passaggi dettagliati per ciascun approccio si trovano nelle sezioni Avvio rapido con Docker e Avvio con installazione nativa.

Quali benchmark di prestazioni posso aspettarmi dai modelli YOLO11 sui dispositivi NVIDIA Jetson?

I modelli YOLO11 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 Tabelle di confronto dettagliate fornisce una panoramica completa delle metriche di prestazione come mAP50-95 e il tempo di inferenza tra i diversi formati di modello.

Perché dovrei usare TensorRT per distribuire YOLO26 su NVIDIA Jetson?

TensorRT è altamente raccomandato per distribuire 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 convertire in TensorRT ed eseguire l'inferenza nella sezione Usa TensorRT su NVIDIA Jetson.

Come posso installare PyTorch e Torchvision su NVIDIA Jetson?

Per installare PyTorch e Torchvision su NVIDIA Jetson, disinstalla prima qualsiasi versione esistente che potrebbe essere stata installata tramite pip. Quindi, installa manualmente le versioni di PyTorch e Torchvision compatibili con l'architettura ARM64 del Jetson. Le istruzioni dettagliate per questo processo sono fornite nella sezione Installa PyTorch e Torchvision.

Quali sono le best practice per massimizzare le prestazioni su NVIDIA Jetson utilizzando YOLO26?

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

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

Per i comandi e ulteriori dettagli, fai riferimento alla sezione Best practice durante l'utilizzo di NVIDIA Jetson.

Come posso liberare memoria su NVIDIA Jetson per eseguire modelli YOLO più grandi?

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

  1. Passa all'avvio headless (sudo systemctl set-default multi-user.target) per eliminare la GUI del desktop (~865 MB risparmiati).
  2. Disabilita i servizi inutilizzati come Bluetooth o gestori di connettività (~32 MB risparmiati).
  3. Esegui l'inferenza senza display impostando show=False nella tua chiamata YOLO predict, il che evita di allocare memoria per la pipeline di visualizzazione (~200+ MB risparmiati).

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

Perché la mia esportazione TensorRT INT8 disabilita end2end su JetPack 6?

TensorRT 10.3.0 fornito con JetPack 6 ha un problema noto che impedisce la creazione di engine INT8 quando end2end=True è abilitato. Quando Ultralytics rileva questa combinazione, disabilita automaticamente il ramo end2end per garantire che l'esportazione abbia successo.

Per ripristinare le esportazioni INT8 end2end, aggiorna TensorRT a una versione più recente (es. 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, riesegui l'esportazione. Per ulteriori dettagli, vedi GitHub issue #23841.

Commenti