0 背景

众所周知,在 GPU 领域,NVIDIA 的 tensorrt 是一个很好的推理框架,效率和精度都能达到工业部署要求。而在 CPU 领域,也有成熟的推理框架,即 Intel 推出的 openvino。本文对 openvino 的安装配置做一个介绍,在后续的文章中,我会对该框架的使用方法进行详细的介绍。

1 安装步骤

1.1 安装依赖

1.1.1 vs2017

在 Microsoft Visual Studio 官网下载安装文件,注意不要安装 2019 版本,亲测会有问题

1.1.2 cmake 3.20.3

我们进入 cmke 官网,下载最新的 windows 版本的安装文件

1.1.3 python3.6.5

下载链接,安装时要注意将 PYTHON 的环境变量加到 PATH 中

1.2 下载工具包

在官网根据自己的环境信息,下载最新版安装文件,然后双击默认安装即可

这里我选择自定义安装路径,注意路径中不要出现中文名和空格等内容

注意,如果你出现一些 warning,表明前边的依赖安装有问题,需要重新安装配置后再继续安装 openvino

安装成功后会显示后续的安装配置教程,链接:https://docs.openvinotoolkit.org/2020.3/openvino_docs_install_guides_installing_openvino_windows.html#set-the-environment-variables

1.3 设置环境变量

为了能完整地使用 openvino 软件,需要配置环境变量,官方建议不要使用 Windows PowerShell,而是直接使用系统自带的 cmd 界面,运行 "C:\openvino\openvino_2020.3.355\bin\setupvars.bat" 文件,如下

但关闭 cmd 终端后,该方法设置的环境变量就会失效,因此需要在系统中设置环境变量,参考《为 Windows 永久设置 OpenVINO™环境变量®10》,注意我们这里安装的是 2020 版本,按照下边的内容进行设置

名字价值笔记
INTEL_OPENVINO_DIRC:\Program Files (x86)\IntelSWTools\openvinoOpenVINO™安装的路径
INTEL_CVSDK_DIR%INTEL_OPENVINO_DIR% 
OpenCV_DIR%INTEL_OPENVINO_DIR%\opencv\cmake 
NGRAPH_DIR%INTEL_OPENVINO_DIR%\deployment_tools\ngraph\cmake 
InferenceEngine_DIR%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\share 
HDDL_INSTALL_DIR%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\external\hddl 
PYTHONPATH%INTEL_OPENVINO_DIR%\python\python3.6检查您的 Python * 版本并调整

您还需要在系统变量下编辑Path变量,并添加以下条目:

%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\bin\intel64\Release
%INTEL_OPENVINO_DIR%\deployment_tools\inference_engine\bin\intel64\Debug
%HDDL_INSTALL_DIR%\bin
%INTEL_OPENVINO_DIR%\opencv\bin
%INTEL_OPENVINO_DIR%\deployment_tools\ngraph\lib

1.4 配置模型优化器

模型优化器 Model Optimizer 是 openvino 工具的核心组件,可以实现不同框架模型到 openvino 的转化,如 TensorFlow、MXNet、Caffe 等,而 openvino 部署时需要 IR 格式的模型,具体包含以下两部分

  • .xml 文件:描述网络拓扑结构
  • .bin 文件:包含网络权重的二进制文件

而 openvino 推理的过程,就是读取、载入 IR 文件的过程,通过通用 API 在 CPU、GPU 或 VPU 上进行推理。

你可以根据你的需求选择一次性配置支持多种框架(install_prerequisites.bat),也可以选择配置支持某一种框架(install_prerequisites_xx.bat)。

我在配置全部框架的软件时,下载很慢,替换一下 pip 源即可,参考《windows环境下 更换pip镜像源》,我用的是阿里的源,速度很快。安装完之后显示如下

至此,完成全部配置

2 环境验证

此步运行两个 demo 脚本来验证 OpenVINO™ 工具包是否安装成功,脚本所在路径

C:\Program Files (x86)\IntelSWTools\openvino_2020.3.355\deployment_tools\demo

打开命令行,切换至上述路径下,先运行图像分类验证脚本:

demo_squeezenet_download_convert_run.bat

该脚本下载一个SqueezeNet模型,使用模型优化器将模型转换为.‍bin和.‍xml 中间表示(IR)文件。

接下来运行图像检测验证脚本,在上一个脚本相同的路径下,在命令提示符中运行demo_security_barrier_camera.bat文件:

demo_security_barrier_camera.bat

该脚本下载了三个经过预先训练的模型IR,构建了Security Barrier Camera Demo 应用程序,并与下载的模型和demo目录中的car_1.bmp 图像一起运行它,以显示推理管道。验证脚本使用车辆识别,其中车辆属性彼此建立,以缩小特定属性的范围。首先,将物体识别为车辆。该标识用作下一个模型的输入,该模型标识特定的车辆属性,包括车牌。最后,将识别为车牌的属性用作第三种模型的输入,该模型可以识别车牌中的特定字符。图像检测结果以及相应显示图像如下:

[ INFO ] InferenceEngine: 00007FFD4B551340                                                                             
[ INFO ] Files were added: 1                                                                                            
[ INFO ]     C:\Program Files (x86)\IntelSWTools\openvino_2020.3.355\deployment_tools\demo\car_1.bmp                    
[ INFO ] Loading device CPU                                                                                                     CPU                                                                                                                     MKLDNNPlugin version ......... 2.1                                                                                      Build ........... 2020.3.2-3506-c35b42b1d89-releases/2020/3                                                                                                                                                                            
[ INFO ] Loading detection model to the CPU plugin                                                                      
[ INFO ] Loading Vehicle Attribs model to the CPU plugin                                                                
[ INFO ] Loading Licence Plate Recognition (LPR) model to the CPU plugin                                                
[ INFO ] Number of InferRequests: 1 (detection), 3 (classification), 3 (recognition)                                  
[ INFO ] 4 streams for CPU                                                                                              
[ INFO ] Display resolution: 1920x1080                                                                                
[ INFO ] Number of allocated frames: 3                                                                                  
[ INFO ] Resizable input with support of ROI crop and auto resize is disabled 

3 报错记录

3.1 error MSB4057

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe" Samples.sln /p:Configuration=Release /t:cpp_samples\classification_sample_async /clp:ErrorsOnly /m                                              用于 .NET Framework 的 Microsoft (R) 生成引擎版本 16.10.0+4242f381a                                                     版权所有(C) Microsoft Corporation。保留所有权利。                                                                                                                                                                                                    2>C:\Users\ZONGXP\Documents\Intel\OpenVINO\inference_engine_samples_build\ZERO_CHECK.vcxproj : error MSB4057: 该项 目中                                                                                                                           不存在目标“cpp_samples\classification_sample_async”。                                                          Error 

是 VS 版本问题,我安装 2019 版本会报上边的错,2017 没问题

更多推荐