YOLO Vision 2026:

Esportazione DEEPX per i modelli Ultralytics YOLO#

La distribuzione di modelli di visione artificiale su hardware NPU specializzato richiede un formato di modello compatibile ed ottimizzato. L'esportazione dei modelli Ultralytics YOLO nel formato DEEPX consente un'inferenza efficiente e quantizzata a INT8 sugli acceleratori NPU DEEPX. Questa guida ti accompagna passo dopo passo nella conversione dei tuoi modelli YOLO nel formato DEEPX e nella loro distribuzione su hardware basato su DEEPX.

Cos'è DEEPX?#

DEEPX NPU Inference

DEEPX è un'azienda di semiconduttori IA specializzata in unità di elaborazione neurale (NPU) progettate per un'inferenza di deep learning a basso consumo energetico sull'edge. Le NPU DEEPX sono progettate per applicazioni di IA industriale ed embedded esigenti, offrendo un elevato throughput con un consumo energetico minimo. Il loro hardware è particolarmente adatto a scenari di distribuzione in cui la connettività cloud è inaffidabile o indesiderata, come la robotica, le telecamere intelligenti e i sistemi di automazione industriale.

Formato di esportazione DEEPX#

L'esportazione DEEPX produce un binario di modello compilato .dxnn ottimizzato per l'esecuzione su hardware NPU DEEPX. La pipeline di compilazione utilizza il toolkit dx_com per eseguire la quantizzazione INT8 e l'ottimizzazione specifica per l'hardware, generando una cartella di modello autonoma pronta per la distribuzione.

Caratteristiche principali dei modelli DEEPX#

I modelli DEEPX offrono diversi vantaggi per la distribuzione edge:

  • Quantizzazione INT8: I modelli vengono quantizzati alla precisione INT8 durante l'esportazione, riducendo significativamente le dimensioni del modello e massimizzando il throughput della NPU. Scopri di più sulla quantizzazione del modello.
  • Ottimizzato per NPU: Il formato .dxnn è specificamente compilato per l'hardware NPU DEEPX, sfruttando unità di accelerazione dedicate per un'inferenza rapida ed efficiente.
  • Basso consumo energetico: Scaricando l'inferenza sulla NPU, i modelli DEEPX consumano molta meno energia rispetto all'inferenza equivalente su CPU o GPU.
  • Precisione basata sulla calibrazione: L'esportazione utilizza una calibrazione basata su EMA con immagini di un dataset reale per ridurre al minimo la perdita di precisione durante la quantizzazione.
  • Output autonomo: La directory del modello esportato raggruppa il binario compilato, la configurazione di calibrazione e i metadati per una distribuzione semplice.

Attività supportate#

L'esportazione DEEPX supporta tutte e sette le attività di Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l'unica famiglia che include tali teste.

CompitoYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Esporta in DEEPX: Conversione del tuo modello YOLO#

Esporta un modello Ultralytics YOLO nel formato DEEPX ed esegui l'inferenza con il modello esportato.

Nota

L'esportazione DEEPX è supportata solo su macchine Linux x86-64. ARM64 (aarch64) non è supportato per il passaggio di esportazione. Tuttavia, i modelli dxnn esportati sono completamente compatibili ed eseguibili su piattaforme ARM64.

Installazione#

Per installare i pacchetti richiesti, esegui:

Installazione
# Install the required package for YOLO
pip install ultralytics

Il pacchetto del compilatore dx_com verrà installato automaticamente dal repository del DEEPX SDK al primo avvio dell'esportazione. Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Durante l'installazione dei pacchetti richiesti per YOLO, se riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.

Utilizzo#

Il formato DEEPX supporta le modalità Export, Predict e Validate. L'inferenza e la convalida vengono eseguite su hardware NPU DEEPX. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne la precisione.

Esportazione
from ultralytics import YOLO

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

# Export the model to DEEPX format (quantize=8 is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Previsione
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Convalida
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Argomenti di esportazione#

ArgomentoTipoPredefinitoDescrizione
formatstr'deepx'Formato di destinazione per il modello esportato, che definisce la compatibilità con l'hardware NPU DEEPX.
imgszint o tuple640Dimensione dell'immagine desiderata per l'input del modello. L'esportazione DEEPX richiede un input quadrato: passa un numero intero (ad es. 640) o una tupla in cui l'altezza è uguale alla larghezza.
quantizeint o str8/autoPrecisione di quantizzazione. 8 (INT8) è richiesto per l'esportazione DEEPX e viene abilitato automaticamente se non specificato. Sostituisce i flag deprecati half/int8.
simplifyboolTrueSemplifica il grafico ONNX intermedio con onnxslim.
opsetintNoneSpecifica la versione dell'opset ONNX per il grafo ONNX intermedio. Se non impostata, utilizza l'ultima versione supportata.
datastrNoneYAML del dataset utilizzato per la calibrazione INT8; la classificazione richiede invece una cartella del dataset o il nome di un dataset incorporato. Se viene omesso con quantize=8, Ultralytics seleziona il dataset di calibrazione predefinito per il task del modello.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0) o CPU (device=cpu).
optimizeboolFalseAbilita una maggiore ottimizzazione del compilatore che riduce la latenza di inferenza e aumenta il tempo di compilazione.
Suggerimento

Esegui sempre l'esportazione DEEPX su un host x86-64 Linux. Il compilatore dx_com non supporta ARM64.

Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.

Struttura dell'output#

Dopo un'esportazione riuscita, viene creata una directory del modello con il seguente layout:

yolo26n_deepx_model/
├── yolo26n.dxnn     # Compiled DEEPX model binary (NPU executable)
├── config.json      # Calibration and preprocessing configuration
└── metadata.yaml    # Model metadata (classes, image size, task, etc.)

Il file .dxnn è il binario del modello compilato che il runtime dx_engine carica direttamente sulla NPU. metadata.yaml contiene i nomi delle classi, la dimensione dell'immagine e altre informazioni utilizzate dalla pipeline di inferenza di Ultralytics.

Distribuzione dei modelli YOLO DEEPX esportati#

Una volta esportato con successo il tuo modello Ultralytics YOLO nel formato DEEPX, il passaggio successivo è distribuire questi modelli sull'hardware NPU DEEPX.

Installazione del runtime#

L'inferenza richiede il driver NPU DEEPX, il runtime libdxrt e il pacchetto Python dx_engine.

Nota

Il runtime DEEPX supporta sia Linux x86-64 che ARM64 (ad es. Raspberry Pi 5).

# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb

# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh

# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whl

Verifica che il runtime sia installato correttamente con dxrt-cli --version. Dovresti visualizzare un output simile a:

DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6

Una volta installato il runtime, esegui l'inferenza e la convalida sul tuo dispositivo DEEPX esattamente come mostrato nella sezione Utilizzo qui sopra: l'elemento esportato _deepx_model si carica direttamente con YOLO(...).

Visualizzazione con dxtron#

dxtron è il visualizzatore di grafici di DEEPX per ispezionare il modello compilato .dxnn.

Installa dxtron su x86-64 Linux scaricando il pacchetto .deb dal DEEPX SDK e installandolo tramite dpkg:

wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.deb

Quindi apri il tuo modello esportato:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Nota

dxtron è disponibile sia per piattaforme x86-64 che aarch64.

Benchmark#

Il team di Ultralytics ha testato i modelli YOLO26, confrontando velocità e accuratezza tra PyTorch e DEEPX.

Performance
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
ModelloFormatoStatoDimensione (MB)metrics/mAP50-95(B)Tempo di inferenza (ms/im)
YOLO26nPyTorch5.30.4760315.2
YOLO26nDEEPX6.60.466034.6
YOLO26n-segPyTorch6.50.4080485.4
YOLO26n-segDEEPX7.90.392053.8
YOLO26n-posePyTorch7.60.4230506.3
YOLO26n-poseDEEPX8.80.459037.6
YOLO26n-obbPyTorch5.70.8171094.4
YOLO26n-obbDEEPX7.30.78356.4
ModelloFormatoStatoDimensione (MB)acc (top1)acc (top5)Tempo di inferenza (ms/im)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.90.3330.6862.7
Nota

La validazione per i benchmark sopra riportati è stata eseguita utilizzando coco128 per il rilevamento, coco128-seg per la segmentazione, coco8-pose per la stima della posa, imagenet100 per la classificazione e dota128 per i modelli OBB. Il tempo di inferenza non include la pre/post-elaborazione.

Suggerimenti per l'ottimizzazione delle prestazioni

Per ottenere la migliore velocità di inferenza dall'NPU DX-M1 collegata a un Raspberry Pi 5, apri il file di configurazione di avvio e abilita il supporto PCIe Gen 3.

sudo nano /boot/firmware/config.txt

Aggiungi le seguenti righe alla fine del file:

dtparam=pciex1
dtparam=pciex1_gen=3

Salva ed esci (Ctrl+X, poi Y, poi Invio), quindi riavvia:

sudo reboot

Controlla la generazione PCIe. La velocità prevista è 8GT/s per PCIe Gen3.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"

Flusso di lavoro consigliato#

  1. Allena il tuo modello utilizzando la modalità di training di Ultralytics
  2. Esporta nel formato DEEPX utilizzando model.export(format="deepx")
  3. Convalida la precisione con yolo val per verificare una perdita di quantizzazione minima
  4. Predici utilizzando yolo predict per la convalida qualitativa
  5. Distribuisci la cartella esportata _deepx_model/ sull'hardware NPU DEEPX utilizzando il runtime dx_engine

Applicazioni nel mondo reale#

I modelli YOLO distribuiti su hardware NPU DEEPX sono adatti a un'ampia gamma di applicazioni di edge AI:

  • Sorveglianza intelligente: Rilevamento di oggetti in tempo reale per sistemi di sicurezza e monitoraggio con basso consumo energetico e nessuna dipendenza dal cloud.
  • Automazione industriale: Controllo qualità on-device, rilevamento difetti e monitoraggio dei processi in ambienti di fabbrica.
  • Robotica: Navigazione basata sulla visione, evitamento ostacoli e riconoscimento oggetti su robot autonomi e droni.
  • Agricoltura intelligente: Monitoraggio della salute delle colture, rilevamento dei parassiti e stima della resa utilizzando la visione artificiale in agricoltura.
  • Retail Analytics: Analisi del flusso dei clienti, monitoraggio degli scaffali e tracciamento dell'inventario con inferenza edge in tempo reale.

In questa guida hai imparato come esportare i modelli Ultralytics YOLO nel formato DEEPX e distribuirli su hardware NPU DEEPX. La pipeline di esportazione utilizza la calibrazione INT8 e il compilatore dx_com per produrre un binario ottimizzato per l'hardware .dxnn, mentre il runtime dx_engine gestisce l'inferenza sul dispositivo.

La combinazione di Ultralytics YOLO e della tecnologia NPU di DEEPX offre una soluzione efficace per l'esecuzione di carichi di lavoro avanzati di visione artificiale su dispositivi embedded ed edge, offrendo un elevato throughput con un basso consumo energetico per applicazioni in tempo reale.

Per ulteriori dettagli sull'utilizzo, visita il sito web ufficiale di DEEPX.

Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO, visita la nostra pagina della guida alle integrazioni. Troverai molte risorse utili e approfondimenti.

FAQ#

  • Puoi esportare il tuo modello utilizzando il metodo export() in Python o tramite la CLI. L'esportazione abilita automaticamente la quantizzazione INT8 e utilizza un dataset di calibrazione per ridurre al minimo la perdita di precisione. Il pacchetto del compilatore dx_com viene installato automaticamente se non è già presente.

    Esempio
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="deepx")
  • Le NPU DEEPX sono progettate per eseguire calcoli INT8 alla massima efficienza. Il compilatore dx_com quantizza il modello durante l'esportazione utilizzando la calibrazione basata su EMA con immagini reali del dataset, consentendo alla NPU di esprimere le sue massime prestazioni. L'INT8 è sempre applicato per le esportazioni DEEPX: se richiedi una precisione diversa, questa verrà sovrascritta con un avviso.

  • L'esportazione (compilazione) del modello DEEPX richiede un host x86-64 Linux. Il passaggio di esportazione non è supportato su macchine ARM64 (aarch64) e Windows. L'inferenza tramite il modello esportato .dxnn può essere eseguita su qualsiasi piattaforma Linux (x86-64 e ARM64) supportata dal runtime dx_engine.

  • L'esportazione crea una cartella (ad es. yolo26n_deepx_model/) contenente:

    • yolo26n.dxnn — il binario NPU compilato
    • config.json — impostazioni di calibrazione e pre-elaborazione
    • metadata.yaml — metadati del modello inclusi i nomi delle classi e la dimensione dell'immagine
  • Sì. Qualsiasi modello addestrato utilizzando la modalità di training di Ultralytics ed esportato con format="deepx" può essere distribuito su hardware NPU DEEPX, a condizione che utilizzi operazioni a livello di layer supportate. L'esportazione supporta tutti e sette i task di Ultralytics: rilevamento, segmentazione di istanze, segmentazione semantica, stima della profondità, classificazione, stima della posa e bounding box orientato (OBB).

  • La pipeline di esportazione DEEPX utilizza ogni immagine nel dataset di calibrazione con il metodo di calibrazione EMA. Qualche centinaio di immagini è solitamente sufficiente per una buona precisione di quantizzazione. Punta data a un dataset più piccolo se il tempo di compilazione diventa un problema su dataset di grandi dimensioni.

  • Il runtime DEEPX non è incluso in ultralytics e deve essere installato separatamente prima di eseguire l'inferenza. Su macchine x86-64 Linux e macchine ARM64 Linux (ad es. Raspberry Pi 5), installa il driver NPU (dxrt-driver-dkms) e il runtime (libdxrt) dalle release GitHub di DEEPX-AI, quindi installa il wheel Python in bundle dx_engine. Vedi la sezione Installazione del runtime qui sopra per i comandi dettagliati.

Commenti