Ultralytics YOLO27: Trag dich auf die Warteliste ein.
Get Started

DEEPX-Export für Ultralytics-YOLO-Modelle#

Die Bereitstellung von Computer-Vision-Modellen auf spezialisierter NPU-Hardware erfordert ein kompatibles und optimiertes Modellformat. Der Export von Ultralytics-YOLO-Modellen ins DEEPX-Format ermöglicht eine effiziente, INT8-quantisierte Inferenz auf DEEPX-NPU-Beschleunigern. Diese Anleitung führt dich durch die Konvertierung deiner YOLO-Modelle ins DEEPX-Format und ihre Bereitstellung auf Hardware mit DEEPX.

Was ist DEEPX?#

DEEPX NPU Inference

DEEPX ist ein Halbleiterunternehmen im KI-Bereich, das sich auf neuronale Verarbeitungseinheiten (NPUs) spezialisiert hat, die für energieeffiziente Deep-Learning-Inferenz am Edge konzipiert sind. 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 Einsatzszenarien, in denen die Cloud-Anbindung unzuverlässig oder unerwünscht ist, etwa in der Robotik, bei intelligenten Kameras und in der industriellen Automatisierung.

DEEPX-Exportformat#

Beim DEEPX-Export entsteht eine kompilierte .dxnn-Modellbinärdatei, die für die Ausführung auf DEEPX-NPU-Hardware optimiert ist. Die Kompilierungspipeline verwendet das Toolkit dx_com für die INT8-Quantisierung und hardwarebezogene Optimierungen. Das Ergebnis ist ein eigenständiges Modellverzeichnis, das sofort bereitgestellt werden kann.

Wichtige Merkmale von DEEPX-Modellen#

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

  • INT8-Quantisierung: Modelle werden beim Export auf INT8-Genauigkeit quantisiert. Dadurch wird die Modellgröße deutlich verringert und der NPU-Durchsatz maximiert. Mehr über Modellquantisierung.
  • Für NPUs optimiert: Das Format .dxnn wird speziell für DEEPX-NPU-Hardware kompiliert und nutzt dedizierte Beschleunigungseinheiten für schnelle, effiziente Inferenz.
  • Niedriger Energieverbrauch: Indem die Inferenz auf die NPU ausgelagert wird, verbrauchen DEEPX-Modelle deutlich weniger Energie als vergleichbare CPU- oder GPU-Inferenz.
  • Kalibrierungsbasierte Genauigkeit: Beim Export wird eine EMA-basierte Kalibrierung mit echten Datensatzbildern verwendet, um Genauigkeitsverluste durch die 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 Köpfe enthält.

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

Export nach DEEPX: Dein YOLO-Modell konvertieren#

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

Hinweis

Der DEEPX-Export wird nur auf x86-64-Linux-Rechnern unterstützt. ARM64 (aarch64) wird beim Exportschritt nicht unterstützt. Die exportierten dxnn-Modelle sind jedoch vollständig mit ARM64-Plattformen kompatibel und darauf ausführbar.

Installation#

Führe zum Installieren der erforderlichen Pakete Folgendes aus:

Installation
# Install the required package for YOLO
pip install ultralytics

Der Compiler dx_com wird beim ersten Export automatisch von PyPI installiert. DX-COM 2.4.1 stellt Wheels für Python 3.8–3.14 unter Linux x86-64 mit glibc 2.31 oder neuer bereit. So installierst du die Exportabhängigkeiten vorab:

pip install "ultralytics[export-deepx]"

Für eine bearbeitbare Repository-Installation ersetze "ultralytics[export-deepx]" durch -e ".[export-base,export-deepx]". Um die Python-3.14-Umgebung und den Smoke-Test-Export aus CI nachzustellen, führe den vorhandenen Umgebungs-Builder im Stammverzeichnis des Repositorys aus:

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

Der Umgebungs-Builder benötigt uv und einen installierten Ultralytics-Checkout. Er wendet die getesteten Abhängigkeitsvorgaben automatisch an.

Verwendung#

Das DEEPX-Format unterstützt die Modi Export, Vorhersage und Validierung. Inferenz und Validierung werden auf DEEPX-NPU-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")

# Modell ins DEEPX-Format exportieren (quantize=8 wird automatisch erzwungen)
model.export(format="deepx")  # creates 'yolo26n_deepx_model/'
Vorhersagen
from ultralytics import YOLO

# Das exportierte DEEPX-Modell laden
model = YOLO("yolo26n_deepx_model")

# Inferenz ausführen
results = model("https://ultralytics.com/images/bus.jpg")
Validieren
from ultralytics import YOLO

# Das exportierte DEEPX-Modell laden
model = YOLO("yolo26n_deepx_model")

# Die Genauigkeit anhand des COCO8-Datensatzes validieren
metrics = model.val(data="coco8.yaml")

Exportargumente#

ArgumentTypStandardBeschreibung
formatstr'deepx'Zielformat des exportierten Modells, das die Kompatibilität mit DEEPX-NPU-Hardware festlegt.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe. Für den DEEPX-Export ist eine quadratische Eingabe erforderlich – gib eine Ganzzahl (z. B. 640) oder ein Tupel mit gleicher Höhe und Breite an.
quantizeint oder str8/automatischQuantisierungsgenauigkeit. Für den DEEPX-Export ist 8 (INT8) erforderlich und wird automatisch aktiviert, wenn nichts angegeben ist. Ersetzt die veralteten Flags half/int8.
simplifyboolTrueVereinfacht den zwischengeschalteten ONNX-Graphen mit onnxslim.
opsetintNoneLegt die ONNX-Operatorensatz-Version für den zwischengeschalteten ONNX-Graphen fest. Wenn nichts angegeben ist, wird die neueste unterstützte Version verwendet.
datastrNoneFür die INT8-Kalibrierung verwendete Dataset-YAML-Datei; bei der Klassifizierung wird stattdessen ein Dataset-Verzeichnis oder der Name eines integrierten Datasets angegeben. Wenn quantize=8 nicht angegeben ist, wählt Ultralytics das Standard-Kalibrierungsdataset für die jeweilige Modellaufgabe aus.
devicestrNoneLegt das Gerät für den Export fest: GPU (device=0) oder CPU (device=cpu).
optimizeboolFalseAktiviert eine stärkere Compileroptimierung, die die Inferenzlatenz verringert und die Kompilierungszeit erhöht.
Tipp

Führe den DEEPX-Export immer auf einem x86-64-Linux-Rechner 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 folgender 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 Laufzeitumgebung dx_engine direkt auf der NPU lädt. 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 ins DEEPX-Format exportiert hast, besteht der nächste Schritt darin, diese Modelle auf DEEPX-NPU-Hardware bereitzustellen.

Installation der Laufzeitumgebung#

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

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

Prüfe mit dxrt-cli --version, ob die Laufzeitumgebung korrekt installiert ist. Die Ausgabe sollte etwa 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 Laufzeitumgebung installiert ist, führe die Inferenz und Validierung auf deinem DEEPX-Gerät wie im obigen Abschnitt Verwendung gezeigt aus – das exportierte _deepx_model wird direkt mit YOLO(...) geladen.

Visualisierung mit dxtron#

dxtron ist der Graph-Visualizer von DEEPX zur Untersuchung des kompilierten Modells .dxnn.

Installiere dxtron unter x86-64 Linux, indem du das Paket .deb aus dem DEEPX-SDK herunterlädst und mit 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 für x86-64- und aarch64-Plattformen verfügbar.

Benchmarks#

Das Ultralytics-Team hat YOLO26-Modelle getestet 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)
YOLO26nPyTorch✅5.30.4760315.2
YOLO26nDEEPX✅6.60.466034.6
YOLO26n-segPyTorch✅6.50.4080485.4
YOLO26n-segDEEPX✅7.90.392053.8
YOLO26n-posePyTorch✅7.60.4230506.3
YOLO26n-poseDEEPX✅8.80.459037.6
YOLO26n-obbPyTorch✅5.70.8171094.4
YOLO26n-obbDEEPX✅7.30.78356.4
ModellFormatStatusGröße (MB)acc (top1)acc (top5)Inferenzzeit (ms/Bild)
YOLO26n-clsPyTorch✅5.60.4310.71623.8
YOLO26n-clsDEEPX✅5.90.3330.6862.7
Hinweis

Für die Validierung der obigen Benchmarks wurden COCO128 für die Detektion, COCO128-seg für die Segmentierung, COCO8-pose für die Posenschätzung, ImageNet100 für die Klassifizierung und DOTA128 für OBB-Modelle verwendet. Die Inferenzzeit umfasst keine Vor- und Nachverarbeitung.

Tipps zur Leistungsoptimierung

Um den höchsten Inferenzdurchsatz mit der an einen Raspberry Pi 5 angeschlossenen DX-M1-NPU zu erreichen, öffne die Startkonfigurationsdatei und aktiviere die Unterstützung für PCIe Gen 3.

sudo nano /boot/firmware/config.txt

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

dtparam=pciex1
dtparam=pciex1_gen=3

Speichere die Datei und beende den Editor (Ctrl+X, dann Y, dann Enter). Starte anschließend neu:

sudo reboot

Prüfe die PCIe-Generation. Bei PCIe Gen3 wird eine Geschwindigkeit von 8GT/s erwartet.

sudo lspci -vvv | grep -iA 33 accelerators | grep -E "LnkCap|LnkSta"
  1. Trainiere dein Modell mit dem Ultralytics-Trainingsmodus
  2. Ins DEEPX-Format exportieren mit model.export(format="deepx")
  3. Überprüfe die Genauigkeit mit yolo val, um Quantisierungsverluste möglichst gering zu halten
  4. Führe Vorhersagen aus mit yolo predict, um die Ergebnisse qualitativ zu überprüfen
  5. Das exportierte Verzeichnis _deepx_model/ mit der Laufzeitumgebung dx_engine auf DEEPX-NPU-Hardware bereitstellen

Anwendungen in der Praxis#

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

  • Intelligente Überwachung: Echtzeit-Objekterkennung für Sicherheits- und Überwachungssysteme bei geringem Stromverbrauch und ohne Abhängigkeit von einer Cloud.
  • Industrielle Automatisierung: Qualitätskontrolle, Fehlererkennung und Prozessüberwachung direkt auf dem Gerät in Fabrikumgebungen.
  • Robotik: Visionsgestützte Navigation, Hindernisvermeidung und Objekterkennung auf autonomen Robotern und Drohnen.
  • Intelligente Landwirtschaft: Überwachung des Pflanzengesundheitszustands, Schädlingsbekämpfung und Ertragsschätzung mithilfe von maschinellem Sehen in der Landwirtschaft.
  • Einzelhandelsanalysen: Analyse von Kundenströmen, Regalüberwachung und Bestandsverfolgung mit Edge-Inferenz in Echtzeit.

Zusammenfassung#

In dieser Anleitung hast du gelernt, Ultralytics-YOLO-Modelle ins DEEPX-Format zu exportieren und auf DEEPX-NPU-Hardware bereitzustellen. Die Exportpipeline verwendet die INT8-Kalibrierung und den Compiler dx_com, um eine für die Hardware optimierte Binärdatei .dxnn zu erstellen. Die Laufzeitumgebung dx_engine übernimmt die Inferenz auf dem Gerät.

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

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

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

Häufig gestellte Fragen#

  • Du kannst dein Modell in Python mit der Methode export() oder über die CLI exportieren. Beim Export wird die INT8-Quantisierung automatisch aktiviert und ein Kalibrierungsdataset verwendet, 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 beim Export mithilfe einer EMA-basierten Kalibrierung mit echten Dataset-Bildern. So kann die NPU ihre volle Leistung erbringen. Bei DEEPX-Exporten wird INT8 immer erzwungen. Wenn du eine andere Genauigkeit anforderst, wird diese mit einer Warnung überschrieben.

  • Für den Export (die Kompilierung) von DEEPX-Modellen ist ein x86-64-Linux-Rechner erforderlich. Der Exportschritt wird auf ARM64-Rechnern (aarch64) und Windows-Rechnern nicht unterstützt. Inferenz mit dem exportierten Modell .dxnn kann auf allen Linux-Plattformen (x86-64 und ARM64) ausgeführt werden, die von der Laufzeitumgebung dx_engine unterstützt werden.

  • Beim Export wird ein Verzeichnis (z. B. yolo26n_deepx_model/) mit folgenden Dateien erstellt:

    • 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 Trainingsmodus von Ultralytics trainiert und mit format="deepx" exportiert wurde, kann auf DEEPX-NPU-Hardware bereitgestellt werden, sofern es unterstützte Layer-Operationen verwendet. Der Export unterstützt alle sieben Ultralytics-Aufgaben: Detektion, Instanzsegmentierung, semantische Segmentierung, Tiefenschätzung, Klassifizierung, Posenschätzung und orientierte Bounding-Boxen (OBB).

  • Die DEEPX-Exportpipeline konfiguriert den Compiler dx_com so, dass er 100 EMA-Kalibrierungsschritte mit Bildern aus dem Kalibrierungsdataset durchführt. Für eine gute Quantisierungsgenauigkeit reichen in der Regel einige Hundert Bilder aus. Verweise data auf ein kleineres Dataset, wenn die Kompilierungszeit bei großen Datensätzen zum Problem wird.

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

Kommentare