Ultralytics YOLO27 :
Get Started

Intégration 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’export des modèles Ultralytics YOLO vers Ascend permet une inférence rapide et à faible consommation sur les cartes de développement Atlas et les appareils OrangePi AIPro, utilisés en robotique, pour l’inspection industrielle et dans 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 les réseaux neuronaux), la pile de calcul hétérogène de Huawei. CANN comprend ATC (compilateur de tenseurs Ascend), un outil côté hôte qui convertit un graphe ONNX standard en un modèle hors ligne .om propre au matériel et destiné à 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 matériel Ascend connecté, puis copier le .om obtenu sur l’appareil cible pour l’inférence.

Entraîner sur les NPU Ascend#

Ultralytics prend en charge l’entraînement sur un ou plusieurs NPU avec torch_npu, notamment AMP, la validation, la sauvegarde 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, de PyTorch et de torch_npu, puis charge d’abord l’environnement CANN. Consulte la section sur l’entraînement sur NPU Ascend pour les exemples d’installation et d’utilisation.

Format d’export 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 ses métadonnées Ultralytics.

Principales caractéristiques 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’export peut donc s’exécuter en CI, dans des conteneurs ou sur un ordinateur portable.
  • ONNX en première étape : l’export 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 au moment de la compilation, ce qui élimine le surcoût de négociation des formes à l’exécution.
  • Ciblage multi-appareil : le même graphe ONNX se compile pour tout SoC pris en charge en modifiant name.

Tâches prises en charge#

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

TâcheYOLOv8YOLO11YOLO26
Détecter✅✅✅
Segmenter✅✅✅
Sémantique❌❌✅
Profondeur❌❌✅
Classifier✅✅✅
Pose✅✅✅
OBB✅✅✅

Appareils pris en charge#

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

nameAppareilsExport localPlateforme
Ascend310P3Atlas 300I Pro, Atlas 300V Pro✅✅
Ascend310P1Atlas 300I✅✅
Ascend310B4OrangePi AIPro 8T, Atlas 200I A2 (8 TOPS)✅✅
Ascend310B1OrangePi AIPro 20T, Atlas 200I A2 (20 TOPS)✅✅

Exporter vers Ascend : convertir ton modèle YOLO#

Remarque

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

Installation#

Installe Ultralytics, puis installe CANN séparément 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 incluent 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 si tu lui demandes une cible Ascend310B4. Installe le package Ascend-cann-kernels-<soc> correspondant à l’appareil de déploiement.

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 lancer l’inférence ou valider sa précision.

Export
from ultralytics import YOLO

# Charger un modèle YOLO26
model = YOLO("yolo26n.pt")

# Exporte le modèle au format Ascend pour une carte Atlas 200I / OrangePi AIPro
model.export(format="ascend", name="Ascend310B4")

# Charger le modèle Ascend exporté et exécuter l’inférence sur l’appareil
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 la 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 de CANN dispose de noyaux est valide ; consulte Appareils pris en charge. Il doit correspondre à ton appareil de déploiement.
imgszint ou tuple640Taille d’image souhaitée pour l’entrée du modèle, intégrée dans .om sous forme de dimension statique.
batchint1Taille de lot statique compilée dans le modèle hors ligne.
quantizeint16Précision de quantification. L’export Ascend utilise uniquement FP16 et active automatiquement 16 si cette option n’est pas spécifiée. Remplace les options obsolètes half/int8.
opsetint17Opset ONNX du graphe intermédiaire. Plafonné à 17, la version la plus élevée acceptée par l’analyseur ONNX de CANN.
simplifyboolTrueSimplifie le graphe ONNX intermédiaire avec onnxslim.
nmsbool, facultatifNoneSélectionne la sortie brute (None, par défaut), NMS intégrée (True) ou la tête sans NMS (False).
devicestrNoneAppareil utilisé pour l’étape d’export ONNX intermédiaire, CPU par défaut (device=cpu). La compilation ATC ne l’utilise pas.
Pourquoi FP32 n’est-il pas disponible ?

L’Ascend AI Core n’accepte que les 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. Une demande de quantize=32 déclenche une erreur au lieu de produire silencieusement un modèle qui ne fonctionnera pas.

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

Structure de sortie#

Après un export réussi, 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 indique le SoC cible, ce qui rend l’artefact autonome ; conserve un seul .om par répertoire, car le chargeur sélectionne le modèle unique qu’il y trouve. Le fichier 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éploiement de 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 lance l’inférence exactement comme tu le ferais avec n’importe quel autre format Ultralytics.

  1. Entraîne ton modèle avec le mode Train 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 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 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.
  • Vidéosurveillance 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 à faible consommation.

Résumé#

Dans ce guide, tu as appris à entraîner Ultralytics YOLO sur les NPU Huawei Ascend et à exporter des modèles au format Ascend .om à l’aide du compilateur CANN ATC. L’export s’effectue entièrement sur l’hôte, produit un répertoire de modèle autonome et cible n’importe quel SoC Ascend pris en charge au moyen d’un seul argument name.

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

Par ailleurs, si tu souhaites en savoir plus sur les autres intégrations Ultralytics YOLO, consulte notre page des guides d’intégration pour trouver de nombreuses ressources utiles.

FAQ#

  • Installe Ultralytics et la boîte à outils CANN, charge l’environnement CANN afin que atc soit 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. Tu n’as besoin de matériel Ascend que pour lancer l’inférence avec le modèle exporté .om.

  • Ton installation de CANN ne contient pas les noyaux d’opérateurs pour le SoC demandé. Chaque boîte à outils regroupe des noyaux pour des 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 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é au moyen de l’argument name. Consulte Appareils pris en charge pour connaître les quatre cibles validées et leur disponibilité sur la plateforme Ultralytics.

Commentaires