0 背景
众所周知,在 GPU 领域,NVIDIA 的 tensorrt 是一个很好的推理框架,效率和精度都能达到工业部署要求。而在 CPU 领域,也有成熟的推理框架,即 Intel 推出的 openvino。本文对 openvino 的安装配置做一个介绍,在后续的文章中,我会对该框架的使用方法进行详细的介绍。
1 安装步骤
1.1 安装依赖
1.1.1 vs2019
在 Microsoft Visual Studio* 2019 with MSBuild 官网下载安装文件
- (1)转到Visual Studio下载页面。
- (2)点击免费下载的 Visual Studio 2019 社区部分:名为vs_community__581176015.1622262230.exe或类似的可执行文件保存在您的Downloads文件夹中。
- (3)双击可执行文件以启动Visual Studio安装程序。
- (4)在打开的窗口中,单击“ 继续”。Visual Studio Installer配置需要几分钟时间。
- (5)从“ 工作负载”选项卡中,使用复选框选择通用Windows平台开发和使用C ++进行桌面开发。
- (6)在Individual components选项卡下,选择MSBuild:屏幕右侧的安装详细信息显示您的安装选择:
- (7)不做任何其他更改。单击安装。安装开始,大约需要30分钟才能完成。
- (8)如果在安装完成后看到重新启动计算机的提示,请将其关闭。
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/2021.3/openvino_docs_install_guides_installing_openvino_windows.html#set-the-environment-variables
1.3 设置环境变量
为了能完整地使用 openvino 软件,需要配置环境变量,官方建议不要使用 Windows PowerShell,而是直接使用系统自带的 cmd 界面,运行 "C:\openvino\openvino_2021.3.394\bin\setupvars.bat" 文件,如下
但关闭 cmd 终端后,该方法设置的环境变量就会失效,因此需要在系统中设置环境变量,给PATH增加以下内容
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\ngraph\lib;
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\inference_engine\external\tbb\bin;
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\inference_engine\bin\intel64\Release;
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\inference_engine\bin\intel64\Debug;
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\inference_engine\external\hddl\bin;
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\inference_engine\external\omp\lib;
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\inference_engine\external\gna\lib;
C:\Program Files (x86)\Intel\openvino_2021.3.394\deployment_tools\model_optimizer;
C:\Program Files (x86)\Intel\openvino_2021.3.394\opencv\bin;
如图所示
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)\Intel\openvino_2021.1.110\deployment_tools\demo
打开命令行,切换至上述路径下,先运行图像分类验证脚本:
demo_squeezenet_download_convert_run.bat
该脚本下载一个SqueezeNet模型,使用模型优化器将模型转换为.bin和.xml 中间表示(IR)文件。该脚本运行成功部分信息如下:
-
Image
C:\Program
Files
(x86)\Intel\openvino_2021.1.110\deployment_tools\demo\car.png
-
-
-
-
classid
probability
label
-
-
-------
-----------
-----
-
-
817
0.6853030
sports
car,
sport
car
-
-
479
0.1835197
car
wheel
-
-
511
0.0917197
convertible
-
-
436
0.0200694
beach
wagon,
station
wagon,
wagon,
estate
car,
beach
waggon,
station
waggon,
waggon
-
-
751
0.0069604
racer,
race
car,
racing
car
-
-
656
0.0044177
minivan
-
-
717
0.0024739
pickup,
pickup
truck
-
-
581
0.0017788
grille,
radiator
grille
-
-
468
0.0013083
cab,
hack,
taxi,
taxicab
-
-
661
0.0007443
Model
T
-
-
-
-
[
INFO ]
Execution
successful
-
-
-
-
[
INFO ]
This
sample
is
an
API
example,
for
any
performance
measurements
please
use
the
dedicated
benchmark_app
tool
-
-
-
-
###############|| Classification demo completed successfully ||###############
接下来运行图像检测验证脚本,在上一个脚本相同的路径下,在命令提示符中运行demo_security_barrier_camera.bat文件:
demo_security_barrier_camera.bat
该脚本下载了三个经过预先训练的模型IR,构建了Security Barrier Camera Demo 应用程序,并与下载的模型和demo目录中的car_1.bmp 图像一起运行它,以显示推理管道。验证脚本使用车辆识别,其中车辆属性彼此建立,以缩小特定属性的范围。首先,将物体识别为车辆。该标识用作下一个模型的输入,该模型标识特定的车辆属性,包括车牌。最后,将识别为车牌的属性用作第三种模型的输入,该模型可以识别车牌中的特定字符。图像检测结果以及相应显示图像如下:
-
[
INFO ]
InferenceEngine:
API
version
.........
2.1
-
-
Build
...........
2021.1
.0
-1237
-bece22ac675-releases/2021/1
-
-
[
INFO ]
Files were added:
1
-
-
[
INFO ]
C:\Program
Files
(x86)\Intel\openvino_2021.1.110\deployment_tools\demo\car_1.bmp
-
-
[
INFO ]
Loading
device
CPU
-
-
CPU
-
-
MKLDNNPlugin
version
.........
2.1
-
-
Build
...........
2021.1
.0
-1237
-bece22ac675-releases/2021/1
-
-
-
-
[
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
是 MSBuild 配置有问题
转载:https://blog.csdn.net/zong596568821xp/article/details/117446151