最近在看各种AI的加速方案以及边缘计算,jetsonnano、英伟达TX2、华为昇腾啊什么的
jetson nano 感觉性价比不如rk3399,还有Intel的计算棒。做终端应用成本太高,但是。。。。。3399得1000+了啊
下面就是关于Intel神经棒二代的上手教程。
Hardware
Intel Movidius Neural Computing Stick
NCS是一个专用计算芯片,但能起到类似GPU对神经网络运算的加速作用。
SDK是开源的:https://github.com/movidius/ncsdk
提问不在GitHub issue里,而是在一个专门的论坛:https://ncsforum.movidius.com/
虽然目前NCSDK支持的框架包含Tensorflow和Caffe,但并不是支持所有的模型,目前已支持的模型列表可以在这里查到:https://github.com/movidius/ncsdk/releases
Environment
ncsdk的环境分为两部分,训练端和测试端。
- 训练端通常是一个Ubuntu 带GPU主机,训练Caffe或TensorFlow模型,编译成NCS可以执行的graph;
- 测试端则面向ncs python mvnc api编程,可以运行在树莓派上raspbian stretch版本,也可以运行在训练端这种机器上。
Step
一、在树莓派上安装NCS环境
二、在windows上安装NCS环境(格式转换用到)
三、格式转换
四、在树莓派上部署
Step1 在树莓派上安装NCS环境
Operating Systems
- Raspbian* Buster, 32-bit
- Raspbian* Stretch, 32-bit
Software
- CMake* 3.7.2 or higher
- Python* 3.5, 32-bit
1、下载OpenVINO toolkit for Raspbian
2、树莓派上安装OpenVINO工具包
可以参考官网教程:Install OpenVINO™ toolkit for Raspbian* OS
下载完后工具包位于/home/pi/Downloads目录下,如果不是,可以创建一个Downloads目录并把工具包放在此目录下
切换至Downloads目录下:
1 | cd ~/Downloads |
配置路径与环境:
执行以下命令,会自动对setupvars.sh文件做修改
1 | sed -i "s|<INSTALLDIR>|$(pwd)/l_openvino_toolkit_runtime_raspbian_p_2019.3.334|" l_openvino_toolkit_runtime_raspbian_p_2019.3.334/bin/setupvars.sh |
配置虚拟环境:
1 | suorce l_openvino_toolkit_runtime_raspbian_p_2019.3.334/bin/setupvars.sh |
添加USB规则:
将当前Linux用户添加到users组:
1 | sudo usermod -a -G users "$(whoami)" |
注:1、”$(whoami)”是用户名,2、这里要说的是我们现在是root用户,如果打开新窗口的话起始用户是pi,所以出现[ setupvars.sh] OpenVINO environment initialized,是对于pi用户来说的。如果在新窗口中用root执行程序,其实并没有成功加载[ setupvars.sh] OpenVINO environment initialized,需要自己再执行一遍
source/home/pi/Downloads/l_openvino_toolkit_runtime_raspbian_p_2019.3.334/bin/setupvars.sh,才能给root用户配置好OpenVINO environment initialized。
接下来配置USB规则,执行:
1 | sh l_openvino_toolkit_runtime_raspbian_p_2019.3.334/install_dependencies/install_NCS_udev_rules.sh |
demo测试验证安装是否成功
运行人脸检测的实例
1 | cd l_openvino_toolkit_runtime_raspbian_p_2019.3.334/deployment_tools/inference_engine/samples |
编译完成后,下载网络和权重文件:
1 | wget --no-check-certificate https://download.01.org/opencv/2019/open_model_zoo/R1/models_bin/face-detection-adas-0001/FP16/face-detection-adas-0001.bin |
然后自己在网上找一张人脸的图片,执行
1 | ./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i <path_to_image>图片的绝对路径 |
如果运行成功,会在build文件夹下输出一种观念out_0.bmp图片,即表示计算棒运行成功。
Opencv+python api 调用方法
新建一个文件夹,先建立一个face_detection.py文件,写入:
1 | import cv2 as cv |
在文件夹中放入刚刚下载的那两个文件:face-detection-adas-0001.bin和face-detection-adas-0001.xml还有用于检测用的脸的图片,执行:
1 | python3 face_detection.py |
Workflow for Raspberry Pi
If you want to use your model for inference, the model must be converted to the .bin and .xml Intermediate Representation (IR) files that are used as input by Inference Engine. OpenVINO™ toolkit support on Raspberry Pi only includes the Inference Engine module of the Intel® Distribution of OpenVINO™ toolkit. The Model Optimizer is not supported on this platform. To get the optimized models you can use one of the following options:
Download a set of ready-to-use pre-trained models for the appropriate version of OpenVINO from the Intel® Open Source Technology Center:
- Models for the 2020.1 release of OpenVINO are available at https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/.
- Models for the 2019 R1 release of OpenVINO are available at https://download.01.org/opencv/2019/open_model_zoo/R1/.
- Models for the 2018 R5 release of OpenVINO are available at https://download.01.org/openvinotoolkit/2018_R5/open_model_zoo/.
For more information on pre-trained models, see Pre-Trained Models Documentation
Convert the model using the Model Optimizer from a full installation of Intel® Distribution of OpenVINO™ toolkit on one of the supported platforms. Installation instructions are available:
Step2 在Windows上安装NCS环境
Operating System
- Microsoft Windows* 10 64-bit
Software
CMake 3.10 or higher 64-bit
NOTE: If you want to use Microsoft Visual Studio 2019, you are required to install CMake 3.14.
1、安装英特尔®分布式OpenVINO™工具包核心组件
可以进入OpenVINO官网参考官方安装步骤,也可以参考我的安装步骤。
英特尔®分布式OpenVINO™工具包核心组件安装步骤:
- 如果您尚未下载英特尔®分布式OpenVINO™工具包,请下载最新版本。默认情况下,该文件将保存到Downloads目录w_openvino_toolkit_p_2019.3.379.exe。
- 转到该Downloads文件夹。
- 双击w_openvino_toolkit_p_2019.3.379.exe。将打开一个窗口,您可以选择安装目录和组件。默认安装目录是C:\Program Files (x86)\IntelSWTools\openvino_2019.3.379 .为了简便,还会创建 C:\Program Files (x86)\IntelSWTools\openvino安装目录快捷方式。如果选择其他安装目录,安装程序将为您创建目录:
4.单击下一步。
5.系统会询问您是否同意收集信息。选择您选择的选项。单击下一步。
6.如果您缺少外部依赖项,则会看到警告屏幕。记下您缺少的依赖项。此时您不需要采取任何行动。安装英特尔®分布式OpenVINO™工具包核心组件后,将向您提供安装缺少的依赖项说明。下面的屏幕表示您缺少两个依赖项:
7.单击下一步。
8.安装的第一部分完成后,最终屏幕会通知您已安装核心组件并仍需执行自他步骤:
2、设置环境变量
在编译和运行OpenVINO™应用程序之前,必须更新多个环境变量。打开命令提示符并运行以下批处理文件以临时设置环境变量:
1 | C:\Program Files(x86)\IntelSWTools\openvino\bin\setupvars.bat |
(可选):关闭“命令提示符”窗口时,将删除OpenVINO工具箱环境变量。作为选项,您可以手动永久设置环境变量。
下列步骤进一步确认使用OpenVINO
1、配置模型优化程序
重要信息:这些步骤是必需的。您必须为至少一个框架配置Model Optimizer。如果您未完成本节中的步骤,模型优化程序将失败。
1 | C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\model_optimizer |
2、模型优化器配置步骤
您可以一次为所有受支持的框架配置模型优化程序,也可以一次为一个框架配置模型优化程序。选择最适合您需求的选项。如果看到错误消息,请确保已安装所有依赖项。
选项1:同时为所有支持的框架配置Model Optimizer
打开命令提示符,转到Model Optimizer条件目录,执行下列命令以配置Caffe ,TensorFlow ,MXNet ,Kaldi 和ONNX *的模型优化器。
1 | install_prerequisites.bat |
也可以安装你需要的。比如本次demo用的是caffe.所以装个caffe的。
把后面那个文件换成install_prerequistites_caffe.bat即可。
3、测试
先瞎跑个测试脚本,证明我们把一套openvino装成功了。。。。
在下面这个地址找到demo_squeezenet_download_convert_run.bat,跑起来。。。