YOLO Vision 2026 :

Intégration de Huawei Ascend pour Ultralytics YOLO#

Le déploiement de modèles de vision par ordinateur sur les processeurs IA Huawei Ascend nécessite leur compilation au format de modèle hors ligne .om, exécuté par l'Ascend AI Core. L'exportation des modèles Ultralytics YOLO vers Ascend te permet d'effectuer des inférences rapides et peu énergivores sur les cartes de développement Atlas et les appareils OrangePi AIPro utilisés dans la robotique, l'inspection industrielle et les déploiements de caméras intelligentes.

Qu'est-ce que Huawei Ascend ?#

Huawei Ascend est une famille de processeurs IA associée à CANN (Architecture de calcul pour réseaux neuronaux), la pile de calcul hétérogène de Huawei. CANN fournit ATC (Compilateur de tenseurs Ascend), un outil côté hôte qui convertit un graphe ONNX standard en modèle hors ligne spécifique au matériel .om ciblant l'Ascend AI Core.

Comme ATC s'exécute entièrement sur l'hôte, tu peux compiler des modèles sur une machine Linux x86-64 ou ARM64 standard sans aucun matériel Ascend connecté, puis copier le fichier .om obtenu sur l'appareil cible pour effectuer l'inférence.

Entraîner sur des NPU Ascend#

Ultralytics prend en charge l'entraînement avec un ou plusieurs NPU avec torch_npu, notamment AMP, la validation, la création de points de contrôle, la reprise et AutoBatch. Sélectionne un NPU avec device=npu:0 ou plusieurs NPU avec device=npu:0,1 ; l'entraînement distribué utilise HCCL. Installe des versions compatibles de CANN, PyTorch et torch_npu, puis initialise d'abord l'environnement CANN. Consulte la section sur l'entraînement avec les NPU Ascend pour découvrir des exemples d'installation et d'utilisation.

Format d'exportation Ascend#

L'exportateur Ultralytics écrit d'abord un graphe ONNX intermédiaire, puis appelle ATC pour le compiler pour le SoC que tu cibles avec l'argument name. Le résultat est un répertoire de modèle autonome contenant le binaire .om et les métadonnées Ultralytics associées.

Fonctionnalités clés des modèles Ascend#

  • AI Core dédié : les modèles compilés s'exécutent sur l'Ascend AI Core plutôt que sur le CPU hôte, offrant un débit nettement supérieur pour les pipelines de caméras en temps réel.
  • Compilation côté hôte : ATC ne nécessite aucun NPU connecté ; l'exportation peut donc s'exécuter dans la CI, dans des conteneurs ou sur un ordinateur portable.
  • ONNX en priorité : l'exportation ONNX standard d'Ultralytics alimente directement la chaîne d'outils CANN, sans format intermédiaire propriétaire.
  • Formes statiques : la forme d'entrée est intégrée au .om lors de la compilation, ce qui élimine la surcharge liée à la négociation de la forme au moment de l'exécution.
  • Ciblage de plusieurs appareils : le même graphe ONNX se compile pour tout SoC pris en charge en modifiant name.

Tâches prises en charge#

L'exportation Huawei Ascend prend en charge les sept tâches Ultralytics. La segmentation sémantique et l'estimation de profondeur sont disponibles uniquement avec YOLO26, la seule famille qui fournit ces têtes.

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

Appareils pris en charge#

Indique le SoC cible avec name ; ATC l'intègre au .om sous la forme --soc_version, qui doit donc correspondre à la carte sur laquelle tu déploies le modèle. En local, tu peux compiler pour tout SoC dont ton installation CANN fournit les noyaux. Ultralytics Platform prend en charge les cibles Ascend310P1, Ascend310P3, Ascend310B1 et Ascend310B4.

nameAppareilsExportation localePlateforme
Ascend310P3Atlas 300I Pro, Atlas 300V Pro
Ascend310P1Atlas 300I
Ascend310B4OrangePi AIPro 20T, Atlas 200I A2
Ascend310B1OrangePi AIPro 8T

Exporter vers Ascend : convertir ton modèle YOLO#

Remarque

L'exportation Ascend nécessite la boîte à outils CANN, disponible uniquement sous Linux. Le compilateur atc doit se trouver dans ton PATH — initialise le script d'environnement CANN avant l'exportation, par exemple avec source /usr/local/Ascend/ascend-toolkit/set_env.sh.

Installation#

Installe Ultralytics, puis installe séparément CANN depuis Huawei.

Installation
# Install the required package for YOLO
pip install ultralytics

La boîte à outils CANN est distribuée par Huawei et n'est pas installée automatiquement. Télécharge-la depuis la page de téléchargement de la communauté Ascend, ou utilise l'une des images de conteneur officielles ascendai/cann, qui intègrent ATC et ses dépendances.

Fais correspondre la boîte à outils à ton SoC cible

ATC ne peut compiler que pour les familles de SoC dont les noyaux d'opérateurs sont installés. Une boîte à outils contenant uniquement les noyaux ascend310p échoue avec No supported Ops kernel and engine are found for ... Conv2D lorsqu'on lui demande une cible Ascend310B4. Installe le paquet Ascend-cann-kernels-<soc> correspondant à l'appareil sur lequel tu déploies le modèle.

Utilisation#

Le format Ascend prend en charge les modes Export, Predict et Validate. L'inférence et la validation s'exécutent sur le matériel Ascend. Exporte ton modèle, puis charge le modèle exporté pour effectuer une inférence ou valider sa précision.

Exportation
from ultralytics import YOLO

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

# Export the model to Ascend format for an Atlas 200I / OrangePi AIPro board
model.export(format="ascend", name="Ascend310B4")

# Load the exported Ascend model and run inference on the device
ascend_model = YOLO("yolo26n_ascend_model")
results = ascend_model("https://ultralytics.com/images/bus.jpg")

Arguments d'exportation#

ArgumentTypeValeur par défautDescription
formatstr'ascend'Format cible du modèle exporté, définissant sa compatibilité avec les processeurs IA Ascend.
namestr'Ascend310B4'SoC cible transmis à ATC sous la forme --soc_version, par exemple Ascend310P3. Tout SoC pour lequel ton installation CANN possède des noyaux est valide ; consulte Appareils pris en charge. Il doit correspondre à l'appareil de déploiement.
imgszint ou tuple640Taille d'image souhaitée pour l'entrée du modèle, intégrée au .om sous la forme d'une forme statique.
batchint1Taille de lot statique compilée dans le modèle hors ligne.
quantizeint16Précision de quantification. L'exportation Ascend est limitée à FP16 et active automatiquement 16 si aucune valeur n'est indiquée. Remplace les indicateurs obsolètes half/int8.
opsetint17Jeu d'opérateurs ONNX du graphe intermédiaire. Limité à 17, la version la plus élevée acceptée par l'analyseur ONNX de CANN.
simplifyboolTrueSimplifie le graphe ONNX intermédiaire avec onnxslim.
nmsboolFalseAjoute la suppression des non-maxima aux modèles pris en charge de détection, de segmentation, de pose et d'OBB.
Pourquoi FP32 n'est-il pas disponible ?

L'Ascend AI Core n'accepte que des entrées DT_FLOAT16 et DT_INT8 pour les convolutions ; un modèle hors ligne FP32 ne peut donc pas s'exécuter sur le matériel. Demander quantize=32 génère une erreur plutôt que de produire silencieusement un modèle qui ne fonctionnerait pas.

Pour plus de détails sur le processus d’exportation, consulte la page de la documentation Ultralytics consacrée à l’exportation.

Structure de sortie#

Après une exportation réussie, un répertoire de modèle est créé avec la structure suivante :

yolo26n_ascend_model/
├── yolo26n_Ascend310B4.om  # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml           # Model metadata (classes, image size, task, etc.)

Le fichier .om est le modèle hors ligne compilé que le runtime CANN charge sur l'appareil. Son nom contient le SoC cible afin que l'artefact soit auto-descriptif ; conserve un seul .om par répertoire, car le chargeur sélectionne le seul modèle qu'il y trouve. Le metadata.yaml contient les noms de classes, la taille d'image et d'autres informations utilisées par le pipeline d'inférence Ultralytics.

Déployer des modèles YOLO Ascend exportés#

Une fois ton modèle Ultralytics YOLO exporté avec succès au format Ascend, l'étape suivante consiste à le déployer sur du matériel Ascend.

Installation de l’environnement d’exécution#

L'inférence nécessite le runtime CANN sur l'appareil ainsi que le paquet Python ais_bench, qui encapsule les liaisons pyACL de CANN. Compile-le et installe-le depuis le dépôt d'outils Ascend de Huawei :

# On the Ascend device, with CANN installed and sourced
source /usr/local/Ascend/ascend-toolkit/set_env.sh

# Build and install the ais_bench inference wheel
git clone https://gitee.com/ascend/tools.git
cd tools/ais-bench_workload/tool/ais_bench
pip3 wheel ./backend -v
pip3 install ./aclruntime-*.whl
pip3 wheel ./ -v
pip3 install ./ais_bench-*.whl

Copie le répertoire yolo26n_ascend_model exporté sur l'appareil, puis exécute l'inférence exactement comme avec n'importe quel autre format Ultralytics.

Flux de travail recommandé#

  1. Entraîne ton modèle avec le mode Entraînement d'Ultralytics, ou pars d'un point de contrôle préentraîné.
  2. Exporte vers Ascend sur n'importe quel hôte Linux où CANN est installé, en transmettant le name correspondant à ton SoC cible.
  3. Copie le répertoire du modèle exporté sur l'appareil Ascend.
  4. Déploie avec le runtime CANN et ais_bench pour effectuer l'inférence sur l'appareil.

Applications concrètes#

Les modèles YOLO exécutés sur du matériel Ascend conviennent à un large éventail d'applications de vision embarquée et industrielle :

  • Automatisation industrielle : inspection qualité à grande vitesse et détection des défauts sur les lignes de production.
  • Surveillance intelligente : détection d'objets en temps réel avec plusieurs caméras sur des passerelles périphériques, sans serveur central.
  • Robotique : perception embarquée pour les robots mobiles autonomes et les bras collaboratifs.
  • Villes intelligentes : surveillance du trafic et analyse des piétons sur des unités routières basse consommation.

Résumé#

Dans ce guide, tu as appris à entraîner Ultralytics YOLO sur des NPU Huawei Ascend et à exporter des modèles au format Ascend .om à l'aide du compilateur CANN ATC. L'exportation s'exécute entièrement sur l'hôte, produit un répertoire de modèle autonome et cible tout SoC Ascend pris en charge grâce à un seul argument name.

Pour plus de détails sur l'utilisation, consulte la documentation officielle de CANN.

Si tu souhaites également en savoir plus sur les autres intégrations Ultralytics YOLO, consulte notre page du guide des intégrations pour trouver de nombreuses ressources utiles.

FAQ#

  • Installe Ultralytics et la boîte à outils CANN, initialise l'environnement CANN afin que atc soit présent dans ton PATH, puis exporte avec model.export(format="ascend", name="Ascend310B4") en Python ou yolo export model=yolo26n.pt format=ascend name=Ascend310B4 depuis la CLI. Définis name sur le SoC de ton appareil de déploiement.

  • Non. Le compilateur ATC s'exécute entièrement sur l'hôte ; la compilation fonctionne donc sur une machine Linux x86-64 ou ARM64 standard sans NPU connecté. Tu as seulement besoin de matériel Ascend pour exécuter l'inférence sur le .om exporté.

  • Ton installation CANN ne contient pas les noyaux d'opérateurs correspondant au SoC demandé. Chaque boîte à outils regroupe les noyaux de familles de SoC spécifiques ; installe donc le paquet Ascend-cann-kernels-<soc> correspondant à ta cible ou utilise une image de conteneur conçue pour cette famille d'appareils.

  • Les convolutions de l'Ascend AI Core n'acceptent que les tenseurs DT_FLOAT16 et DT_INT8. Un modèle hors ligne FP32 ne pourrait pas s'exécuter sur le matériel ; l'exportateur compile donc avec --precision_mode=force_fp16 et rejette une demande explicite quantize=32.

  • Tout SoC pour lequel ta boîte à outils CANN installée fournit des noyaux, sélectionné via l'argument name. Consulte Appareils pris en charge pour connaître les quatre cibles validées et leur disponibilité sur Ultralytics Platform.

Commentaires