Deep learning on Raspberry Pi Squeezenet example unable to find opencv library
조회 수: 2 (최근 30일)
이전 댓글 표시
I'm trying to execute this example: https://www.mathworks.com/help/coder/ug/code-generation-for-deep-learning-on-raspberry-pi.html and deploy it on a Raspberry Pi 3 Model B on which i have installed the Raspbian image provided by Mathworks. I followed the setup instructions to write the SD card with the Raspbian image. I connected the Raspberry Pi directly to the PC.
I have succesfully installed the ARM COMPUTE Library and correctly set-up the path on the Raspberry. I tried to do the same with opencv library: in this case I installed the library version 4.2.0 since the installation of the previous versions (3.1.0 and 3.2.0) failed. Also in this case I tried to set-up the path as specified here: https://www.mathworks.com/matlabcentral/answers/455591-matlab-coder-how-do-i-setup-the-environment-variables-on-arm-targets-to-point-to-the-arm-compute-li but probably I'm doing something wrong because I'm obtaining this error:
Error executing command "touch -c /home/pi/remoteBuildDir/MATLAB_ws/R2019b/C/Users/matte/Documents/MATLAB/Examples/R2019b/deeplearning_shared/CodeGenerationForDeepLearningOnRaspberryPiExample/codegen/exe/squeezenet_raspi_predict/*.*;make -f squeezenet_raspi_predict_rtw.mk all MATLAB_WORKSPACE="/home/pi/remoteBuildDir/MATLAB_ws/R2019b" -C /home/pi/remoteBuildDir/MATLAB_ws/R2019b/C/Users/matte/Documents/MATLAB/Examples/R2019b/deeplearning_shared/CodeGenerationForDeepLearningOnRaspberryPiExample/codegen/exe/squeezenet_raspi_predict". Details:
STDERR: /home/pi/remoteBuildDir/MATLAB_ws/R2019b/C/Users/matte/Documents/MATLAB/Examples/R2019b/deeplearning_shared/CodeGenerationForDeepLearningOnRaspberryPiExample/main_squeezenet_raspi.cpp:9:31: fatal error: /opencv2/opencv.hpp: No such file or directory
#include "/opencv2/opencv.hpp"
^
compilation terminated.
make: *** [main_squeezenet_raspi.cpp.o] Error 1
Has anyone had this problem? How did you solve?
Thank you.
댓글 수: 0
채택된 답변
Hariprasad Ravishankar
2020년 3월 9일
Hi Matteo,
It is likely that the compiler is unable to find the headers for opencv.
You can add the include path to opecv by using coder.updateBuildInfo as follows.
If opencv is installed under ~/opencv3.4 , you may include coder.updateBuildInfo('addIncludePaths', '~/opencv3.4/include')
function out = squeezenet_raspi_predict(in)
%#codegen
% A persistent object mynet is used to load the DAGNetwork object.
% At the first call to this function, the persistent object is constructed and
% set up. When the function is called subsequent times, the same object is reused
% to call predict on inputs, avoiding reconstructing and reloading the
% network object.
persistent net;
opencv_linkflags = '`pkg-config --cflags --libs opencv`';
coder.updateBuildInfo('addLinkFlags',opencv_linkflags);
coder.updateBuildInfo('addIncludePaths', '~/opencv3.4/include');
if isempty(net)
net = coder.loadDeepLearningNetwork('squeezenet', 'squeezenet');
end
out = net.predict(in);
end
Hari
댓글 수: 0
추가 답변 (1개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!