YOLO Vision 2026:

Hailo-Export für Ultralytics YOLO-Modelle#

Hailo-KI-Beschleuniger führen kompilierte Hailo Executable Format (HEF)-Modelle auf Edge-Geräten wie dem Raspberry Pi AI Kit und AI HAT+ aus. Ultralytics exportiert YOLO-Erkennungs-, Segmentierungs-, semantische Segmentierungs-, Tiefenschätzungs-, Klassifizierungs-, Posen- und OBB-Modelle direkt mit dem Hailo Dataflow Compiler (DFC) nach HEF.

Die Hailo-Bereitstellung ist für Computer Vision an der Edge konzipiert: Kameras, Roboter, industrielle Systeme, Gateways und andere Geräte, die eine lokale Objekterkennung benötigen, ohne jeden Frame an die Cloud senden zu müssen. Ein kompiliertes HEF enthält das quantisierte Netzwerk, die Hardware-Zuweisung, das Scheduling und das optionale HailoRT-Post-Processing, das vom gewählten Beschleuniger benötigt wird.

Vergleiche neuere Edge-Beschleuniger

Evaluiere für neue Hardware-Bereitstellungen auch Axelera und DeepX, die auf neuere Edge-Beschleunigerplattformen abzielen und möglicherweise eine höhere Leistung bieten. Hailo empfiehlt mindestens 1.024 repräsentative Kalibrierungsbilder für beste Genauigkeit; die integrierten, aufgabenspezifischen Datensätze eignen sich nur für schnelle Tests.

Warum Ultralytics YOLO auf Hailo bereitstellen?#

Die Kombination von Ultralytics YOLO mit einer Hailo Neural Processing Unit (NPU) bietet einen praktischen Weg vom Modelltraining bis zur stromsparenden Edge-KI-Inferenz. Häufige Anwendungsfälle sind:

  • Intelligente Kameras und Videoanalyse: Führe eine Objekterkennung in Echtzeit in Kameranähe für Sicherheits-, Einzelhandels-, Verkehrs- und Belegungsanwendungen aus.
  • Robotik und autonome Systeme: Erkenne Personen, Fahrzeuge, Pakete, Werkzeuge oder Hindernisse, ohne auf eine ständige Cloud-Verbindung angewiesen zu sein.
  • Industrielle Computer Vision: Setze benutzerdefinierte YOLO-Modelle für Inspektion, Zählung, Sicherheitsüberwachung und Qualitätskontrolle ein.
  • Raspberry Pi AI-Projekte: Füge Raspberry Pi-Systemen mittels AI Kit oder AI HAT+ eine beschleunigte Vision-Inferenz hinzu.
  • Edge-Gateways und KI-PCs: Verarbeite mehrere Video- oder Sensor-Streams lokal und reduziere dabei Bandbreiten- und Cloud-Rechenanforderungen.

Lokale Inferenz kann die Privatsphäre und die Reaktionszeit verbessern, da Bilder auf dem Bereitstellungsgerät verbleiben. Der tatsächliche Durchsatz, die Latenz und der Stromverbrauch hängen von der YOLO-Modellgröße, der Eingabeauflösung, der Hailo-Architektur, dem Host-System und der Anwendungspipeline ab.

Wie der Hailo-Export funktioniert#

Ultralytics besitzt den vollständigen Export-Workflow hinter format="hailo":

YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compile

Der Exporteur führt diese Phasen automatisch aus:

  1. Exportiert einen statischen ONNX-Graphen mit compilerkompatiblen Einstellungen.
  2. Wählt die Head-Ausgaben für die Modellarchitektur aus.
  3. Generiert Normalisierungs-, Aktivierungs- und Post-Processing-Direktiven.
  4. Erstellt einen repräsentativen Kalibrierungs-Stream und quantisiert das Modell auf INT8.
  5. Kompiliert den optimierten Graphen für den ausgewählten Hailo-Beschleuniger.
  6. Speichert das HEF mit Ultralytics-Metadaten und entfernt die temporäre ONNX-Datei.

YOLOv8- und YOLO11-Erkennungsmodelle verwenden HailoRT YOLO NMS in der kompilierten Pipeline. YOLO26-Erkennungsmodelle verwenden ihre NMS-freien One-to-One-Ausgaben, sodass der Exporter automatisch eine andere Ausgabe und einen anderen Quantisierungspfad auswählt. YOLOv8/YOLO11-Segmentierung, -Pose und -OBB kompilieren die rohen Head-Tensoren, die Ultralytics bei der Inferenz dekodiert, und die YOLOv8/YOLO11/YOLO26-Klassifizierung führt Softmax auf dem Chip aus, sodass das HEF die Klassenwahrscheinlichkeiten direkt zurückgibt. Bei der semantischen YOLO26-Segmentierung folgt der Exporter dem Beschleuniger: Hailo-8/8L (DFC v3.x) geben Klassifizierer-Logits für das Upsampling und die Reduktion auf dem Host zurück, während Hailo-10/15 (DFC v5.x) Mehrklassen-ArgMax-Heads auf dem Chip kompilieren und eine kompakte Klassenenkarte zurückgeben. Einer-Klassen-Heads verwenden auf jedem Ziel den Host-Logit-Pfad, da sie anstelle von ArgMax einen Schwellenwert benötigen. YOLO26-Tiefenmodelle kompilieren die dichte Logit-Conv in a16 und rekonstruieren die metrische Tiefenkarte auf dem Host (die Clamp/Exp- und gelernte Log-Affine-Kalibrierung, die dem Head folgen), sodass der Quantisierer seinen breitesten Bereich für das rohe Logit behält. Benutzer müssen keine ONNX-Endknoten finden, kein Hailo-Modellskript (.alls) schreiben oder manuell ein NMS JSON erstellen.

Installation#

Installiere Ultralytics und lade das DFC-Wheel für deine Zielhardware aus der Hailo Developer Zone herunter (kostenlose Registrierung erforderlich):

pip install ultralytics
pip install /path/to/hailo_dataflow_compiler-*.whl
Hinweis

Die Hailo-Kompilierung erfordert Linux x86_64. Kompiliere das Modell auf einer unterstützten Workstation und kopiere dann das Ausgabeverzeichnis auf das Zielgerät. Der DFC ist für die Inferenz nicht erforderlich.

Hailo-8 und Hailo-8L verwenden DFC v3.x. Hailo-10 und Hailo-15 verwenden DFC v5.x. Installiere die Compiler-Generation, die zum Zielbeschleuniger passt.

Export in der Ultralytics-Plattform

Ultralytics Platform bietet einen verwalteten Hailo-Export, sodass kein lokales Hailo-Konto oder eine DFC-Installation erforderlich ist.

Ein Hailo HEF-Modell exportieren#

Verwende format="hailo" und wähle den Zielbeschleuniger mit name aus:

from ultralytics import YOLO

model = YOLO("yolo11n.pt")
output = model.export(format="hailo", name="hailo8l")
print(output)  # yolo11n_hailo_model/

Der entsprechende CLI-Befehl lautet:

yolo export model=yolo11n.pt format=hailo name=hailo8l

Der Hailo-Export erfolgt ausschließlich in INT8. Ultralytics lädt automatisch einen aufgabenspezifischen Kalibrierungsdatensatz herunter, wenn data nicht angegeben wird. Verwende für benutzerdefinierte Modelle repräsentative Trainings- oder Validierungsbilder:

Verwende mindestens 1.024 Kalibrierungsbilder für die beste Genauigkeit

Ultralytics erzwingt die DFC-Optimierungsstufe 2 und konfiguriert die Feinabstimmung so, dass die tatsächliche Größe des Kalibrierungsdatensatzes verwendet wird. Hailo empfiehlt mindestens 1.024 verschiedene Bilder; die integrierten, leichten Datensätze werden auf Stufe 2 kompiliert, repräsentieren jedoch möglicherweise nicht die Produktionsdomäne. Übergebe für HEF-Exporte in der Produktion einen repräsentativen Datensatz über data="path/to/dataset.yaml".

model.export(format="hailo", name="hailo8l", data="path/to/dataset.yaml")

Die Kompilierung verwendet eine feste Eingabeform. Setze imgsz auf die auf dem Gerät verwendete Auflösung:

model.export(format="hailo", name="hailo8l", imgsz=640)

Unterstützte Modelle und Hardware#

Das Hailo-Ökosystem deckt ein breites Spektrum an Computer-Vision-Workloads ab, aber der Ultralytics format="hailo"-Exporter validiert derzeit standardmäßige YOLO-Erkennungs-, Segmentierungs-, semantische Segmentierungs-, Tiefenschätzungs-, Klassifizierungs-, Posen- und OBB-Heads. Die Aufgabentabelle beschreibt die verfügbaren Exporter-Pfade; die Hardware-Validierung ist unten separat aufgeführt.

Ultralytics-AufgabeDirekter Hailo-ExportUnterstützte ModellfamilienHinweise
ObjekterkennungYOLOv8, YOLO11, YOLO26Standardmäßige Ultralytics Detect-Heads, einschließlich benutzerdefinierter Modelle
InstanzsegmentierungYOLOv8, YOLO11Rohe Head-Tensoren, die von Ultralytics bei der Inferenz dekodiert werden; YOLO26-seg wird aktuell nicht unterstützt
Semantische SegmentierungYOLO26Hailo-8/8L und Single-Class-Heads geben Logits zurück; Hailo-10/15 erstellt Multi-Class-Maps
TiefenschätzungYOLO26Dichtes Logit kompiliert in a16; Ultralytics rekonstruiert die metrische Tiefenkarte bei der Inferenz
BildklassifizierungYOLOv8, YOLO11, YOLO26Softmax läuft auf dem Chip; das HEF gibt direkt Klassenwahrscheinlichkeiten zurück
Pose-SchätzungYOLOv8, YOLO11Rohe Head-Tensoren, die von Ultralytics bei der Inferenz decodiert werden; YOLO26-Pose wird derzeit nicht unterstützt
Orientierte ObjekterkennungYOLOv8, YOLO11Rohe Head-Tensoren, die von Ultralytics bei der Inferenz decodiert werden; YOLO26-OBB wird derzeit nicht unterstützt

Spezialisierte Erkennungsfamilien wie YOLOv10, YOLO-World, YOLOE und RT-DETR werden ebenfalls ❌ nicht unterstützt. Ultralytics lehnt diese Aufgaben und Modellfamilien vor der Kompilierung ab, anstatt ein nicht validiertes HEF zu produzieren.

ModellfamilieHailo-8 / Hailo-8LHailo-10 / Hailo-15Ausgabe
YOLOv8 / YOLO11 DetectionHEF mit HailoRT YOLO NMS
YOLO26 DetectionNMS-freie Erkennungs-Head-Ausgaben für unterstützte Runtimes
YOLOv8-seg / YOLO11-segRohe Segmentierungs-Tensoren, von Ultralytics bei der Inferenz dekodiert
YOLOv8-pose / YOLO11-poseHailo-8L validiertNicht validiertRohe Pose-Tensoren, die von Ultralytics bei der Inferenz decodiert werden
YOLOv8-obb / YOLO11-obbHailo-8L validiertNicht validiertRohe OBB-Tensoren, die von Ultralytics bei der Inferenz decodiert werden
YOLOv8-cls / YOLO11-cls / YOLO26-clsHailo-8L validiertNicht validiertOn-Chip-Softmax; HEF gibt Klassenwahrscheinlichkeiten zurück
YOLO26-semHailo-8L validiertNicht validiertLogits oder eine erstellte Multi-Class-Map auf Hailo-10/15
YOLO26-depthHailo-8L validiertNicht validiertDichtes Logit; metrische Tiefenkarte, die von Ultralytics dekodiert wird

Pose, OBB, Klassifizierung, semantische YOLO26-Segmentierung und YOLO26-Tiefenschätzung (Hailo-8/8L-Pfad) wurden auf Hailo-8L mit HailoRT 4.23 und DFC 3.33 validiert. Der Exporter akzeptiert die anderen aufgeführten Ziele, aber diese neuen Aufgabenpfade erfordern vor dem Produktionseinsatz eine Validierung mit dem passenden Compiler und Gerät.

Wähle einen dieser name-Werte aus:

nameZielbeschleuniger
hailo8Hailo-8
hailo8lHailo-8L
hailo10hHailo-10H
hailo15hHailo-15H
hailo15lHailo-15L

hailo8l ist der Standardwert. Installiere die DFC-Generation, die zum ausgewählten Ziel passt.

Hailo Hardware- und SDK-Generationen#

Hailo-Beschleunigerfamilien verwenden unterschiedliche Compiler-Generationen. Das generierte HEF muss zur Zielhardware passen, wähle daher name für das Gerät, das die Inferenz ausführt, und nicht für den Computer, der den Export durchführt.

Hardware-FamilieDFC-GenerationTypische Bereitstellungsbeispiele
Hailo-8 / Hailo-8LDFC v3.xBeschleunigermodule, Raspberry Pi AI Kit/HAT+
Hailo-10HDFC v5.xNeuere Edge-KI- und Raspberry Pi-Bereitstellungen
Hailo-15H / Hailo-15LDFC v5.xSmart-Kamera- und Embedded-Vision-Anwendungen

Der Compiler läuft auf Linux x86_64, während das resultierende HEF über HailoRT auf dem Hailo-Gerät läuft. Diese Trennung ermöglicht es dir, auf einer Workstation oder in der Ultralytics-Plattform zu kompilieren und das kleine Runtime-Artefakt auf einem ARM- oder x86-Edge-Host bereitzustellen.

Kompatibilitätshinweise#

Die Hailo-Kompilierung ist hardwarespezifisch und verwendet eine feste Eingabeform. Behalte diese Einschränkungen im Kopf:

  • Das ausgewählte name muss zum Bereitstellungsbeschleuniger passen.
  • Kalibrierungsbilder sollten die Beleuchtung, Blickwinkel, Objekte und Hintergründe repräsentieren, die in der Produktion erwartet werden.
  • Ein HEF, das mit einem imgsz kompiliert wurde, lässt sich zur Laufzeit nicht dynamisch in der Größe anpassen.
  • Benutzerdefinierte Klassenanzahlen werden unterstützt, da Ultralytics die Post-Processing-Konfiguration aus den Modellmetadaten generiert.
  • Erkennungsmodelle mit standardmäßigen Ultralytics Detect-Heads, YOLOv8/YOLO11-Segmentierungs-, Posen- und OBB-Modellen sowie YOLOv8/YOLO11/YOLO26-Klassifizierungsmodellen sowie YOLO26-Modelle für semantische Segmentierung und Tiefenschätzung werden unterstützt; YOLO26-Instanzsegmentierung, -Pose und orientierte Bounding-Box sowie YOLO-World-, YOLOE-, YOLOv10- und RT-DETR-Exporte werden derzeit nicht unterstützt.
  • Hailo-8/8L- und Hailo-10/15-Artefakte werden von unterschiedlichen DFC-Generationen kompiliert und sind nicht austauschbar.

Kalibrierung und INT8-Quantisierung#

Der Hailo HEF-Export verwendet INT8-Quantisierung, um das YOLO-Netzwerk effizient auf den Beschleuniger abzubilden. Der Kalibrierungsdatensatz schätzt die Aktivierungsbereiche; er trainiert das Modell nicht neu und benötigt während der Kompilierung keine Labels.

Wenn data weggelassen wird, verwendet Ultralytics einen aufgabenspezifischen, leichten Kalibrierungsdatensatz wie COCO128 für die Erkennung, cityscapes8 für die semantische Segmentierung oder depth8 für die Tiefenschätzung. Der dichte Tiefenhead reagiert besonders empfindlich auf die Kalibrierungsdomäne: Die Kalibrierung eines Tiefenmodells mit nicht zusammenhängenden Erkennungsbildern flacht die vorhergesagte Karte ab, und größere domäneninterne Sätze verbessern die Wiedergabetreue. Verweise bei einem benutzerdefinierten Computer-Vision-Modell mit data auf dessen Datensatz-YAML, damit der Compiler repräsentative Bilder aus der tatsächlichen Bereitstellungsdomäne beobachtet:

model.export(format="hailo", name="hailo8l", data="my_dataset.yaml")

fraction wählt den Teil des Datensatzes aus, der für die Kalibrierung verwendet wird. Mehr Bilder helfen nur dann, wenn sie die Bereitstellungsdomäne repräsentieren; domänenfremde Bilder können die quantisierte Genauigkeit verringern und die Optimierungszeit erhöhen. Wenn das INT8 HEF im Vergleich zum ursprünglichen PyTorch-Modell an Genauigkeit verliert, verbessere zuerst die Kalibrierungsdaten, bevor du Modell- oder Laufzeiteinstellungen änderst.

Genauigkeitserwartungen nach Modellfamilie#

Gemessen auf einem Hailo-8L mit In-Domain-Kalibrierung (COCO128, 128 Bilder) behalten INT8-HEF-Exporte den folgenden Anteil ihres PyTorch-mAP50 unter demselben Evaluierungsprotokoll bei:

ModellmAP50-ErhaltungHinweise
YOLOv8n~100%DFL-Head mit On-Chip-NMS
YOLO11n~96%Attention-Blöcke im Backbone sind empfindlicher gegenüber INT8
YOLO26n~93%End-to-End-Head plus Attention; siehe den Konfidenzhinweis

Die Aufbewahrung vergleicht beide Modelle beim selben Konfidenzschwellenwert. YOLOv8- und YOLO11-HEFs betten das exportzeitliche conf (Standard 0,25) in das NMS auf dem Chip ein. Die Validierung gegen eine PyTorch-Baseline bei ihrem niedrigen Standardschwellenwert integriert daher einen größeren Teil der Precision-Recall-Kurve und überschätzt die Quantisierungslücke.

Über die Erkennung hinaus wurden die Exportpfade für Segmentierung, Pose, OBB und Klassifizierung auf demselben Hailo-8L (DFC 3.33, HailoRT 4.23) validiert. Jedes INT8 HEF wurde mit seinem PyTorch-Checkpoint auf demselben Validierungs-Split unter Verwendung einer In-Domain-Kalibrierung verglichen:

AufgabeMetrik (Validierungs-Split)YOLOv8nYOLO11n
Instanzsegmentierungmask mAP50 Retention (COCO128-seg)98.0%93.6%
Posebox mAP50 Retention (COCO8-pose)98.1%90.8%
Oriented bounding boxmAP50 Retention (DOTA128)~100%96.9%
Klassifizierungtop-1 Retention (ImageNet val)92.6%95.4%

Segmentierung, Pose und OBB wurden mit dem jeweiligen domänespezifischen Standardsatz jeder Aufgabe kalibriert (COCO128-seg, COCO8-pose, DOTA128); die Klassifizierung wurde mit ImageNet100 kalibriert. Aus diesen Standards ergeben sich zwei Vorbehalte: COCO8-pose besteht nur aus 8 Bildern, betrachte Pose daher als Indikator und übergebe ein größeres data= für die Produktion, und DOTA8 sättigt mAP50 nahe 100 % für beide Modelle, weshalb OBB auf DOTA128 gelesen wird. Die Klassifizierung ist zudem die einzige Aufgabe, bei der YOLO11 mehr als YOLOv8 behält; bei den anderen reagiert das YOLO11-Aufmerksamkeits-Backbone empfindlicher auf INT8.

Aus den Gerätemessungen ergeben sich drei praktische Regeln:

  1. Kalibriere immer In-Domain. Ein Fine-Tuning mit Out-of-Domain-Bildern ist gleichbedeutend mit einer vollständigen Deaktivierung des Fine-Tunings: Ein YOLO26n, das mit 1.238 Out-of-Domain-Bildern kalibriert wurde, behält dieselbe Genauigkeit (85,7 %) bei wie eines, das ohne Fine-Tuning kompiliert wurde. Ein kleines In-Domain-Set übertrifft ein großes Out-of-Domain-Set.
  2. Senke conf für YOLO26-Bereitstellungen um ca. 0,05. Die Quantisierung verschiebt YOLO26-Ergebnisse im Durchschnitt um ca. 0,05 nach unten, sodass ein in PyTorch abgestimmter Schwellenwert gültige Erkennungen auf dem HEF verwirft. Die Verwendung von conf=0.20 auf dem Gerät entspricht der Erkennungsanzahl von PyTorch bei conf=0.25, und ein geringfügiges Absenken (um conf=0.15) stellt im Wesentlichen den gesamten verbleibenden mAP50-Abstand auf Kosten weiterer Erkennungen mit geringer Konfidenz wieder her. Die Quantisierung ordnet außerdem etwa 20 % der Erkennungen neu an – ein permanenter Reihungseffekt, den kein Schwellenwert rückgängig macht –, aber dieses Durchmischen blockiert nicht die mAP50-Wiederherstellung beim niedrigeren Schwellenwert.
  3. Die Aufmerksamkeitsstrafe ist bei Hailo-8/8L (DFC 3.33) strukturell. Die Aufmerksamkeitsblöcke werden zu matmul-Operationen kompiliert, die INT8-Aktivierungseingaben in jedem Modus beibehalten, den der Compiler dafür anbietet; der Modus mit 16-Bit-Ausgabe schlägt bei der Speicherzuweisung für diesen Graph fehl, und das Erhöhen der Präzision der umliegenden Schichten hilft nicht, da das Matmul seine Eingaben sowieso auf INT8 re-quantisiert (der Schutz der tiefenbezogenen und Ausgabefolgen bei 16-Bit ließ mAP in unseren Tests unverändert). Wenn Genauigkeit Priorität hat und das Modell austauschbar ist, quantisiert YOLO11 hier derzeit besser als YOLO26; neuere Hailo-Generationen (DFC 5.x) bieten mehr Optionen für gemischte Präzision und weichen möglicherweise ab.

Exportierte Artefakte#

Der Export erstellt ein Verzeichnis mit dem bereitstellbaren HEF und Ultralytics-Metadaten:

yolo11n_hailo_model/
├── yolo11n.hef
├── metadata.yaml
└── nms_config.json
  • *.hef ist das kompilierte Modell, das von HailoRT geladen wird.
  • metadata.yaml bewahrt Modellnamen, Aufgabe, Eingabegröße, Schrittweite und Hailo-Zielinformationen.
  • nms_config.json zeichnet die generierte HailoRT NMS-Konfiguration für YOLOv8- und YOLO11-Erkennungsmodelle auf. YOLO26-Erkennungs- und alle Nicht-Erkennungsaufgaben (Segmentierung, Semantik, Tiefe, Klassifizierung, Pose, OBB) verwenden diese Datei nicht.

Der temporäre ONNX-Graph wird nach der Kompilierung entfernt.

Inferenz auf Hailo-Hardware ausführen#

Installiere HailoRT auf dem Zielgerät. Benutzer des Raspberry Pi AI Kit und AI HAT+ können dem Raspberry Pi AI Software Guide folgen:

sudo apt install hailo-all
hailortcli fw-control identify

Kopiere das vollständige Exportverzeichnis auf das Gerät, damit metadata.yaml neben dem HEF verbleibt. Ultralytics verwendet HailoRT, um predict und val direkt im exportierten Verzeichnis auszuführen:

from ultralytics import YOLO

model = YOLO("yolo11n_hailo_model")
results = model.predict("path/to/image.jpg")

Bei Erkennungsmodellen konvertiert das Backend die YOLOv8- und YOLO11-HailoRT-NMS-Ausgabe und dekodiert YOLO26-One-to-One-Ausgaben automatisch. Es dekodiert rohe Segmentierungs-, Posen- und OBB-Tensoren, gibt chipinterne Klassifizierungswahrscheinlichkeiten zurück und erzeugt semantische Klassen karten durch Host-Reduktion auf Hailo-8/8L und allen Einer-Klassen-Heads oder ein chipinternes ArgMax für Mehrklassen-Hailo-10/15-Heads. TAPPAS, GStreamer und der Raspberry Pi picamera2.devices.Hailo-Helfer bleiben für anwendungsspezifische Pipelines verfügbar.

Übergebe das HEF für eine GStreamer-Bereitstellung an hailonet:

gst-launch-1.0 filesrc location=video.mp4 ! decodebin ! videoconvert ! \
  hailonet hef-path=yolo11n_hailo_model/yolo11n.hef ! \
  hailofilter function-name=yolov8 ! hailooverlay ! autovideosink

Hailo-Bereitstellungsoptionen#

Das HEF ist dasselbe bereitstellbare Modellartefakt über mehrere Hailo-Runtime-Schnittstellen hinweg. Wähle die Schnittstelle, die zur Anwendung passt:

Runtime-OptionAm besten geeignet für
HailoRT Python- oder C/C++ APIBenutzerdefinierte Anwendungen und direkte Steuerung der Inferenz
Raspberry Pi picamera2.devices.HailoCamera Module-Projekte auf Raspberry Pi
GStreamer- und Hailo-AnwendungenEchtzeit-Videostreams und mehrstufige Pipelines
hailortcliGeräteprüfungen, HEF-Inspektion und Benchmarking

Behalte metadata.yaml beim HEF, wenn die Anwendung Ultralytics-Klassennamen, Eingabegröße, Schrittweite oder andere Modellinformationen benötigt. Das HEF selbst ersetzt nicht die anwendungsebene Logik für Kameraaufnahme, Visualisierung, Tracking, Benachrichtigungen oder Speicherung.

Überprüfe das Hailo-Gerät und die HEF#

Bevor du eine Kamera oder Video-Pipeline integrierst, überprüfe die Laufzeit und den Beschleuniger unabhängig voneinander:

hailortcli fw-control identify
hailortcli parse-hef yolo11n_hailo_model/yolo11n.hef

Leistungsmessungen nur auf dem Gerät isolieren die Hailo-Inferenz von Videodekodierung, Bildskalierung, Zeichnen und Anwendungs-I/O. Messe die gesamte Anwendung separat, wenn du die End-to-End-Latenz oder Bilder pro Sekunde schätzt.

Hailo im Vergleich zu anderen YOLO-Exportformaten#

Wähle ein Exportformat basierend auf der Hardware, auf der das Modell ausgeführt wird:

BereitstellungszielUltralytics Exportformat
Hailo NPUHailo HEF (format="hailo")
NVIDIA GPUTensorRT
Intel CPU, GPU oder NPUOpenVINO
Apple HardwareCoreML
Qualcomm Snapdragon NPUQNN
Rockchip NPURKNN
Raspberry Pi AI CameraSony IMX500
Portabler Cross-Runtime-EinsatzONNX

HEF ist die richtige Wahl, wenn das Endgerät über einen Hailo-Beschleuniger verfügt. ONNX bleibt als portables Austauschformat nützlich, aber HailoRT führt die hardwarespezifische HEF aus, die vom DFC erstellt wurde, anstatt das ursprüngliche ONNX-Modell.

Optimiere die Hailo Computer Vision-Leistung#

Modell- und Pipeline-Entscheidungen sind oft wichtiger als Compiler-Flags:

  • Beginne mit einem kleinen YOLO-Modell und erhöhe die Modellgröße nur, wenn es die Genauigkeit erfordert.
  • Wähle das niedrigste feste imgsz, das die für die Anwendung wichtigen Objekte dennoch bewahrt.
  • Verwende nach Möglichkeit Kalibrierungsbilder von der echten Kamera und Umgebung.
  • Halte das Hailo-Netzwerk über Frames hinweg aktiv, anstatt die HEF für jede Inferenz neu zu öffnen.
  • Trenne die Inferenzzeit auf dem Gerät von Vorverarbeitung, Videodekodierung, Nachverarbeitung, Visualisierung und Netzwerk-I/O.
  • Verwende eine Streaming-Pipeline wie GStreamer für dauerhafte Video-Workloads.
  • Validiere die exportierte HEF auf dem exakten Beschleuniger und der HailoRT-Version, die in der Produktion verwendet wird.

Export-Argumente#

ArgumentTypStandardBeschreibung
namestrhailo8lZiel-Hailo-Beschleunigerarchitektur
imgszint, list640Feste Modelleingabegröße
datastrNoneKalibrierungs-Dataset-YAML; für die Klassifizierung wird stattdessen ein Dataset-Verzeichnis oder ein integrierter Dataset-Name verwendet. Wenn sie weggelassen wird, wählt Ultralytics ein aufgabenspezifisches Kalibrierungs-Dataset aus.
fractionfloat1.0Anteil der zu verwendenden Kalibrierungsbilder
quantizeint8Hailo-Export verwendet INT8-Quantisierung
simplifyboolTrueVereinfache den intermediären ONNX-Graphen
conffloat0.25YOLOv8/YOLO11 HailoRT NMS Konfidenz-Schwellenwert
ioufloat0.7YOLOv8/YOLO11 HailoRT NMS IoU-Schwellenwert

Für den Erkennungsexport erhalten YOLOv8 und YOLO11 HailoRT NMS, während YOLO26 seine NMS-freien One-to-One-Ausgaben beibehält. Segmentierung, Pose und OBB verwenden rohe Head-Tensoren, die Klassifizierung gibt chipinterne Wahrscheinlichkeiten zurück und die semantische Segmentierung gibt rohe Logits auf Hailo-8/8L und allen Einer-Klassen-Heads oder erstellte Klassen karten für Mehrklassen-Hailo-10/15-Heads zurück. Die Tiefenschätzung gibt das rohe Tiefen-Logit zurück, welches Ultralytics bei der Inferenz in eine metrische Tiefenkarte dekodiert. Übergebe kein end2end; explizite Überschreibungen werden abgelehnt. Dynamische Formen, Batches größer als eins, eingebettetes Ultralytics NMS, FP16 und FP32 werden ebenfalls nicht unterstützt.

Fehlerbehebung beim Hailo-Export#

Hailo Dataflow Compiler Importfehler#

Wenn der Export meldet, dass hailo_sdk_client fehlt, installiere das DFC-Wheel für die Zielhardwaregeneration in derselben Python-Umgebung wie Ultralytics. Hailo-8/8L und Hailo-10/15 erfordern unterschiedliche Compiler-Generationen.

Nicht unterstütztes Betriebssystem oder Architektur#

Die HEF-Kompilierung wird unter Linux x86_64 unterstützt. Exportiere über Ultralytics Platform oder verwende eine kompatible Workstation, wenn es sich bei dem lokalen Computer um macOS, Windows, Raspberry Pi oder ein anderes ARM-System handelt.

Export dauert lange#

Die DFC-Optimierung ist die aufwendigste Stufe. Die Kompilierzeit steigt mit Modellgröße, Eingabeauflösung und Kalibrierungsdaten. Eine unterstützte GPU kann die Optimierung beschleunigen, während die reine CPU-Kompilierung wesentlich langsamer sein kann.

Genauigkeitsverlust beim quantisierten Modell#

Verwende Kalibrierungsbilder, die Produktionseingaben ähneln und die wichtigen Objekte, Maßstäbe, Lichtverhältnisse und Hintergründe enthalten. Vergleiche das ursprüngliche PyTorch-Modell und das exportierte HEF vor der Bereitstellung auf demselben Validierungssatz. Selbst bei guter Kalibrierung verbleibt eine moderate familienabhängige Lücke; siehe Accuracy Expectations by Model Family für die gemessenen Baselines.

HEF lädt nicht auf dem Gerät#

Bestätige, dass name zur physischen Hailo-Architektur passte und dass Gerätetreiber, Firmware und HailoRT-Pakete miteinander kompatibel sind. Untersuche das Artefakt mit hailortcli parse-hef und verifiziere den Beschleuniger mit hailortcli fw-control identify.

Ausgabeparsing sieht inkorrekt aus#

Behalte metadata.yaml neben dem HEF, damit Ultralytics den passenden YOLOv8-, YOLO11- oder YOLO26-Nachbearbeitungspfad auswählen kann. Benutzerdefinierte HailoRT-Anwendungen müssen die Nachbearbeitung ebenfalls an die exportierte Modellfamilie anpassen.

Zusammenfassung#

Der Ultralytics Hailo-Export bietet einen direkten Weg von einem trainierten YOLO-Modell zu einem einsetzbaren HEF:

  1. Lade ein YOLOv8-, YOLO11- oder YOLO26-Erkennungs- oder Klassifizierungsmodell, ein YOLOv8/YOLO11-Segmentierungs-, -Pose- oder -OBB-Modell oder ein YOLO26-Modell für semantische Segmentierung oder Tiefenschätzung.
  2. Exportiere mit format="hailo" und wähle die Zielarchitektur aus.
  3. Kalibriere und kompiliere lokal mit dem passenden DFC oder nutze den verwalteten Export in der Ultralytics Platform.
  4. Kopiere das HEF und metadata.yaml auf das mit Hailo ausgestattete Edge-Gerät.
  5. Führe die Inferenz mit HailoRT, Raspberry Pi Picamera2 oder einer GStreamer-Videopipeline aus.

Weitere Computer-Vision-Bereitstellungsziele findest du unter Export mode, Benchmark mode und im integrations guide. Zu den verwandten Hardware-Anleitungen gehören ONNX, OpenVINO, TensorRT, NCNN, RKNN, Sony IMX500 und Qualcomm QNN.

FAQ#

  • Nein. Führe den DFC auf einem unterstützten Linux x86_64-System aus und stelle die resultierende HEF auf dem Raspberry Pi bereit.

  • Eine unterstützte GPU reduziert die DFC-Optimierungszeit erheblich. CPU-Kompilierung ist möglich, kann aber wesentlich länger dauern.

  • Der direkte Export unterstützt Erkennungsmodelle mit dem standardmäßigen YOLOv8-, YOLO11- oder YOLO26-Erkennungshead, YOLOv8/YOLO11-Segmentierungs-, -Pose- und -OBB-Modelle sowie YOLOv8/YOLO11/YOLO26-Klassifizierungsmodelle. Dies schließt benutzerdefinierte Modelle ein, die aus diesen Standardarchitekturen erstellt wurden. YOLO26-Modelle für semantische Segmentierung und Tiefenschätzung werden ebenfalls unterstützt. YOLO26-Instanzsegmentierung, -Pose und -OBB sowie YOLOv10, YOLO-World, YOLOE und RT-DETR werden abgelehnt, anstatt einen unvalidierten HEF zu erzeugen.

  • Ja. Verwende denselben format="hailo"-Befehl mit den benutzerdefinierten .pt-Gewichtungen und übergebe die Trainingsdatensatz-YAML über data für eine repräsentative INT8-Kalibrierung. Klassennamen und Klassenanzahl werden aus den Modellmetadaten gelesen.

  • Nein. Der DFC kompiliert eine feste Eingabeform in das HEF. Wähle imgsz während des Exports aus, um sie an die von der Bereitstellungspipeline verwendete Auflösung anzupassen.

  • YOLO26 verwendet einen NMS-freien One-to-One-Detektions-Head. Ultralytics kompiliert diese Ausgabe-Tensoren direkt, anstatt das für YOLOv8 und YOLO11 verwendete HailoRT YOLOv8-style NMS anzuhängen.

  • Der Hailo Dataflow Compiler konvertiert und quantisiert das Modell auf einer Linux x86_64-Build-Maschine in eine hardwarespezifische HEF. HailoRT lädt und führt diese HEF auf dem Zielgerät aus.

  • Stelle die kompilierte HEF auf der Hailo-Laufzeit bereit. ONNX ist eine intermediäre Repräsentation, die während des Exports verwendet wird und nach erfolgreicher Kompilierung entfernt wird.

  • Lade das Compiler-Wheel für deine Hardware-Generation aus der Hailo Developer Zone herunter. Der Compiler ist nur erforderlich, um die HEF zu erstellen; HailoRT führt sie auf dem Zielbeschleuniger aus.

Kommentare