Link to this sectionHuawei Ascend-Export für Ultralytics YOLO-Modelle#
Das Bereitstellen von Computer-Vision-Modellen auf Huawei Ascend-KI-Prozessoren erfordert deren Kompilierung in das .om-Offline-Modellformat, das vom Ascend AI Core ausgeführt wird. Das Exportieren von Ultralytics YOLO-Modellen nach Ascend ermöglicht dir schnelle und energieeffiziente Inferenz auf Atlas-Entwicklerboards und OrangePi AIPro-Geräten, die in der Robotik, industriellen Inspektion und bei Smart-Camera-Bereitstellungen eingesetzt werden.
Link to this sectionWas ist Huawei Ascend?#
Huawei Ascend ist eine Familie von KI-Prozessoren, gepaart mit CANN (Compute Architecture for Neural Networks), Huaweis heterogenem Computer-Stack. CANN enthält den ATC (Ascend Tensor Compiler), ein hostseitiges Tool, das einen standardmäßigen ONNX-Graphen in ein hardware-spezifisches .om-Offline-Modell für den Ascend AI Core konvertiert.
Da der ATC vollständig auf dem Host läuft, kannst du Modelle auf einem regulären x86-64- oder ARM64-Linux-Rechner ohne angeschlossene Ascend-Hardware kompilieren und das resultierende .om dann zur Inferenz auf das Zielgerät kopieren.
Link to this sectionAscend-Exportformat#
Der Ultralytics-Exporter schreibt zuerst einen intermediären ONNX-Graphen und ruft dann den ATC auf, um ihn für das SoC zu kompilieren, das du mit dem Argument name angibst. Das Ergebnis ist ein in sich geschlossenes Modellverzeichnis, das die .om-Binärdatei und deine Ultralytics-Metadaten enthält.
Link to this sectionHauptmerkmale von Ascend-Modellen#
- Dedizierter AI Core: Kompilierte Modelle werden auf dem Ascend AI Core anstelle der Host-CPU ausgeführt, was einen wesentlich höheren Durchsatz für Echtzeit-Kamerabereitstellungen bietet.
- Hostseitige Kompilierung: Der ATC benötigt keine angeschlossene NPU, sodass der Export in CI, in Containern oder auf einem Laptop ausgeführt werden kann.
- ONNX-First: Der standardmäßige Ultralytics ONNX-Export speist sich direkt in die CANN-Toolchain ein, ohne proprietäres Zwischenformat.
- Statische Formen: Die Eingabeform ist zur Kompilierzeit im
.omfestgelegt, wodurch der Overhead bei der Formverhandlung zur Laufzeit entfällt. - Multi-Device-Zielsetzung: Derselbe ONNX-Graph wird für jedes unterstützte SoC kompiliert, indem
namegeändert wird.
Link to this sectionUnterstützte Aufgaben#
Der Ascend-Export unterstützt alle sieben Ultralytics-Aufgaben. Detektion, Instanzsegmentierung, Pose, OBB und Klassifizierung decken die Familien YOLO26, YOLO11 und YOLOv8 ab; semantische Segmentierung und Tiefenschätzung sind nur in YOLO26 verfügbar.
| Aufgabe | Unterstützt |
|---|---|
| Objekterkennung | ✅ |
| Instance Segmentation | ✅ |
| Semantische Segmentierung | ✅ |
| Pose-Schätzung | ✅ |
| OBB-Erkennung | ✅ |
| Klassifizierung | ✅ |
| Tiefenschätzung | ✅ |
Link to this sectionUnterstützte Geräte#
Pass the target SoC with name; ATC bakes it into the .om as --soc_version, so it must match the board you deploy to. Locally you can compile for any SoC your CANN installation provides kernels for. On Ultralytics Platform, the 310B targets are listed as coming soon while their operator kernels are added to the build image.
name | Geräte | Lokaler Export | Plattform |
|---|---|---|---|
Ascend310P3 | Atlas 300I Pro, Atlas 300V Pro | ✅ | ✅ |
Ascend310P1 | Atlas 300I | ✅ | ✅ |
Ascend310B4 | OrangePi AIPro 20T, Atlas 200I A2 | ✅ | Demnächst verfügbar |
Ascend310B1 | OrangePi AIPro 8T | ✅ | Demnächst verfügbar |
Link to this sectionNach Ascend exportieren: Konvertierung deines YOLO-Modells#
Der Ascend-Export erfordert das CANN-Toolkit, welches nur unter Linux läuft. Der atc-Compiler muss sich in deinem PATH befinden – führe vor dem Export das CANN-Umgebungsskript aus, z. B. source /usr/local/Ascend/ascend-toolkit/set_env.sh.
Link to this sectionInstallation#
Installiere Ultralytics und installiere anschließend das CANN separat von Huawei.
# Install the required package for YOLO
pip install ultralyticsDas CANN-Toolkit wird von Huawei vertrieben und nicht automatisch installiert. Lade es von der Ascend-Community-Download-Seite herunter oder verwende eines der offiziellen ascendai/cann-Container-Images, die den ATC und seine Abhängigkeiten bündeln.
Der ATC kann nur für SoC-Familien kompilieren, deren Operator-Kernel installiert sind. Ein Toolkit, das nur ascend310p-Kernel enthält, schlägt mit dem Fehler No supported Ops kernel and engine are found for ... Conv2D fehl, wenn ein Ascend310B4-Ziel angefordert wird. Installiere das passende Ascend-cann-kernels-<soc>-Paket für das Gerät, auf dem du bereitstellst.
Link to this sectionVerwendung#
Das Ascend-Format unterstützt die Modi Export, Predict und Validate. Inferenz und Validierung werden auf Ascend-Hardware ausgeführt. Exportiere dein Modell und lade dann das exportierte Modell, um Inferenz auszuführen oder seine Genauigkeit zu validieren.
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 sectionExport-Argumente#
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
format | str | 'ascend' | Zielformat für das exportierte Modell, das die Kompatibilität mit Ascend-KI-Prozessoren definiert. |
name | str | 'Ascend310B4' | Ziel-SoC, das als --soc_version an den ATC übergeben wird, z. B. Ascend310P3. Jedes SoC, für das deine CANN-Installation Kernel enthält, ist gültig; siehe Unterstützte Geräte. Muss mit deinem Bereitstellungsgerät übereinstimmen. |
imgsz | int oder tuple | 640 | Gewünschte Bildgröße für die Modelleingabe, die als statische Form in das .om eingebettet ist. |
batch | int | 1 | Statische Batch-Größe, die in das Offline-Modell kompiliert wird. |
quantize | int | 16 | Quantisierungspräzision. Der Ascend-Export unterstützt nur FP16 und aktiviert 16 automatisch, wenn nichts anderes angegeben ist. Ersetzt die veralteten Flags half/int8. |
opset | int | 17 | ONNX-Opset für den Zwischengraphen. Begrenzt auf 17, die höchste Version, die der CANN ONNX-Parser akzeptiert. |
simplify | bool | True | Vereinfacht den intermediären ONNX-Graphen mit onnxslim. |
nms | bool | False | Fügt Non-Maximum Suppression zu unterstützten Detektions-, Segmentierungs-, Pose- und OBB-Modellen hinzu. |
Der Ascend AI Core akzeptiert für Faltungen nur Eingaben vom Typ DT_FLOAT16 und DT_INT8, sodass ein FP32-Offline-Modell nicht auf der Hardware ausgeführt werden kann. Die Anforderung von quantize=32 löst einen Fehler aus, anstatt stillschweigend ein Modell zu erzeugen, das nicht ausgeführt werden kann.
Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Exportieren.
Link to this sectionAusgabestruktur#
Nach einem erfolgreichen Export wird ein Modellverzeichnis mit der folgenden Struktur erstellt:
yolo26n_ascend_model/
├── yolo26n_Ascend310B4.om # Compiled Ascend offline model (AI Core executable)
└── metadata.yaml # Model metadata (classes, image size, task, etc.)Die .om-Datei ist das kompilierte Offline-Modell, das die CANN-Laufzeitumgebung auf dem Gerät lädt. Ihr Name enthält das Ziel-SoC, sodass das Artefakt selbsterklärend ist; behalte nur ein .om pro Verzeichnis bei, da der Loader das einzige dort vorgefundene Modell auswählt. Die metadata.yaml enthält Klassennamen, Bildgröße und andere Informationen, die von der Ultralytics-Inferenz-Pipeline verwendet werden.
Link to this sectionBereitstellung exportierter YOLO Ascend-Modelle#
Sobald du dein Ultralytics YOLO-Modell erfolgreich in das Ascend-Format exportiert hast, besteht der nächste Schritt in der Bereitstellung auf Ascend-Hardware.
Link to this sectionInstallation der Laufzeitumgebung#
Die Inferenz erfordert die CANN-Laufzeitumgebung auf dem Gerät sowie das Python-Paket ais_bench, welches die pyACL-Bindings von CANN umschließt. Erstelle und installiere es aus dem Huawei Ascend-Tools-Repository:
# 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-*.whlKopiere das exportierte Verzeichnis yolo26n_ascend_model auf das Gerät und führe die Inferenz genau wie bei jedem anderen Ultralytics-Format aus.
Link to this sectionEmpfohlener Arbeitsablauf#
- Trainiere dein Modell im Ultralytics-Train-Modus oder starte von einem vortrainierten Checkpoint.
- Exportiere es auf einem beliebigen Linux-Host mit installiertem CANN nach Ascend, indem du den
nameangibst, der deinem Ziel-SoC entspricht. - Kopiere das exportierte Modellverzeichnis auf das Ascend-Gerät.
- Stelle es bereit mit der CANN-Laufzeitumgebung und
ais_benchfür die Inferenz auf dem Gerät.
Link to this sectionAnwendungen in der Praxis#
YOLO-Modelle, die auf Ascend-Hardware laufen, eignen sich für eine Vielzahl von eingebetteten und industriellen Vision-Anwendungen:
- Industrielle Automatisierung: Hochgeschwindigkeits-Qualitätsprüfung und Fehlererkennung an Produktionslinien.
- Smart Surveillance: Objekterkennung mit mehreren Kameras in Echtzeit an Edge-Gateways ohne zentralen Server.
- Robotik: On-Board-Wahrnehmung für autonome mobile Roboter und kollaborative Roboterarme.
- Smart Cities: Verkehrsüberwachung und Fußgängeranalyse an energieeffizienten Straßeneinheiten.
Link to this sectionZusammenfassung#
In diesem Leitfaden hast du gelernt, wie du Ultralytics YOLO-Modelle mit dem CANN ATC-Compiler in das Huawei Ascend .om-Format exportierst. Der Export läuft vollständig auf dem Host, erzeugt ein in sich geschlossenes Modellverzeichnis und zielt über ein einziges name-Argument auf ein beliebiges unterstütztes Ascend-SoC ab – was dir einen direkten Pfad von einem trainierten .pt-Checkpoint zur beschleunigten FP16-Inferenz auf Ascend-KI-Prozessoren bietet.
Weitere Details zur Verwendung findest du in der offiziellen CANN-Dokumentation.
Wenn du mehr über andere Ultralytics YOLO-Integrationen erfahren möchtest, besuche außerdem unsere Integrations-Leitfaden-Seite, um zahlreiche Hilfreiche Ressourcen zu finden.
Link to this sectionFAQ#
Link to this sectionWie exportiere ich mein Ultralytics YOLO-Modell in das Ascend-Format?#
Installiere Ultralytics und das CANN-Toolkit, lade die CANN-Umgebung, damit sich atc in deinem PATH befindet, und exportiere es mit model.export(format="ascend", name="Ascend310B4") in Python oder yolo export model=yolo26n.pt format=ascend name=Ascend310B4 über das CLI. Setze name auf das SoC deines Bereitstellungsgeräts.
Link to this sectionBenötige ich Ascend-Hardware, um ein Modell zu exportieren?#
Nein. Der ATC-Compiler läuft vollständig auf dem Host, sodass die Kompilierung auf einem Standard-x86-64- oder ARM64-Linux-Rechner ohne angeschlossene NPU funktioniert. Du benötigst Ascend-Hardware nur zum Ausführen der Inferenz für das exportierte .om.
Link to this sectionWarum schlägt mein Export mit dem Fehler „No supported Ops kernel and engine are found“ fehl?#
Deine CANN-Installation enthält keine Operator-Kernel für das angeforderte SoC. Jedes Toolkit bündelt Kernel für bestimmte SoC-Familien. Installiere daher das passende Ascend-cann-kernels-<soc>-Paket für dein Ziel oder verwende ein Container-Image, das für diese Gerätefamilie erstellt wurde.
Link to this sectionWarum unterstützt der Ascend-Export nur FP16?#
Ascend AI Core-Faltungen akzeptieren nur DT_FLOAT16- und DT_INT8-Tensoren. Ein FP32-Offline-Modell würde bei der Ausführung auf der Hardware fehlschlagen, weshalb der Exporter mit --precision_mode=force_fp16 kompiliert und eine explizite quantize=32-Anfrage ablehnt.
Link to this sectionWelche Ascend-Geräte werden unterstützt?#
Jedes SoC, für das dein installiertes CANN-Toolkit Kernel bereitstellt, ausgewählt über das Argument name. Siehe Unterstützte Geräte für die vier validierten Ziele und deren Verfügbarkeit auf der Ultralytics Platform.