1. 说明
根据Intel的官方文档,OpenVINO长期支持Ubuntu16.04 x64(最低内核为4.14),我手上正好有一个已安装好的Ubuntu18.04(4.15),就直接使用这一个操作系统进行安装。
硬件:
Intel Xeon CPU
软件:
Ubuntu18.04
python3.6.7
gcc 8.2.0
2. 安装
2.1 下载安装包
OpenVINO toolkit下载网址:https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-linux
A Linux build environment needs these components:
- OpenCV 3.4 or higher
- GNU Compiler Collection (GCC) 3.4 or higher
- CMake* 2.8 or higher
- Python* 3.5 or higher
2.2 解压
tar -xvzf l_openvino_toolkit_p_<version>.tgz
2.3 安装OpenVINO
cd l_openvino_toolkit_p_<version>#使用GUI图形安装
sudo ./install_GUI.sh#使用命令行安装
sudo ./install.sh
注:我在安装时使用的是install_GUI.sh,但仍然显示的是命令行,不知道是不是OS的原因。
如果之前有安装较早版本的OpenVINO,需先删除或重命名以下两个文件夹:
/home/<user>/inference_engine_samples_build
/home/<user>/openvino_models
安装如图:
2.4 安装依赖组件
在联网的环境下可以直接使用OpenVINO自带的程序安装所有的依赖组件
cd /opt/intel/openvino/install_dependenciessudo -E ./install_openvino_dependencies.sh
所需的依赖组件包括:
- Intel-optimized build of OpenCV library
- Deep Learning Inference Engine
- Deep Learning Model Optimizer tools
安装完成后显示:
注:有网上参考资料显示需手动安装cmake,但我在实际操作过程中发现这一步并不必要,上述步骤执行完后输入"cmake --version",会显示已安装3.10.2版本。
3. 配置
3.1 设置环境变量
在使用OpenVINO之前必须配置好许多环境变量,所幸Intel已经将这些步骤通过脚本完成了。
临时设置环境变量
source /opt/intel/openvino/bin/setupvars.sh
永久修改环境变量
这里我修改了两个用户(root和montage)的环境变量,以便使用方便。
vim /root/.bashrc
#或者
vim /home/montage/.bashrc#在末尾添加
source /opt/intel/openvino/bin/setupvars.sh
修改完成后显示
3.2 配置模型优化器(Model Optimizer)
OpenVINO支持多种模型(ONNX,TensorFlow, Caffe, MXNet, Kaldi),可以选择一次配置所有的模型优化器,如:
cd /opt/intel/openvino/deployment_tools/model_optimizer/install_prerequisitessudo ./install_prerequisites.sh
也可以配置指定的模型,如:
sudo ./install_prerequisites_caffe.shsudo ./install_prerequisites_tf.shsudo ./install_prerequisites_mxnet.shsudo ./install_prerequisites_onnx.shsudo ./install_prerequisites_kaldi.sh
配置完成后,显示:
3.3 安装protobuf
执行到3.2 配置模型优化器之后已经可以完成步骤4中的示例程序了,但要运行其他demo(如:demo_benchmark_app.sh)还需要安装protobuf,否则运行时会报错。
Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。
下载源代码包
$wget https://github.com/google/protobuf/archive/v2.6.1.zip
$unzip protobuf-2.6.1.zip
$cd protobuf-2.6.1
protobuf已经全面迁移到github,地址:https://github.com/google/protobuf,但是在安装时我直接git clone最新版本的始终会有问题,故选择网上已有案例下载2.6.1版本。
修改autogen.sh
autogen.sh 需要gtest包,默认是从 googletest.googlecode.com下载,国内需要翻墙才能访问,所以修改一下autogen.sh
vim autogen.sh# 将下面这段修改
echo "Google Test not present. Fetching gtest-1.5.0 from the web..."
curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx
mv gtest-1.5.0 gtest||wget https://github.com/google/googletest/archive/release-1.5.0.tar.gz
tar xzvf release-1.5.0.tar.gz
mv googletest-release-1.5.0 gtest
修改完后,可以正常运行产生configure文件
编译与安装
./configure
make
make check
make install
系统默认路径是安装在:
/usr/local/bin
/usr/local/lib,
/usr/local/include
4. 运行
4.1 运行验证示例
这一步是必要的,因为验证示例可以帮助我们验证环境及配置是否安装成功。
cd /opt/intel/openvino/deployment_tools/demo./demo_squeezenet_download_convert_run.sh
运行成功后,显示如下:
4.2 目标检测与识别
下载预训练模型用于车辆检测与车辆属性识别和车牌检测与车牌识别。
./demo_security_barrier_camera.sh
结果如下:
注:
除上述程序之外,还有其他预训练模型已经下载好,在/opt/intel/openvino/deployment_tools/open_model_zoo路径下,也可以在https://github.com/opencv/open_model_zoo下载。
5. 问题记录
1. 图片显示问题
在第一次运行"demo_security_barrier_camera.sh"时,最后报错,无法连接Server:
No protocol specified
Unable to init server: Could not connect: Connection refusedGtk-WARNING **: cannot open display: :0
Resolve:
Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上,所以解决方法是:命令行退出root后,用当前账户执行命令:
xhost + #使所有用户都能访问Xserver
6. 参考链接
- Install Intel? Distribution of OpenVINO? toolkit for Linux*