OpenCV 4.0.0编译并通过inter引擎优化流程

 

opencv4.0.0发布,并且可以通过OpenVINO进行intel引擎优化,提高处理速度

所用到的库有:

1:opencv 4.0.0

2:Opencv_contrib

3:ippicv_2019_lnx_intel64_general_20180723.tgz

4:l_openvino_toolkit_fpga_p_2018.4.420_online 我上传了我这次用的:https://download.csdn.net/download/peng825223208/10866643

5:安装一个3.9以上版本的cmake,opencv官网还是openvino官网标注需要。

1和2可以上github上下载,要下载对应版本,否则编译的时候会报错误。

3可以再cmake编译的时候,出现下载错误时,去当时的build目录下的build/CMakeDownloadLog.txt这个文件中找到对应的版本,wget下载下来。

4可以再openvino官网下载,要opencv3.4.2以上的版本才能用这个包,版本再低一些的opencv用的是l_deeplearning_deploymenttoolkit_2017.1.0.5855.tgz这个包,如果你用的是opencv3.4.2版本以上这里可以忽略。

步骤:

1:先安装 Intel’s Deep Learning Inference Engine Backend

先执行下source /opt/intel/computer_vision_sdk/bin/setupvars.sh 设置下环境变量,否则的话cmake出来时,inference engine的地方为NO。

下载所要使用的包:

解压:tar -xvzf l_openvino_toolkit_fpga_p_2018.4.420_online

cd l_openvino_toolkit_fpga_p_2018.4.420_online

安装:./install.sh --user-mode

该步骤的作用是生成MKL相关文件和引擎优化的一些动态库,完成后,将会安装在⽬录 $HOME/intel/deeplearning_deploymenttoolkit 下。    

2:手动下载ipp包,不知道自己对应版本的可以看上面的步骤去build/CMakeDownloadLog.txt这个里面找

wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz

替换掉:

cp ippicv_2019_lnx_intel64_general_20180723.tgz opencv/.cache/ippicv/c0bd78adb4156bbf552c1dfe90599607-ippicv_2019_lnx_intel64_general_20180723.tgz

3:下载opencv和opencv_contrib

我的cmake命令为:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$HOME/workspace/user/bin-DWITH_INF_ENGINE=ON -DINTEL_CVSDK_DIR=$HOME/intel/computer_vision_sdk_2018.4.420/deployment_tools -DIE_PLUGINS_PATH=$HOME/intel/computer_vision_sdk_2018.4.420/deployment_tools/inference_engine/lib/centos_7.3/intel64/ -DOPENCV_EXTRA_MODULES_PATH=$HOME/workspace/opencvcompile/opencv_contrib/modules/ -DENABLE_CXX11=ON -DBUILD_opencv_legacy=ON -DBUILD_opencv_contib=ON -DWITH_TBB=ON -DWITH_IPP=ON -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_opencv_gpu=OFF -DBUILD_opencv_stitching=OFF -DBUILD_opencv_xfeatures2d=OFF -DBUILD_opencv_face=OFF -DBUILD_opencv_java=OFF ..

 

 

遇到的两个错误:

1:I0117 13:16:12.852217  3022 thread-process.cc:463] [ERROR] obj=predict-handler  requestId=4fced3153c162e33e414296b143fa72f    event=exception    msg=OpenCV(4.0.0) /workspace/opencvcompile/opencv/modules/dnn/src/op_inf_engine.cpp:533: error: (-215:Assertion failed) Failed to initialize Inference Engine backend: Unsupported primitive of type: Resample name: upsample_97 in function 'initPlugin'

解决办法:

source /opt/intel/computer_vision_sdk/bin/setupvars.sh

2:op_inf_engine.cpp:533: error: (-215:Assertion failed) Failed to initialize Inference Engine backend: The output blob size is not equal to the network output size: got 3 expecting 4 in function 'initPlugin'

解决办法:

该问题时多线程导致的,在第一次调用forward时,加锁。

你可能感兴趣的:(C/C++相关,openCV相关)