Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Get Started

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.

Ecosistema di distribuzione edge Axelera AI per YOLO

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.

Gamma 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.

ProdottoFattore di formaCalcoloPrestazioni (INT8)Applicazione di destinazione
Metis PCIe x4PCIe Gen3 x164x AIPU Metis856 TOPSAnalisi video ad alta densità, città intelligenti
Metis PCIe x1PCIe Gen3 x11x AIPU Metis214 TOPSPC industriali, gestione delle code nel commercio al dettaglio
Metis M.2M.2 2280 M-Key1x AIPU Metis214 TOPSDroni, robotica, dispositivi medici portatili
Metis M.2 MAXM.2 22801x AIPU Metis214 TOPSAmbienti 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#

L’esportazione Axelera supporta tutti e sette i task Ultralytics. La segmentazione semantica e la stima della profondità sono disponibili solo con YOLO26, l’unica famiglia che include queste head.

I modelli YOLO26 di rilevamento, segmentazione di istanze, stima della posa e OBB esportano per impostazione predefinita la loro head one-to-one senza NMS, che viene decodificata dall’host dal runtime Axelera. Passando nms=True si esporta invece la head one-to-many, che ottiene risultati inferiori su Metis: in questo modo, il rilevamento YOLO26n raggiunge mAP50-95 0.212 su COCO128, contro 0.453 con la head senza NMS.

AttivitàYOLOv8YOLO11YOLO26
Rilevamento✅✅✅
Segmentazione✅✅✅
Semantica❌❌✅
Profondità❌❌✅
Classificazione✅✅✅
Stima della posa✅✅✅
OBB✅✅✅
Calibra i modelli di profondità su immagini delle tue scene

Gli intervalli di quantizzazione sono ricavati dalle immagini di calibrazione e il valore predefinito per la profondità, depth8.yaml, contiene quattro frame di interni. Sullo split di validazione di 654 immagini di NYU Depth V2, il modello YOLO26n di profondità calibrato con questi valori predefiniti ottiene delta1 0.742 su Metis, contro 0.783 del modello PyTorch; usando 100 frame di training di NYU, il risultato è 0.780. Passa data= con uno YAML del dataset il cui split val contenga almeno 100 immagini delle scene che il modello dovrà elaborare; la calibrazione legge lo split val.

Installazione#

Requisiti della piattaforma

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.15
  • Voyager SDK: 1.9.0; l’esportazione installa questa versione del devkit e l’inferenza installa questa versione del runtime
  • Driver kernel Metis: metis-dkms 1.7.0 o versione successiva, installato separatamente da pip
  • Dipendenza di sistema: sudo apt install libgl1 (richiesta da OpenCV, non inclusa tramite pip)

Installazione di Ultralytics#

pip install ultralytics

Per istruzioni dettagliate, consulta la nostra guida all'installazione di Ultralytics. Se riscontri difficoltà, consulta la nostra guida ai problemi comuni.

Installazione del driver Axelera#

  1. 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"
  2. 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"
  3. Installa il driver e caricalo. SDK 1.9 richiede metis-dkms 1.7.0 o versione successiva; qui viene installata la versione più recente:

    sudo apt update
    sudo apt install -y metis-dkms
    sudo modprobe metis
Mantieni il driver del kernel sincronizzato con l'SDK

Il driver kernel viene installato separatamente dai pacchetti Python SDK, quindi dopo aver aggiornato l’SDK devi anche aggiornare il driver almeno alla versione minima richiesta da quell’SDK: 1.7.0 per SDK 1.9. Questo requisito non viene verificato durante l’installazione e un driver precedente alla versione minima rende il dispositivo non disponibile: axdevice indica la versione richiesta e non riesce ad aprire il dispositivo.

[libaxldev.c:285] Found kernel driver version 1.6.2, but at least version 1.7.0 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0

Vedi 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 metis

Esegui nuovamente axdevice per verificare che il dispositivo venga rilevato.

Al primo avvio, l'SDK viene scaricato automaticamente

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.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
I modelli esportati con SDK 1.8 continuano a funzionare

SDK 1.9 non incrementa il formato del modello compilato .axm, quindi una directory _axelera_model esportata con la versione 1.8 viene caricata ed eseguita senza modifiche. Riesporta solo per sfruttare i miglioramenti del compilatore.

Un SDK che incrementa il formato rifiuta al caricamento le directory create con versioni precedenti; è questo il messaggio che compare passando dalla versione 1.7 o precedente:

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.

Esporta
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'
Predici
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")
Convalida
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#

ArgomentoTipoPredefinitoDescrizione
formatstr'axelera'Formato di destinazione per l'hardware AIPU Metis di Axelera.
imgszint o tuple640Dimensione dell'immagine di input del modello.
batch*int1Dimensione del batch di calibrazione. Il modello compilato elabora un’immagine alla volta.
quantizeint o str8/autoPrecisione della quantizzazione. 8 (INT8) è obbligatorio e viene abilitato automaticamente per l'AIPU Axelera. Sostituisce i flag deprecati half/int8. Consulta la quantizzazione INT8.
datastrNoneFile 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à.
fractionfloat, int o list1.0Sottoinsieme 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).
devicestrNoneDispositivo di esportazione: GPU (device=0) o CPU (device=cpu).

* I modelli vengono compilati per una singola immagine, quindi l’opzione di esportazione batch imposta solo la dimensione del batch di calibrazione. Passa invece batch a predict per inviare più immagini contemporaneamente allo scheduler Axelera (Voyager SDK 1.8.0 o versione successiva): vedi Prestazioni massime.

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.

ModelloFPS di Metis PCIe (fotogrammi al secondo)FPS di Metis M.2 (fotogrammi al secondo)
YOLOv8n847771
YOLO11n746574
YOLO26n648.6484.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:

  1. Addestra il tuo modello usando la modalità Train di Ultralytics
  2. Esporta nel formato Axelera usando model.export(format="axelera")
  3. Convalida l'accuratezza con yolo val per verificare che la perdita dovuta alla quantizzazione sia minima
  4. Esegui la predizione usando yolo predict per la convalida qualitativa
  5. 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
axdevice

Per una diagnostica dettagliata, consulta la documentazione di AxDevice.

Prestazioni massime#

I modelli vengono compilati per una singola immagine e una singola immagine viene eseguita su un core AIPU. Passare più immagini a Predict le invia insieme allo scheduler Axelera, che le distribuisce sui core del dispositivo:

yolo predict model=yolo26n_axelera_model source=path/to/images batch=32

yolo26n a imgsz=640 sulle 128 immagini COCO128 contenute in una directory, Metis PCIe, mediana di tre esecuzioni:

Voyager SDKDispositivibatch=1batch=8batch=32
1.8.0136 img/s45 img/s40 img/s
1.8.0239 img/s41 img/s41 img/s
1.9.0141 img/s85 img/s109 img/s
1.9.0235 img/s83 img/s113 img/s

Con SDK 1.9, il batch è ciò che aumenta il throughput: di 2,7 volte a batch=32, mentre la versione 1.8 resta intorno a 40 img/s con qualsiasi dimensione del batch. Usa un batch grande per il throughput offline e batch=1 quando conta la latenza per immagine. Un secondo dispositivo aggiunge poco a predict: a batch=32 ogni immagine trascorre già circa 4 ms nella preelaborazione sull’host, tanto quanto il tempo trascorso sul dispositivo.

Oltre predict#

Per 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

Questi percorsi saltano la preelaborazione e la postelaborazione PyTorch che predict esegue sull’host. Consulta lo zoo di modelli per i benchmark FPS oppure contatta Axelera per il supporto in produzione.

Problemi noti#

Limitazioni note
  • 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 val dopo 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.

Commenti