quic / sample-apps-for-robotics-platforms

Other
121 stars 50 forks source link

Segmentation fault when included header file from snpe sdk #87

Closed Imshepherd closed 1 year ago

Imshepherd commented 1 year ago

We tried to build the application from "/sample-apps-for-robotics-platforms/RB5/linux_kernel_5_x/AI-ML-apps/AI_Vision_Solutions." We used the command of "adb push" and push the lib from snpe/2.13.0.230730 from the host system, which is an ubuntu 20.04 system, to the device of "RB5".

We were success to run the ".dlc" model in the device "RB5" by the command of "snpe-net-run". It is also success to compile the application of "sample-apps-for-robotics-platforms/RB5/linux_kernel_5_x/AI-ML-apps/AI_Vision_Solutions/" according to "sample-apps-for-robotics-platforms/RB5/linux_kernel_5_x/AI-ML-apps/AI_Vision_Solutions/docs/Build.md".

However, when we use the command "./out/main -c ../data/config.json", the terminal reported a Segmentation fault. It might due to the header file in "snpe/2.13.0.230730/include/zdl/DlSystem/DlError.hpp" and "snpe/2.13.0.230730/include/zdl/DlSystem/DlError.h" by using "gdb" to debug.

For example, in DlError.hpp file, inline const char* getLastInfoString(){ return Snpe_ErrorCode_getLastInfoString(); } We first skipped the issue of Segmentation fault by skipping the report from getLastInfoString. We faced an other issue. By the reporting "[ERROR] - Initialize: Can't init snpetask instance.", we cannot also initialize the snpetask from ".dlc" despite we were success to run the ".dlc" model using "snpe-net-run".

Please Help. Thank you for your prompt reply.

Imshepherd commented 1 year ago

We now success to run the "./out/main -c ../data/config.json" and the result of DL was outputed to the monitor.

We solved the issue which return a segmentation fault. It caused by the wrong configuration of "../data/config.json" for the command of "./out/main -c ../data/config.json". The "output-tensors" must be aligned with "output-layers" for the configuration. Otherwise, the model will not be initialized.

However, there is no error message about what is going wrong about the model initiation. Maybe there should be an error message for the wrong initiation of model.