kendryte / kendryte-freertos-sdk

This project is no longer maintained Not recommended for product development.
Apache License 2.0
201 stars 68 forks source link

FreeRTOS not possible to load models kmodel #71

Open c4esp opened 2 years ago

c4esp commented 2 years ago

BUG REPORT

Hi friend, @sunnycase

Expected behavior

Load yolo.kmodel in FreeRTOS with function kpu_model_load_from_buffer It seems to be that in standalone it is possible with function: INCBIN(model, "yolo.kmodel"); kpu_model_context_t task; kpu_load_kmodel(&task, model_data)

But this functions are not supported in FreeRTOS, so do you know what is the problem?

Thanks in advance.

Actual behavior

It is possible to load detect.kmodel with: INCBIN(model, "../src/kfpkg_face_detect/detect.kmodel"); uint8_t *model_data_align = model_data; model_context = kpu_model_load_from_buffer(model_data_align);

But when I try to load yolo model or other models from: INCBIN(model, "../src/kfpkg_20class/yolo.kmodel"); INCBIN(model, "../src/kfpkg_fast_facedetect/slim-320.kmodel"); INCBIN(model, "../src/kfpkg_iris/iris.kmodel"); INCBIN(model, "../src/kfpkg_ulffd_landmark/ulffd_landmark.kmodel"); INCBIN(model, "../src/kfpkg_yolox/yolox_nano_224.kmodel");

I received in runtime the following error when try to load model with kpu_model_load_from_buffer function: terminate called after throwing an instance of 'std::runtime_error'
what(): Cannot load kmodel.
W (685254006) SYSCALL: sys_exit called with 0x1

So, if it is not possible to run kmodel, why do you implement s FreeRTOS SDK? How do you implement detect.kmodel? Are there any documents?

Document version

SDK: https://github.com/kendryte/kendryte-freertos-sdk

Toolchain: https://github.com/kendryte/kendryte-gnu-toolchain

Hardware

Sipeed maix bit with microphone

System

Windows 10 PlatformIO