opencv dnn模块 示例(9) 使用 Intel's Inference Engine

前面的例程默认使用opencv版本4.0.0,官方的安装包,未加入Intel’s Inference Engine Library编译。
Intel’s Deep Learning Inference Engine (DL IE) 是 Intel® OpenVINO™ toolkit的一部分,可以将其作为opencv dnn模块的backend,从而提升计算效率。
https://github.com/opencv/opencv/wiki/Intel’s-Deep-Learning-Inference-Engine-backend

这里尝试使用Intel’s Inference Engine作为Backed,试试效果如何。这里有两种方式(1)加入Intel’s Inference Engine Library,重新编译opencv(2)直接下载intel的openvino_toolkit,使用该toolkit中已经编译的opencv。这里直接使用openvino_toolkit进行简单测试。

已安装环境VS2015,CMake(3.4版本及以上均可), CPU 为 i7-7700k。

1、下载安装openvino_toolkit

(1)下载
进入网站https://software.seek.intel.com/openvino-toolkit,注册登录,选择平台和版本下载。
根据opencv官方说明https://opencv.org/opencv-4-0-0.html,这里使用R4 version。
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第1张图片
下载后得到exe自解压文件,双击选择解压路径。
在这里插入图片描述
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第2张图片
(2)安装
进入解压路径,点击install.exe安装
设置安装路径,默然C:\Intel再选择需要安装的包,如下图。如果需要该sdk开发,需要选中 Inference Engine Development Kit。其他的根据自己情况选择。我没有VPU,所以就不勾选了。opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第3张图片
这里使用默认安装路径,安装后根目录如下
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第4张图片

2、测试demo

Image Classification Demo 和Inference Pipeline Demo .

示例1: 进入sdk根目录下的\deployment_tools\demo\,命令行窗口运行Image Classification示例,demo_squeezenet_download_convert_run.bat
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第5张图片
下载之后会自动进行多个步骤,就不截图,主要有
使用python进行 Install Model Optimizer prerequisites, Run Model Optimizer
使用VS进行 Generate VS solution for Inference Engine samples using cmake,Build Inference Engine samples using MS Visual Studio (MSBuild.exe), Run Inference Engine classification sample,
最后给出 top-10的结果
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第6张图片
示例2: 命令行窗口运行Inference Pipeline示例,demo_security_barrier_camera.bat。中间截图省略,给出结果图如下
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第7张图片

3、替换opencv库,测试 DNN_BACKED_INFERENCE_ENGINE

参考vs工程 https://blog.csdn.net/wanggao_1990/article/details/86713634 ,测试使用Release。
(1)修改代码
仅对一行代码进行修改,将37行的int backendId = cv::dnn::DNN_BACKEND_OPENCV; 修改为 int backendId = cv::dnn::DNN_BACKEND_INFERENCE_ENGINE;即可
(2)修改工程的opencv环境
修改include目录为 C:\Intel\computer_vision_sdk_2018.4.420\opencv\include
修改lib目录为 C:\Intel\computer_vision_sdk_2018.4.420\opencv\lib
添加依赖项不变仍为 opencv_world400.lib
(3)编译
(4)复制dll动态库
复制C:\Intel\computer_vision_sdk_2018.4.420\inference_engine\bin\intel64\Release下dll文件到项目运行目录,再复制C:\Intel\computer_vision_sdk_2018.4.420\opencv\bin下的opencv_world400.dll到项目运行目录
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第8张图片

tip:
computer_vision_sdk_2018.4.420未提供ffmepg编译动态库,如果使用camera,需要从官方opencv中复制opencv_ffmpeg400_64.dll库。

(5)运行
cpu %90, Mem 890M,180-200ms , 相比之前380ms 结果,提升效果接近一倍。
运行截图如下。
opencv dnn模块 示例(9) 使用 Intel's Inference Engine_第9张图片

你可能感兴趣的:(OpenCV,深度神经网络,opencv实例源码演示)