Ultralytics YOLO27:
Get Started

Guida introduttiva: NVIDIA Jetson con Ultralytics YOLO26#

Questa guida completa illustra nel dettaglio la distribuzione di Ultralytics YOLO26 sui dispositivi NVIDIA Jetson. Inoltre, presenta benchmark delle prestazioni per dimostrare le capacità di YOLO26 su questi dispositivi compatti e potenti.

Supporto per i 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 una capacità di calcolo AI oltre 7,5 volte superiore a NVIDIA Jetson AGX Orin, con un'efficienza energetica 3,5 volte maggiore, per eseguire senza problemi i modelli AI più diffusi.



Guarda: Come usare Ultralytics YOLO26 sui dispositivi NVIDIA Jetson
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 di JetPack 7.2; con NVIDIA Jetson Orin Nano Super Developer Kit, con la versione JP6.1 di JetPack; con Seeed Studio reComputer J4012, basato su NVIDIA Jetson Orin NX 16GB e con la versione JP6.0/JP5.1.3 di JetPack; e con Seeed Studio reComputer J1020 v2, basato su NVIDIA Jetson Nano 4GB e con la versione JP4.6.1 di JetPack. È previsto che funzioni con l'intera gamma di hardware NVIDIA Jetson, compresi i dispositivi più recenti e quelli meno recenti.

Che cos'è NVIDIA Jetson?#

NVIDIA Jetson è una serie di schede di elaborazione integrate progettate per portare il calcolo accelerato dell'intelligenza artificiale (AI) sui dispositivi edge. Questi dispositivi compatti e potenti si basano sull'architettura GPU di NVIDIA e possono eseguire direttamente sul dispositivo algoritmi complessi di AI e modelli di deep learning, senza dipendere dalle risorse del cloud computing. Le schede Jetson sono spesso usate 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 si basano sull'architettura ARM64 e consumano meno energia rispetto ai dispositivi di calcolo GPU tradizionali.

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 mette a confronto alcuni dispositivi dell'ecosistema Jetson.

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 della GPU1.57 GHz1.3 GHz918 MHz1020 MHz1377 MHz1100 MHz921MHz
CPUCPU Arm® Neoverse®-V3AE a 64 bit e 14 core, 1 MB L2 + 16 MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 a 64 bit e 12 core, 3 MB L2 + 6 MB L3CPU NVIDIA Arm® Cortex A78AE v8.2 a 64 bit e 8 core, 2 MB L2 + 4 MB L3CPU Arm® Cortex®-A78AE v8.2 a 64 bit e 6 core, 1,5 MB L2 + 4 MB L3CPU NVIDIA Carmel Arm®v8.2 a 64 bit e 8 core, 8 MB L2 + 4 MB L3CPU NVIDIA Carmel Arm®v8.2 a 64 bit e 6 core, 6 MB L2 + 4 MB L3Processore quad-core Arm® Cortex®-A57 MPCore
Frequenza massima della CPU2.6 GHz2.2 GHz2.0 GHz1.7 GHz2.2 GHz1.9 GHz1.43GHz
Memoria128 GB 256-bit LPDDR5X 273 GB/s64 GB 256-bit LPDDR5 204,8 GB/s16 GB 128-bit LPDDR5 102,4 GB/s8 GB 128-bit LPDDR5 102 GB/s32 GB 256-bit LPDDR4x 136,5 GB/s8 GB 128-bit LPDDR4x 59,7 GB/s4 GB 64-bit LPDDR4 25,6 GB/s

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

Che cos'è NVIDIA JetPack?#

NVIDIA JetPack SDK, alla base dei moduli Jetson, è la soluzione più completa e offre 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 una suite completa di librerie per l'accelerazione del calcolo GPU, dei contenuti multimediali, della grafica e della visione artificiale. Include inoltre 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 di flussi video, Isaac per la robotica e Riva per l'IA conversazionale.

Installa JetPack su NVIDIA Jetson#

Il primo passaggio dopo aver ricevuto un dispositivo NVIDIA Jetson è installare NVIDIA JetPack sul dispositivo. Esistono diversi metodi 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 Jetson, scrivila su un'unità flash USB e segui la guida introduttiva specifica 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'ISO su USB installa Jetson Linux sulla scheda microSD o sull'SSD NVMe del dispositivo.
  2. Se vuoi utilizzare JetPack 6 su un Jetson Orin Nano Developer Kit, segui le istruzioni di NVIDIA per l'aggiornamento a JetPack 6.x e l'uso della scheda SD.
  3. Se possiedi un altro Development Kit NVIDIA, puoi installare JetPack sul dispositivo con SDK Manager.
  4. Se possiedi un dispositivo Seeed Studio reComputer J4012, puoi installare JetPack sull'SSD incluso; se invece 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 tramite riga di comando.
Nota

Per i metodi 1, 4 e 5 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 di JetPack in base al dispositivo Jetson#

La tabella seguente mostra 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 introduttiva a Docker#

Il modo più rapido per iniziare a usare Ultralytics YOLO26 su NVIDIA Jetson è eseguirlo con immagini Docker predefinite per Jetson. Consulta la 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
Supporto di Docker e TensorRT per JetPack 7

L'immagine latest-nvidia-arm64 utilizza NVIDIA PyTorch 26.08, che include CUDA 13.4 e TensorRT 11.2. NVIDIA indica JetPack 7.1 per PyTorch nella propria tabella di compatibilità, ma TensorRT 11.2.1 non supporta JetPack, nemmeno su Thor. Usa questa immagine solo per carichi di lavoro PyTorch su un host supportato. Per le esportazioni Jetson TensorRT, usa l'installazione nativa descritta sotto, con il runtime TensorRT 10.x supportato dalla tua versione di JetPack. JetPack 7.2 su Thor o Orin richiede una convalida separata del container. Ricrea i motori per la GPU e la versione di TensorRT di destinazione.

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

Inizia con l'installazione nativa#

Per un'installazione nativa senza Docker, segui i passaggi riportati di seguito.

Esegui su JetPack 7.2#

Installa 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 è sufficiente installare il pacchetto base. Ci concentreremo soprattutto sulle esportazioni NVIDIA TensorRT, perché TensorRT consente di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiorna l'elenco dei pacchetti, installa pip e aggiorna pip all'ultima versione

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

    pip install ultralytics
  3. Riavvia il dispositivo

    sudo reboot

Installa 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. Perciò dobbiamo installarli manualmente.

Installa torch e torchvision in base a JP7.2

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

Installa onnxruntime-gpu#

Usa un wheel GPU di ONNX Runtime compatibile con le versioni di JetPack, Python e CUDA. Le versioni attuali di PyPI includono wheel ARM64, ma non sostituiscono i pacchetti specifici del dispositivo per ogni versione di JetPack.

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

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

Esegui su JetPack 6.1#

Installa 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 è sufficiente installare il pacchetto base. Ci concentreremo soprattutto sulle esportazioni NVIDIA TensorRT, perché TensorRT consente di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiorna l'elenco dei pacchetti, installa pip e aggiorna pip all'ultima versione

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

    pip install ultralytics
  3. Riavvia il dispositivo

    sudo reboot

Installa 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. Perciò dobbiamo installare manualmente un wheel PyTorch precompilato per pip e compilare Torchvision dai sorgenti oppure installarlo dai sorgenti.

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 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à 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#

Usa un wheel GPU di ONNX Runtime compatibile con le versioni di JetPack, Python e CUDA. Le versioni attuali di PyPI includono wheel ARM64, ma non sostituiscono i pacchetti specifici del dispositivo per ogni versione 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 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

Esegui su JetPack 5.1.2#

Installa 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 è sufficiente installare il pacchetto base. Ci concentreremo soprattutto sulle esportazioni NVIDIA TensorRT, perché TensorRT consente di ottenere le massime prestazioni dai dispositivi Jetson.

  1. Aggiorna l'elenco dei pacchetti, installa pip e aggiorna pip all'ultima versione

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

    pip install ultralytics
  3. Riavvia il dispositivo

    sudo reboot

Installa 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. Perciò dobbiamo installare manualmente un wheel PyTorch precompilato per pip e compilare Torchvision dai sorgenti oppure installarlo dai sorgenti.

  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 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à di PyTorch e Torchvision.

Installa onnxruntime-gpu#

Usa un wheel GPU di ONNX Runtime compatibile con le versioni di JetPack, Python e CUDA. Le versioni attuali di PyPI includono wheel ARM64, ma non sostituiscono i pacchetti specifici del dispositivo per ogni versione 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 Jetson Zoo ONNX Runtime. Qui scaricheremo e installeremo onnxruntime-gpu 1.17.0 con il supporto di 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 ripristina automaticamente la versione più recente di NumPy. Dobbiamo quindi reinstallare NumPy alla versione 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 prestazioni di inferenza più elevate sui dispositivi NVIDIA Jetson, perciò è la nostra scelta consigliata per le distribuzioni Jetson. Prima di esportare, installa i binding Python di TensorRT forniti per la tua versione 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 dedicata all'integrazione di TensorRT.

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

I motori TensorRT sono specifici del dispositivo

TensorRT crea e ottimizza un motore sulla GPU usata per la compilazione. Assicurati che l'architettura GPU e il runtime TensorRT/CUDA corrispondano a quelli del dispositivo di destinazione e convalida ogni motore scaricato sul dispositivo di distribuzione. L'architettura Orin condivisa non garantisce automaticamente la portabilità tra i modelli SKU; inoltre, per ottenere i migliori risultati, la calibrazione INT8 dovrebbe 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

# Carica un modello YOLO26n PyTorch
model = YOLO("yolo26n.pt")

# Esporta il modello in TensorRT
model.export(format="engine")  # crea 'yolo26n.engine'

# Carica il modello TensorRT esportato
trt_model = YOLO("yolo26n.engine")

# Esegui l'inferenza
results = trt_model("https://ultralytics.com/images/bus.jpg")
Nota

Visita la pagina Esportazione per accedere ad altri argomenti durante l'esportazione dei 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 le attività dalla GPU (e lasciandola libera per i processi più intensivi), DLA consente ai modelli di funzionare con un consumo energetico inferiore mantenendo un throughput elevato, una caratteristica ideale per i sistemi embedded e le applicazioni di IA in tempo reale.

Compatibilità tra TensorRT e DLA

NVIDIA indica TensorRT 10.7 come l'ultima versione con supporto DLA; TensorRT 11.0, 11.1 e 11.2 non supportano DLA. Usa una versione di TensorRT compatibile con DLA e supportata dalla tua versione di JetPack. TensorRT 11.2.1 non supporta JetPack, nemmeno per le esportazioni che utilizzano solo la 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

# Carica un modello YOLO26n PyTorch
model = YOLO("yolo26n.pt")

# Esporta il modello in TensorRT con DLA abilitato (funziona solo con FP16 o INT8)
model.export(format="engine", device="dla:0", quantize=16)  # dla:0 o dla:1 corrisponde ai core DLA

# Carica il modello TensorRT esportato
trt_model = YOLO("yolo26n.engine")

# Esegui l'inferenza
results = trt_model("https://ultralytics.com/images/bus.jpg")
Nota

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

Benchmark NVIDIA Jetson YOLO26#

Il team Ultralytics ha eseguito benchmark di YOLO26 in 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 sul dispositivo Jetson Orin NX 16GB, con precisione FP32 e dimensione predefinita dell'immagine di input pari a 640.

Grafici comparativi#

Anche se tutte le esportazioni dei modelli funzionano su NVIDIA Jetson, nel grafico comparativo qui sotto abbiamo incluso solo PyTorch, TorchScript e TensorRT, perché utilizzano la GPU di Jetson e garantiscono i risultati migliori. Tutti gli altri formati di esportazione utilizzano solo la CPU e offrono prestazioni inferiori rispetto ai tre precedenti. Puoi trovare i benchmark di tutti i formati di esportazione nella sezione successiva a questo grafico.

Kit per sviluppatori NVIDIA Jetson AGX Thor#

Jetson AGX Thor Benchmarks
Testato con Ultralytics 8.3.226

Kit per sviluppatori NVIDIA Jetson AGX Orin (64GB)#

Jetson AGX Orin Benchmarks
Testato con Ultralytics 8.4.32

Kit per sviluppatori NVIDIA Jetson Orin Nano Super#

Jetson Orin Nano Super Benchmarks
Testato con Ultralytics 8.4.33

NVIDIA Jetson Orin NX 16GB#

Jetson Orin NX 16GB Benchmarks
Testato con Ultralytics 8.4.33

Tabelle di confronto dettagliate#

La tabella seguente mostra i risultati dei benchmark per cinque modelli diversi (YOLO26n, YOLO26s, YOLO26m, YOLO26l, YOLO26x) in 11 formati diversi (PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel, TF GraphDef, TF Lite, MNN, NCNN, ExecuTorch) e riporta stato, dimensioni, metrica mAP50-95(B) e tempo di inferenza per ogni combinazione.

Kit per sviluppatori NVIDIA Jetson AGX Thor#

Prestazioni
FormatoStatoDimensioni su disco (MB)mAP50-95(B)Tempo di inferenza (ms/im)
PyTorch✅5.30.47987.39
TorchScript✅9.80.47894.21
ONNX✅9.50.47676.58
OpenVINO✅10.10.479417.50
TensorRT (FP32)✅13.90.47911.90
TensorRT (FP16)✅7.60.47971.39
TensorRT (INT8)✅6.50.42731.52
TF SavedModel✅25.70.476447.24
TF GraphDef✅9.50.476445.98
TF Lite✅9.90.4764182.04
MNN✅9.40.478421.83

Benchmark eseguito con Ultralytics 8.4.7

Nota

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

Kit per sviluppatori NVIDIA Jetson AGX Orin (64GB)#

Prestazioni
FormatoStatoDimensioni su disco (MB)mAP50-95(B)Tempo di inferenza (ms/im)
PyTorch✅5.30.479011.58
TorchScript✅9.80.47704.60
ONNX✅9.50.47709.87
OpenVINO✅9.60.482028.80
TensorRT (FP32)✅11.50.47704.18
TensorRT (FP16)✅7.90.47892.62
TensorRT (INT8)✅5.40.46402.30
TF SavedModel✅24.60.476071.10
TF GraphDef✅9.50.476070.02
TF Lite✅9.90.4760227.94
MNN✅9.40.476032.46
NCNN✅9.30.481029.93

Benchmark eseguito con Ultralytics 8.4.32

Nota

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

Kit per sviluppatori NVIDIA Jetson Orin Nano Super#

Prestazioni
FormatoStatoDimensioni su disco (MB)mAP50-95(B)Tempo di inferenza (ms/im)
PyTorch✅5.30.479015.60
TorchScript✅9.80.477012.60
ONNX✅9.50.476015.76
OpenVINO✅9.60.482056.23
TensorRT (FP32)✅11.30.47707.53
TensorRT (FP16)✅8.10.48004.57
TensorRT (INT8)✅5.30.44903.80
TF SavedModel✅24.60.4760118.33
TF GraphDef✅9.50.4760116.30
TF Lite✅9.90.4760286.00
MNN✅9.40.476068.77
NCNN✅9.30.481047.50

Benchmark eseguito 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)
PyTorch✅5.30.479913.90
TorchScript✅9.80.478711.60
ONNX✅9.50.476314.18
OpenVINO✅9.60.481940.19
TensorRT (FP32)✅11.40.47707.01
TensorRT (FP16)✅8.00.47894.13
TensorRT (INT8)✅5.50.44893.49
TF SavedModel✅24.60.476492.34
TF GraphDef✅9.50.476492.06
TF Lite✅9.90.4764254.43
MNN✅9.40.476048.55
NCNN✅9.30.480534.31

Benchmark eseguito con Ultralytics 8.4.33

Nota

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

Scopri altri benchmark condotti da Seeed Studio su diverse versioni dell'hardware NVIDIA Jetson.

Riproduci i nostri risultati#

Per riprodurre i benchmark Ultralytics qui sopra con tutti i formati di esportazione, esegui questo codice:

Esempio
from ultralytics import YOLO

# Carica un modello YOLO26n PyTorch
model = YOLO("yolo26n.pt")

# Esegui il benchmark di velocità e accuratezza di YOLO26n sul dataset COCO128 per tutti i formati di esportazione
results = model.benchmark(data="coco128.yaml", imgsz=640)

I risultati dei benchmark possono variare in base alla configurazione hardware e software esatta del sistema e al carico di lavoro del sistema al momento dell'esecuzione dei benchmark. Per ottenere risultati più affidabili, usa un dataset con un numero elevato di immagini, ad es. data='coco.yaml' (5000 immagini di convalida).

Best practice per l'utilizzo di NVIDIA Jetson#

Quando usi NVIDIA Jetson, segui alcune best practice per ottenere le massime prestazioni da NVIDIA Jetson con YOLO26.

  1. Attiva la modalità di alimentazione MAX

    Attivando la modalità di alimentazione MAX su Jetson, ti assicuri che tutti i core CPU e GPU siano attivi.

    sudo nvpmodel -m 0
  2. Attiva Jetson Clocks

    Attivando Jetson Clocks, ti assicuri 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, ad esempio visualizzare l'utilizzo di CPU, GPU e RAM, cambiare modalità di alimentazione, impostare le frequenze massime e controllare le informazioni di JetPack.

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

Suggerimenti per ottimizzare la 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 seguenti sono modifiche pratiche e a basso rischio che, nel loro insieme, 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 sull'ottimizzazione dell'efficienza della memoria su Jetson.

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

Se il tuo Jetson è collegato tramite SSH o viene usato come dispositivo di produzione senza display, eliminare l'ambiente desktop e il server grafico può liberare fino a 865 MB di RAM:

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

Per ripristinare in seguito l'ambiente desktop:

sudo systemctl set-default graphical.target
sudo reboot

2. Disattiva 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 disattiva quelli non necessari per la tua distribuzione:

# 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 consumano effettivamente RAM. procrank ordina i processi in base a PSS (dimensione proporzionale del set), che riflette l'impronta di memoria effettiva per processo con maggiore precisione rispetto a RSS (dimensione del set residente, ovvero 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 display in produzione#

Per le pipeline di inferenza che non richiedono un'anteprima in tempo reale, disattivare i componenti relativi al display (Tiler, OSD, DisplaySink) può far risparmiare oltre 200 MB solo dalla pipeline. Con Ultralytics YOLO, disattiva il visualizzatore e salva invece i risultati su disco:

Esempio
from ultralytics import YOLO

model = YOLO("yolo26n.engine")

# show=False impedisce l'apertura di qualsiasi finestra di visualizzazione; save=True scrive su disco i risultati annotati
results = model.predict(source="video.mp4", show=False, save=True)

Impatto complessivo#

OttimizzazioneMemoria risparmiata (circa)
Disattiva l'interfaccia grafica desktop~865 MB
Disattiva i servizi del sistema operativo inutilizzati~32 MB
Pipeline di inferenza headless (senza display)~200+ MB
Totale (interventi semplici)~1 GB+

Combinare queste modifiche è particolarmente utile quando si usano 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.

Prossimi passaggi#

Per approfondire e ricevere supporto, consulta la documentazione Ultralytics YOLO26.

Domande frequenti#

  • Distribuire Ultralytics YOLO26 sui dispositivi NVIDIA Jetson è semplice. Per prima cosa, installa il NVIDIA JetPack SDK sul dispositivo Jetson. Poi, per configurare rapidamente il sistema, usa un'immagine Docker precompilata oppure installa manualmente i pacchetti necessari. Le istruzioni dettagliate per ciascun approccio sono disponibili nelle sezioni Avvio rapido con Docker e Inizia con l'installazione nativa.

  • I modelli YOLO26 sono stati sottoposti a benchmark su diversi dispositivi NVIDIA Jetson, con significativi miglioramenti delle prestazioni. Ad esempio, il formato TensorRT offre le migliori prestazioni di inferenza. La tabella nella sezione Tabelle di confronto dettagliate offre una panoramica completa delle metriche di prestazione, come mAP50-95 e tempo di inferenza, per i diversi formati dei modelli.

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

  • Per installare PyTorch e Torchvision su NVIDIA Jetson, disinstalla prima le eventuali versioni esistenti installate tramite pip. Poi installa manualmente le versioni compatibili di PyTorch e Torchvision per l'architettura ARM64 di Jetson. Trovi le istruzioni dettagliate per questa procedura nella sezione Installa PyTorch e Torchvision.

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

    1. Attiva la modalità di alimentazione MAX per usare tutti i core CPU e GPU.
    2. Attiva Jetson Clocks per eseguire 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'utilizzo di NVIDIA Jetson.

  • La RAM disponibile è spesso il collo di bottiglia sui dispositivi Jetson con meno memoria. Ecco tre semplici interventi che, insieme, possono liberare oltre 1 GB:

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

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

  • TensorRT 10.3.0, incluso in JetPack 6, presenta un problema noto che impedisce di compilare motori INT8 senza NMS (nms=False). Quando Ultralytics rileva questa combinazione, seleziona automaticamente la testa one-to-many per assicurare che l'esportazione vada a buon fine.

    Per ripristinare le esportazioni INT8 senza NMS, aggiorna TensorRT a una versione più recente (ad 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, esegui di nuovo l'esportazione. Per ulteriori dettagli, consulta il problema GitHub #23841.

Commenti