Link to this sectionEsportazione DEEPX per i modelli Ultralytics YOLO#
Distribuire modelli di computer vision su hardware NPU specializzato richiede un formato di modello compatibile e ottimizzato. L'esportazione dei modelli Ultralytics YOLO nel formato DEEPX abilita un'inferenza efficiente e quantizzata INT8 sugli acceleratori NPU DEEPX. Questa guida ti accompagna nella conversione dei tuoi modelli YOLO nel formato DEEPX e nella loro distribuzione su hardware basato su DEEPX.
Link to this sectionCos'è DEEPX?#
DEEPX è un'azienda di semiconduttori AI specializzata in Neural Processing Units (NPUs) progettate per l'inferenza di deep learning ad alta efficienza energetica nell'edge. Le NPU di DEEPX sono progettate per applicazioni AI industriali ed embedded impegnative, offrendo un throughput elevato con un consumo energetico minimo. Il loro hardware è particolarmente adatto per scenari di distribuzione in cui la connettività cloud è inaffidabile o indesiderata, come robotica, smart camera e sistemi di automazione industriale.
Link to this sectionFormato di esportazione DEEPX#
L'esportazione DEEPX produce un binario di modello .dxnn compilato, 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 directory del modello autonoma pronta per la distribuzione.
Link to this sectionCaratteristiche 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è compilato specificamente 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.
Link to this sectionAttività supportate#
Tutte le attività Ultralytics standard sono supportate per l'esportazione DEEPX per le famiglie di modelli YOLO26, YOLO11 e YOLOv8.
| Compito | Supportato |
|---|---|
| Object Detection | ✅ |
| Instance Segmentation | ✅ |
| Semantic Segmentation | ✅ |
| Pose Estimation | ✅ |
| Rilevamento OBB | ✅ |
| Classification | ✅ |
Link to this sectionEsporta in DEEPX: Conversione del tuo modello YOLO#
Esporta un modello Ultralytics YOLO nel formato DEEPX ed esegui l'inferenza con il modello esportato.
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.
Link to this sectionInstallazione#
Per installare i pacchetti richiesti, esegui:
# Install the required package for YOLO
pip install ultralyticsIl pacchetto del compilatore dx_com verrà installato automaticamente dal repository dell'SDK DEEPX al primo export. Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Se riscontri difficoltà durante l'installazione dei pacchetti richiesti per YOLO, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Link to this sectionUtilizzo#
Il formato DEEPX supporta le modalità Export, Predict e Validate. L'inferenza e la convalida vengono eseguite sull'hardware NPU DEEPX. Esporta il tuo modello, quindi caricalo per eseguire l'inferenza o convalidarne l'accuratezza.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to DEEPX format (int8=True is enforced automatically)
model.export(format="deepx") # creates 'yolo26n_deepx_model/'from ultralytics import YOLO
# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")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")Link to this sectionArgomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'deepx' | Formato di destinazione per il modello esportato, che definisce la compatibilità con l'hardware NPU DEEPX. |
imgsz | int o tuple | 640 | Dimensione dell'immagine desiderata per l'input del modello. L'esportazione DEEPX richiede un input quadrato: passa un intero (ad es. 640) o una tupla in cui l'altezza è uguale alla larghezza. |
int8 | bool | True | Abilita la quantizzazione INT8. Obbligatorio per l'esportazione DEEPX: impostato automaticamente su True se non specificato. |
data | str | 'coco8.yaml' | File di configurazione del dataset utilizzato per la calibrazione INT8. Specifica la sorgente dell'immagine di calibrazione. |
device | str | None | Specifica il dispositivo per l'esportazione: GPU (device=0) o CPU (device=cpu). |
optimize | bool | False | Abilita una maggiore ottimizzazione del compilatore che riduce la latenza di inferenza e aumenta il tempo di compilazione. |
Esegui sempre l'esportazione DEEPX su un host Linux x86-64. Il compilatore dx_com non supporta ARM64.
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Link to this sectionStruttura 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. Il file metadata.yaml contiene i nomi delle classi, la dimensione dell'immagine e altre informazioni utilizzate dalla pipeline di inferenza Ultralytics.
Link to this sectionDistribuzione 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.
Link to this sectionInstallazione del runtime#
L'inferenza richiede il driver NPU DEEPX, il runtime libdxrt e il pacchetto Python dx_engine.
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-*.whlVerifica che il runtime sia installato correttamente con dxrt-cli --version. Dovresti vedere 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: v6Una volta installato il runtime, esegui l'inferenza e la convalida sul tuo dispositivo DEEPX esattamente come mostrato nella sezione Utilizzo sopra: il modello _deepx_model esportato si carica direttamente con YOLO(...).
Link to this sectionVisualizzazione con dxtron#
dxtron è il visualizzatore grafico di DEEPX per ispezionare il modello .dxnn compilato.
Installa dxtron su Linux x86-64 scaricando il pacchetto .deb dall'SDK DEEPX 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.debQuindi apri il tuo modello esportato:
dxtron yolo26n_deepx_model/yolo26n.dxnndxtron è disponibile sia per piattaforme x86-64 che aarch64.
Link to this sectionBenchmark#
Il team di Ultralytics ha testato i modelli YOLO26, confrontando velocità e accuratezza tra PyTorch e DEEPX.
| Modello | Formato | Stato | Dimensione (MB) | metrics/mAP50-95(B) | Tempo di inferenza (ms/im) |
|---|---|---|---|---|---|
| YOLO26n | PyTorch | ✅ | 5.3 | 0.4760 | 315.2 |
| YOLO26n | DEEPX | ✅ | 6.6 | 0.4660 | 34.6 |
| YOLO26n-seg | PyTorch | ✅ | 6.5 | 0.4080 | 485.4 |
| YOLO26n-seg | DEEPX | ✅ | 7.9 | 0.3920 | 53.8 |
| YOLO26n-pose | PyTorch | ✅ | 7.6 | 0.4230 | 506.3 |
| YOLO26n-pose | DEEPX | ✅ | 8.8 | 0.4590 | 37.6 |
| YOLO26n-obb | PyTorch | ✅ | 5.7 | 0.817 | 1094.4 |
| YOLO26n-obb | DEEPX | ✅ | 7.3 | 0.783 | 56.4 |
| Modello | Formato | Stato | Dimensione (MB) | acc (top1) | acc (top5) | Tempo di inferenza (ms/im) |
|---|---|---|---|---|---|---|
| YOLO26n-cls | PyTorch | ✅ | 5.6 | 0.431 | 0.716 | 23.8 |
| YOLO26n-cls | DEEPX | ✅ | 5.9 | 0.333 | 0.686 | 2.7 |
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.
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.txtAggiungi le seguenti righe alla fine del file:
dtparam=pciex1
dtparam=pciex1_gen=3Salva ed esci (Ctrl+X, poi Y, poi Invio), quindi riavvia:
sudo rebootControlla la generazione PCIe. La velocità prevista è 8GT/s per PCIe Gen3.
sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"Link to this sectionFlusso di lavoro consigliato#
- Addestra il tuo modello usando la Modalità Train di Ultralytics
- Esporta nel formato DEEPX usando
model.export(format="deepx") - Valida l'accuratezza con
yolo valper verificare una perdita di quantizzazione minima - Prevedi (Predict) usando
yolo predictper la validazione qualitativa - Distribuisci (Deploy) la directory
_deepx_model/esportata sull'hardware NPU DEEPX usando il runtimedx_engine
Link to this sectionApplicazioni nel mondo reale#
I modelli YOLO distribuiti sull'hardware NPU DEEPX sono adatti a un'ampia gamma di applicazioni di edge AI:
- Smart Surveillance: Rilevamento 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.
- Smart Agriculture: Monitoraggio della salute delle colture, rilevamento dei parassiti e stima della resa utilizzando la computer vision in agricoltura.
- Retail Analytics: Analisi del flusso dei clienti, monitoraggio degli scaffali e tracciamento dell'inventario con inferenza edge in tempo reale.
Link to this sectionRiepilogo#
In questa guida hai imparato come esportare i modelli Ultralytics YOLO nel formato DEEPX e distribuirli sull'hardware NPU DEEPX. La pipeline di esportazione utilizza la calibrazione INT8 e il compilatore dx_com per produrre un binario .dxnn ottimizzato per l'hardware, mentre il runtime dx_engine gestisce l'inferenza sul dispositivo.
La combinazione di Ultralytics YOLO e la tecnologia NPU di DEEPX offre una soluzione efficace per eseguire carichi di lavoro avanzati di computer vision su dispositivi embedded ed edge, offrendo un throughput elevato con un basso consumo energetico per applicazioni in tempo reale.
Per ulteriori dettagli sull'utilizzo, visita il sito ufficiale DEEPX.
Inoltre, se desideri saperne di più su altre integrazioni di Ultralytics YOLO, visita la nostra pagina delle guide all'integrazione. Lì troverai molte risorse e approfondimenti utili.
Link to this sectionFAQ#
Link to this sectionCome posso esportare il mio modello Ultralytics YOLO nel formato DEEPX?#
Puoi esportare il tuo modello usando il metodo export() in Python o tramite CLI. L'esportazione abilita automaticamente la quantizzazione INT8 e utilizza un set di dati di calibrazione per ridurre al minimo la perdita di accuratezza. Il pacchetto del compilatore dx_com viene installato automaticamente se non è già presente.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="deepx")Link to this sectionPerché l'esportazione DEEPX richiede la quantizzazione INT8?#
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 set di dati, consentendo all'NPU di fornire le sue massime prestazioni. L'INT8 è sempre applicato per le esportazioni DEEPX: se passi int8=False, verrà sovrascritto con un avviso.
Link to this sectionQuali piattaforme sono supportate per l'esportazione DEEPX?#
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 che utilizza il modello .dxnn esportato può essere eseguita su qualsiasi piattaforma Linux (x86-64 e ARM64) supportata dal runtime dx_engine.
Link to this sectionQual è l'output di un'esportazione DEEPX?#
L'esportazione crea una directory (ad esempio, yolo26n_deepx_model/) contenente:
yolo26n.dxnn— il binario NPU compilatoconfig.json— impostazioni di calibrazione e pre-elaborazionemetadata.yaml— metadati del modello, inclusi nomi delle classi e dimensioni dell'immagine
Link to this sectionPosso distribuire modelli addestrati personalizzati sull'hardware DEEPX?#
Sì. Qualsiasi modello addestrato utilizzando la Modalità Train di Ultralytics ed esportato con format="deepx" può essere distribuito sull'hardware NPU DEEPX, a condizione che utilizzi operazioni di livello supportate. L'esportazione supporta attività di rilevamento, segmentazione, stima della posa, box di delimitazione orientati (OBB) e classificazione.
Link to this sectionQuante immagini di calibrazione dovrei usare per l'esportazione DEEPX?#
La pipeline di esportazione DEEPX utilizza ogni immagine nel set di dati di calibrazione con il metodo di calibrazione EMA. Alcune centinaia di immagini sono solitamente sufficienti per una buona precisione di quantizzazione. Punta data a un set di dati più piccolo se il tempo di compilazione diventa un problema con set di dati di grandi dimensioni.
Link to this sectionCome installo il runtime DEEPX per l'inferenza?#
Il runtime DEEPX non è integrato con ultralytics e deve essere installato separatamente prima di eseguire l'inferenza. Su macchine x86-64 Linux e macchine ARM64 Linux (ad esempio, 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 dx_engine incluso. Vedi la sezione Installazione del runtime qui sopra per i comandi passo-passo.