OpenVINO简介
OpenVINO™是一个由英特尔发行的用于快速开发应用程序和解决方案的工具包,可基于该工具包解决包括计算机视觉、自动语音识别、自然语言处理、推荐系统在内的许多任务。该工具包在英特尔硬件上扩展了计算机视觉和非视觉任务的工作负载,使得最新一代的人工神经网络,包括卷积神经网络(CNNs)、循环和基于注意力的网络在英特尔的硬件平台上达到最优化的性能,支持在从边缘到云端的各种硬件设备上部署高性能的深度学习推理加速应用程序。
OpenVINO的特点如下:
-
支持在边缘设备上实现基于CNN的深度学习推理
-
支持在英特尔的CPU、集成显卡、神经网络计算棒、视觉加速单元Movidius VPU等硬件平台上运行
-
包含经过优化的计算机视觉标准库,包括OpenCV和OpenCL
安装过程
安装OpenVINO核心组件
- 从OpenVINO的官方网站
https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit/download.html
下载安装包,放到~/Downloads/
目录下,默认情况下,安装包的名字为l\_openvino\_toolkit\_p\_<version>.tgz
,其中<version>
代表OpenVINO的版本,比如最新的版本是2021。
- 执行命令解压安装包:
tar -xvzf l\_openvino\_toolkit\_p\_<version>.tgz
解压后,会在当前目录下生成l\_openvino\_toolkit\_p\_<version>
目录。
- 进入
l\_openvino\_toolkit\_p\_<version>
目录,执行安装脚本进行安装:
sudo ./install\_GUI.sh
在弹出的窗口中根据提示进行安装即可
可以根据需要进行自定义配置
安装完成后,OpenVINO被安装到/opt/intel/openvino_/目录下,另外,Intel Media SDK组件会被安装到/opt/intel/mediasdk目录。
安装依赖的软件包
安装好OpenVINO后,还需要安装以下几个必要的软件包:
-
经过英特尔优化的OpenCV
-
深度学习推理引擎
-
深度学习模型优化工具
首先进入到相应目录下,然后执行脚本进行安装
cd /opt/intel/openvino_2021/install_dependencies
sudo -E ./install_openvino_dependencies.sh
设置环境变量
要运行OpenVINO的应用程序,必须要设置一些相关的环境变量。如果只是想临时地设置环境变量,只需在终端执行以下命令即可
source /opt/intel/openvino\_2021/bin/setupvars.sh
如果想永久地设置环境变量,则打开~/.bashrc文件,然后在文件的最后一行添加内容:
source /opt/intel/openvino\_2021/bin/setupvars.sh
添加好之后,执行命令使环境变量生效
source ~/.bashrc
如果一切正常,将会在终端看到提示内容
[setupvars.sh] OpenVINO environment initialized
这样设置后,以后每次开机都会自动设置好OpenVINO的环境变量,不需要再手动设置了。
配置模型优化器
模型优化器是一个基于Python的命令行工具,用于从流行的深度学习框架如Caffe, TensorFlow, Apache MXNet,ONNX和Kaldi中导入训练好的模型。模型优化器是OpenVINO工具包的一个关键组件,如果不通过模型优化器运行模型,就不能对预训练模型执行推理过程。通过模型优化器运行一个预先训练好的模型时,得到的输出是网络的中间表示(Intermediate Representation,IR),IR用以下两个文件来描述一个完整的模型:
-
.xml:用于描述网络的拓扑结构
-
.bin:包含模型权重的二进制数据
对模型优化器的配置可以选择一次配置所有支持的框架,也可以一次配置一个框架,可以根据自己平时最常用的框架进行选择。配置过程中如果看到错误消息,请确保安装了所有依赖项。
-
选择1:配置所有支持的框架
- 进入模型优化器配置目录
cd /opt/intel/openvino\_2021/deployment\_tools/model\_optimizer/install\_prerequisites
- 运行脚本配置Caffe, TensorFlow, Apache MXNet,ONNX和Kaldi等框架的模型优化器
sudo ./install\_prerequisites.sh
-
选择2:配置单独的框架
- 进入模型优化器配置目录
cd /opt/intel/openvino\_2021/deployment\_tools/model\_optimizer/install\_prerequisites
- 执行脚本为单独的框架进行配置。以MXNet为例,执行
sudo ./install\_prerequisites\_mxnet.sh
其他的框架只需执行对应的脚本即可,在此不做一一说明。
模型优化器配置好了,我们可以运行一个例程验证其是否正常。首先进入到/opt/intel/openvino_2021/deployment_tools/demo目录下,然后执行图像分类验证脚本
./demo\_squeezenet\_download\_convert\_run.sh
该脚本会下载一个SqueezeNet的图像分类模型,然后使用模型优化器将其转换为包括.xml和.bin的IR文件。推理引擎需要这样的模型转换过程,然后以IR作为输入,得以在英特尔硬件上实现最佳性能。该脚本转换完模型后,会编译并运行图像分类应用程序,用下载的SqueezeNet模型对一张图像进行分类,并输出Top-10的分类结果。
如果能得到正确的输出,说明OpenVINO已经可以正常使用了。