Windows10安装NCS2环境并进行模型格式转换

上一篇:树莓派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
七、参考资料

一、Windows安装OpenVINO

由于树莓派上安装的OpenVINO不具有模型转换功能,故需要在本地电脑上安装相关套件

1.1、系统要求

操作系统要求
Microsoft Windows 10 64位
软件要求

  • 采用 C++ 以及 MSBuild 的 Microsoft Visual Studio* 2019、2017 或 2015
  • CMake 3.4 或更高版本(64 位)
    注:如果想使用 Microsoft Visual Studio 2019,必须安装 CMake 3.14
  • Python 3.6.5 或更高版本(64 位)

1.2、安装步骤

1. OpenVINO官网下载安装包,个人建议安装最新版本,笔者安装的版本为w_openvino_toolkit_p_2020.3.194.exe
2. 点击安装

Windows10安装NCS2环境并进行模型格式转换_第1张图片

默认安装地址为:C:\Users\username\Downloads\Intel\...,可以更换为其他盘符,后续配置时注意修改路径即可

Windows10安装NCS2环境并进行模型格式转换_第2张图片
Windows10安装NCS2环境并进行模型格式转换_第3张图片
Windows10安装NCS2环境并进行模型格式转换_第4张图片

根据个人意愿选择是否同意Intel获取个人信息(当然选no啦)

Windows10安装NCS2环境并进行模型格式转换_第5张图片

如果缺少外部关联组件,将会看到一个告警屏幕。请完善您缺少的关联组件。此时无需采取其他措施。安装完英特尔® OpenVINO™工具套件分发版核心组件后,安装缺少的关联组件。

Windows10安装NCS2环境并进行模型格式转换_第6张图片

点击Next,第一部分安装完成后,最终的屏幕会提示您核心组件已安装完成,还需要进行其他几个安装步骤:

Windows10安装NCS2环境并进行模型格式转换_第7张图片

记得安装上一步提示缺失的软件
Microsoft Visual Studio
安装Microsoft Visual时需要勾选上C++桌面开发

Windows10安装NCS2环境并进行模型格式转换_第8张图片

安装CMake
CMake官网下载3.14版本(cmake-3.14.0-win64-x64.msi)
注意选择将cmake添加到环境变量:

Windows10安装NCS2环境并进行模型格式转换_第9张图片

二、设置环境变量

2.1、临时配置方案

  • cmd进入命令行窗口:
    注意替换你自己安装openVINO的路径
    cd OpenVINO/IntelSWTools/openvino_2020.3.194/opencv/bin
  • 执行setupvars.bat脚本
    setupvars.bat

Windows10安装NCS2环境并进行模型格式转换_第10张图片

关闭命令提示符窗口后,OpenVINO工具套件环境变量将被删除。可以选择手动永久设置环境变量。

2.2、永久配置方案

打开’我的电脑’–>属性–>高级系统设置–>环境变量,在 "系统变量"下,将以下内容添加为带有相应值的新变量

Windows10安装NCS2环境并进行模型格式转换_第11张图片

名称 初始值 备注
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变量,并添加以下条目:

Windows10安装NCS2环境并进行模型格式转换_第12张图片

%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*模型
以下介绍如何使用脚本同时为所有支持的框架或为单个框架配置模型优化器。

3.1、方案1:同时为所有支持的框架配置模型优化器

1.打开cmd命令行工具,前往模型优化器先决条件目录:

进入模型优化器先决条件目录

2.运行以下批处理文件,为Caffe*、TensorFlow*、MXNet*、Kaldi* 和ONNX* 配置模型优化器
install_prerequisites.bat

3.2、方案2:单独为各个框架配置模型优化器

1.打开cmd命令行工具,前往模型优化器先决条件目录:

进入模型优化器先决条件目录

2.为您即将用于模型优化器的框架运行批处理文件。可以使用多个框架

  • 对于 Caffe:
    install_prerequisites_caffe.bat
  • 对于 TensorFlow:
    install_prerequisites_tf.bat
  • 对于 MXNet:
    install_prerequisites_mxnet.bat
  • 对于 ONNX:
    install_prerequisites_onnx.bat
  • 对于 Kaldi:
    install_prerequisites_kaldi.bat

模型优化器面向一个或多个框架进行了配置。如果出现以下类似屏幕信息,表示配置成功:

Windows10安装NCS2环境并进行模型格式转换_第13张图片

现在您可以使用两个简短的演示查看英特尔®OpenVINO™ 工具套件分发版的运行结果,并验证安装是否成功。必须使用演示脚本,因为它们要执行其他配置步骤。

四、使用验证脚本验证安装

首先进入模型优化器推理引擎演示目录

进入模型优化器推理引擎演示目录

4.1、运行图像分类验证脚本

执行 demo_squeezenet_download_convert_run.bat脚本:
demo_squeezenet_download_convert_run.bat
该脚本下载一个SqueezeNet模型,使用模型优化器将模型转换为 .bin和.xml中间表示(IR)文件。推理引擎必须进行此模型转换,以便将IR用作输入,并在英特尔硬件上实现最佳性能。
此验证脚本可以构建图像分类示例同步应用,并使用演示目录中的 car.png 图像运行该应用。

Windows10安装NCS2环境并进行模型格式转换_第14张图片

验证脚本完成后,您获得前10个类型的标记和置信度:

Windows10安装NCS2环境并进行模型格式转换_第15张图片

4.2、运行推理管道验证脚本

执行demo_security_barrier_camera.bat脚本:
demo_security_barrier_camera.bat
该脚本下载三个预训练模型IR,构建安全障碍摄像头演示应用,并使用下载的模型和 demo目录中的car_1.bmp 图像运行该应用,以显示推理管道。该验证脚本可用来进行车辆识别,并通过车辆属性的相互关联,缩小特定属性的范围。
首先,将对象识别为车辆。此识别用作下一模型的输入,以便它识别特定的车辆属性,包括车牌。最后,将识别为车牌的属性作为第三个模型的输入,以便它识别车牌中的特定字符。
演示完成后,将打开两个窗口:

  • 一个控制台窗口,显示有关该演示执行的任务信息。
  • 一个图像查看器窗口,显示生成的帧,并将检测结果渲染为边界框,与下图类似:

Windows10安装NCS2环境并进行模型格式转换_第16张图片

Windows10安装NCS2环境并进行模型格式转换_第17张图片

关于验证脚本的更多信息,请查看demo目录中的README.txt

五、踩过的坑

  • vswhere

vswhere不是内部命令

C:\Program Files (x86)\Microsoft Visual Studio\Installer目录下找到vswhere.exe,将路径添加到环境变量,然后重新打开命令行,执行vswhere

  • 一定要用管理员权限进入命令行执行脚本,否则会遇到下面的错误

Windows10安装NCS2环境并进行模型格式转换_第18张图片

普通权限命令行与管理员权限命令行

  • 如果修改了OpenVINO的默认安装路径的话,会出现下面的错误

Windows10安装NCS2环境并进行模型格式转换_第19张图片

这是因为修改了默认路径,demo_squeezenet_download_convert_run.bat脚本里的%SOLUTION_DIR64%\intel64\Release路径找不到
按如下修改,%INTEL_OPENVINO_DIR%即为环境变量里配置的OpenVINO安装路径

Windows10安装NCS2环境并进行模型格式转换_第20张图片

  • 同理,运行demo_security_barrier_camera.bat脚本时也许修改对应的路径,否则报如下错误:

Windows10安装NCS2环境并进行模型格式转换_第21张图片
Windows10安装NCS2环境并进行模型格式转换_第22张图片

更多关于转换深度学习模型的信息,请访问:

  • 转换Caffe*模型
  • 转换TensorFlow*模型
  • 转换MXNet*模型
  • 转换ONNX*模型

六、Paddle模型转换

笔者比较习惯使用Paddle,故这里演示Paddle的模型转化:
首先应通过调用来序列化模型paddle.fluid.io.save_inference_model

6.1、Paddle2Onnx

Paddld2Onnx支持将PaddlePaddle框架下产出的模型转化到ONNX模型格式.
关于Paddle2ONNX迁移至X2Paddle的说明

6.1.1、环境依赖

  • 普通用户环境配置
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

6.1.2、安装方式

  • 安装方式1

pip install paddle2onnx

  • 安装方式2
 git clone https://github.com/PaddlePaddle/paddle2onnx.git
 python setup.py install

6.1.3、使用方式

  • 普通用户使用方式

如果用户只是想将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

6.1.4、参数选项

参数 参数说明
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模式中,可以选择加载不同的图片进行精度验证

6.2、Onnx2IR

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示例的小问题

你可能感兴趣的:(树莓派)