Link to this sectionHailo-Export für Ultralytics YOLO-Modelle#
Hailo-KI-Beschleuniger führen kompilierte HEF-Modelle (Hailo Executable Format) auf Edge-Geräten wie dem Raspberry Pi AI Kit und dem AI HAT+ aus. Ultralytics exportiert YOLO-Erkennungs-, Segmentierungs-, Pose-, OBB-, Klassifizierungs-, semantische Segmentierungs- und Tiefenschätzungsmodelle direkt mit dem Hailo Dataflow Compiler (DFC) in 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.
Evaluiere für neue Hardware-Implementierungen 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 sind nur für schnelle Tests geeignet.
Link to this sectionWarum 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.
Link to this sectionWie der Hailo-Export funktioniert#
Ultralytics besitzt den vollständigen Export-Workflow hinter format="hailo":
YOLO (.pt) -> ONNX -> Hailo parse -> INT8 optimization -> HEF compileDer Exporteur führt diese Phasen automatisch aus:
- Exportiert einen statischen ONNX-Graphen mit compilerkompatiblen Einstellungen.
- Wählt die Head-Ausgaben für die Modellarchitektur aus.
- Generiert Normalisierungs-, Aktivierungs- und Post-Processing-Direktiven.
- Erstellt einen repräsentativen Kalibrierungs-Stream und quantisiert das Modell auf INT8.
- Kompiliert den optimierten Graphen für den ausgewählten Hailo-Beschleuniger.
- 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 Eins-zu-Eins-Ausgaben, sodass der Exporter automatisch einen anderen Ausgaben- und 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 Klassenwahrscheinlichkeiten direkt zurückgibt. Bei der semantischen Segmentierung von YOLO26 folgt der Exporter dem Beschleuniger: Hailo-8/8L (DFC v3.x) geben Klassifizierer-Logits für das Host-Upsampling und die Reduktion zurück, während Hailo-10/15 (DFC v5.x) Mehrklassen-ArgMax-Heads auf dem Chip kompilieren und eine kompakte Klassenenkarte zurückgeben. Einklassen-Heads verwenden auf jedem Ziel den Host-Logit-Pfad, da sie anstelle von ArgMax einen Schwellenwert erfordern. YOLO26-Tiefenmodelle kompilieren das dichte Logit-Conv in a16 und rekonstruieren die metrische Tiefenkarte auf dem Host (die Clamp/Exp- und gelernten Log-Affinen-Kalibrierungsschritte, 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 und keine NMS-JSON manuell erstellen.
Link to this sectionInstallation#
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-*.whlDie 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.
Ultralytics Platform bietet einen verwalteten Hailo-Export, sodass kein lokales Hailo-Konto oder eine DFC-Installation erforderlich ist.
Link to this sectionEin 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=hailo8lDer Hailo-Export ist nur in INT8 verfügbar. Ultralytics lädt automatisch einen aufgabenspezifischen Kalibrierungsdatensatz herunter, wenn data nicht angegeben ist. Verwende für benutzerdefinierte Modelle repräsentative Trainings- oder Validierungsbilder:
Ultralytics erzwingt die DFC-Optimierungsstufe 2 und konfiguriert das Fine-Tuning so, dass die tatsächliche Größe des Kalibrierungsdatensatzes verwendet wird. Hailo empfiehlt mindestens 1.024 diverse Bilder; die integrierten, leichtgewichtigen Datensätze kompilieren zwar mit Stufe 2, repräsentieren jedoch möglicherweise nicht die Produktionsumgebung. Übergib für Produktions-HEF-Exporte einen repräsentativen Datensatz mit 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 Auflösung, die auf dem Gerät verwendet wird:
model.export(format="hailo", name="hailo8l", imgsz=640)Link to this sectionUnterstützte Modelle und Hardware#
Das Hailo-Ökosystem deckt ein breites Spektrum an Computer-Vision-Workloads ab, aber der Ultralytics-Exporter format="hailo" validiert derzeit standardmäßige YOLO-Erkennungs-, Segmentierungs-, Pose-, OBB-, Klassifizierungs-, semantische Segmentierungs- und Tiefenschätzungs-Heads. Die Task-Tabelle beschreibt die verfügbaren Exporter-Pfade; die Hardware-Validierung ist unten separat aufgeführt.
| Ultralytics-Aufgabe | Direkter Hailo-Export | Unterstützte Modellfamilien | Hinweise |
|---|---|---|---|
| Objekterkennung | ✅ | YOLOv8, YOLO11, YOLO26 | Standard Ultralytics Detect-Heads, einschließlich benutzerdefinierter Modelle |
| Instanzsegmentierung | ✅ | YOLOv8, YOLO11 | Rohe Head-Tensoren, die von Ultralytics bei der Inferenz dekodiert werden; YOLO26-seg wird aktuell nicht unterstützt |
| Bildklassifizierung | ✅ | YOLOv8, YOLO11, YOLO26 | Softmax läuft auf dem Chip; das HEF gibt direkt Klassenwahrscheinlichkeiten zurück |
| Pose-Schätzung | ✅ | YOLOv8, YOLO11 | Rohe Head-Tensoren, die von Ultralytics bei der Inferenz decodiert werden; YOLO26-Pose wird derzeit nicht unterstützt |
| Orientierte Objekterkennung | ✅ | YOLOv8, YOLO11 | Rohe Head-Tensoren, die von Ultralytics bei der Inferenz decodiert werden; YOLO26-OBB wird derzeit nicht unterstützt |
| Semantische Segmentierung | ✅ | YOLO26 | Hailo-8/8L und Single-Class-Heads geben Logits zurück; Hailo-10/15 erstellt Multi-Class-Maps |
| Tiefenschätzung | ✅ | YOLO26 | Dichtes Logit kompiliert in a16; Ultralytics baut die metrische Tiefenkarte bei der Inferenz neu auf |
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.
| Modellfamilie | Hailo-8 / Hailo-8L | Hailo-10 / Hailo-15 | Ausgabe |
|---|---|---|---|
| YOLOv8 / YOLO11 Detection | ✅ | ✅ | HEF mit HailoRT YOLO NMS |
| YOLO26 Detection | ✅ | ✅ | NMS-freie Erkennungs-Head-Ausgaben für unterstützte Runtimes |
| YOLOv8-seg / YOLO11-seg | ✅ | ✅ | Rohe Segmentierungs-Tensoren, von Ultralytics bei der Inferenz dekodiert |
| YOLOv8-pose / YOLO11-pose | Hailo-8L validiert | Nicht validiert | Rohe Pose-Tensoren, die von Ultralytics bei der Inferenz decodiert werden |
| YOLOv8-obb / YOLO11-obb | Hailo-8L validiert | Nicht validiert | Rohe OBB-Tensoren, die von Ultralytics bei der Inferenz decodiert werden |
| YOLOv8-cls / YOLO11-cls / YOLO26-cls | Hailo-8L validiert | Nicht validiert | On-Chip-Softmax; HEF gibt Klassenwahrscheinlichkeiten zurück |
| YOLO26-sem | Hailo-8L validiert | Nicht validiert | Logits oder eine erstellte Multi-Class-Map auf Hailo-10/15 |
| YOLO26-depth | Hailo-8L validiert | Nicht validiert | Dichtes 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:
name | Zielbeschleuniger |
|---|---|
hailo8 | Hailo-8 |
hailo8l | Hailo-8L |
hailo10h | Hailo-10H |
hailo15h | Hailo-15H |
hailo15l | Hailo-15L |
hailo8l ist der Standard. Installiere die DFC-Generation, die zum ausgewählten Ziel passt.
Link to this sectionHailo 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, auf dem die Inferenz ausgeführt wird, und nicht für die Maschine, die den Export durchführt.
| Hardware-Familie | DFC-Generation | Typische Bereitstellungsbeispiele |
|---|---|---|
| Hailo-8 / Hailo-8L | DFC v3.x | Beschleunigermodule, Raspberry Pi AI Kit/HAT+ |
| Hailo-10H | DFC v5.x | Neuere Edge-KI- und Raspberry Pi-Bereitstellungen |
| Hailo-15H / Hailo-15L | DFC v5.x | Smart-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.
Link to this sectionKompatibilitätshinweise#
Die Hailo-Kompilierung ist hardwarespezifisch und verwendet eine feste Eingabeform. Behalte diese Einschränkungen im Kopf:
- Der ausgewählte
namemuss mit dem Bereitstellungsbeschleuniger übereinstimmen. - Kalibrierungsbilder sollten die Beleuchtung, Blickwinkel, Objekte und Hintergründe repräsentieren, die in der Produktion erwartet werden.
- Ein HEF, das mit einem
imgszkompiliert wurde, wird zur Laufzeit nicht dynamisch in der Größe änderbar. - Benutzerdefinierte Klassenanzahlen werden unterstützt, da Ultralytics die Post-Processing-Konfiguration aus den Modellmetadaten generiert.
- Erkennungsmodelle mit Standard-Ultralytics-
Detect-Heads, YOLOv8/YOLO11-Segmentierungs-, -Pose- und -OBB-Modelle, YOLOv8/YOLO11/YOLO26-Klassifizierungsmodelle 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.
Link to this sectionKalibrierung 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 aufgaben spezifischen, leichtgewichtigen Kalibrierung Datensatz, wie zum Beispiel 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: Das Kalibrieren eines Tiefenmodells mit nicht zusammenhängenden Erkennungsbildern flacht die vorhergesagte Karte ab, und größere domäneninterne Datensätze verbessern die Genauigkeit. Verweisen Sie für ein benutzerdefiniertes Computer-Vision-Modell in 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 Anteil des Datensatzes aus, der für die Kalibrierung verwendet wird. Mehr Bilder helfen nur, wenn sie die Zielumgebung repräsentieren; Bilder, die nicht zum Einsatzbereich gehören, 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.
Link to this sectionGenauigkeitserwartungen 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:
| Modell | mAP50-Erhaltung | Hinweise |
|---|---|---|
| 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 Erhaltung vergleicht beide Modelle beim selben Konfidenzschwellenwert. YOLOv8- und YOLO11-HEFs brennen den conf-Wert zum Exportzeitpunkt (Standard 0,25) in das On-Chip-NMS ein. Daher integriert eine Validierung gegen eine PyTorch-Baseline bei deren niedrigem Standard-Schwellenwert einen größeren Teil der Precision-Recall-Kurve und überbewertet 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:
| Aufgabe | Metrik (Validierungs-Split) | YOLOv8n | YOLO11n |
|---|---|---|---|
| Instanzsegmentierung | mask mAP50 Retention (COCO128-seg) | 98,0 % | 93,6 % |
| Pose | box mAP50 Retention (COCO8-pose) | 98,1 % | 90,8 % |
| Oriented bounding box | mAP50 Retention (DOTA128) | ~100% | 96,9 % |
| Klassifizierung | top-1 Retention (ImageNet val) | 92,6 % | 95,4 % |
Segmentierung, Pose und OBB wurden mit dem jeweiligen standardmäßigen In-Domain-Datensatz der Aufgabe (COCO128-seg, COCO8-pose, DOTA128) kalibriert; die Klassifizierung wurde mit ImageNet100 kalibriert. Aus diesen Standards ergeben sich zwei Einschränkungen: COCO8-pose besteht nur aus 8 Bildern, daher ist Pose als indikativ zu betrachten und es sollte ein größerer data=-Wert für die Produktion übergeben werden. DOTA8 erreicht bei mAP50 für beide Modelle nahezu 100 %, weshalb OBB auf DOTA128 gelesen wird. Klassifizierung ist zudem die einzige Aufgabe, bei der YOLO11 mehr als YOLOv8 beibehält; bei den anderen Aufgaben reagiert das YOLO11-Attention-Backbone empfindlicher auf INT8.
Aus den Gerätemessungen ergeben sich drei praktische Regeln:
- 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.
- Senke
conffür YOLO26-Bereitstellungen um etwa 0,05. Die Quantisierung verschiebt die YOLO26-Ergebnisse im Durchschnitt um etwa 0,05 nach unten, sodass ein in PyTorch optimierter Schwellenwert auf dem HEF zu einem Verlust gültiger Erkennungen führt. Die Verwendung vonconf=0.20auf dem Gerät entspricht der Anzahl der Erkennungen von PyTorch beiconf=0.25, und eine weitere leichte Senkung (auf etwaconf=0.15) gleicht die verbleibende mAP50-Lücke im Wesentlichen aus, auf Kosten von mehr Erkennungen mit geringem Konfidenzwert. Die Quantisierung sortiert zudem etwa 20 % der Erkennungen neu – ein permanenter Effekt der Reihenfolge, den kein Schwellenwert rückgängig machen kann –, aber diese Neuanordnung verhindert nicht die Wiederherstellung von mAP50 bei einem niedrigeren Schwellenwert. - Der Attention-Malus ist strukturell auf Hailo-8/8L (DFC 3.33) bedingt. Die Attention-Blöcke werden zu
matmul-Operationen kompiliert, die INT8-Aktivierungseingaben in jedem vom Compiler angebotenen Modus beibehalten; der 16-Bit-Ausgabemodus schlägt bei der Speicherzuweisung für diesen Graphen fehl, und eine Erhöhung der Präzision der umliegenden Layer hilft nicht, da die Matmul ihre Eingaben ohnehin zu INT8 requantisiert (der Schutz der Depthwise- und Output-Faltungen bei 16-Bit ließ den 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 können sich unterscheiden.
Link to this sectionExportierte Artefakte#
Der Export erstellt ein Verzeichnis mit dem bereitstellbaren HEF und Ultralytics-Metadaten:
yolo11n_hailo_model/
├── yolo11n.hef
├── metadata.yaml
└── nms_config.json*.hefist das kompilierte Modell, das von HailoRT geladen wird.metadata.yamlbewahrt Modellnamen, Aufgabe, Eingabegröße, Stride und Informationen zum Hailo-Ziel.nms_config.jsonzeichnet die generierte HailoRT-NMS-Konfiguration für YOLOv8- und YOLO11-Detektionsmodelle auf. YOLO26-Detektion und alle Nicht-Detektionsaufgaben (Segmentierung, Pose, OBB, Klassifizierung, semantisch) verwenden diese Datei nicht.
Der temporäre ONNX-Graph wird nach der Kompilierung entfernt.
Link to this sectionInferenz 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-Softwarehandbuch folgen:
sudo apt install hailo-all
hailortcli fw-control identifyKopiere das vollständige Export-Verzeichnis auf das Gerät, damit metadata.yaml neben der HEF bleibt. 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 Detektionsmodellen konvertiert das Backend automatisch YOLOv8- und YOLO11-HailoRT-NMS-Ausgaben und dekodiert YOLO26-Eins-zu-eins-Ausgaben. Es dekodiert rohe Segmentierungs-, Pose- und OBB-Tensoren, gibt auf dem Chip erzeugte Klassifizierungswahrscheinlichkeiten zurück und erstellt semantische Klassen-Maps durch Host-Reduktion auf Hailo-8/8L sowie allen Single-Class-Heads, oder durch ein On-Chip-ArgMax für Multi-Class-Hailo-10/15-Heads. TAPPAS, GStreamer und der Raspberry Pi picamera2.devices.Hailo-Helper bleiben für anwendungsspezifische Pipelines verfügbar.
Übergebe für eine GStreamer-Bereitstellung das HEF 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 ! autovideosinkLink to this sectionHailo-Bereitstellungsoptionen#
Das HEF ist dasselbe bereitstellbare Modellartefakt über mehrere Hailo-Runtime-Schnittstellen hinweg. Wähle die Schnittstelle, die zur Anwendung passt:
| Runtime-Option | Am besten geeignet für |
|---|---|
| HailoRT Python- oder C/C++ API | Benutzerdefinierte Anwendungen und direkte Steuerung der Inferenz |
Raspberry Pi picamera2.devices.Hailo | Camera Module-Projekte auf Raspberry Pi |
| GStreamer- und Hailo-Anwendungen | Echtzeit-Videostreams und mehrstufige Pipelines |
hailortcli | Geräteprüfungen, HEF-Inspektion und Benchmarking |
Behalte metadata.yaml zusammen mit der HEF bei, wenn die Anwendung Ultralytics Klassennamen, Eingabegröße, Stride oder andere Modellinformationen benötigt. Die HEF selbst ersetzt nicht die Anwendungslogik für Kameraufnahme, Visualisierung, Tracking, Warnungen oder Speicherung.
Link to this sectionÜ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.hefLeistungsmessungen 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.
Link to this sectionHailo im Vergleich zu anderen YOLO-Exportformaten#
Wähle ein Exportformat basierend auf der Hardware, auf der das Modell ausgeführt wird:
| Bereitstellungsziel | Ultralytics Exportformat |
|---|---|
| Hailo NPU | Hailo HEF (format="hailo") |
| NVIDIA GPU | TensorRT |
| Intel CPU, GPU oder NPU | OpenVINO |
| Apple Hardware | CoreML |
| Qualcomm Snapdragon NPU | QNN |
| Rockchip NPU | RKNN |
| Raspberry Pi AI Camera | Sony IMX500 |
| Portabler Cross-Runtime-Einsatz | ONNX |
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.
Link to this sectionOptimiere 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 die niedrigste feste
imgsz, die die für die Anwendung wichtigen Objekte noch 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.
Link to this sectionExport-Argumente#
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
name | str | hailo8l | Ziel-Hailo-Beschleunigerarchitektur |
imgsz | int, list | 640 | Feste Modelleingabegröße |
data | str | aufgabenspezifisch | Kalibrierungs-Dataset YAML |
fraction | float | 1.0 | Anteil der zu verwendenden Kalibrierungsbilder |
quantize | int | 8 | Hailo-Export verwendet INT8-Quantisierung |
simplify | bool | True | Vereinfache den intermediären ONNX-Graphen |
conf | float | 0.25 | YOLOv8/YOLO11 HailoRT NMS Konfidenz-Schwellenwert |
iou | float | 0.7 | YOLOv8/YOLO11 HailoRT NMS IoU-Schwellenwert |
Für den Erkennungsexport erhalten YOLOv8 und YOLO11 HailoRT NMS, während YOLO26 seine NMS-freien Eins-zu-Eins-Ausgaben behält. Segmentierung, Pose und OBB verwenden rohe Head-Tensoren, die Klassifizierung gibt chip-interne Wahrscheinlichkeiten zurück und die semantische Segmentierung gibt rohe Logits auf Hailo-8/8L sowie alle Einklassen-Heads oder integrierte Klassenkarten 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. Übergeben Sie nicht end2end; explizite Überschreibungen werden abgelehnt. Dynamische Formen, Batches größer als eins, eingebettetes Ultralytics NMS, FP16 und FP32 werden ebenfalls nicht unterstützt.
Link to this sectionFehlerbehebung beim Hailo-Export#
Link to this sectionHailo Dataflow Compiler Importfehler#
Wenn der Export meldet, dass hailo_sdk_client fehlt, installiere das DFC-Wheel für die Zielhardware-Generation in derselben Python-Umgebung wie Ultralytics. Hailo-8/8L und Hailo-10/15 erfordern unterschiedliche Compiler-Generationen.
Link to this sectionNicht unterstütztes Betriebssystem oder Architektur#
Die HEF-Kompilierung wird auf Linux x86_64 unterstützt. Exportiere über die Ultralytics Platform oder verwende eine kompatible Workstation, falls der lokale Computer macOS, Windows, Raspberry Pi oder ein anderes ARM-System ist.
Link to this sectionExport 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.
Link to this sectionGenauigkeitsverlust beim quantisierten Modell#
Verwende Kalibrierungsbilder, die den Produktions-Inputs ähneln und die wichtigen Objekte, Skalierungen, Lichtverhältnisse und Hintergründe enthalten. Vergleiche vor dem Deployment das ursprüngliche PyTorch-Modell und den exportierten HEF auf demselben Validierungsset. Eine moderate, familienabhängige Lücke bleibt auch bei guter Kalibrierung bestehen; siehe Genauigkeitserwartungen nach Modellfamilie für die gemessenen Baselines.
Link to this sectionHEF lädt nicht auf dem Gerät#
Bestätige, dass der name zur physischen Hailo-Architektur passt und dass Gerätetreiber, Firmware und HailoRT-Pakete gegenseitig kompatibel sind. Untersuche das Artefakt mit hailortcli parse-hef und verifiziere den Beschleuniger mit hailortcli fw-control identify.
Link to this sectionAusgabeparsing sieht inkorrekt aus#
Bewahre metadata.yaml neben der HEF auf, damit Ultralytics den passenden Post-Processing-Pfad für YOLOv8, YOLO11 oder YOLO26 auswählen kann. Benutzerdefinierte HailoRT-Anwendungen müssen das Post-Processing ebenfalls auf die exportierte Modellfamilie abstimmen.
Link to this sectionFAQ#
Link to this sectionKann ich eine HEF auf einem Raspberry Pi kompilieren?#
Nein. Führe den DFC auf einem unterstützten Linux x86_64-System aus und stelle die resultierende HEF auf dem Raspberry Pi bereit.
Link to this sectionBenötige ich eine NVIDIA GPU?#
Eine unterstützte GPU reduziert die DFC-Optimierungszeit erheblich. CPU-Kompilierung ist möglich, kann aber wesentlich länger dauern.
Link to this sectionWelche YOLO-Modelle unterstützen den Hailo-Export?#
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.
Link to this sectionKann ich ein benutzerdefiniertes YOLO-Modell exportieren?#
Ja. Verwende denselben format="hailo"-Befehl mit den benutzerdefinierten .pt-Gewichten und übergebe das Trainings-Dataset YAML via data für eine repräsentative INT8-Kalibrierung. Klassennamen und Klassenanzahl werden aus den Modellmetadaten gelesen.
Link to this sectionUnterstützt der Hailo-Export dynamische Bildgrößen?#
Nein. Der DFC kompiliert eine feste Eingabeform in die HEF. Wähle imgsz während des Exports so, dass es der Auflösung entspricht, die von der Bereitstellungspipeline verwendet wird.
Link to this sectionWarum erzeugt YOLO26 andere Hailo-Ausgaben?#
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.
Link to this sectionWas ist der Unterschied zwischen dem DFC und HailoRT?#
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.
Link to this sectionSoll ich die ONNX- oder HEF-Datei bereitstellen?#
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.
Link to this sectionWo erhalte ich den Hailo DFC?#
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.
Link to this sectionZusammenfassung#
Der Ultralytics Hailo-Export bietet einen direkten Weg von einem trainierten YOLO-Modell zu einem einsetzbaren HEF:
- 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.
- Exportiere mit
format="hailo"und wähle die Zielarchitektur. - Kalibriere und kompiliere lokal mit dem passenden DFC oder nutze den verwalteten Export in der Ultralytics Platform.
- Kopiere die HEF und
metadata.yamlauf das Hailo-basierte Edge-Gerät. - Führe die Inferenz mit HailoRT, Raspberry Pi Picamera2 oder einer GStreamer-Videopipeline aus.
Für andere Computer Vision-Bereitstellungsziele siehe Export mode, Benchmark mode und die Integrationsanleitung. Verwandte Hardware-Anleitungen beinhalten ONNX, OpenVINO, TensorRT, NCNN, RKNN, Sony IMX500 und Qualcomm QNN.