Hey @roman.karpenko ,
Welcome to the Hailo Community!
It seems like you’re encountering an NMSConfigPostprocessException related to the YOLOv8s/conv41 layer, where the error indicates that the layer doesn’t have exactly one output layer. This issue can occur due to changes in ONNX model structure, incompatibility between versions of tools, or an issue in the model parsing process.
Here are some steps to help you resolve the issue:
1. Verify the ONNX Model Structure Using Netron
- Use Netron (https://netron.app) to visualize the structure of your ONNX model.
- Look for the
yolov8s/conv41layer and confirm how many outputs it has.- If there are multiple outputs, it may indicate a change in the model structure.
- Make sure the end nodes specified in your command align with the ONNX model structure.
2. Check for Model Zoo and SDK Compatibility
You mentioned you’re using Model Zoo 2.12 and Data Compiler 3.28. Ensure the versions are compatible by checking the release notes for both tools.
- Try updating to the latest versions of both the Hailo Model Zoo and the SDK to rule out any version incompatibility.
3. Modify Your Parsing Command
Try re-running your parsing command with simplified node names. Ensure that the end node names are accurate based on your Netron inspection.
hailomz parse --hw-arch hailo8l --ckpt yolov8s.onnx yolov8s
Alternatively, ensure the --start-node-names and --end-node-names are correctly set, with accurate paths to the layers identified in Netron.
4. Use a Fresh Conversion Process
Since the model worked previously, it’s possible that the conversion or the ONNX model export has changed. Try re-exporting the model with:
yolo export model=path_to_yolov8.pt format=onnx
After re-exporting, re-run the parsing and optimization steps using the same commands you used earlier.
5. Bypass NMS Post-Processing for Debugging
As a workaround, you can try disabling Hailo NMS post-processing to isolate the issue. If your model requires post-processing, you can apply NMS manually after inference.
Here’s how you can modify your optimization or compile command to skip Hailo’s built-in NMS:
hailomz compile --hw-arch hailo8l --model-script your_model_script --no-nms
6. Use Debugging Logs for More Insight
Enable verbose logging to get more details about the error:
export HAILORT_LOG_LEVEL=debug
Then, re-run the process to capture more detailed logs and identify the specific issue with conv41.
Let me know if these steps help, or if the issue persists, I can assist further!
Best Regards,
Omri