Ultralytics YOLO27:

Esportazione e distribuzione su Axelera AI#

Ultralytics collabora con Axelera AI per abilitare l'inferenza ad alte prestazioni ed efficiente dal punto di vista energetico sui dispositivi Edge AI. Esporta e distribuisci modelli Ultralytics YOLO direttamente sull'AIPU Metis® usando il Voyager SDK.

Ecosistema di distribuzione edge di Axelera AI per YOLO

Axelera AI fornisce un'accelerazione hardware dedicata per la [visione artificiale](https://ultralytics-translation-0.invalid all'edge, utilizzando un'architettura proprietaria dataflow e l'elaborazione in memoria per offrire fino a 856 TOPS con un basso consumo energetico.

Selezione dell'hardware appropriato#

Axelera AI offre diversi fattori di forma per adattarsi a differenti vincoli di distribuzione. Il grafico seguente aiuta a individuare l'hardware ottimale per la tua 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:#fff

Portafoglio hardware#

La linea hardware di Axelera è ottimizzata per eseguire Ultralytics YOLO26 e le versioni precedenti con un'elevata efficienza in FPS per watt.

Schede acceleratrici#

Queste schede abilitano l'accelerazione AI sui dispositivi host esistenti, facilitando le distribuzioni brownfield.

ProdottoFattore di formaCalcoloPrestazioni (INT8)Applicazione target
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 soluzioni chiavi in mano, Axelera collabora con i produttori per fornire sistemi prevalidati 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à emette operatori che il compilatore Metis AIPU non può abbassare. La segmentazione di istanza di YOLO26 non è supportata neanche da Ultralytics export, ma può comunque essere distribuita tramite il Voyager SDK come descritto di seguito. La segmentazione semantica di YOLO26 è supportata.

AttivitàYOLOv8YOLO11YOLO26
Rilevamento
Segmentazione
Semantica
Profondità
Classificazione
Posa
OBB
Nota

La segmentazione di istanza di YOLO26 non è ancora supportata tramite il comando di Ultralytics export. Gli utenti che necessitano di yolo26-seg possono effettuare il deployment tramite il Voyager SDK utilizzando deploy.py, il quale fornisce una soluzione temporanea a livello di utente. Il supporto nativo del compilatore verrà aggiunto in una versione futura.

Installazione#

Requisiti della piattaforma

L'esportazione nel formato Axelera richiede:

  • Sistema operativo: solo Linux (Ubuntu 22.04/24.04 consigliato)
  • 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 kit di sviluppo e l'inferenza installa questa versione del runtime
  • Driver del kernel Metis: metis-dkms 1.6.2 o successivo, 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 tra quelli riportati di seguito 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. L'SDK 1.8 richiede metis-dkms 1.6.2 o successivo, quindi qui viene installata la versione più recente:

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

Il driver del kernel viene installato separatamente dai pacchetti Python SDK, quindi dopo aver aggiornato il kit di sviluppo devi anche portare il driver al minimo richiesto da quel kit di sviluppo — 1.6.2 per l'SDK 1.8. Nessun controllo viene effettuato al momento dell'installazione e un driver inferiore al minimo lascia 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:0

Vedi anche Passaggio 3: Installa il driver del kernel Metis. Se stai già eseguendo un kit di sviluppo precedente su Ubuntu, aggiorna il driver e ricarica il modulo del kernel (nessun riavvio richiesto):

sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metis

Quindi esegui nuovamente axdevice per confermare che il dispositivo sia rilevato.

La prima esecuzione scarica automaticamente l'SDK

Il primo yolo export format=axelera o yolo predict con un modello Axelera scarica e installa automaticamente i pacchetti Axelera SDK. L'operazione può richiedere diversi minuti a seconda della velocità della connessione e durante il download non viene mostrato alcun avanzamento. Per eseguire prima l'installazione manuale:

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/simple
Un aggiornamento dell'SDK rende invalidi i modelli esportati esistenti

L'SDK 1.8 aumenta la versione del formato del modello compilato .axm, quindi le directory _axelera_model prodotte da un kit di sviluppo precedente vengono rifiutate al momento del caricamento. Esporta nuovamente ciascun 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 su Axelera#

Il formato Axelera supporta le modalità Esporta, Prevedi 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.

Esportazione
from ultralytics import YOLO

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

# Export the model to Axelera format
model.export(format="axelera")  # creates 'yolo26n_axelera_model'
Predizione
from ultralytics import YOLO

# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")

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

# Load the exported Axelera model
model = YOLO("yolo26n_axelera_model")

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

Argomenti di esportazione#

ArgomentoTipoPredefinitoDescrizione
formatstr'axelera'Formato target per l'hardware AIPU Metis di Axelera.
imgszint o tuple640Dimensione dell'immagine per l'input del modello.
batch*int1Specifica la dimensione del batch di inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict.
quantizeint o str8/autoPrecisione della quantizzazione. 8 (INT8) è obbligatoria e viene abilitata automaticamente per l'AIPU Axelera. Sostituisce i flag deprecati half/int8. Consulta la quantizzazione INT8.
datastrNoneFile YAML del dataset di calibrazione; per la classificazione si usa invece una directory del dataset o il nome di un dataset integrato. Se omesso, Ultralytics seleziona un dataset di calibrazione specifico per l'attività.
fractionfloat, int o list1.0Sottoinsieme di calibrazione come rapporto, numero di immagini o rapporti/conteggi [train, val, test]. Gli elenchi di due elementi lasciano completo test, mentre 0 lo salta (sono consigliate 100-400 immagini).
devicestrNoneDispositivo di esportazione: GPU (device=0) o CPU (device=cpu).

* L'inferenza con batch>1 richiede Voyager SDK 1.8.0 o successivo; i modelli sono 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 il throughput riducendo al minimo il consumo energetico.

ModelloFPS PCIe Metis (fotogrammi al secondo)FPS M.2 Metis (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 dell'input.

Questi sono dati 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 a predict riporta invece la latenza per immagine, che è una quantità diversa.

Applicazioni nel mondo reale#

Ultralytics YOLO sull'hardware Axelera abilita soluzioni avanzate di edge computing:

Flusso di lavoro consigliato#

  1. Addestra il tuo modello usando la modalità Addestra di Ultralytics
  2. Esporta nel formato Axelera usando model.export(format="axelera")
  3. Convalida l'accuratezza con yolo val per verificare una perdita minima dovuta alla quantizzazione
  4. Esegui la previsione usando yolo predict per la convalida qualitativa
  5. Distribuisci in una pipeline end-to-end ad alte prestazioni senza dipendenza da PyTorch — consulta gli esempi di YOLO con Voyager SDK per pipeline Python componibili che usano axelera-rt

Controllo dello stato del dispositivo#

Verifica che il tuo 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 sono compilati per una singola immagine. Passare diverse immagini a Predict le instrada attraverso lo scheduler di Axelera (Voyager SDK 1.8 o successivo), quindi batch>1 viene eseguito correttamente, sebbene misurato end-to-end su un singolo dispositivo non sia più veloce di batch=1:

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

Per la produzione che richiede il massimo throughput, il Axelera Voyager SDK offre:

  • Pipeline di inferenza in streaming che mantengono diversi fotogrammi in elaborazione
  • Compilazione di un modello su più core
  • Inferenza suddivisa in riquadri per fotocamere ad alta risoluzione

Consulta il model-zoo per i benchmark in FPS oppure contatta Axelera per il supporto in produzione.

Problemi noti#

Limitazioni note
  • Limitazioni di alimentazione M.2: i modelli grandi o molto grandi possono generare errori in fase di esecuzione sugli acceleratori M.2 a causa dei vincoli dell'alimentazione.

Per ricevere supporto, visita la Axelera Community.

FAQ#

  • Voyager SDK supporta l'esportazione dei modelli YOLOv8, YOLO11 e YOLO26. Consulta Supported Tasks per conoscere la disponibilità delle attività per ciascun modello.

  • Sì. Qualsiasi modello addestrato utilizzando Ultralytics Train Mode può essere esportato nel formato Axelera, purché utilizzi layer 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 consumi ridotti) superano di gran lunga il minimo impatto sulla mAP. La quantizzazione richiede da pochi secondi a diverse ore, a seconda delle dimensioni del modello. Esegui yolo val dopo l'esportazione per verificare la precisione.

  • Raccomandiamo da 100 a 400 immagini. Oltre 400 immagini non offre ulteriori vantaggi e aumenta il tempo di quantizzazione. Sperimenta con 100, 200 e 400 immagini per trovare l'equilibrio ottimale.

  • SDK, driver e strumenti del compilatore sono disponibili tramite Axelera Developer Portal.

Commenti