YOLO Vision 2026:

DEEPX-Export für Ultralytics YOLO-Modelle#

Für die Bereitstellung von Computer-Vision-Modellen auf spezialisierter NPU-Hardware ist ein kompatibles und optimiertes Modellformat erforderlich. Der Export von Ultralytics YOLO-Modellen in das DEEPX-Format ermöglicht eine effiziente, INT8-quantisierte Inferenz auf DEEPX-NPU-Beschleunigern. Diese Anleitung führt dich durch die Konvertierung deiner YOLO-Modelle in das DEEPX-Format und deren Bereitstellung auf DEEPX-basierter Hardware.

Was ist DEEPX?#

DEEPX NPU Inference

DEEPX ist ein Halbleiterunternehmen für künstliche Intelligenz, das sich auf neuronale Verarbeitungseinheiten (NPUs) für energieeffiziente Deep-Learning-Inferenz am Rand des Netzwerks spezialisiert. DEEPX-NPUs wurden für anspruchsvolle eingebettete und industrielle KI-Anwendungen entwickelt und bieten hohen Durchsatz bei minimalem Energieverbrauch. Die Hardware eignet sich besonders für Bereitstellungsszenarien, in denen die Cloud-Anbindung unzuverlässig oder unerwünscht ist, etwa in der Robotik, bei intelligenten Kameras und in industriellen Automatisierungssystemen.

DEEPX-Exportformat#

Der DEEPX-Export erzeugt eine kompilierte .dxnn-Modelldatei, die für die Ausführung auf DEEPX-NPU-Hardware optimiert ist. Die Kompilierungspipeline verwendet das Toolkit dx_com für INT8-Quantisierung und hardwarespezifische Optimierung und erzeugt dabei ein eigenständiges Modellverzeichnis, das für die Bereitstellung bereit ist.

Wichtige Eigenschaften von DEEPX-Modellen#

DEEPX-Modelle bieten mehrere Vorteile für die Bereitstellung am Rand des Netzwerks:

  • INT8-Quantisierung: Modelle werden während des Exports auf INT8-Genauigkeit quantisiert, wodurch sich die Modellgröße deutlich verringert und der NPU-Durchsatz maximiert wird. Weitere Informationen findest du unter Modellquantisierung.
  • Für NPUs optimiert: Das Format .dxnn wird speziell für DEEPX-NPU-Hardware kompiliert und nutzt dedizierte Beschleunigungseinheiten für eine schnelle und effiziente Inferenz.
  • Geringer Energieverbrauch: Durch die Auslagerung der Inferenz auf die NPU verbrauchen DEEPX-Modelle deutlich weniger Energie als eine vergleichbare Inferenz auf CPU oder GPU.
  • Kalibrierungsbasierte Genauigkeit: Der Export verwendet eine EMA-basierte Kalibrierung mit echten Datensatzbildern, um Genauigkeitsverluste während der Quantisierung zu minimieren.
  • Eigenständige Ausgabe: Das exportierte Modellverzeichnis enthält die kompilierte Binärdatei, die Kalibrierungskonfiguration und Metadaten für eine unkomplizierte Bereitstellung.

Unterstützte Aufgaben#

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

AufgabeYOLOv8YOLO11YOLO26
Erkennen
Segmentieren
Semantisch
Tiefe
Klassifizieren
Pose
OBB

Export nach DEEPX: Dein YOLO-Modell konvertieren#

Exportiere ein Ultralytics YOLO-Modell in das DEEPX-Format und führe mit dem exportierten Modell eine Inferenz aus.

Hinweis

Der DEEPX-Export wird nur auf x86-64-Linux-Rechnern unterstützt. ARM64 (aarch64) wird für den Exportschritt nicht unterstützt. Die exportierten dxnn-Modelle sind jedoch vollständig mit ARM64-Plattformen kompatibel und können dort ausgeführt werden.

Installation#

Führe zur Installation der erforderlichen Pakete Folgendes aus:

Installation
# Install the required package for YOLO
pip install ultralytics

Der dx_com-Compiler wird beim ersten Export automatisch aus dem DEEPX SDK repository installiert. Der aktuelle Export-Workflows verwendet DX-COM 2.3.0, der Wheels für Python 3.8–3.12 auf x86-64 Linux mit glibc 2.31 oder neuer bereitstellt.

Die PyPI-Releases des Compilers sind zurückgezogen (yanked). Um die Export-Abhängigkeiten vorab zu installieren, stelle die SDK-Wheel-Seite mit --find-links bereit; dies funktioniert sowohl mit pip als auch mit uv pip:

pip install "ultralytics[export-deepx]" --find-links https://sdk.deepx.ai/release/dxcom/v2.3.0/index.html

Ersetze für eine editierbare Repository-Installation "ultralytics[export-deepx]" durch -e ".[export-base,export-deepx]". Um die Python-3.12-Umgebung und den von CI verwendeten Test-Export zu reproduzieren, führe den bestehenden Umgebungsersteller vom Repository-Stammverzeichnis aus aus:

ULTRALYTICS_ISOLATED_VENVS="$PWD/.venvs" python .github/scripts/create-export-env.py --env isolated-deepx

Der Umgebungsersteller erfordert uv und einen installierten Ultralytics-Checkout. Er installiert den Compiler aus dem SDK-Quellcode und wendet die getesteten Abhängigkeitsbeschränkungen automatisch an.

Verwendung#

Das DEEPX-Format unterstützt die Modi Export, Predict und Validate. Inferenz und Validierung werden auf DEEPX-NPU-Hardware ausgeführt. Exportiere dein Modell und lade anschließend das exportierte Modell, um eine 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 DEEPX format (quantize=8 is enforced automatically)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Vorhersage
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validieren
from ultralytics import YOLO

# Load the exported DEEPX model
model = YOLO("yolo26n_deepx_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Exportargumente#

ArgumentTypStandardwertBeschreibung
formatstr'deepx'Zielformat für das exportierte Modell, das die Kompatibilität mit DEEPX-NPU-Hardware festlegt.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe. Der DEEPX-Export erfordert eine quadratische Eingabe – übergib eine Ganzzahl (z. B. 640) oder ein Tupel, bei dem die Höhe der Breite entspricht.
quantizeint oder str8/autoQuantisierungsgenauigkeit. 8 (INT8) ist für den DEEPX-Export erforderlich und wird automatisch aktiviert, wenn keine Angabe erfolgt. Es ersetzt die veralteten Flags half/int8.
simplifyboolTrueVereinfacht den Zwischenstand des ONNX-Graphen mit onnxslim.
opsetintNoneLegt die ONNX-Operationssatzversion für den Zwischenstand des ONNX-Graphen fest. Wenn keine Angabe erfolgt, wird die neueste unterstützte Version verwendet.
datastrNoneFür die INT8-Kalibrierung verwendetes Dataset-YAML; bei der Klassifizierung wird stattdessen ein Dataset-Verzeichnis oder ein integrierter Dataset-Name verwendet. Wird quantize=8 nicht angegeben, wählt Ultralytics den Standard-Kalibrierungsdatensatz für die Modellaufgabe aus.
devicestrNoneLegt das Gerät für den Export fest: GPU (device=0) oder CPU (device=cpu).
optimizeboolFalseAktiviert eine stärkere Compileroptimierung, wodurch sich die Inferenzlatenz verringert und die Kompilierungszeit erhöht.
Tipp

Führe den DEEPX-Export immer auf einem x86-64-Linux-Host aus. Der Compiler dx_com unterstützt ARM64 nicht.

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_deepx_model/
├── yolo26n.dxnn     # Compiled DEEPX model binary (NPU executable)
├── config.json      # Calibration and preprocessing configuration
└── metadata.yaml    # Model metadata (classes, image size, task, etc.)

Die Datei .dxnn ist die kompilierte Modellbinärdatei, die die Laufzeit dx_engine direkt auf der NPU lädt. Die Datei metadata.yaml enthält Klassennamen, Bildgröße und weitere Informationen, die von der Ultralytics-Inferenzpipeline verwendet werden.

Exportierte YOLO-DEEPX-Modelle bereitstellen#

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

Installation der Laufzeit#

Für die Inferenz benötigst du den DEEPX-NPU-Treiber, die Laufzeit libdxrt und das Python-Paket dx_engine.

Hinweis

Die DEEPX-Laufzeit unterstützt sowohl x86-64-Linux als auch ARM64 (z. B. Raspberry Pi 5).

# Install the NPU driver and libdxrt runtime
sudo apt update
wget https://github.com/DEEPX-AI/dx_rt_npu_linux_driver/raw/main/release/2.4.1/dxrt-driver-dkms_2.4.1-2_all.deb
sudo apt install ./dxrt-driver-dkms_2.4.1-2_all.deb
wget https://github.com/DEEPX-AI/dx_rt/raw/main/release/3.3.2/libdxrt_3.3.2_all.deb
sudo apt install ./libdxrt_3.3.2_all.deb

# Create dx-engine wheel
cd /usr/share/libdxrt/python_package && sudo ./make_whl.sh

# Install the bundled dx_engine Python wheel
pip install dx_engine-*.whl

Überprüfe mit dxrt-cli --version, ob die Laufzeit korrekt installiert ist. Die Ausgabe sollte ungefähr so aussehen:

DXRT v3.3.2
Minimum Driver Versions
Device Driver: v2.4.0
PCIe Driver: v2.2.0
Firmware: v2.5.2
Minimum Compiler Versions
Compiler: v1.18.1
.dxnn File Format: v6

Sobald die Laufzeit installiert ist, führst du Inferenz und Validierung auf deinem DEEPX-Gerät genau wie im Abschnitt Verwendung oben aus – das exportierte _deepx_model wird direkt mit YOLO(...) geladen.

Visualisierung mit dxtron#

dxtron ist der DEEPX-Graphvisualisierer zur Untersuchung des kompilierten .dxnn-Modells.

Installiere dxtron unter x86-64-Linux, indem du das Paket .deb aus dem DEEPX-SDK herunterlädst und über dpkg installierst:

wget https://sdk.deepx.ai/release/dxtron/v2.0.1/dxtron_2.0.1_amd64.deb
sudo dpkg -i dxtron_2.0.1_amd64.deb

Öffne anschließend dein exportiertes Modell:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Hinweis

dxtron ist für x86-64- und aarch64-Plattformen verfügbar.

Benchmarks#

Das Ultralytics-Team hat YOLO26-Modelle einem Benchmark unterzogen und dabei Geschwindigkeit und Genauigkeit zwischen PyTorch und DEEPX verglichen.

Leistung
Raspberry Pi 5 DEEPX M1 NPU vs PyTorch benchmarks
ModellFormatStatusGröße (MB)metrics/mAP50-95(B)Inferenzzeit (ms/Bild)
YOLO26nPyTorch5.30.4760315.2
YOLO26nDEEPX6.60.466034.6
YOLO26n-segPyTorch6.50.4080485.4
YOLO26n-segDEEPX7.90.392053.8
YOLO26n-posePyTorch7.60.4230506.3
YOLO26n-poseDEEPX8.80.459037.6
YOLO26n-obbPyTorch5.70.8171094.4
YOLO26n-obbDEEPX7.30.78356.4
ModellFormatStatusGröße (MB)Genauigkeit (Top-1)Genauigkeit (Top-5)Inferenzzeit (ms/Bild)
YOLO26n-clsPyTorch5.60.4310.71623.8
YOLO26n-clsDEEPX5.90.3330.6862.7
Hinweis

Die Validierung für die obigen Benchmarks wurde mit COCO128 für die Erkennung, COCO128-seg für die Segmentierung, COCO8-pose für die Pose-Schätzung, ImageNet100 für die Klassifizierung und DOTA128 für OBB-Modelle durchgeführt. Die Inferenzzeit beinhaltet keine Vor- und Nachbearbeitung.

Tipps zur Leistungsoptimierung

Um den bestmöglichen Inferenzdurchsatz der mit einem Raspberry Pi 5 verbundenen DX-M1-NPU zu erzielen, öffne die Boot-Konfigurationsdatei und aktiviere die Unterstützung für PCIe Gen 3.

sudo nano /boot/firmware/config.txt

Füge am Ende der Datei die folgenden Zeilen hinzu:

dtparam=pciex1
dtparam=pciex1_gen=3

Speichere die Datei und beende den Editor (Strg+X, dann Y, dann Enter), und starte anschließend das System neu:

sudo reboot

Überprüfe die PCIe-Generation. Die erwartete Geschwindigkeit für PCIe Gen3 beträgt 8GT/s.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"

Empfohlener Arbeitsablauf#

  1. Trainiere dein Modell mit dem Trainingsmodus von Ultralytics.
  2. Export in das DEEPX-Format mit model.export(format="deepx")
  3. Validiere die Genauigkeit mit yolo val, um einen minimalen Quantisierungsverlust zu überprüfen.
  4. Führe Vorhersagen aus mit yolo predict zur qualitativen Validierung.
  5. Stelle das exportierte Verzeichnis _deepx_model/ mithilfe der Laufzeit dx_engine auf DEEPX-NPU-Hardware bereit

Anwendungen in der Praxis#

Auf DEEPX-NPU-Hardware bereitgestellte YOLO-Modelle eignen sich für eine Vielzahl von Edge-KI-Anwendungen:

  • Intelligente Überwachung: Echtzeit-Objekterkennung für Sicherheits- und Überwachungssysteme mit geringem Energieverbrauch und ohne Abhängigkeit von der Cloud.
  • Industrielle Automatisierung: Qualitätskontrolle, Fehlererkennung und Prozessüberwachung direkt auf dem Gerät in Fabrikumgebungen.
  • Robotik: Visionsbasierte Navigation, Hindernisvermeidung und Objekterkennung auf autonomen Robotern und Drohnen.
  • Intelligente Landwirtschaft: Überwachung der Pflanzengesundheit, Schädlings­erkennung und Ertragsschätzung mithilfe von Computer Vision in der Landwirtschaft.
  • Einzelhandelsanalysen: Analyse von Kundenströmen, Überwachung von Regalen und Bestandsverfolgung mit Echtzeit-Inferenz am Rand des Netzwerks.

Zusammenfassung#

In dieser Anleitung hast du gelernt, wie du Ultralytics YOLO-Modelle in das DEEPX-Format exportierst und auf DEEPX-NPU-Hardware bereitstellst. Die Exportpipeline verwendet eine INT8-Kalibrierung und den Compiler dx_com, um eine hardwareoptimierte Binärdatei .dxnn zu erzeugen, während die Laufzeit dx_engine die Inferenz auf dem Gerät übernimmt.

Die Kombination aus Ultralytics YOLO und der NPU-Technologie von DEEPX bietet eine effektive Lösung für die Ausführung anspruchsvoller Computer-Vision-Workloads auf eingebetteten Geräten und Edge-Geräten – mit hohem Durchsatz und geringem Energieverbrauch für Echtzeitanwendungen.

Weitere Informationen zur Verwendung findest du auf der offiziellen DEEPX-Website.

Wenn du außerdem mehr über andere Ultralytics-YOLO-Integrationen erfahren möchtest, besuche unsere Seite mit Integrationsanleitungen. Dort findest du zahlreiche nützliche Ressourcen und Informationen.

FAQ#

  • Du kannst dein Modell mit der Methode export() in Python oder über die CLI exportieren. Der Export aktiviert automatisch die INT8-Quantisierung und verwendet einen Kalibrierungsdatensatz, um Genauigkeitsverluste zu minimieren. Das Compilerpaket dx_com wird automatisch installiert, falls es noch nicht vorhanden ist.

    Beispiel
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    model.export(format="deepx")
  • DEEPX-NPUs sind darauf ausgelegt, INT8-Berechnungen mit maximaler Effizienz auszuführen. Der Compiler dx_com quantisiert das Modell während des Exports mithilfe einer EMA-basierten Kalibrierung mit echten Datensatzbildern, sodass die NPU ihre volle Leistung erbringen kann. INT8 wird für DEEPX-Exporte immer erzwungen – wenn du eine andere Genauigkeit anforderst, wird sie mit einer Warnung überschrieben.

  • Der Export (die Kompilierung) von DEEPX-Modellen erfordert einen x86-64-Linux-Host. Der Exportschritt wird auf ARM64 (aarch64) und Windows-Rechnern nicht unterstützt. Die Inferenz mit dem exportierten Modell .dxnn kann auf jeder Linux-Plattform (x86-64 und ARM64) ausgeführt werden, die von der Laufzeit dx_engine unterstützt wird.

  • Der Export erstellt ein Verzeichnis (z. B. yolo26n_deepx_model/) mit folgendem Inhalt:

    • yolo26n.dxnn – die kompilierte NPU-Binärdatei
    • config.json – Kalibrierungs- und Vorverarbeitungseinstellungen
    • metadata.yaml – Modellmetadaten einschließlich Klassennamen und Bildgröße
  • Ja. Jedes mit dem Ultralytics-Trainingsmodus trainierte und mit format="deepx" exportierte Modell kann auf DEEPX-NPU-Hardware bereitgestellt werden, sofern es unterstützte Layer-Operationen verwendet. Der Export unterstützt alle sieben Ultralytics-Aufgaben: Objekterkennung, Instanzsegmentierung, semantische Segmentierung, Tiefenschätzung, Klassifizierung, Posenschätzung und orientierte Begrenzungsrahmen (OBB).

  • Die DEEPX-Exportpipeline verwendet mit der EMA-Kalibrierungsmethode jedes Bild im Kalibrierungsdatensatz. Für eine gute Quantisierungsgenauigkeit reichen in der Regel einige Hundert Bilder aus. Verweise data auf einen kleineren Datensatz, wenn die Kompilierungszeit bei großen Datensätzen problematisch wird.

  • Die DEEPX-Laufzeit ist nicht in ultralytics enthalten und muss vor der Inferenz separat installiert werden. Installiere auf x86-64-Linux- und ARM64-Linux-Rechnern (z. B. Raspberry Pi 5) den NPU-Treiber (dxrt-driver-dkms) und die Laufzeit (libdxrt) aus den GitHub-Releases von DEEPX-AI und anschließend das enthaltene Python-Wheel dx_engine. Eine schrittweise Anleitung mit den entsprechenden Befehlen findest du oben im Abschnitt Installation der Laufzeit.

Kommentare