OpenVINO™ Toolkit——OpenCV与contrib模块编译安装以及CMake链接
文章目录
- OpenVINO™ Toolkit——OpenCV与contrib模块编译安装以及CMake链接
- 下载
- cmake-gui配置
- 编译
- CMake链接
- 指定OpenCV及InferEngine路径
由于OpenVINO 2018 R2及后续版本都自带了OpenCV,在开发时不做特殊说明,都会默认链接OpenVINO自带的OpenCV。然而其自带的OpenCV并不包含Contrib模块,如果需要同时使用OpenCV-contrib模块时,就需要自己手动编译Opencv源码并指定依赖。
本文也将Ubuntu下OpenCV及其contrib模块的安装与简单链接流程详细地记录下来。
下载
gitee镜像 (推荐):
需注意:
- 下载的OpenCV与contrib模块的版本需要严格对应(否则编译源码时会报错)
- OpenCV需要下载带OpenVINO后缀的版本
- 下载对应的ZIP文件
未装过OpenCV的同学,运行如下命令安装相关依赖项:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
cmake-gui配置
由于安装opencv的openvino版本有很多配置选项,因此推荐使用cmake-gui配置
若没有cmake-gui
运行如下命令安装cmake-gui:
sudo apt-get install cmake-qt-gui
在下载opencv库的源码路径(最外层CMakeLists.txt所在位置)新建build文件夹,然后在该处打开cmake-gui
cmake-gui .
- 编译路径(Where to build the binaries) 选择build文件夹
- generater默认即可
- OpenCV-contrib模块配置: 将OPENCV_EXTRA_MODULES_PATH设为OpenCV-contrib中modules文件夹的路径。
- 针对opencv-openvino,需要把
WITH_INF_ENGINE
的InferenceEngine核心选项勾上 - 配置了
WITH_INF_ENGINE
后,会出现下列关键配置选项: - 务必按上述图片配置,否则可能会出现编译报错,或查找、链接不到InferenceEngine及其依赖项ngraph的情况
- 点击Configure配置,直至没有像上面的红色选项出现为止;然后再点击Generrate
编译
在配置好的build路径:
#检测电脑的核心数并减去1赋值给core
core="$(nproc)" && ((core=$core-1))
#以比核心数1的线程数去编译
make -j$core
#安装编译出来的库至/usr/local/bin中
sudo make install
本人电脑是8核的,因此这里编译时设置为7个线程同时编译-j7
,以加快编译速度
CMake链接
cmake_minimum_required(VERSION 3.10)
project(project_name)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
SET(CMAKE_CXX_COMPILER /usr/bin/g++)
set(CMAKE_BUILD_TYPE debug)
# 查找必要的依赖包
find_package(OpenCV 4 REQUIRED)
find_package(InferenceEngine REQUIRED)
find_package(ngraph REQUIRED)
#目标链接Opencv库和OpenVINO
target_link_libraries(target_name
${OpenCV_LIBS}
${InferenceEngine_LIBRARIES}
)
指定OpenCV及InferEngine路径
如果装了openvino,cmake会默认链接openvino自带的opencv,若需要使用contrib模块,则需在CMakeLists.txt手动设置OpenCV_DIR为编译库的路径:
set(OpenCV_DIR "<Source_DIR>/opencv-4.5.3-openvino-2021.4.1/build")
若系统找不到InferenceEngine路径,则手动设置:
set(InferenceEngine_DIR "/opt/intel/openvino_2021.4.582/inference_engine/share")