上一篇:树莓派4B配置摄像头并实现实时人脸检测
一、Windows10安装OpenVINO
1.1、系统要求
1.2、安装步骤
二、设置环境变量
2.1、临时配置方案
2.2、永久配置方案
三、配置模型优化器
3.1、方案1:同时为所有支持的框架配置模型优化器
3.2、方案2:单独为各个框架配置模型优化器
四、使用验证脚本验证安装
4.1、运行图像分类验证脚本
4.2、运行推理管道验证脚本
五、踩过的坑
六、Paddle模型转换
6.1、Paddle2Onnx
6.1.1、环境依赖
6.1.2、安装方式
6.1.3、使用方式
6.1.4、参数选项
6.2、Onnx2IR
七、参考资料
由于树莓派上安装的OpenVINO不具有模型转换功能,故需要在本地电脑上安装相关套件
操作系统要求
Microsoft Windows 10 64位
软件要求
1. OpenVINO官网下载安装包,个人建议安装最新版本,笔者安装的版本为w_openvino_toolkit_p_2020.3.194.exe
2. 点击安装
默认安装地址为:C:\Users\username\Downloads\Intel\...
,可以更换为其他盘符,后续配置时注意修改路径即可
根据个人意愿选择是否同意Intel获取个人信息(当然选no啦)
如果缺少外部关联组件,将会看到一个告警屏幕。请完善您缺少的关联组件。此时无需采取其他措施。安装完英特尔® OpenVINO™工具套件分发版核心组件后,安装缺少的关联组件。
点击Next
,第一部分安装完成后,最终的屏幕会提示您核心组件已安装完成,还需要进行其他几个安装步骤:
记得安装上一步提示缺失的软件
Microsoft Visual Studio
安装Microsoft Visual
时需要勾选上C++桌面开发
安装CMake
CMake官网下载3.14版本(cmake-3.14.0-win64-x64.msi)
注意选择将cmake添加到环境变量:
cmd
进入命令行窗口:cd OpenVINO/IntelSWTools/openvino_2020.3.194/opencv/bin
setupvars.bat
脚本setupvars.bat
关闭命令提示符窗口后,OpenVINO工具套件环境变量将被删除。可以选择手动永久设置环境变量。
打开’我的电脑’–>属性–>高级系统设置–>环境变量,在 "系统变量"下,将以下内容添加为带有相应值的新变量
名称 | 初始值 | 备注 |
---|---|---|
INTEL_OPENVINO_DIR | D:\OpenVINO\IntelSWTools\openvino_2020.3.194 | 选择自己的OpenVINO™安装路径 |
INTEL_CVSDK_DIR | %INTEL_OPENVINO_DIR% | |
OpenCV_DIR | %INTEL_OPENVINO_DIR%\opencv\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.7 | 检查您的 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 |
配置成功后,在执行脚本时,显示如下:
模型优化器是英特尔®OpenVINO™工具套件分发版的关键组件。如果不通过模型优化器运行模型,将无法对经过训练的模型进行推理。通过模型优化器运行预训练模型时,输出为网络的中间表示(IR)。IR是描述整个模型的一对文件:
.xml
: 网络结构文件.bin
: 包含网络权重和偏差的二进制文件推理引擎跨 CPU、GPU 或 VPU 硬件使用通用 API 读取、加载和推理 IR 文件。
模型优化器是基于 Python* 的命令行工具 (mo.py),它位于D:\OpenVINO\IntelSWTools\openvino_2020.3.194\deployment_tools\model_optimizer。使用该工具将经过通用深度学习框架(如Caffe*、TensorFlow*、MXNet*和ONNX*)训练过的模型转换为优化的 IR 格式,便于推理引擎使用。
需要特别说明的是:Pytorch、PaddlePaddle等模型需要先转为ONNX,在由ONNX转为IR格式,详情可查看转换ONNX*模型
以下介绍如何使用脚本同时为所有支持的框架或为单个框架配置模型优化器。
1.打开cmd
命令行工具,前往模型优化器先决条件目录:
2.运行以下批处理文件,为Caffe*、TensorFlow*、MXNet*、Kaldi* 和ONNX* 配置模型优化器:
install_prerequisites.bat
1.打开cmd
命令行工具,前往模型优化器先决条件目录:
2.为您即将用于模型优化器的框架运行批处理文件。可以使用多个框架:
install_prerequisites_caffe.bat
install_prerequisites_tf.bat
install_prerequisites_mxnet.bat
install_prerequisites_onnx.bat
install_prerequisites_kaldi.bat
模型优化器面向一个或多个框架进行了配置。如果出现以下类似屏幕信息,表示配置成功:
现在您可以使用两个简短的演示查看英特尔®OpenVINO™ 工具套件分发版的运行结果,并验证安装是否成功。必须使用演示脚本,因为它们要执行其他配置步骤。
首先进入模型优化器推理引擎演示目录
执行 demo_squeezenet_download_convert_run.bat脚本:
demo_squeezenet_download_convert_run.bat
该脚本下载一个SqueezeNet模型,使用模型优化器将模型转换为 .bin和.xml中间表示(IR)文件。推理引擎必须进行此模型转换,以便将IR用作输入,并在英特尔硬件上实现最佳性能。
此验证脚本可以构建图像分类示例同步应用,并使用演示目录中的 car.png 图像运行该应用。
验证脚本完成后,您获得前10个类型的标记和置信度:
执行demo_security_barrier_camera.bat脚本:
demo_security_barrier_camera.bat
该脚本下载三个预训练模型IR,构建安全障碍摄像头演示应用,并使用下载的模型和 demo目录中的car_1.bmp 图像运行该应用,以显示推理管道。该验证脚本可用来进行车辆识别,并通过车辆属性的相互关联,缩小特定属性的范围。
首先,将对象识别为车辆。此识别用作下一模型的输入,以便它识别特定的车辆属性,包括车牌。最后,将识别为车牌的属性作为第三个模型的输入,以便它识别车牌中的特定字符。
演示完成后,将打开两个窗口:
关于验证脚本的更多信息,请查看demo
目录中的README.txt
。
在C:\Program Files (x86)\Microsoft Visual Studio\Installer
目录下找到vswhere.exe
,将路径添加到环境变量,然后重新打开命令行,执行vswhere
这是因为修改了默认路径,demo_squeezenet_download_convert_run.bat
脚本里的%SOLUTION_DIR64%\intel64\Release
路径找不到
按如下修改,%INTEL_OPENVINO_DIR%
即为环境变量里配置的OpenVINO安装路径
demo_security_barrier_camera.bat
脚本时也许修改对应的路径,否则报如下错误:更多关于转换深度学习模型的信息,请访问:
笔者比较习惯使用Paddle,故这里演示Paddle的模型转化:
首先应通过调用来序列化模型paddle.fluid.io.save_inference_model
Paddld2Onnx支持将PaddlePaddle框架下产出的模型转化到ONNX模型格式.
关于Paddle2ONNX迁移至X2Paddle的说明
python >= 3.5
paddlepaddle >= 1.5.0
onnx >= 1.5
python >= 3.5
paddlepaddle >= 1.5.0
onnx >= 1.5
torch >= 1.1
onnxruntime >= 0.4.0
pip install paddle2onnx
git clone https://github.com/PaddlePaddle/paddle2onnx.git
python setup.py install
如果用户只是想将paddle模型转化成onnx模型,可以使用下面的命令进行操作。
paddle2onnx --fluid_model src_dir --onnx_model dist_name
如果用户有一个新的模型要转成onnx模型,想验证模型的精确度,可以使用下面的方式来进行验证。
git clone https://github.com/PaddlePaddle/paddle2onnx.git
python fluid_onnx/fluid_to_onnx.py --fluid_model src --onnx_model dist --debug
参数 | 参数说明 |
---|---|
fluid_model | paddle fluid模型和模型参数所在目录 |
onnx_model | 转化成onnx模型的模型名称 |
name_prefix | [可选]某些paddle模型的模型参数加了前缀,则需要指定模型参数前缀,例如@HUB_mobilenet_v2_imagenet@conv6_2_expand_bn_scale |
fluid_model_name | [可选]如果导入的paddle模型不是默认__model__,需要指定模型的名字 |
fluid_params_name | [可选]如果导入的paddle模型参数是合并在一个文件里面,需要指定模型参数文件名 |
debug | [可选]如果开发者要对转化的模型进行精度测试,打开此开关 |
return_variable | [可选]在debug模式中,如果paddle模型返回的结果是LoDTensor,需要打开此开关 |
check_task | [可选]在debug模式中,根据不同配置项选择不同的执行器和数据构造器 |
image_path | [可选]在debug模式中,可以选择加载不同的图片进行精度验证 |
1.进入D:\OpenVINO\IntelSWTools\openvino_2020.3.194\deployment_tools\model_optimizer
目录,注意替换openvino安装路径
2.使用mo.py脚本将具有路径的模型转换为输入模型.nnet文件:
python3 mo.py --input_model <输入模型> .onnx
更多转换模型命令参数配置
1.树莓派4B+NCS2代测试yolov3和yolov3_tiny实现object_detection
2.OpenVINO™工具包中文文档
3.配置win10 +openvino遇到的问题及解决方案
4.运行OpenVINO的demo示例的小问题