Hailo HEF-modelconversiehandleiding
Bereid een ONNX-model, kalibratiedata en een doelgebonden Hailo HEF voor Hailo-8 of Hailo-10H voor.
In deze handleiding wordt de ontwikkelworkflow beschreven voor het omzetten van een CV-model naar een
Hailo Executable File (.hef) voor reComputer R Series (CM5 + Hailo-8) of
reComputer R Series (CM5 + Hailo-10H).
Een
.hefis doelgebonden. Gebruik een Hailo-8 HEF niet op een Hailo-10H, en een Hailo-10H HEF niet op een Hailo-8. Bouw, valideer, label en publiceer elk doel als een apart artefact.
Voordat u begint
Modelconversie is iets anders dan runtime-inferentie:
- HailoRT voert een bestaande HEF uit op het apparaat; het converteert geen ONNX.
- De Hailo Dataflow Compiler (DFC) voert parsing, optimalisatie, kwantisering en HEF-compilatie uit.
- Voer DFC uit op de ondersteunde ontwikkelhost-omgeving die door Hailo wordt geleverd, niet op het Raspberry Pi-implementatieapparaat.
Zorg dat u het volgende voorbereidt voordat u met de conversie begint:
- Een ONNX-model met vaste vorm en een expliciete invoerlay-out/kleurvolgorde.
- Een representatieve set kalibratieafbeeldingen die overeenkomt met de productiedata.
- Vereisten voor nabewerking: klasselijst, ankers, drempelwaarden, NMS-modus, keypoint-indeling, mask-decodering en eventuele bewerkingen aan de hostzijde.
- De DFC- en Model Zoo-release die het beoogde hardwareplatform ondersteunt.
De huidige master-branch van Hailo's Model Zoo is gericht op Hailo-10/15-apparaten. Voor
Hailo-8 of Hailo-8L gebruikt u een compatibele Model Zoo v2.x-release samen met de
bijbehorende DFC-release. Gebruik master niet om een Hailo-8-model te compileren.
1. Installeer de officiële ontwikkelomgeving
Installeer de Hailo Software Suite of Dataflow Compiler uit de Hailo Developer Zone en activeer vervolgens de Python-omgeving die bij die installatie wordt geleverd. De DFC wordt niet geïnstalleerd op het Raspberry Pi-implementatieapparaat.
Clone de officiële Model Zoo en selecteer een release die compatibel is met uw DFC en doelplatform. Vervang de tag-placeholder door de release die is gedocumenteerd in de door u geïnstalleerde Hailo Software Suite.
Hailo-10H
git clone https://github.com/hailo-ai/hailo_model_zoo.git
cd hailo_model_zoo
git checkout <compatible-hailo10h-release>
pip install -e .Hailo-8
git clone https://github.com/hailo-ai/hailo_model_zoo.git
cd hailo_model_zoo
git checkout <compatible-v2.x-release>
pip install -e .Controleer of de CLI beschikbaar is:
hailomz --version
hailomz info <model_name>2. Compileer een officieel Model Zoo-netwerk
Voor een netwerk dat al door Hailo Model Zoo wordt aangeboden, voert compile de vereiste
parseer- en optimalisatiefasen uit en produceert het de HEF:
# Hailo-8: run this from a compatible Model Zoo v2.x environment
hailomz compile <model_name> --hw-arch hailo8
# Hailo-10H: run this from a compatible Hailo-10H environment
hailomz compile <model_name> --hw-arch hailo10hAls u de fasen afzonderlijk wilt inspecteren, biedt de officiële CLI ook:
hailomz parse <model_name> --hw-arch <hailo8-or-hailo10h>
hailomz optimize <model_name> --hw-arch <hailo8-or-hailo10h>
hailomz compile <model_name> --hw-arch <hailo8-or-hailo10h>De netwerknaam, kalibratiedataset, voorbewerking, nabewerking en het modelscript komen uit de YAML- en ALLS-bestanden van dat netwerk in de Model Zoo. Bekijk ze voordat u de gegenereerde HEF accepteert.
3. Uitgewerkt voorbeeld: Converteer YOLO11n
Hailo biedt officieel de yolov11n Model Zoo-configuratie aan. De v2.19.0-
configuratie ondersteunt Hailo-8/Hailo-8L, terwijl de huidige Hailo-10H Model Zoo-
configuratie Hailo-10H ondersteunt. Gebruik de omgeving en branch die bij uw
doelplatform passen.
Compileer Hailo's voorgetrainde YOLO11n
De Model Zoo downloadt het gerefereerde checkpoint en past de onderhouden YAML-, parserknooppunten, modelscript, kalibratiestroom en NMS-configuratie toe:
# In a Hailo-8-compatible Model Zoo v2.x environment
hailomz info yolov11n
hailomz compile yolov11n --hw-arch hailo8# In a Hailo-10H-compatible Model Zoo environment
hailomz info yolov11n
hailomz compile yolov11n --hw-arch hailo10hDe opdracht toont het gegenereerde HEF-pad wanneer de compilatie is voltooid.
Compileer uw eigen getrainde YOLO11n
Exporteer eerst het Ultralytics-trainingscheckpoint naar een vast ONNX-model van 640 pixels. Voer deze stap uit in de trainingsomgeving, niet in de DFC-omgeving, tenzij hun Python-vereisten compatibel zijn.
pip install ultralytics
yolo export model=/path/to/best.pt format=onnx imgsz=640Valideer de geëxporteerde ONNX vóór kwantisering:
yolo predict model=/path/to/best.onnx source=/path/to/test.jpgActiveer vervolgens de overeenkomstige Hailo DFC/Model Zoo-omgeving. Stel het doelplatform en het aantal klassen voor uw getrainde dataset in en compileer met de YOLO11n-netwerk- configuratie van Hailo:
# Use hailo8 in a compatible v2.x environment, or hailo10h in its matching environment.
TARGET_ARCH=hailo10h
NUM_CLASSES=3
hailomz compile \
--ckpt /path/to/best.onnx \
--calib-path /path/to/calibration/images \
--yaml hailo_model_zoo/cfg/networks/yolov11n.yaml \
--classes "$NUM_CLASSES" \
--hw-arch "$TARGET_ARCH"Gebruik representatieve .jpg-, .jpeg- of .png-afbeeldingen in de kalibratie-
directory. Als de training meer heeft veranderd dan gewichten en het aantal klassen, bijvoorbeeld
de invoerresolutie, de detectiehead, laagnamen of de uitvoerindeling, zijn de standaard
YOLO11n YAML- en ALLS-bestanden mogelijk niet langer van toepassing. Werk die bestanden bij en valideer ze
in plaats van de opdracht te forceren.
Kopieer ten slotte de HEF naar het doelapparaat en controleer of deze wordt uitgevoerd:
scp /path/to/yolov11n.hef seeed@<BOARD_IP>:~/
ssh seeed@<BOARD_IP>
hailortcli fw-control identify
hailortcli benchmark ~/yolov11n.hefDe applicatie moet dezelfde invoervoorbewerking, klasselabels en YOLO11 NMS-/uitvoercontract gebruiken die tijdens de compilatie zijn gebruikt. Een geslaagde benchmark valideert op zichzelf niet de decodering van de bounding box.
4. Compileer een ander ondersteund aangepast ONNX-checkpoint
De officiële trainingshandleidingen van Hailo gebruiken het volgende Model Zoo-formulier wanneer een aangepast ONNX-model overeenkomt met een bestaande Model Zoo-netwerkdefinitie:
hailomz compile \
--ckpt /path/to/model.onnx \
--calib-path /path/to/calibration/images \
--yaml /path/to/hailo_model_zoo/cfg/networks/<network>.yaml \
--hw-arch <hailo8-or-hailo10h>Voeg alleen parserknooppuntoverschrijvingen toe wanneer de officiële handleiding van het model of een geverifieerde Netron-inspectie dit vereist:
hailomz compile \
--ckpt /path/to/model.onnx \
--calib-path /path/to/calibration/images \
--yaml /path/to/<network>.yaml \
--start-node-names <input_node> \
--end-node-names <output_node_1> <output_node_2> \
--hw-arch <hailo8-or-hailo10h>Gebruik voor een volledig nieuwe architectuur waarvoor geen overeenkomende Model Zoo YAML- en
ALLS-configuratie bestaat, de Dataflow Compiler-workflow uit de DFC User
Guide. Een generieke opdracht hailomz compile kan niet automatisch de juiste eind-
knooppunten, voorbewerking, kwantisering of nabewerking bepalen.
5. Conversieworkflow
- Exporteer en valideer ONNX. Leg de invoergrootte en voorbewerking vast. Controleer het ONNX-model met een testafbeelding aan de hostzijde voordat u compileert.
- Kies het hardwareplatform. Maak afzonderlijke conversiewerkruimten voor Hailo-8 en Hailo-10H. Houd de bron-ONNX en kalibratiedata traceerbaar.
- Parseer het netwerk. Gebruik de DFC-parser om de tussenliggende netwerkrepresentatie te produceren en inspecteer alle in- en uitvoertensornamen en -vormen.
- Configureer voor- en nabewerking. Gebruik bij voorkeur de overeenkomstige Hailo Model Zoo-netwerkconfiguratie wanneer deze beschikbaar is. Leg elke aangepaste normalisatie, resize, anker-, NMS- en uitvoerdecodeerbeslissing vast in de model- README.
- Optimaliseer met kalibratiedata. Voer kwantisering uit met representatieve afbeeldingen. Inspecteer waarschuwingen en nauwkeurigheidsresultaten voordat u compileert.
- Compileer de HEF. Compileer afzonderlijk voor het geselecteerde doelplatform en geef
artefacten ondubbelzinnige namen, bijvoorbeeld
model_hailo8.hefenmodel_hailo10h.hef. - Valideer op hardware. Voer de HEF uit met de overeenkomende HailoRT-release,
vergelijk uitvoertensoren en nagebewerkte resultaten met de hostreferentie
en controleer of
/dev/hailo0beschikbaar is.
6. Valideer de HEF
Kopieer de gegenereerde HEF naar hardware met de bijbehorende accelerator en HailoRT‑release, identificeer het apparaat en voer het officiële benchmarkcommando uit:
release, then identify the device and run the official benchmark command:
hailortcli fw-control identify
hailortcli benchmark /path/to/model.hef7. Releasechecklist voor Hailo‑8 en Hailo‑10H
| Controle | Hailo‑8 | Hailo‑10H |
|---|---|---|
| HEF‑doel | Hailo‑8 | Hailo‑10H |
| Runtime | Komt overeen met de HailoRT 4.x‑release op het apparaat | Komt overeen met de HailoRT 5.x‑release op het apparaat |
| Container‑mount | Overeenkomende libhailort.so.4.x | Overeenkomende libhailort.so.5.x |
| Validatie | hailortcli fw-control identify en service‑inferentie | hailortcli fw-control identify en service‑inferentie |
8. Publiceren en implementeren
Voor elk nieuw modeldoel:
-
Voeg de HEF, bronmodule, Dockerfile, demomedia en geteste commando’s toe aan de betreffende Hailo CV‑repository.
-
Bouw en test de GHCR‑image op de fysieke doelhardware.
-
Voeg de bijbehorende AI Lab‑modelimplementatie‑entry en platformspecifieke wiki toe.
-
Voeg de pakket‑URL toe aan
downloadSourceszodat de downloadtotalen van het model kunnen worden weergegeven.Nadat de HEF is gevalideerd, volg je de aparte pagina Hailo‑8 CV‑modelimplementatie of Hailo‑10H CV‑modelimplementatie in deze sectie voor de volledige procedure: apparaatcontroles, image pull, Docker‑run‑opdracht en voorbeeldweergave in de browser.
Officiële referenties:
-
Ultralytics ONNX‑exportgids Official references: