环境介绍:
我是win 7 64位系统,用VMware虚拟机装了个Ubuntu 16.04LTS 64位的linux系统;
接下来是参照Intel给的参考步骤开始部署2代NCS的工作环境。
官方资料:https://software.intel.com/en-us/articles/OpenVINO-install-Linux#set-the-envienment-variables
要求硬件:
操作系统要求:
当下述步骤都完成后则表明安装过程真正完成:
1.安装 外部软件依赖;
2.安装 Intel OpenVINO分布式工具包 的核心部分;
3.设置 OpenVINO的环境变量并更新 .bashrc;
4.配置Model Optimizer;
5.运行两个demo;
6.(可选)安装下面对应的软件或驱动:
Integrated Graphics
Intel® Movidius™ Neural Compute Stick (NCS) and Intel® Neural Compute Stick 2
Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
先下载对应操作系统的OpenVINO工具包,我下载的是Linux版本的,文件名为:l_openvino_toolkit_p_2018.5.445.tgz (下载链接) ,该文件是免费下载的但需要先注册登录下;我在自己用户名 /home/csq下新建了个叫NCS的文件夹,将上述文件复制并解压到 /home/csq/NCS目录下了;
cd /home/csq/NCS
tar -zxf l_openvino_toolkit_p_2018.5.445.tgz
切到解压后的问价夹中然后下载与安装外部软件依赖项(OpenCV Intel优化版本,深度学习推理引擎,深度学习模型优化工具)
cd l_openvino_toolkit_p_2018.5.445
sudo -E ./install_cv_sdk_dependencies.sh
注:模型优化器有额外的用途,本文后面会讲到;
如果你之前已经安装过较早版本的包,请重命名或删除以下两个文件夹;
/home//inference_engine_samples
/home//openvino_models
下面是过程,推荐使用GUI图像界面向导方式安装,
(推荐)用GUI方式安装过程请运行指令:
sudo ./install_GUI.sh
用命令行方式安装请使用如下指令:
sudo ./install.sh
以下是GUI方式——
安装比较简单,差不多默认点Next就OK,也可以自定义安装路径。最后点击Finish就完成OpenVINO的安装;
如果你使用的是root账户安装,默认安装路径为: /opt/intel/computer_vision_sdk_
如果你使用的是一般用户(比如我就是这么操作),默认安装路径:/home/
在运行OpenVINO应用前需要更改一些环境变量;
运行如下指令:
source /opt/intel/computer_vision_sdk/bin/setupvars.sh
设置.bashrc
打开bashrc,加入 下面这行代码:
source /opt/intel/computer_vision_sdk/bin/setupvars.sh
保存并关闭bashrc后,任意打开一个终端,你会看到“[setupvars.sh] OpenVINO environment initialized” 这样的信息提示在终端界面上。
该步骤非常重要,你必须配置至少一种框架。
你将预先训练好的模型通过模型优化器,你会得到一个网络的中间形态Intermediate Representation (IR),这个IR是描述模型的一对文件:
推理引擎读取,加载,推理 IR文件,使用CPU,GPU,VPU的API接口。
模型优化器是基于python的命令行工具(mo.py),位于/opt/intel/computer_vision_sdk/deployment_tools/model_optimizer.
支持:Caffe*, TensorFlow*, MXNet*, and ONNX* 训练的模型
模型优化器配置步骤如下:
我选择的是方式一,一次性对所有框架模型做配置。
方式一:切到Model Optimizer prerequisites 目录:
cd /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/install_prerequisites
执行如下命令为Caffe, TensorFlow, MXNet, Kaldi*, and ONNX这些模型都进行配置:
sudo ./install_prerequisites.sh
方式二:切到Model Optimizer prerequisites 目录:
cd /opt/intel/computer_vision_sdk/deployment_tools/model_optimizer/install_prerequisites
运行如下指令为你需要的模型框架做配置:
1 |
sudo ./install_prerequisites_caffe.sh |
1 |
sudo ./install_prerequisites_tf.sh |
1 |
sudo ./install_prerequisites_mxnet.sh |
1 |
sudo ./install_prerequisites_onnx.sh |
1 |
sudo ./install_prerequisites_kaldi.sh |
配置完成~
下图是运行./install_prerequistes.sh安装时遇到的问题,报:"Error on or near linr 72; exiting with status 1"你过你没遇到该问题则无视。
遇到的话可参考我的解决方法,
先执行sudo pkill -KILL appstreamcli
然后wget 两文件,见图
然后 dkpt 一行指令,见图
执行后再运行./install_prerequistes.sh则OK
安装OK,见下图,上述错误解决~
如果需要使用GPU和VPU,后续会讲到,当前步骤只使用CPU验证;
切到/opt/intel/computer_vision_sdk/deployment_tools/demo 目录下;
执行:
./demo_squeezenet_download_convert_run.sh
分类结果显示Top10的类别和置信度信息。
在/opt/intel/computer_vision_sdk/deployment_tools/demo/目录下执行
./demo_security_barrier_camera.sh
其工作流是:
1.先检测出车;
2.将检测到的车传到下一个模型检测车车的属性,例如车牌;
3.将车牌传入下一个网络,做字符识别;
测试结果如下——
将当前linux用户加入组:
sudo usermod -a -G users "$(whoami)"
安装USB rules:
cat < 97-myriad-usbboot.rules
SUBSYSTEM=="usb", ATTRS{idProduct}=="2150", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
EOF
然后执行:
sudo cp 97-myriad-usbboot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo ldconfig
rm 97-myriad-usbboot.rules
上述指令也可以通过如下指令同等效果实现:
cd /install_dependencies/
./install_NCS_udev_rules.sh
在sudo ldconfig时如果遇到和我一样的错误(so.x不是符号连接~),可参考我图中的解决方法——
报的错误是一些so.X文件不是符号连接,我的解决方法是建立硬链接。
具体的解决请参考我的这篇文章:https://blog.csdn.net/c20081052/article/details/86070800
之后运行sudo ldconfig不再报错
然后将生成的97-usbboot.rules删除
上面结果表明驱动安装OK;
将神经计算棒插入电脑,然后执行如下指令:
cd ~/intel/computer_vision_sdk/deployment_tools/model_optimizer/install_prerequisites/
./install_prerequisites.sh
cd ~/intel/computer_vision_sdk/deployment_tools/demo
./demo_squeezenet_download_convert_run.sh -d MYRIAD
返回的图像分类结果如上。
你可以试试其他的一些例子,比如:调用摄像头做目标检测,人脸,表情,年龄,性别,姿态等检测。参考:https://software.intel.com/en-us/neural-compute-stick/get-started