` 本帖最后由 马猛 于 2021-1-11 11:47 编辑
大联大世平Intel®神经计算棒,全名Neural Compute Stick 2,简称英特尔NCS 2。英特尔NCS2可以在标准USB3.0端口上运行,不需要额外硬件,方便将模型无缝部署在各个设备上。可以很方便地使用它对算法进行加速。金属封装,开了四个大孔满足长时间运行散热需求。使用神经计算棒可以明显提高模型在树莓派这种计算量较小的设备上的速度。使树莓派如虎添翼。
OpenVINO™工具包可快速部署模拟人类视觉的应用程序和解决方案。该工具包基于卷积神经网络(CNN),可在英特尔®硬件上扩展计算机视觉(CV)工作负载,从而最大限度地提高性能。OpenVINO工具箱包括英特尔®深度学习部署工具箱(英特尔®DLDT)。
Raspbian * OS的OpenVINO™工具包包括推理引擎和MYRIAD插件。可以将其与插入USB端口之一的Intel®Movidius™神经计算棒Intel®Neural Compute Stick 2一起使用。
树莓派4B部署intel NCS2神经网络计算棒,先找块TF卡,用官方的NOOBS给树莓派装好系统。然后根据计算棒说明书上给的网址,开始进行计算棒开发环境OpenVINO的安装。https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_raspbian.html
1.如果您尚未下载英特尔®分布式OpenVINO™工具包,请下载最新版本。默认情况下,该文件将保存到Downloads目录w_openvino_toolkit_p_2019.3.379.exe。
2.转到该Downloads文件夹。
3.双击w_openvino_toolkit_p_2019.3.379.exe。将打开一个窗口,您可以选择安装目录和组件。默认安装目录是C:Program Files (x86)IntelSWToolsopenvino_2019.3.379 .为了简便,还会创建 C:Program Files (x86)IntelSWToolsopenvino安装目录快捷方式。如果选择其他安装目录,安装程序将为您创建目录:
在树莓派上安装NCS环境
1.切换目录:
cd ~/Downloads/
2.解压文件:(如后期版本更新,请自行修改版本号。)
tar -xf l_openvino_toolkit_ie_p_2018.5.445.tgz
3.修改 setupvars.sh 脚本的< INSALLDIR >为安装目录的绝对路径:
sed -i "s||$(pwd)/inference_engine_vpu_ARM|" inference_engine_vpu_arm/bin/setupvars.sh
4.添加环境变量:
选择1:临时应用环境变量
source inference_engine_vpu_arm/bin/setupvars.sh
选择2: 长期应用环境变量
在.bashrc文件尾部添加以下代码:
source ~/Downloads/inference_engine_vpu_arm/bin/setupvars.sh
保存后,开启一个新的终端,看见
[setupvars.sh] OpenVINO environment initialized
即成功。
5.添加USB规则:
添加当前用户到用户组:
sudo usermod -a -G users "$(whoami)"
执行完该命令后注销重新登录。
6.使用命令添加规则:
sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh
注:如提示没有rule文件,请在当前目录建立文件97-myriad-u***boot.rules 文件内包含如下内容
SUBSYSTEM=="u***", ATTRS{idProduct}=="2150", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="u***", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="u***", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
然后使用下列命令
sudo cp 97-myriad-u***boot.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo ldconfig
即可添加USB规则。
至此,NCS2环境部署已完成。我们使用官方例程进行验证
至此OpenVINO安装完成,还挺简单的。而且这个包里预安装了OpenCV4.0.0,
保存,再打开一个终端,如果出现:OK
[setupvars.sh] OpenVINO environment initialized
NCS2环境部署已以后。可以使用官方例程进行验证。
1.转到包含示例源码的文件夹:
cd inference_engine_vpu_arm/deployment_tools/inference_engine/samples
2.新建文件夹build:
mkdir build && cd build
3.构建对象检测示例:
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a"
make -j4 object_detection_sample_ssd
4.下载预先训练的人脸检测模型:
wget --no-check-certificate https://download.01.org/openvinotoolkit/2018_R4/open_model_zoo/face-detection-adas-0001/FP16/face-detection-adas-0001.bin
wget --no-check-certificate https://download.01.org/openvinotoolkit/2018_R4/open_model_zoo/face-detection-adas-0001/FP16/face-detection-adas-0001.xml
5.运行示例测试结果:(path_to_image 为带人脸的图片路径)
./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i
使用OpenCV API运行人脸检测模型
import cv2 as cv
# Load the model
net = cv.dnn.readNet('face-detection-adas-0001.xml', 'face-detection-adas-0001.bin')
# Specify target device
net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)
# Read an image
frame = cv.imread('/path/to/image')
# Prepare input blob and perform an inference
blob = cv.dnn.blobFromImage(frame, size=(672, 384), ddepth=cv.CV_8U) net.setInput(blob)
out = net.forward()
# Draw detected faces on the frame
for detection in out.reshape(-1, 7):
confidence = float(detection[2])
xmin = int(detection[3] * frame.shape[1])
ymin = int(detection[4] * frame.shape[0])
xmax = int(detection[5] * frame.shape[1])
ymax = int(detection[6] * frame.shape[0])
if confidence > 0.5:
cv.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0))
# Save the frame to an image file
cv.imwrite('out.png', frame)
如果运行成功,会在build文件夹下输出一种观念out_0.bmp图片,即表示计算棒运行成功。
成功在树莓派上部署NCS2计算棒的运行环境了。
一、模型转化
1、weights转化为pb
现在假设你已经有darknet训练好的.weights模型文件
clone这位 PINTO0309日本工程师的仓库
https://github.com/PINTO0309/OpenVINO-YoloV3 # GitHub
https://pan.baidu.com/s/1BjVne9zN4AUpDACv3OBHTw #提取码yolo
得到OpenVINO-YoloV3-master文件夹后,用windows电脑打开cmd,cd到该目录下
运行如下指令
python convert_weights_pb.py --weights_file --size 416 --data_format NHWC
path为 .weights文件的绝对路径
注意:该转化依赖tensorflow、numpy、pillow库,请提前安装好
转化成功后你会得到一个 .pb文件
接下来进行下一步
2、pb转化为IR 按照官网操作
https://software.intel.com/en-us/openvino-toolkit/choose-download/free-download-windows
`
|