YOLO Vision 2026:

Huawei-Ascend-Integration für Ultralytics YOLO#

Für die Bereitstellung von Computer-Vision-Modellen auf Huawei Ascend-AI-Prozessoren müssen diese in das Offline-Modellformat .om kompiliert werden, das auf dem Ascend AI Core ausgeführt wird. Durch den Export von Ultralytics YOLO-Modellen für Ascend kannst du schnelle, energieeffiziente Inferenz auf Atlas-Entwicklerplatinen und OrangePi-AIPro-Geräten ausführen, die in Robotik, industrieller Inspektion und intelligenten Kamerasystemen eingesetzt werden.

Was ist Huawei Ascend?#

Huawei Ascend ist eine Familie von AI-Prozessoren in Verbindung mit CANN (Rechenarchitektur für neuronale Netze), Huaweis heterogenem Rechen-Stack. CANN enthält den ATC (Ascend-Tensor-Compiler), ein hostseitiges Werkzeug, das einen standardmäßigen ONNX-Graphen in ein hardwarespezifisches Offline-Modell .om für den Ascend AI Core umwandelt.

Da ATC vollständig auf dem Host ausgeführt wird, kannst du Modelle auf einem gewöhnlichen x86-64- oder ARM64-Linux-Rechner kompilieren, ohne Ascend-Hardware anzuschließen, und das resultierende .om anschließend zur Inferenz auf das Zielgerät kopieren.

Training auf Ascend-NPUs#

Ultralytics unterstützt das Training mit einer oder mehreren NPUs über torch_npu, einschließlich AMP, Validierung, Checkpoints, Fortsetzen und AutoBatch. Wähle eine NPU mit device=npu:0 oder mehrere NPUs mit device=npu:0,1; für verteiltes Training wird HCCL verwendet. Installiere kompatible Versionen von CANN, PyTorch und torch_npu und lade zuerst die CANN-Umgebung. Im Abschnitt zum Training auf Ascend-NPUs findest du Installations- und Anwendungsbeispiele.

Ascend-Exportformat#

Der Ultralytics-Exporter schreibt zunächst einen intermediären ONNX-Graphen und ruft anschließend ATC auf, um ihn für das SoC zu kompilieren, das du mit dem Argument name angibst. Das Ergebnis ist ein eigenständiges Modellverzeichnis mit der Binärdatei .om und den Ultralytics-Metadaten.

Wichtige Merkmale von Ascend-Modellen#

  • Dedizierter AI Core: Kompilierte Modelle werden auf dem Ascend AI Core statt auf der Host-CPU ausgeführt und bieten dadurch einen deutlich höheren Durchsatz für Echtzeit-Kamerapipelines.
  • Hostseitige Kompilierung: ATC benötigt keine angeschlossene NPU, sodass der Export in CI, in Containern oder auf einem Laptop ausgeführt werden kann.
  • ONNX als Grundlage: Der standardmäßige Ultralytics-ONNX-Export wird direkt in die CANN-Werkzeugkette eingespeist, ohne proprietäres Zwischenformat.
  • Statische Formen: Die Eingabeform wird beim Kompilieren in .om festgelegt, wodurch der Aufwand für die Aushandlung der Form zur Laufzeit entfällt.
  • Ziel für mehrere Geräte: Derselbe ONNX-Graph kann für jedes unterstützte SoC kompiliert werden, indem name geändert wird.

Unterstützte Aufgaben#

Der Huawei-Ascend-Export unterstützt alle sieben Ultralytics-Aufgaben. Semantische Segmentierung und Tiefenschätzung sind nur mit YOLO26 verfügbar, der einzigen Modellfamilie, die diese Köpfe enthält.

AufgabeYOLOv8YOLO11YOLO26
Erkennen
Segmentieren
Semantisch
Tiefe
Klassifizieren
Pose
OBB

Unterstützte Geräte#

Gib das Ziel-SoC mit name an; ATC schreibt es als --soc_version in das .om, daher muss es mit der Platine übereinstimmen, auf der du das Modell bereitstellst. Lokal kannst du für jedes SoC kompilieren, für das deine CANN-Installation Kernel bereitstellt. Die Ultralytics Platform unterstützt die Ziele Ascend310P1, Ascend310P3, Ascend310B1 und Ascend310B4.

nameGeräteLokaler ExportPlattform
Ascend310P3Atlas 300I Pro, Atlas 300V Pro
Ascend310P1Atlas 300I
Ascend310B4OrangePi AIPro 20T, Atlas 200I A2
Ascend310B1OrangePi AIPro 8T

Export für Ascend: Dein YOLO-Modell konvertieren#

Hinweis

Der Ascend-Export erfordert das CANN-Toolkit, das nur unter Linux verfügbar ist. Der Compiler atc muss sich in deinem PATH befinden – lade das CANN-Umgebungsskript vor dem Export, zum Beispiel mit source /usr/local/Ascend/ascend-toolkit/set_env.sh.

Installation#

Installiere Ultralytics und anschließend CANN separat von Huawei.

Installation
# Install the required package for YOLO
pip install ultralytics

Das CANN-Toolkit wird von Huawei bereitgestellt und nicht automatisch installiert. Lade es von der Download-Seite der Ascend-Community herunter oder verwende eines der offiziellen ascendai/cann-Container-Images, die ATC und seine Abhängigkeiten enthalten.

Stimme das Toolkit auf dein Ziel-SoC ab

ATC kann nur für SoC-Familien kompilieren, deren Operator-Kernel installiert sind. Ein Toolkit, das nur ascend310p-Kernel enthält, schlägt mit No supported Ops kernel and engine are found for ... Conv2D fehl, wenn es ein Ziel Ascend310B4 kompilieren soll. Installiere das passende Ascend-cann-kernels-<soc>-Paket für das Gerät, auf dem du das Modell bereitstellst.

Verwendung#

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 anschließend das exportierte Modell, um Inferenz auszuführen oder seine Genauigkeit zu validieren.

Export
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")

Exportargumente#

ArgumentTypStandardwertBeschreibung
formatstr'ascend'Zielformat für das exportierte Modell, das die Kompatibilität mit Ascend-AI-Prozessoren festlegt.
namestr'Ascend310B4'Ziel-SoC, das als --soc_version an ATC übergeben wird, zum Beispiel Ascend310P3. Jedes SoC, für das deine CANN-Installation Kernel enthält, ist gültig; siehe Unterstützte Geräte. Es muss mit deinem Bereitstellungsgerät übereinstimmen.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe, die als statische Form in .om festgelegt wird.
batchint1In das Offline-Modell kompilierte statische Batchgröße.
quantizeint16Quantisierungsgenauigkeit. Der Ascend-Export unterstützt nur FP16 und aktiviert 16 automatisch, wenn nichts angegeben ist. Ersetzt die veralteten Flags half/int8.
opsetint17ONNX-Opset für den intermediären Graphen. Auf 17 begrenzt, der höchsten Version, die der CANN-ONNX-Parser akzeptiert.
simplifyboolTrueVereinfacht den Zwischenstand des ONNX-Graphen mit onnxslim.
nmsboolFalseFügt unterstützten Modellen für Objekterkennung, Segmentierung, Pose und OBB Non-Maximum Suppression hinzu.
Warum ist FP32 nicht verfügbar?

Der Ascend AI Core akzeptiert für Faltungen nur Eingaben in DT_FLOAT16 und DT_INT8, daher kann ein FP32-Offline-Modell nicht auf der Hardware ausgeführt werden. Die Anforderung von quantize=32 löst einen Fehler aus, anstatt stillschweigend ein Modell zu erzeugen, das nicht ausgeführt werden kann.

Weitere Informationen zum Exportvorgang findest du auf der Ultralytics-Dokumentationsseite zum Export.

Ausgabestruktur#

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 Datei .om ist das kompilierte Offline-Modell, das die CANN-Laufzeit auf dem Gerät lädt. Ihr Name enthält das Ziel-SoC, sodass das Artefakt sich selbst beschreibt. Bewahre pro Verzeichnis ein .om auf, da der Lader das einzige dort gefundene Modell auswählt. Das metadata.yaml enthält Klassennamen, Bildgröße und weitere Informationen, die von der Ultralytics-Inferenzpipeline verwendet werden.

Exportierte YOLO-Ascend-Modelle bereitstellen#

Nachdem du dein Ultralytics-YOLO-Modell erfolgreich in das Ascend-Format exportiert hast, besteht der nächste Schritt darin, es auf Ascend-Hardware bereitzustellen.

Installation der Laufzeit#

Für die Inferenz werden die CANN-Laufzeit auf dem Gerät sowie das Python-Paket ais_bench benötigt, das die pyACL-Bindings von CANN kapselt. Erstelle und installiere es aus dem Ascend-Tools-Repository von 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

Kopiere das exportierte Verzeichnis yolo26n_ascend_model auf das Gerät und führe anschließend die Inferenz genau wie mit jedem anderen Ultralytics-Format aus.

Empfohlener Arbeitsablauf#

  1. Trainiere dein Modell mit dem Trainingsmodus von Ultralytics oder beginne mit einem vortrainierten Checkpoint.
  2. Exportiere auf jedem Linux-Host mit installiertem CANN für Ascend und übergib dabei das name, das zu deinem Ziel-SoC passt.
  3. Kopiere das exportierte Modellverzeichnis auf das Ascend-Gerät.
  4. Stelle das Modell mit der CANN-Laufzeit und ais_bench für die Inferenz auf dem Gerät bereit.

Anwendungen in der Praxis#

YOLO-Modelle auf Ascend-Hardware eignen sich für eine Vielzahl eingebetteter und industrieller Bildverarbeitungsanwendungen:

  • Industrielle Automatisierung: Hochgeschwindigkeits-Qualitätsprüfung und Fehlererkennung in Produktionslinien.
  • Intelligente Überwachung: Objekterkennung in Echtzeit mit mehreren Kameras auf Edge-Gateways ohne zentralen Server.
  • Robotik: Onboard-Wahrnehmung für autonome mobile Roboter und kollaborative Roboterarme.
  • Intelligente Städte: Verkehrsüberwachung und Fußgängeranalyse auf energiesparenden Geräten am Straßenrand.

Zusammenfassung#

In diesem Leitfaden hast du gelernt, wie du Ultralytics YOLO auf Huawei-Ascend-NPUs trainierst und Modelle mit dem CANN-ATC-Compiler in das Ascend-Format .om exportierst. Der Export wird vollständig auf dem Host ausgeführt, erzeugt ein eigenständiges Modellverzeichnis und unterstützt jedes Ascend-SoC über ein einziges name-Argument.

Weitere Informationen zur Verwendung findest du in der offiziellen CANN-Dokumentation.

Wenn du außerdem mehr über andere Ultralytics-YOLO-Integrationen erfahren möchtest, findest du auf unserer Seite mit Integrationsleitfäden zahlreiche hilfreiche Ressourcen.

FAQ#

  • Installiere Ultralytics und das CANN-Toolkit, lade die CANN-Umgebung, sodass atc in deinem PATH liegt, und exportiere anschließend mit model.export(format="ascend", name="Ascend310B4") in Python oder yolo export model=yolo26n.pt format=ascend name=Ascend310B4 über die CLI. Setze name auf das SoC deines Bereitstellungsgeräts.

  • Nein. Der ATC-Compiler wird vollständig auf dem Host ausgeführt, sodass die Kompilierung auf einem gewöhnlichen x86-64- oder ARM64-Linux-Rechner ohne angeschlossene NPU funktioniert. Ascend-Hardware benötigst du erst, um Inferenz mit dem exportierten .om auszuführen.

  • Deine CANN-Installation enthält keine Operator-Kernel für das angeforderte SoC. Jedes Toolkit enthält Kernel für bestimmte SoC-Familien. Installiere daher das zu deinem Ziel passende Ascend-cann-kernels-<soc>-Paket oder verwende ein für diese Gerätefamilie erstelltes Container-Image.

  • Faltungen auf dem Ascend AI Core akzeptieren nur Tensoren in DT_FLOAT16 und DT_INT8. Ein FP32-Offline-Modell könnte nicht auf der Hardware ausgeführt werden. Daher kompiliert der Exporter mit --precision_mode=force_fp16 und lehnt eine explizite Anforderung von quantize=32 ab.

  • Jedes SoC, für das dein installiertes CANN-Toolkit Kernel bereitstellt, ausgewählt über das Argument name. Unter Unterstützte Geräte findest du die vier validierten Ziele und ihre Verfügbarkeit auf der Ultralytics Platform.

Kommentare