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模块的安装与简单链接流程详细地记录下来。

下载

  1. OpenCV
  2. OpenCV Contrib

gitee镜像 (推荐):

  1. OpenCV镜像
  2. OpenCV-contrib镜像

需注意:

  • 下载的OpenCV与contrib模块的版本需要严格对应(否则编译源码时会报错)
  • OpenCV需要下载带OpenVINO后缀的版本
  • 下载对应的ZIP文件
  • opencv白帽子 opencv kit_opencv


  • opencv白帽子 opencv kit_OpenCV_02

未装过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白帽子 opencv kit_深度学习_03

  • OpenCV-contrib模块配置: 将OPENCV_EXTRA_MODULES_PATH设为OpenCV-contrib中modules文件夹的路径。
  • opencv白帽子 opencv kit_opencv_04

  • 针对opencv-openvino,需要把WITH_INF_ENGINE的InferenceEngine核心选项勾上
  • opencv白帽子 opencv kit_深度学习_05

  • 配置了WITH_INF_ENGINE后,会出现下列关键配置选项:
  • opencv白帽子 opencv kit_opencv白帽子_06


  • opencv白帽子 opencv kit_深度学习_07


  • opencv白帽子 opencv kit_opencv白帽子_08

  • 务必按上述图片配置,否则可能会出现编译报错,或查找、链接不到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")