Esportazione e distribuzione con Axelera AI#
Ultralytics collabora con Axelera AI per abilitare inferenze ad alte prestazioni e a basso consumo energetico sui dispositivi Edge AI. Esporta e distribuisci i modelli Ultralytics YOLO direttamente sull'AIPU Metis® utilizzando il Voyager SDK.
Axelera AI offre un'accelerazione hardware dedicata per la visione artificiale all'edge, utilizzando un'architettura proprietaria basata sul flusso dei dati e il calcolo in memoria per offrire fino a 856 TOPS con un basso consumo energetico.
Scegliere l'hardware giusto#
Axelera AI offre diversi fattori di forma per soddisfare i vari vincoli di distribuzione. Il grafico seguente aiuta a identificare l'hardware ottimale per la distribuzione di Ultralytics YOLO.
graph TD
A[Start: Select Deployment Target]:::start --> B{Device Type?}:::decide
B -->|Edge Server / Workstation| C{Throughput Needs?}:::decide
B -->|Embedded / Robotics| D{Space Constraints?}:::decide
B -->|Standalone / R&D| E[Dev Kits & Systems]:::proc
C -->|Max Density <br> 30+ Streams| F[**Metis PCIe x4**<br>856 TOPS]:::out
C -->|Standard PC <br> Low Profile| G[**Metis PCIe x1**<br>214 TOPS]:::out
D -->|Drones & Handhelds| H[**Metis M.2**<br>2280 M-Key]:::out
D -->|High Performance Embedded| I[**Metis M.2 MAX**<br>Extended Thermal]:::out
E -->|ARM-based All-in-One| J[**Metis Compute Board**<br>RK3588 + AIPU]:::out
E -->|Prototyping| K[**Arduino Portenta x8**<br>Integration Kit]:::out
click F "https://store.axelera.ai/"
click G "https://store.axelera.ai/"
click H "https://store.axelera.ai/"
click J "https://store.axelera.ai/"
classDef start fill:#4CAF50,color:#fff
classDef proc fill:#2196F3,color:#fff
classDef decide fill:#FF9800,color:#fff
classDef out fill:#9C27B0,color:#fffGamma di hardware#
La gamma di hardware Axelera è ottimizzata per eseguire Ultralytics YOLO26 e le versioni precedenti con un'elevata efficienza in termini di FPS per watt.
Schede acceleratrici#
Queste schede consentono di accelerare l'AI sui dispositivi host esistenti, facilitando le distribuzioni in ambienti esistenti.
| Prodotto | Fattore di forma | Calcolo | Prestazioni (INT8) | Applicazione di destinazione |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x AIPU Metis | 856 TOPS | Analisi video ad alta densità, città intelligenti |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x AIPU Metis | 214 TOPS | PC industriali, gestione delle code nel commercio al dettaglio |
| Metis M.2 | M.2 2280 M-Key | 1x AIPU Metis | 214 TOPS | Droni, robotica, dispositivi medici portatili |
| Metis M.2 MAX | M.2 2280 | 1x AIPU Metis | 214 TOPS | Ambienti che richiedono una gestione termica avanzata |
Sistemi integrati#
Per offrire soluzioni chiavi in mano, Axelera collabora con i produttori per fornire sistemi convalidati in anticipo per l'AIPU Metis.
- Scheda di calcolo Metis: un dispositivo edge autonomo che abbina l'AIPU Metis a una CPU ARM Rockchip RK3588.
- Workstation: tower aziendali di Dell (Precision 3460XE) e Lenovo (ThinkStation P360 Ultra).
- PC industriali: sistemi rinforzati di Advantech e Aetina, progettati per l'automazione della produzione.
Attività supportate#
La stima della profondità non è supportata: la testa di profondità genera operatori che il compilatore AIPU Metis non è in grado di convertire. Anche la segmentazione delle istanze di YOLO26 non è supportata da Ultralytics export, ma può comunque essere distribuita tramite Voyager SDK, come descritto di seguito. La segmentazione semantica di YOLO26 è supportata.
| Attività | YOLOv8 | YOLO11 | YOLO26 |
|---|---|---|---|
| Rilevamento | ✅ | ✅ | ✅ |
| Segmentazione | ✅ | ✅ | ❌ |
| Semantica | ❌ | ❌ | ✅ |
| Profondità | ❌ | ❌ | ❌ |
| Classificazione | ✅ | ✅ | ✅ |
| Stima della posa | ✅ | ✅ | ✅ |
| OBB | ✅ | ✅ | ✅ |
La segmentazione delle istanze di YOLO26 non è ancora supportata tramite il comando Ultralytics export. Se ti serve yolo26-seg, puoi distribuirla tramite Voyager SDK usando deploy.py, che offre una soluzione alternativa in spazio utente. Il supporto nativo nel compilatore verrà aggiunto in una versione futura.
Installazione#
L'esportazione nel formato Axelera richiede:
- Sistema operativo: solo Linux (consigliati Ubuntu 22.04/24.04)
- Hardware: acceleratore Axelera AI (dispositivi Metis)
- Python: versioni 3.10, 3.11, 3.12 e 3.13
- PyTorch:
torch>=2.8,<2.13 - Voyager SDK: 1.8.0; l'esportazione installa questa versione del devkit e l'inferenza installa questa versione del runtime
- Driver del kernel Metis:
metis-dkms1.6.2 o superiore, installato separatamente dapip - Dipendenza di sistema:
sudo apt install libgl1(richiesta da OpenCV, non inclusa tramitepip)
Installazione di Ultralytics#
pip install ultralyticsPer istruzioni dettagliate, consulta la nostra guida all'installazione di Ultralytics. Se riscontri difficoltà, consulta la nostra guida ai problemi comuni.
Installazione del driver Axelera#
-
Aggiungi la chiave del repository Axelera:
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
Aggiungi il repository ad apt:
Scegli lo snippet appropriato qui sotto in base al sistema operativo in uso.
# Ubuntu 22.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"# Ubuntu 24.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list" -
Installa il driver e caricalo. SDK 1.8 richiede
metis-dkms1.6.2 o superiore, quindi qui viene installata la versione più recente:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
Il driver del kernel viene installato separatamente dai pacchetti Python SDK; pertanto, dopo aver aggiornato l'SDK, devi aggiornare anche il driver almeno alla versione minima richiesta dall'SDK, ovvero la 1.6.2 per SDK 1.8. Questa verifica non viene eseguita durante l'installazione e un driver con una versione inferiore al minimo rende il dispositivo non disponibile: axdevice segnala la versione richiesta e non riesce ad aprire il dispositivo.
[libaxldev.c:285] Found kernel driver version 1.5.5, but at least version 1.6.2 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0Vedi anche Passaggio 3: installa il driver del kernel Metis. Se stai già usando una versione precedente dell'SDK su Ubuntu, aggiorna il driver e ricarica il modulo del kernel (non è necessario riavviare):
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metisEsegui nuovamente axdevice per verificare che il dispositivo venga rilevato.
Al primo utilizzo di yolo export format=axelera o yolo predict con un modello Axelera, i pacchetti Axelera SDK verranno scaricati e installati automaticamente. L'operazione può richiedere diversi minuti, a seconda della velocità della connessione, e durante il download non viene mostrato alcun avanzamento. Per installare manualmente in anticipo:
pip install axelera-devkit==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.8.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleSDK 1.8 aumenta la versione del formato del modello .axm compilato; di conseguenza, al caricamento vengono rifiutate le directory _axelera_model create con una versione precedente dell'SDK. Esporta nuovamente ogni modello dopo l'aggiornamento:
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.Esportazione dei modelli YOLO per Axelera#
Il formato Axelera supporta le modalità Esporta, Predici e Valida. L'inferenza e la convalida vengono eseguite sull'hardware AIPU Metis di Axelera. Esporta il modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne l'accuratezza.
from ultralytics import YOLO
# Carica un modello YOLO26
model = YOLO("yolo26n.pt")
# # Esporta il modello nel formato Axelera
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# # Carica il modello Axelera esportato
model = YOLO("yolo26n_axelera_model")
# Esegui l'inferenza
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# # Carica il modello Axelera esportato
model = YOLO("yolo26n_axelera_model")
# # Convalida l'accuratezza sul dataset COCO8
metrics = model.val(data="coco8.yaml")Argomenti di esportazione#
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'axelera' | Formato di destinazione per l'hardware AIPU Metis di Axelera. |
imgsz | int o tuple | 640 | Dimensione dell'immagine di input del modello. |
batch* | int | 1 | Specifica la dimensione batch per l'inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict. |
quantize | int o str | 8/auto | Precisione della quantizzazione. 8 (INT8) è obbligatorio e viene abilitato automaticamente per l'AIPU Axelera. Sostituisce i flag deprecati half/int8. Consulta la quantizzazione INT8. |
data | str | None | File YAML del dataset di calibrazione; per la classificazione è invece richiesta una directory del dataset o il nome di un dataset integrato. Se non specificato, Ultralytics seleziona un dataset di calibrazione specifico per l'attività. |
fraction | float, int o list | 1.0 | Sottoinsieme di calibrazione specificato come rapporto, numero di immagini o rapporti/quantità [train, val, test]. Gli elenchi con due elementi mantengono completo test, mentre 0 lo esclude (si consigliano 100-400 immagini). |
device | str | None | Dispositivo di esportazione: GPU (device=0) o CPU (device=cpu). |
* L'inferenza con batch>1 richiede Voyager SDK 1.8.0 o versione successiva; i modelli vengono compilati per una singola immagine.
Per tutte le opzioni di esportazione, consulta la documentazione della modalità Esporta.
Struttura dell'output#
yolo26n_axelera_model/
├── yolo26n.axm # Axelera model file
├── compiler_config_final.toml # Compiler configuration used for the build
└── metadata.yaml # Model metadata (classes, image size, etc.)Benchmark di Axelera AI#
L'AIPU Metis massimizza la velocità di elaborazione riducendo al minimo il consumo energetico.
| Modello | FPS di Metis PCIe (fotogrammi al secondo) | FPS di Metis M.2 (fotogrammi al secondo) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
Benchmark basati sui dati di Axelera AI. Gli FPS effettivi dipendono dalle dimensioni del modello, dal batching e dalla risoluzione di input.
Questi sono valori di throughput dell'host, misurati dal model zoo con la pipeline di streaming del Voyager SDK su un file video a 720p. Una singola chiamata predict riporta invece la latenza per immagine, che è una grandezza diversa.
Applicazioni nel mondo reale#
Ultralytics YOLO su hardware Axelera consente soluzioni avanzate di edge computing:
- Vendita al dettaglio intelligente: Conteggio degli oggetti in tempo reale e analisi delle mappe di calore per ottimizzare i negozi.
- Sicurezza industriale: Rilevamento dei DPI a bassa latenza negli ambienti di produzione.
- Analisi con droni: Rilevamento degli oggetti ad alta velocità sui UAV per l'agricoltura e le operazioni di ricerca e soccorso.
- Sistemi di gestione del traffico: Riconoscimento delle targhe e stima della velocità tramite edge computing.
Flusso di lavoro consigliato#
- Addestra il tuo modello usando la modalità Train di Ultralytics
- Esporta nel formato Axelera usando
model.export(format="axelera") - Convalida l'accuratezza con
yolo valper verificare che la perdita dovuta alla quantizzazione sia minima - Esegui la predizione usando
yolo predictper la convalida qualitativa - Distribuisci in una pipeline end-to-end ad alte prestazioni senza dipendenze da PyTorch — consulta gli esempi YOLO con Voyager SDK per pipeline Python componibili che usano
axelera-rt
Controllo dello stato del dispositivo#
Verifica che il dispositivo Axelera funzioni correttamente:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevicePer una diagnostica dettagliata, consulta la documentazione di AxDevice.
Prestazioni massime#
I modelli vengono compilati per una singola immagine. Passando diverse immagini a Predict, queste vengono instradate tramite lo scheduler Axelera (Voyager SDK 1.8 o versioni successive), quindi batch>1 viene eseguito correttamente, anche se, misurato end-to-end su un singolo dispositivo, non è più veloce di batch=1:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=8Per la produzione che richiede il massimo throughput, Axelera Voyager SDK offre:
- Pipeline di inferenza in streaming che mantengono più fotogrammi in elaborazione contemporaneamente
- Compilazione di un modello su più core
- Inferenza suddivisa in riquadri per telecamere ad alta risoluzione
Consulta il model-zoo per i benchmark FPS o contatta Axelera per l'assistenza in produzione.
Problemi noti#
- Limitazioni di alimentazione di M.2: i modelli grandi o extra-large possono causare errori di runtime sugli acceleratori M.2 a causa dei limiti dell'alimentazione.
Per ricevere assistenza, visita la community di Axelera.
Domande frequenti#
Voyager SDK supporta l'esportazione dei modelli YOLOv8, YOLO11 e YOLO26. Consulta le attività supportate per conoscere la disponibilità delle attività per ciascun modello.
Sì. Qualsiasi modello addestrato usando la modalità Train di Ultralytics può essere esportato nel formato Axelera, a condizione che utilizzi livelli e operazioni supportati.
Voyager SDK di Axelera quantizza automaticamente i modelli per l'architettura AIPU a precisione mista. Per la maggior parte delle attività di rilevamento degli oggetti, i vantaggi in termini di prestazioni (FPS più elevati e consumo energetico ridotto) superano ampiamente l'impatto minimo su mAP. La quantizzazione richiede da pochi secondi a diverse ore, a seconda delle dimensioni del modello. Esegui
yolo valdopo l'esportazione per verificare l'accuratezza.Consigliamo da 100 a 400 immagini. Oltre le 400 immagini non si ottengono ulteriori vantaggi e i tempi di quantizzazione aumentano. Prova con 100, 200 e 400 immagini per trovare il giusto equilibrio.
SDK, driver e strumenti di compilazione sono disponibili tramite il portale per sviluppatori Axelera.