YOLO Vision 2026:

DEEPX-Export für Ultralytics YOLO-Modelle#

Das Bereitstellen von Computer-Vision-Modellen auf spezieller NPU-Hardware erfordert ein kompatibles und optimiertes Modellformat. Das Exportieren 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 KI-Halbleiterunternehmen, das sich auf Neuronale Prozessoreinheiten (NPUs) spezialisiert hat, die für eine energieeffiziente Deep-Learning-Inferenz am Edge entwickelt wurden. DEEPX-NPUs sind für anspruchsvolle eingebettete und industrielle KI-Anwendungen konzipiert und bieten einen hohen Durchsatz bei minimalem Stromverbrauch. Ihre Hardware eignet sich gut für Bereitstellungsszenarien, in denen die Cloud-Konnektivität unzuverlässig oder unerwünscht ist, wie etwa in der Robotik, bei intelligenten Kameras und in industriellen Automatisierungssystemen.

DEEPX-Exportformat#

Der DEEPX-Export erzeugt eine kompilierte .dxnn-Modellbinärdatei, die für die Ausführung auf DEEPX-NPU-Hardware optimiert ist. Die Kompilierungspipeline verwendet das dx_com-Toolkit, um eine INT8-Quantisierung und hardwarespezifische Optimierung durchzuführen, wodurch ein in sich geschlossenes Modellverzeichnis generiert wird, das für die Bereitstellung bereit ist.

Hauptmerkmale von DEEPX-Modellen#

DEEPX-Modelle bieten mehrere Vorteile für den Edge-Einsatz:

  • INT8-Quantisierung: Modelle werden während des Exports auf INT8-Präzision quantisiert, was die Modellgröße deutlich reduziert und den NPU-Durchsatz maximiert. Erfahre mehr über die Modellquantisierung.
  • NPU-optimiert: Das .dxnn-Format ist speziell für DEEPX-NPU-Hardware kompiliert und nutzt dedizierte Beschleunigungseinheiten für eine schnelle und effiziente Inferenz.
  • Geringer Stromverbrauch: Durch das Auslagern der Inferenz auf die NPU verbrauchen DEEPX-Modelle weitaus weniger Strom 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 Familie, die diese Köpfe bereitstellt.

AufgabeYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Export nach DEEPX: Konvertiere dein YOLO-Modell#

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

Hinweis

Der DEEPX-Export wird nur auf x86-64 Linux-Systemen unterstützt. ARM64 (aarch64) wird für den Exportvorgang nicht unterstützt. Die exportierten dxnn-Modelle sind jedoch vollständig kompatibel und ausführbar auf ARM64-Plattformen.

Installation#

Um die erforderlichen Pakete zu installieren, führe aus:

Installation
# Install the required package for YOLO
pip install ultralytics

Das dx_com-Compilerpaket wird beim ersten Export automatisch aus dem DEEPX-SDK-Repository installiert. Detaillierte Anweisungen und Best Practices zum Installationsprozess findest du in unserem Ultralytics-Installationshandbuch. Solltest du bei der Installation der erforderlichen Pakete für YOLO auf Schwierigkeiten stoßen, ziehe unseren Leitfaden für häufige Probleme für Lösungen und Tipps zu Rate.

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 dann das exportierte Modell, um eine Inferenz auszuführen oder dessen Genauigkeit zu validieren.

Exportieren
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/'
Vorhersagen
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")

Export-Argumente#

ArgumentTypStandardBeschreibung
formatstr'deepx'Zielformat für das exportierte Modell, das die Kompatibilität mit der DEEPX-NPU-Hardware definiert.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe. Der DEEPX-Export erfordert eine quadratische Eingabe – übergibt eine Ganzzahl (z. B. 640) oder ein Tupel, bei dem die Höhe der Breite entspricht.
quantizeint oder str8/autoQuantisierungspräzision. 8 (INT8) ist für den DEEPX-Export erforderlich und wird automatisch aktiviert, falls nicht anders angegeben. Ersetzt die veralteten half/int8-Flags.
simplifyboolTrueVereinfacht den intermediären ONNX-Graphen mit onnxslim.
opsetintNoneGibt die ONNX opset-Version für den zwischengeschalteten ONNX-Graph an. Falls nicht festgelegt, wird die neueste unterstützte Version verwendet.
datastrNoneDatensatz-YAML, die für die INT8-Kalibrierung verwendet wird; für die Klassifizierung wird stattdessen ein Datensatzverzeichnis oder ein integrierter Datensatzname verwendet. Wenn dies bei quantize=8 weggelassen wird, wählt Ultralytics den Standard-Kalibrierungsdatensatz für die Modellaufgabe aus.
devicestrNoneGibt das Gerät für den Export an: GPU (device=0) oder CPU (device=cpu).
optimizeboolFalseAktiviert eine höhere Compiler-Optimierung, was die Inferenzlatenz reduziert, aber die Kompilierungszeit erhöht.
Tipp

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

Weitere Details zum Exportprozess findest du auf der Ultralytics-Dokumentationsseite zum Exportieren.

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 .dxnn-Datei ist die kompilierte Modellbinärdatei, die die dx_engine-Laufzeitumgebung direkt auf der NPU lädt. Die metadata.yaml enthält Klassennamen, Bildgröße und andere Informationen, die von der Ultralytics-Inferenzpipeline verwendet werden.

Bereitstellung exportierter YOLO DEEPX-Modelle#

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

Installation der Laufzeitumgebung#

Für die Inferenz sind der DEEPX-NPU-Treiber, die libdxrt-Laufzeitumgebung und das dx_engine-Python-Paket erforderlich.

Hinweis

Die DEEPX-Laufzeitumgebung 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 Laufzeitumgebung korrekt installiert ist. Du solltest eine Ausgabe ähnlich der folgenden sehen:

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 Laufzeitumgebung installiert ist, führe Inferenz und Validierung auf deinem DEEPX-Gerät genau wie im obigen Abschnitt Nutzung gezeigt aus – das exportierte _deepx_model wird direkt mit YOLO(...) geladen.

Visualisierung mit dxtron#

dxtron ist der Graphen-Visualisierer von DEEPX zum Untersuchen des kompilierten .dxnn-Modells.

Installiere dxtron auf x86-64 Linux, indem du das .deb-Paket 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 dann dein exportiertes Modell:

dxtron yolo26n_deepx_model/yolo26n.dxnn
Hinweis

dxtron ist sowohl für x86-64- als auch für 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)Metriken/mAP50-95(B)Inferenzzeit (ms/im)
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)Gen (top1)Gen (top5)Inferenzzeit (ms/im)
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 Detektion, coco128-seg für Segmentierung, coco8-pose für Pose-Schätzung, imagenet100 für Klassifizierung und dota128 für OBB-Modelle durchgeführt. Die Inferenzzeit beinhaltet keine Vor- oder Nachbearbeitung.

Tipps zur Leistungsoptimierung

Um den besten Inferenzdurchsatz vom DX-M1 NPU an einem Raspberry Pi 5 zu erhalten, öffne die Boot-Konfigurationsdatei und aktiviere die PCIe Gen 3 Unterstützung.

sudo nano /boot/firmware/config.txt

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

dtparam=pciex1
dtparam=pciex1_gen=3

Speichere und beende (Strg+X, dann Y, dann Eingabetaste), starte dann neu:

sudo reboot

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

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

Empfohlener Arbeitsablauf#

  1. Trainiere dein Modell mit dem Ultralytics Train-Modus
  2. Exportiere in das DEEPX-Format mit model.export(format="deepx")
  3. Validiere die Genauigkeit mit yolo val, um einen minimalen Quantisierungsverlust zu verifizieren
  4. Führe Vorhersagen mit yolo predict für die qualitative Validierung durch
  5. Stelle das exportierte _deepx_model/-Verzeichnis mithilfe der dx_engine-Laufzeitumgebung auf DEEPX-NPU-Hardware bereit

Anwendungen in der Praxis#

YOLO-Modelle, die auf DEEPX-NPU-Hardware bereitgestellt werden, eignen sich gut für eine Vielzahl von Edge-KI-Anwendungen:

  • Intelligente Überwachung: Objekterkennung in Echtzeit für Sicherheits- und Überwachungssysteme bei geringem Stromverbrauch und ohne Cloud-Abhängigkeit.
  • Industrielle Automatisierung: Qualitätskontrolle direkt auf dem Gerät, Fehlererkennung und Prozessüberwachung in Fabrikumgebungen.
  • Robotik: Kamerabasierte Navigation, Hindernisvermeidung und Objekterkennung auf autonomen Robotern und Drohnen.
  • Smart Farming: Überwachung des Pflanzengesundheitszustands, Schädlingserkennung und Ertragsschätzung unter Verwendung von Computer Vision in der Landwirtschaft.
  • Einzelhandelsanalytik: Kundenstromanalyse, Regalüberwachung und Bestandsverfolgung mit Inferenz in Echtzeit an der Edge.

Zusammenfassung#

In diesem Leitfaden 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 dx_com-Compiler, um eine hardwaresoptimierte .dxnn-Binärdatei zu erzeugen, während die dx_engine-Laufzeitumgebung 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 fortgeschrittener Computer-Vision-Workloads auf eingebetteten und Edge-Geräten – und liefert einen hohen Durchsatz bei geringem Stromverbrauch für Echtzeitanwendungen.

Weitere Details zur Nutzung findest du auf der offiziellen DEEPX-Website.

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

FAQ#

  • Du kannst dein Modell über die export()-Methode in Python oder über das CLI exportieren. Der Export aktiviert automatisch die INT8-Quantisierung und verwendet einen Kalibrierungsdatensatz, um den Genauigkeitsverlust zu minimieren. Das dx_com-Compilerpaket 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 so konzipiert, dass sie INT8-Berechnungen mit maximaler Effizienz ausführen. Der dx_com-Compiler quantisiert das Modell während des Exports mithilfe einer EMA-basierten Kalibrierung mit echten Datensatzbildern, sodass die NPU ihre volle Leistung entfalten kann. INT8 wird für DEEPX-Exporte immer erzwungen – wenn du eine andere Präzision anforderst, wird diese unter Ausgabe einer Warnung überschrieben.

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

  • Der Export erstellt ein Verzeichnis (z. B. yolo26n_deepx_model/), das Folgendes enthält:

    • yolo26n.dxnn – die kompilierte NPU-Binärdatei
    • config.json – Kalibrierungs- und Vorverarbeitungseinstellungen
    • metadata.yaml – Modellmetadaten einschließlich Klassennamen und Bildgröße
  • Ja. Jedes Modell, das mit dem Ultralytics Train-Modus trainiert und mit format="deepx" exportiert wurde, kann auf DEEPX-NPU-Hardware bereitgestellt werden, vorausgesetzt, es verwendet unterstützte Ebenenoperationen. Der Export unterstützt alle sieben Ultralytics-Aufgaben: Erkennung, Instanzsegmentierung, semantische Segmentierung, Tiefenschätzung, Klassifizierung, Schätzung der Körperhaltung (Pose) und orientierte Bounding Box (OBB).

  • Die DEEPX-Exportpipeline verwendet jedes Bild im Kalibrierungsdatensatz mit der EMA-Kalibrierungsmethode. Ein paar hundert Bilder reichen in der Regel für eine gute Quantisierungsgenauigkeit aus. Verweise mit data auf einen kleineren Datensatz, falls die Kompilierungszeit bei großen Datensätzen zum Problem wird.

  • Die DEEPX-Laufzeitumgebung ist nicht in ultralytics enthalten und muss vor der Ausführung der Inferenz separat installiert werden. Installiere auf x86-64 Linux-Maschinen und ARM64 Linux-Maschinen (z. B. Raspberry Pi 5) den NPU-Treiber (dxrt-driver-dkms) und die Laufzeitumgebung (libdxrt) aus den DEEPX-AI GitHub Releases und installiere anschließend das gebündelte dx_engine Python Wheel. Siehe die obigen Befehle im Abschnitt Laufzeitinstallation.

Kommentare