查看原文
其他

如何编译OpenCV4.1.0支持OpenVINO推断引擎加速支持

极市平台 2021-09-20

The following article is from OpenCV学堂 Author gloomyfish

加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!

同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~


OpenVINO自发布以来,依靠其强大的加速性能,在CPU上进行深度学习模型加速优势,迅速受到很多公司与开发者的青睐,但是如何从OpenCV源码编译生成OpenVINO的inferinference engine(IE)加速推理支持的OpenCV版本,一直是很多开发者头疼的事情,很多人都不得不使用OpenVINO官方编译的OpenCV支持版本,无法实现从源码开始的定制化的OpenCV版本编译。


作者从2018年12月份开始研究OpenVINO开发技术,上半年也发布一系列的OpenVINO开发技术相关文章,得到了大家热烈响应,今天我们就来很详细的一步一步的教大家如何从OpenCV源码开始在windows10系统下如何编译IE加速版本的OpenCV安装包,并如何配置与测试IE支持之后的OpenCV DNN的卓越性能。


软件安装


首先需要下载安装OpenVINO,可以选择最新版本2019 R01或者稳定版本2018 R05。OpenVINO安装需要预先安装以下软件:

  • Python3.6.x

  • CMake3.13.x

  • VS2017/VS2015

  • opencv 4.1.0


这里需要特别注意下,OpenVINO本身不支持Python3.7版本。所以千万别安装Python3.7以上版本!


安装好OpenVINO之后,千万别忘记执行下面的配置脚本:

C:\Intel\computer_vision_sdk_2018.5.456\bin\setupvars.bat

如果你没有改动安装路径,双击这个执行即可!


下载与解压OpenCV4.1源码,下载地址如下:

https://opencv.org/opencv-4-1/


下载完成之后解压缩好 OpenCV4.1.0,我的解压缩之后的为:

D:\opencv_4.1.0\opencv下

  • build

  • source

两个目录


cmake编译


打开cmake,设置好源代码路径与编译输出路径分别为

- D:\opencv_4.1.0\opencv\sources
- D:\opencv_4.1.0\opencv\newbuild


图示如下:

然后点击【configure】,第一次点击configure会弹出对话框,设置如下:


然后点击【finish】即可开始配置。

这个时候会有一些依赖需要下载,一定要保持网络稳定,如果无法下载就会出现无法编译的错误,正常一次不成功的话,就继续点击【Configure】按钮,直到配置成功,配置好之后,如果前面OpenVINO已经成功安装的话,请把下面的选项勾上

  • WITH_INF_ENGINE

  • WITH_TBB

  • BUILD_opencv_world

去掉勾选

  • BUILD_opencv_python3

  • BUILD_opencv_python_bindings_generator

然后再次点击【Configure】按钮, 运行结束之后,设置

InferenceEngine_DIR 为:

C:\Intel\openvino_2019.1.148\deployment_tools\inference_engine\share

其实就是指向你OpenVINO安装目录下IE的share文件夹


然后点击【Generate】按钮,就会成功生成一个VS工程项目。


VS2015工程编译


在newbuild目录下找到

OpenCV.sln 文件, 双击打开VS工程!


选择 【ALL BUILD】右键 ->生成


运行完成之后,选择 【INSTALL】右键 ->生成,


得到输出在install\x64\vc14\bin是DEBUG版本的DLL文件,截图如下:

切换到release模型下,继续执行上述两步操作,即可得到支持IE的OpenCV4.1的release版本。我的最终生成结果(这个生成过程可能需要等待一会)

配置与测试

对编译生成好的OpenCV4.1.0安装包的配置可以分为如下五步:


配置包含目录


配置库目录


配置连接器


配置环境变量

D:\opencv_4.1.0\opencv\newbuild\install\x64\vc14\bin


最后一步重启VS,对OpenCV配置不清楚的具体看这里的视频:

https://www.bilibili.com/video/av36486959


重新VS之后,打开我本机之前的人脸检测程序,把加载网络之后的设置计算后台的代码函数API代码:

net.setPreferableBackend(DNN_BACKEND_OPENCV)

修改为:

net.setPreferableBackend(DNN_BACKEND_INFERENCE_ENGINE)


程序从之前的每秒不到4帧,提升到现在每秒35帧左右,有图位证:

参考链接:

https://github.com/opencv/dldt
https://software.intel.com/en-us/openvino-toolkit
http://space.bilibili.com/365916694/#/
https://cmake.org/,



-完-



*延伸阅读


添加极市小助手微信(ID : cv-mart),备注:研究方向-姓名-学校/公司-城市(如:目标检测-小极-北大-深圳),即可申请加入目标检测、目标跟踪、人脸、工业检测、医学影像、三维&SLAM、图像分割等极市技术交流群,更有每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流一起来让思想之光照的更远吧~


△长按添加极市小助手


△长按关注极市平台


觉得有用麻烦给个在看啦~  


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存