Link to this sectionExportation Huawei Ascend pour les modèles Ultralytics YOLO#
Le déploiement de modèles de vision par ordinateur sur des processeurs d'IA Huawei Ascend nécessite de les compiler au format de modèle hors ligne .om exécuté par l'Ascend AI Core. L'exportation de modèles Ultralytics YOLO vers Ascend te permet d'exécuter une inférence rapide et à faible consommation 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.
Link to this sectionQu'est-ce que Huawei Ascend ?#
Huawei Ascend est une famille de processeurs d'IA associée à CANN (Compute Architecture for Neural Networks), la pile de calcul hétérogène de Huawei. CANN intègre l'ATC (Ascend Tensor Compiler), un outil côté hôte qui convertit un graphe ONNX standard en un modèle hors ligne .om spécifique au matériel ciblant l'Ascend AI Core.
Étant donné que l'ATC s'exécute entièrement sur l'hôte, tu peux compiler des modèles sur une machine Linux x86-64 ou ARM64 classique sans aucun matériel Ascend connecté, puis copier le .om résultant sur l'appareil cible pour l'inférence.
Link to this sectionFormat d'exportation Ascend#
L'exportateur Ultralytics écrit d'abord un graphe ONNX intermédiaire, puis appelle l'ATC pour le compiler pour le SoC que tu cibles avec l'argument name. Le résultat est un répertoire de modèles autonome contenant le binaire .om et ses métadonnées Ultralytics.
Link to this sectionFonctionnalités clés des modèles Ascend#
- Cœur d'IA dédié : Les modèles compilés s'exécutent sur l'Ascend AI Core plutôt que sur le processeur hôte, offrant un débit nettement supérieur pour les pipelines de caméras en temps réel.
- Compilation côté hôte : L'ATC ne nécessite aucun NPU connecté, l'exportation s'exécute donc dans la CI, dans des conteneurs ou sur un ordinateur portable.
- Basé sur ONNX : L'exportation ONNX standard d'Ultralytics s'intègre directement dans la chaîne d'outils CANN sans format intermédiaire propriétaire.
- Formes statiques : La forme d'entrée est intégrée dans le
.omau moment de la compilation, ce qui supprime la surcharge de négociation de forme à l'exécution. - Ciblage multi-appareil : Le même graphe ONNX se compile pour n'importe quel SoC pris en charge en modifiant
name.
Link to this sectionTâches prises en charge#
L'exportation Ascend prend en charge les sept tâches Ultralytics. La détection, la segmentation d'instances, la pose, l'OBB et la classification couvrent les familles YOLO26, YOLO11 et YOLOv8 ; la segmentation sémantique et l'estimation de profondeur sont réservées à YOLO26.
| Tâche | Pris en charge |
|---|---|
| Détection d'objets | ✅ |
| Segmentation d'instance | ✅ |
| Segmentation sémantique | ✅ |
| Estimation de pose | ✅ |
| Détection OBB | ✅ |
| Classification | ✅ |
| Estimation de profondeur | ✅ |
Link to this sectionAppareils pris en charge#
Transmets le SoC cible avec name ; l'ATC l'intègre dans le .om en tant que --soc_version, il doit donc correspondre à la carte sur laquelle tu le déploies. Localement, tu peux compiler pour n'importe quel SoC pour lequel ton installation CANN fournit des noyaux. Sur la Plateforme Ultralytics, les cibles 310B sont indiquées comme arrivant bientôt pendant que leurs noyaux d'opérateurs sont ajoutés à l'image de build.
name | Appareils | Exportation locale | Plateforme |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | Bientôt disponible |
Ascend310B1 | OrangePi AIPro 8T | ✅ | Bientôt disponible |
Link to this sectionExporter vers Ascend : Conversion de ton modèle YOLO#
L'exportation Ascend nécessite la boîte à outils CANN, qui est exclusivement sous Linux. Le compilateur atc doit figurer dans ton PATH — charge le script d'environnement CANN avant l'exportation, par exemple source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionInstallation#
Installe Ultralytics, puis installe CANN séparément depuis Huawei.
# Install the required package for YOLO
pip install ultralyticsLa 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 regroupent l'ATC et ses dépendances.
L'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 des noyaux ascend310p échoue avec l'erreur 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 pour l'appareil sur lequel tu le déploies.
Link to this sectionUtilisation#
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 exécuter l'inférence ou valider sa précision.
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")Link to this sectionArguments d'exportation#
| Argument | Type | Défaut | Description |
|---|---|---|---|
format | str | 'ascend' | Format cible pour le modèle exporté, définissant la compatibilité avec les processeurs d'IA Ascend. |
name | str | 'Ascend310B4' | SoC cible transmis à l'ATC en tant que --soc_version, par exemple Ascend310P3. N'importe quel SoC pour lequel ton installation CANN possède des noyaux est valide ; consulte la section Appareils pris en charge. Doit correspondre à ton appareil de déploiement. |
imgsz | int ou tuple | 640 | Taille d'image souhaitée pour l'entrée du modèle, intégrée dans le .om sous forme de forme statique. |
batch | int | 1 | Taille de lot statique compilée dans le modèle hors ligne. |
quantize | int | 16 | Quantization precision. Ascend export is FP16-only and auto-enables 16 if not specified. Replaces the deprecated half/int8 flags. |
opset | int | 17 | Ensemble d'opérations ONNX pour le graphe intermédiaire. Plafonné à 17, la version la plus élevée acceptée par l'analyseur ONNX de CANN. |
simplify | bool | True | Simplifie le graphe ONNX intermédiaire avec onnxslim. |
nms | bool | False | Ajoute la suppression non maximale (NMS) aux modèles pris en charge de détection, segmentation, pose et OBB. |
L'Ascend AI Core n'accepte que les entrées DT_FLOAT16 et DT_INT8 pour les convolutions, de sorte qu'un modèle hors ligne FP32 ne peut pas s'exécuter sur le matériel. Demander quantize=32 génère une erreur au lieu de produire silencieusement un modèle qui ne fonctionnera pas.
Pour plus de détails sur le processus d'exportation, visite la page de documentation Ultralytics sur l'exportation.
Link to this sectionStructure 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 porte le SoC cible afin que l'artefact soit auto-descriptif ; 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 de l'image et d'autres informations utilisées par le pipeline d'inférence Ultralytics.
Link to this sectionDéploiement de modèles YOLO Ascend exportés#
Une fois que tu as exporté avec succès ton modèle Ultralytics YOLO au format Ascend, l'étape suivante consiste à le déployer sur le matériel Ascend.
Link to this sectionInstallation du runtime#
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. Construis-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-*.whlCopie le répertoire exporté yolo26n_ascend_model sur l'appareil, puis exécute l'inférence exactement comme tu le ferais avec n'importe quel autre format Ultralytics.
Link to this sectionFlux de travail recommandé#
- Entraîne ton modèle en utilisant le Mode Entraînement d'Ultralytics, ou commence à partir d'un point de contrôle pré-entraîné.
- Exporte vers Ascend sur n'importe quel hôte Linux avec CANN installé, en passant le paramètre
namequi correspond à ton SoC cible. - Copie le répertoire du modèle exporté sur l'appareil Ascend.
- Déploie avec le runtime CANN et
ais_benchpour l'inférence sur l'appareil.
Link to this sectionApplications concrètes#
Les modèles YOLO s'exécutant sur le matériel Ascend conviennent à un large éventail d'applications de vision embarquée et industrielle :
- Automatisation industrielle : Inspection de qualité à grande vitesse et détection de défauts sur les lignes de production.
- Surveillance intelligente : Détection d'objets multi-caméras en temps réel sur des passerelles de périphérie sans serveur central.
- Robotique : Perception embarquée pour les robots mobiles autonomes et les bras collaborateurs.
- Villes intelligentes : Surveillance du trafic et analyse des piétons sur des unités de bord de route à faible consommation.
Link to this sectionRésumé#
Dans ce guide, tu as appris à exporter des modèles Ultralytics YOLO vers le format .om de Huawei Ascend en utilisant le compilateur CANN ATC. L'exportation s'exécute entièrement sur l'hôte, produit un répertoire de modèle autonome et cible n'importe quel SoC Ascend pris en charge via un seul argument name, te donnant un chemin direct d'un point de contrôle .pt entraîné vers une inférence FP16 accélérée sur les processeurs d'IA Ascend.
Pour plus de détails sur l'utilisation, visite la documentation officielle CANN.
De plus, si tu souhaites en savoir plus sur d'autres intégrations Ultralytics YOLO, visite notre page de guide d'intégration pour trouver de nombreuses ressources utiles.
Link to this sectionFAQ#
Link to this sectionComment exporter mon modèle Ultralytics YOLO au format Ascend ?#
Installe Ultralytics et la boîte à outils CANN, charge l'environnement CANN pour 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.
Link to this sectionAi-je besoin de matériel Ascend pour exporter un modèle ?#
Non. Le compilateur ATC s'exécute entièrement sur l'hôte, de sorte que la compilation fonctionne 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é.
Link to this sectionPourquoi mon exportation échoue-t-elle avec le message "No supported Ops kernel and engine are found" ?#
Ton installation CANN ne contient pas de noyaux d'opérateurs pour le SoC que tu as demandé. Chaque boîte à outils regroupe des noyaux pour des familles de SoC spécifiques, alors installe le paquet Ascend-cann-kernels-<soc> correspondant à ta cible, ou utilise une image de conteneur conçue pour cette famille d'appareils.
Link to this sectionPourquoi l'exportation Ascend ne prend-elle en charge que le FP16 ?#
Les convolutions de l'Ascend AI Core n'acceptent que les tenseurs DT_FLOAT16 et DT_INT8. Un modèle hors ligne FP32 ne s'exécuterait pas correctement sur le matériel, l'exportateur se compile donc avec --precision_mode=force_fp16 et rejette une demande explicite quantize=32.
Link to this sectionQuels appareils Ascend sont pris en charge ?#
N'importe quel SoC pour lequel ta boîte à outils CANN installée fournit des noyaux, sélectionné via l'argument name. Consulte la section Appareils pris en charge pour connaître les quatre cibles validées et leur disponibilité sur la plateforme Ultralytics.