Ultralytics YOLO27:
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.

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

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#

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àYOLOv8YOLO11YOLO26
Rilevamento✅✅✅
Segmentazione✅✅❌
Semantica❌❌✅
Profondità❌❌❌
Classificazione✅✅✅
Stima della posa✅✅✅
OBB✅✅✅
Nota

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#

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.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-dkms 1.6.2 o superiore, 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.8 richiede metis-dkms 1.6.2 o superiore, quindi 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 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: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.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
L'aggiornamento dell'SDK rende inutilizzabili i modelli esportati esistenti

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

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*int1Specifica la dimensione batch per l'inferenza del modello esportato o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict.
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).

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

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. 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=8

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

Consulta il model-zoo per i benchmark FPS o contatta Axelera per l'assistenza 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