Ultralytics YOLO27 :

Exportation et déploiement avec Axelera AI#

Ultralytics s'associe à Axelera AI pour permettre une inférence haute performance et économe en énergie sur les appareils Edge AI. Exporte et déploie directement les modèles Ultralytics YOLO sur le Metis® AIPU à l'aide du Voyager SDK.

Écosystème de déploiement edge d'Axelera AI pour YOLO

Axelera AI fournit une accélération matérielle dédiée à la [vision par ordinateur](https://ultralytics-translation-0.invalid en périphérie, grâce à une architecture propriétaire de flux de données et à l'informatique en mémoire, pour atteindre jusqu'à 856 TOPS avec une faible consommation électrique.

Choisir le matériel adapté#

Axelera AI propose différents formats adaptés à diverses contraintes de déploiement. Le tableau ci-dessous t'aide à identifier le matériel optimal pour ton déploiement 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

Gamme de matériel#

La gamme de matériel Axelera est optimisée pour exécuter Ultralytics YOLO26 et les versions précédentes avec une efficacité élevée en FPS par watt.

Cartes accélératrices#

Ces cartes permettent l'accélération de l'IA sur des appareils hôtes existants, facilitant les déploiements brownfield.

ProduitFormatCalculPerformances (INT8)Application cible
Metis PCIe x4PCIe Gen3 x164x Metis AIPUs856 TOPSAnalyse vidéo haute densité, villes intelligentes
Metis PCIe x1PCIe Gen3 x11x Metis AIPU214 TOPSPC industriels, gestion des files d'attente dans le commerce de détail
Metis M.2M.2 2280 M-Key1x Metis AIPU214 TOPSDrones, robotique, appareils médicaux portables
Metis M.2 MAXM.2 22801x Metis AIPU214 TOPSEnvironnements nécessitant une gestion thermique avancée

Systèmes intégrés#

Pour des solutions clés en main, Axelera s'associe à des fabricants afin de fournir des systèmes prévalidés pour le Metis AIPU.

  • Metis Compute Board : appareil edge autonome associant le Metis AIPU à un CPU ARM Rockchip RK3588.
  • Stations de travail : tours professionnelles de Dell (Precision 3460XE) et Lenovo (ThinkStation P360 Ultra).
  • PC industriels : systèmes durcis d'Advantech et d'Aetina, conçus pour l'automatisation industrielle.

Tâches prises en charge#

L'estimation de profondeur n'est pas prise en charge : la tête de profondeur émet des opérateurs que le compilateur Metis AIPU ne peut pas abaisser. La segmentation d'instance YOLO26 n'est pas non plus prise en charge par Ultralytics export, mais peut tout de même être déployée via le Voyager SDK comme décrit ci-dessous. La segmentation sémantique YOLO26 est prise en charge.

TâcheYOLOv8YOLO11YOLO26
Détection
Segmentation
Sémantique
Profondeur
Classification
Pose
OBB
Remarque

La segmentation d'instance YOLO26 n'est pas encore prise en charge par la commande Ultralytics export. Les utilisateurs qui ont besoin de yolo26-seg peuvent effectuer le déploiement via le Voyager SDK en utilisant deploy.py, ce qui fournit une solution de contournement au niveau de l'espace utilisateur. La prise en charge native du compilateur sera ajoutée dans une future version.

Installation#

Configuration requise de la plateforme

L'exportation au format Axelera nécessite :

  • Système d'exploitation : Linux uniquement (Ubuntu 22.04/24.04 recommandé)
  • Matériel : accélérateur Axelera AI (appareils Metis)
  • Python : versions 3.10, 3.11, 3.12 et 3.13
  • PyTorch : torch>=2.8,<2.13
  • Voyager SDK : 1.8.0 ; l'exportation installe cette version du kit de développement et l'inférence installe cette version du runtime
  • Pilote de noyau Metis : metis-dkms 1.6.2 ou plus récent, installé séparément de pip
  • Dépendance système : sudo apt install libgl1 (requise par OpenCV, non incluse via pip)

Installation d'Ultralytics#

pip install ultralytics

Pour obtenir des instructions détaillées, consulte notre guide d'installation Ultralytics. Si tu rencontres des difficultés, consulte notre guide des problèmes courants.

Installation du pilote Axelera#

  1. Ajoute la clé du dépôt 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. Ajoute le dépôt à apt :

    Choisis ci-dessous l'extrait correspondant au système d'exploitation utilisé.

    # 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. Installe le pilote et charge-le. Le SDK 1.8 nécessite metis-dkms 1.6.2 ou plus récent, c'est donc la version la plus récente qui est installée ici :

    sudo apt update
    sudo apt install -y metis-dkms
    sudo modprobe metis
Maintenir le pilote du noyau synchronisé avec le SDK

Le pilote de noyau est installé séparément des paquets du Python SDK, donc après avoir mis à niveau le SDK, tu dois également mettre à niveau le pilote vers le minimum requis par ce SDK — 1.6.2 pour le SDK 1.8. Rien ne vérifie cela au moment de l'installation, et un pilote inférieur au minimum laisse l'appareil indisponible : axdevice signale la version requise et ne parvient pas à ouvrir l'appareil.

[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

Voir aussi Step 3: Install the Metis kernel driver. Si tu exécutes déjà un SDK antérieur sur Ubuntu, mets à jour le pilote et recharge le module du noyau (aucun redémarrage requis) :

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

Réexécute ensuite axdevice pour confirmer que l'appareil est détecté.

Le premier lancement télécharge automatiquement le SDK

Le premier yolo export format=axelera ou yolo predict utilisant un modèle Axelera télécharge et installe automatiquement les paquets du SDK Axelera. Cela peut prendre plusieurs minutes selon la vitesse de ta connexion, et aucune progression ne s'affiche pendant le téléchargement. Pour l'installer manuellement au préalable :

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
Une mise à niveau du SDK invalide les modèles exportés existants

Le SDK 1.8 augmente la version du format de modèle compilé .axm, de sorte que les répertoires _axelera_model produits par un SDK antérieur sont rejetés au moment du chargement. Réexporte chaque modèle après la mise à niveau :

Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.

Exporter des modèles YOLO vers Axelera#

Le format Axelera prend en charge les modes Exportation, Prédiction et Validation. L'inférence et la validation s'exécutent sur le matériel Axelera Metis AIPU. Exporte ton modèle, puis charge le modèle exporté pour exécuter l'inférence ou valider sa précision.

Exportation
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'
Prédiction
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Valider
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")

Arguments d'exportation#

ArgumentTypeValeur par défautDescription
formatstr'axelera'Format cible pour le matériel Axelera Metis AIPU.
imgszint ou tuple640Taille des images en entrée du modèle.
batch*int1Indique la taille du lot d'inférence du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict.
quantizeint ou str8/autoPrécision de la quantification. 8 (INT8) est requis et activé automatiquement pour l'AIPU Axelera. Remplace les indicateurs obsolètes half/int8. Consulte la quantification INT8.
datastrNoneFichier YAML du jeu de données d'étalonnage ; pour la classification, il faut plutôt fournir un répertoire de données ou le nom d'un jeu de données intégré. Si tu ne le précises pas, Ultralytics sélectionne un jeu de données d'étalonnage adapté à la tâche.
fractionfloat, int ou list1.0Sous-ensemble d'étalonnage sous forme de ratio, de nombre d'images ou de ratios/nombres [train, val, test]. Les listes de deux éléments laissent test complet, tandis que 0 l'ignore (100 à 400 images recommandées).
devicestrNoneAppareil d'exportation : GPU (device=0) ou CPU (device=cpu).

* L'inférence avec batch>1 nécessite le Voyager SDK 1.8.0 ou plus récent ; les modèles sont compilés pour une seule image.

Pour connaître toutes les options d'exportation, consulte la documentation du mode Exportation.

Structure de sortie#

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

Benchmarks Axelera AI#

L'AIPU Metis maximise le débit tout en réduisant la consommation énergétique.

ModèleFPS du Metis PCIe (images par seconde)FPS du Metis M.2 (images par seconde)
YOLOv8n847771
YOLO11n746574
YOLO26n648.6484.9

Benchmarks fondés sur les données d'Axelera AI. Le nombre réel de FPS dépend de la taille du modèle, du traitement par lots et de la résolution d'entrée.

Ce sont des chiffres de débit de l'hôte, mesurés par le model zoo avec le pipeline de streaming du Voyager SDK sur un fichier vidéo 720p. Un seul appel predict rapporte plutôt la latence par image, ce qui est une quantité différente.

Applications concrètes#

Ultralytics YOLO sur le matériel Axelera permet de mettre en œuvre des solutions informatiques edge avancées :

Flux de travail recommandé#

  1. Entraîne ton modèle avec le mode Entraînement d'Ultralytics
  2. Exporte au format Axelera avec model.export(format="axelera")
  3. Valide la précision avec yolo val pour vérifier que la perte due à la quantification est minimale
  4. Effectue des prédictions avec yolo predict pour une validation qualitative
  5. Déploie sur un pipeline de bout en bout haute performance sans dépendance à PyTorch — consulte les exemples de YOLO avec le Voyager SDK pour découvrir des pipelines Python composables utilisant axelera-rt

Vérification de l'état de l'appareil#

Vérifie que ton appareil Axelera fonctionne correctement :

# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevice

Pour obtenir des diagnostics détaillés, consulte la documentation d'AxDevice.

Performances maximales#

Les modèles sont compilés pour une seule image. Transmettre plusieurs images à Predict les achemine via l'planificateur Axelera (Voyager SDK 1.8 ou plus récent), de sorte que batch>1 s'exécute correctement, bien que mesuré de bout en bout sur un seul appareil, il ne soit pas plus rapide que batch=1 :

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

Pour la production nécessitant un débit maximal, le Axelera Voyager SDK propose :

  • Des pipelines d'inférence en streaming qui maintiennent plusieurs trames en cours de traitement
  • La compilation d'un modèle sur plusieurs cœurs
  • Inférence par tuiles pour les caméras à plus haute résolution

Consulte le model-zoo pour connaître les benchmarks en FPS ou contacte Axelera pour obtenir une assistance en production.

Problèmes connus#

Limitations connues
  • Limitations d'alimentation du M.2 : les modèles volumineux ou très volumineux peuvent rencontrer des erreurs à l'exécution sur les accélérateurs M.2 en raison de contraintes d'alimentation électrique.

Pour obtenir de l'aide, consulte la communauté Axelera.

FAQ#

  • Le Voyager SDK prend en charge l'exportation des modèles YOLOv8, YOLO11 et YOLO26. Consulte les tâches prises en charge pour connaître les tâches disponibles pour chaque modèle.

  • Oui. Tout modèle entraîné avec le mode Entraînement d'Ultralytics peut être exporté au format Axelera, à condition d'utiliser des couches et des opérations prises en charge.

  • Le Voyager SDK d'Axelera quantifie automatiquement les modèles pour l'architecture AIPU à précision mixte. Pour la plupart des tâches de détection d'objets, les gains de performances (FPS plus élevé, consommation réduite) compensent largement l'impact minimal sur la mAP. La quantification prend de quelques secondes à plusieurs heures selon la taille du modèle. Exécute yolo val après l'exportation pour vérifier la précision.

  • Nous recommandons 100 à 400 images. Au-delà de 400, aucun avantage supplémentaire n'est obtenu et le temps de quantification augmente. Expérimente avec 100, 200 et 400 images pour trouver l'équilibre optimal.

  • Le SDK, les pilotes et les outils de compilation sont disponibles via le portail développeur Axelera.

Commentaires