I have been trying for a few weeks now to work towards an edge application involving a hailo 8 on an rpi5 that will serve as a proof of concept that I can scale.
I am happy with setting everything up on the pi, and I can run inference with my custom trained models but I’m getting almost nothing detected (I had a single low confidence detection of 1 of my 5 classes once…) so I don’t think my models are converted correctly so have a few questions.
Firstly, is there ant recommended best practice with onnx conversion? I’m using opset=11 and stating my input size of 1080P to ensure it sticks, but would love to know if there is anything else that would help at this stage.
Next, I’ve used hailomz compile for my conversion so far as it seems easier than all the separate dfc steps, but is this recommended? I’ve used:
hailomz compile yolov8s --ckpt=./models/parts.onnx --hw-arch hailo8 --classes 5 --calib-path ./data/train/parts/images
I’ve read about specifically stating the input and output nodes in other posts so i’ll do that next time i compile, but is there anything else about my approach that would cause almost zero detection capability. I used ~100 calibration images which were taken as a sample from my original training dataset.
Finally (for now), I had a few issues with hailomz compile around batch sizes, I assume because of the large image resolution. My training pc has an RTX4090 with 24gb of ram so i assumed it would be up to the task, but i occasionally got errors messages that said the GPU memory was full and I should use a smaller batch size. How should I avoid this moving forward? Can i manually state a smaller batch size or is there something else I can do about this?
Sorry this post is quite broad, but I really need help with this and have been living and breathing the troubleshooting foor a while now so would love some expert guidance.
Thanks!