Ultralytics YOLO27:
Get Started

Huawei-Ascend-Integration für Ultralytics YOLO#

Für die Bereitstellung von Computer-Vision-Modellen auf Huawei Ascend-KI-Prozessoren müssen die Modelle in das Offline-Modellformat .om kompiliert werden, das vom Ascend AI Core ausgeführt wird. Durch den Export von Ultralytics YOLO-Modellen für Ascend kannst du schnelle Inferenz mit geringem Stromverbrauch auf Atlas-Entwicklerboards und OrangePi-AIPro-Geräten ausführen, die in der Robotik, bei industriellen Inspektionen und in intelligenten Kamerasystemen eingesetzt werden.

Was ist Huawei Ascend?#

Huawei Ascend ist eine Familie von KI-Prozessoren, die mit CANN (Rechenarchitektur für neuronale Netze), dem heterogenen Computing-Stack von Huawei, kombiniert werden. CANN umfasst 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 ohne angeschlossene Ascend-Hardware kompilieren und das resultierende .om anschließend zur Inferenz auf das Zielgerät kopieren.

Auf Ascend-NPUs trainieren#

Ultralytics unterstützt Einzel- und Mehrfach-NPU-Training mit torch_npu, einschließlich AMP, Validierung, Prüfpunkten, Fortsetzen und AutoBatch. Wähle mit device=npu:0 eine NPU oder mit device=npu:0,1 mehrere NPUs aus; für verteiltes Training wird HCCL verwendet. Installiere zueinander passende Versionen von CANN, PyTorch und torch_npu und richte zuerst die CANN-Umgebung ein. Installations- und Anwendungsbeispiele findest du im Abschnitt zum Ascend-NPU-Training.

Ascend-Exportformat#

Der Ultralytics-Exporter schreibt zunächst einen zwischengeschalteten ONNX-Graphen und ruft dann ATC auf, um ihn für das mit dem Argument name angegebene SoC zu kompilieren. 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. Dadurch erzielen Echtzeit-Kamerapipelines einen deutlich höheren Durchsatz.
  • Kompilierung auf dem Host: ATC benötigt keine angeschlossene NPU, sodass der Export in CI, in Containern oder auf einem Laptop ausgeführt werden kann.
  • ONNX als Ausgangspunkt: Der standardmäßige Ultralytics-ONNX-Export wird ohne proprietäres Zwischenformat direkt in die CANN-Toolchain eingespeist.
  • Statische Formen: Die Eingabeform wird beim Kompilieren in .om festgelegt, wodurch der Aufwand für die Laufzeitabstimmung der Formen entfällt.
  • Unterstützung mehrerer Geräte: Derselbe ONNX-Graph lässt sich für jedes unterstützte SoC kompilieren, indem du name änderst.

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 mit diesen Heads.

AufgabeYOLOv8YOLO11YOLO26
Erkennung✅✅✅
Segmentierung✅✅✅
Semantik❌❌✅
Tiefe❌❌✅
Klassifizierung✅✅✅
Pose✅✅✅
OBB✅✅✅

Unterstützte Geräte#

Gib das Ziel-SoC mit name an. ATC legt es als --soc_version in .om fest; deshalb muss es zum Zielboard passen. 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 8T, Atlas 200I A2 (8 TOPS)✅✅
Ascend310B1OrangePi AIPro 20T, Atlas 200I A2 (20 TOPS)✅✅

Nach Ascend exportieren: YOLO-Modell umwandeln#

Hinweis

Für den Ascend-Export ist das CANN-Toolkit erforderlich, das nur unter Linux verfügbar ist. Der Compiler atc muss sich in deinem PATH befinden – richte vor dem Export die CANN-Umgebung mit dem Skript ein, z. B. 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 Ascend-Community-Downloadseite herunter oder verwende eines der offiziellen ascendai/cann-Container-Images, die ATC und seine Abhängigkeiten enthalten.

Toolkit passend zum Ziel-SoC auswählen

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 für ein Ziel vom Typ Ascend310B4 verwendet wird. Installiere das passende Paket Ascend-cann-kernels-<soc> für das Gerät, auf dem du die Anwendung bereitstellst.

Verwendung#

Das Ascend-Format unterstützt die Modi Export, Vorhersage und Validierung. 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.

Exportieren
from ultralytics import YOLO

# Ein YOLO26-Modell laden
model = YOLO("yolo26n.pt")

# Das Modell für ein Atlas 200I-/OrangePi-AIPro-Board ins Ascend-Format exportieren
model.export(format="ascend", name="Ascend310B4")

# Das exportierte Ascend-Modell laden und Inferenz auf dem Gerät ausführen
ascend_model = YOLO("yolo26n_ascend_model")
results = ascend_model("https://ultralytics.com/images/bus.jpg")

Exportargumente#

ArgumentTypStandardBeschreibung
formatstr'ascend'Zielformat des exportierten Modells, das die Kompatibilität mit Ascend AI-Prozessoren festlegt.
namestr'Ascend310B4'Als Ziel-SoC wird ATC --soc_version übergeben, z. B. Ascend310P3. Jeder SoC, für den deine CANN-Installation Kernel enthält, ist geeignet; siehe Unterstützte Geräte. Er muss zu deinem Bereitstellungsgerät passen.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe, die als statische Form in .om festgelegt wird.
batchint1Statische Batchgröße, die in das Offline-Modell kompiliert wird.
quantizeint16Quantisierungsgenauigkeit. Der Ascend-Export unterstützt nur FP16 und aktiviert automatisch 16, sofern nicht anders angegeben. Ersetzt die veralteten Flags half/int8.
opsetint17ONNX-Opset für den Zwischengraphen. Auf 17 begrenzt, die höchste Version, die der CANN-ONNX-Parser akzeptiert.
simplifyboolTrueVereinfacht den zwischengeschalteten ONNX-Graphen mit onnxslim.
nmsbool, optionalNoneWähle die Rohausgabe (None, Standard), eingebettetes NMS (True) oder den NMS-freien Kopf (False).
devicestrNoneGerät für den Zwischenschritt des ONNX-Exports, standardmäßig CPU (device=cpu). Die ATC-Kompilierung verwendet es nicht.
Warum ist FP32 nicht verfügbar?

Der Ascend AI Core akzeptiert für Faltungen nur Eingaben im Format DT_FLOAT16 und DT_INT8, daher kann ein FP32-Offline-Modell nicht auf der Hardware ausgeführt werden. Wenn du quantize=32 anforderst, wird ein Fehler ausgelöst, anstatt stillschweigend ein nicht ausführbares Modell zu erzeugen.

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

Ausgabestruktur#

Nach einem erfolgreichen Export wird ein Modellverzeichnis mit folgender 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. Der Name enthält den Ziel-SoC, damit das Artefakt sich selbst beschreibt. Lege pro Verzeichnis nur eine .om ab, da der Loader das einzelne dort vorhandene Modell auswählt. metadata.yaml enthält Klassennamen, Bildgröße und weitere Informationen, die die Ultralytics-Inferenzpipeline verwendet.

Exportierte YOLO-Ascend-Modelle bereitstellen#

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

Installation der Laufzeitumgebung#

Für die Inferenz werden die CANN-Laufzeit auf dem Gerät und 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 die Inferenz dann genauso aus wie mit jedem anderen Ultralytics-Format.

  1. Trainiere dein Modell mit dem Ultralytics-Trainingsmodus oder beginne mit einem vortrainierten Checkpoint.
  2. Exportiere das Modell auf einem beliebigen Linux-Host mit installiertem CANN nach Ascend und übergib name, passend zum Ziel-SoC.
  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 zahlreiche eingebettete und industrielle Bildverarbeitungsanwendungen:

  • Industrielle Automatisierung: Hochgeschwindigkeits-Qualitätsprüfung und Fehlererkennung an Fertigungslinien.
  • Intelligente Videoüberwachung: Objekterkennung in Echtzeit mit mehreren Kameras auf Edge-Gateways ohne zentralen Server.
  • Robotik: Bordsysteme zur Wahrnehmung für autonome mobile Roboter und kollaborative Roboterarme.
  • Intelligente Städte: Verkehrsüberwachung und Fußgängeranalyse auf stromsparenden Straßenrandgeräten.

Zusammenfassung#

In dieser Anleitung 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 jeden Ascend-SoC über ein einziges Argument name.

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 Integrationsanleitungen zahlreiche hilfreiche Ressourcen.

Häufig gestellte Fragen#

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

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

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

  • Faltungen auf dem Ascend AI Core akzeptieren nur Tensoren im Format DT_FLOAT16 und DT_INT8. Ein FP32-Offline-Modell könnte nicht auf der Hardware ausgeführt werden. Deshalb kompiliert der Exporter mit --precision_mode=force_fp16 und weist eine ausdrückliche Anforderung von quantize=32 zurück.

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

Kommentare