I am in the process of converting several models to the HEF format for the Hailo-8L architecture and have run into some technical challenges. I would appreciate any clarification or suggestions you might have regarding these issues.
Here are the details of my environment:
-
Hailo Dataflow Compiler version 3.33.0
-
ONNX version 1.16.0
-
NumPy version 1.26.4
-
Ubuntu 24 running under WSL2
-
No GPU
1. Parsing Problems with DETR and yolo26l-pose
I have tried converting these two models:
-
DETR (Roboflow object detection for IR)
-
yolo26l-pose
Both fail during the parsing phase when executing hailo parser onnx. The error isn’t just a generic “list index out of range”—it specifically originates within the ONNX translator during the creation of a Tile layer:
File “…/onnx_translator.py”, line 1371, in _create_tile_layer
axis, repeats = filtered_repeats\[0\]
IndexError: list index out of range
According to the stack trace, this failure occurs inside these functions:
-
_create_tile_layer
-
_layer_callback_from_vertex
-
_add_direct_layers
-
convert_model()
So, my question is:
- Is it currently feasible to convert DETR and yolo26l-pose to the HEF format for the Hailo-8L?
2. Compilation Failures with yolo11l-pose, yolo11m-pose, and yolov8m-pose
The following models:
-
yolo11l-pose
-
yolo11m-pose
-
yolov8m-pose
successfully complete the parsing and optimization stages. However, compilation then fails, returning errors such as “No valid partition found”, “Mapping Failed”.
This occurs during the allocation or mapping phase, despite several attempts at optimization beforehand.
Conversion process used:
-
Exported the model from Ultralytics to ONNX format (opset version 12, image size set at 640 by 640 pixels).
-
Parsed the ONNX file using the following command:
hailo parser onnx --hw-arch hailo8l
- Performed optimization with hailo optimize utilising a calibration dataset derived from COCO:
-
Dataset contained 1500 images
-
Images were resized to 640 by 640 pixels
-
No normalization to the 0–1 range was applied
- Compiled the model using:
hailo compiler --hw-arch hailo8l
The model script used included the line:
performance_param(compiler_optimization_level=max)
Despite following these steps, compilation repeatedly fails with errors related to partitioning or allocation.
I have a few questions regarding this:
-
Is there a preprocessing step specific to YOLO pose models on the Hailo-8L platform that I might have overlooked?
-
Or a problem within my current conversion process.
-
Given that yolov8m-pose is listed in the Model Explorer for Hailo-8L, does the version available there differ structurally from a standard Ultralytics export in a way that must be accounted for prior to compilation, and could this difference explain the issues I am encountering?