Qengineering / YoloV8-ncnn-Raspberry-Pi-4

YoloV8 for a bare Raspberry Pi 4 or 5
https://qengineering.eu/deep-learning-examples-on-raspberry-32-64-os.html
BSD 3-Clause "New" or "Revised" License
107 stars 7 forks source link

Convert your own custom trained model to ncnn. #5

Closed programmeddeath1 closed 1 year ago

programmeddeath1 commented 1 year ago

How to convert your own custom ttrained yolov8 models to ncnn? What would be the process steps required to achieve this? Thank you for your help in advance!

Qengineering commented 1 year ago

@programmeddeath1,

Please follow the steps at: https://github.com/FeiGeChuanShu/ncnn-android-yolov8 and https://github.com/FeiGeChuanShu/ncnn-android-yolov8/issues/8

programmeddeath1 commented 1 year ago

Thank you! Do you also know if its possible to use NPU with ncnn and whether we can enable ncnn to use the rknn npu hardware for R3588 and other models?

programmeddeath1 commented 1 year ago

@programmeddeath1,

Please follow the steps at: https://github.com/FeiGeChuanShu/ncnn-android-yolov8 and FeiGeChuanShu/ncnn-android-yolov8#8

I converted my model and tried to run using the same code it fails with segmentation fault at output extraction

find_blob_index_by_name output failed
Try
    ex.extract("output0", out0);
Segmentation fault

I am training the model on 6 classes instead of the 80 default. I have changed the class names and the param and bin files. Is there anything else I would need to change to run inference?

Qengineering commented 1 year ago

@programmeddeath1,

About your first question; no, unfortunately, ncnn does not support any NPU. In fact there not one popular framework supporting the RK3588. You have to use the RKNPU framework and the supporting Toolkit

About your porting issue. I'm not in the position to debug your model, nor do I have any time. Please use Netron to see topology of your model and its output naming. For a distance, it looks a naming issue.

programmeddeath1 commented 1 year ago

Hi thank you for your response and guidance! I will debug it and see it in detail, I will just need some help to point me in the right direction as I'm new to this domain application. I will check the topology and output format and try once.