从零开始搭建树莓派 + intel movidius 神经元计算棒2代深度学习环境 - Mingyong_Zhuang的技术博客 - CSDN博客

标签: | 发表时间:2019-01-06 08:01 | 作者:
出处:https://blog.csdn.net

摘要

本文从零开始搭建,从烧写树莓派的系统开始,到最后用计算棒跑人脸检测。本教程适用二代的计算棒,不适合一代的计算棒。
参考: https://software.intel.com/en-us/articles/OpenVINO-Install-RaspberryPI

材料硬件:

1、 树莓派3B+
2、 intel movidius 神经元计算棒2代
3、 显示器、鼠标键盘、读卡器、用于做树莓派系统盘的16GTF卡
4、 烧写树莓派系统用的PC(win10)

步骤:

1、 下载树莓派镜像并解压

树莓派系统镜像使用Stretch版本——2018-11-13-raspbian-stretch,其他低于这个版本的没有尝试过可不可行
下载链接: http://downloads.raspberrypi.org/raspbian_latest
参考: http://shumeipai.nxez.com/download#os
下载并解压出img文件

2、 烧写镜像

插入16G TF卡,格式化,打开镜像烧写软件Win32DiskImager.exe加载镜像,进行下载:
在这里插入图片描述
点write,再yes
在这里插入图片描述
在这里插入图片描述
烧写成功。不要管格式化警告,直接取消,拔出TF卡
烧写参考: http://bbs.eeworld.com.cn/thread-503614-1-1.html?_t=t

3、 启动树莓派

把TF卡插上树莓派,其他的显示器、鼠标键盘也插好,然后树莓派上电
在这里插入图片描述
红绿指示灯都会闪就表示系统启动成功,然后等待显示器显示桌面
在这里插入图片描述

4、 配置树莓派

安装界面的引导配置好树莓派:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接下来打开首选项配置硬件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启,配置完成
然后进行换源,这样下载速度会快一点稳定一点:
使用管理员权限,执行

      leafpad /etc/apt/sources.list

在打开的文件中,用#注释掉原文件内容,用以下内容取代:

      deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

保存,退出。
使用管理员权限执行:

      leafpad /etc/apt/sources.list.d/raspi.list

用#注释掉原文件内容,用以下内容取代:

      deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

保存,退出。
使用sudo apt-get update命令,更新软件源列表,同时检查您的编辑是否正确。
完成,换成了清华大学的软件源。
在这里插入图片描述
在这里插入图片描述

5、 安装cmake

再后面的安装中需要cmake,要先安装,执行:

      apt install cmake

到这里树莓派的配置就完成了,接下来要开始计算棒toolkit的安装了

6、 下载OpenVINO toolkit for Raspbian安装包:

      https://download.01.org/openvinotoolkit/2018_R5/packages/l_openvino_toolkit_ie_p_2018.5.445.tgz

本次使用的版本是2018.5.445,安装请在下面链接中查看最新的安装包版本:
https://software.intel.com/en-us/articles/OpenVINO-Install-RaspberryPI
在这里插入图片描述
下载完后包位于Downloads/目录下,打开命令行

      cd ~/Downloads/

解压包:

      tar -xf l_openvino_toolkit_ie_p_2018.5.445.tgz

7、 配置路径与环境

执行以下命令,会自动对setupvars.sh文件做修改

      sed -i "s|<INSTALLDIR>|$(pwd)/inference_engine_vpu_arm|" inference_engine_vpu_arm/bin/setupvars.sh

再配置环境,有两种做法
一种是临时的,只对该次的窗口有效

      source inference_engine_vpu_arm/bin/setupvars.sh

还有永久性的,执行:

      leafpad /home/pi/.bashrc

打开.bashrc文件,再最后一行添加一句:

      source /home/pi/Downloads/inference_engine_vpu_arm/bin/setupvars.sh

在这里插入图片描述
保存,再打开一个新的终端,如果出现:

      [setupvars.sh] OpenVINO environment initialized

就表示成功了
在这里插入图片描述

8、 添加USB规则

将当前Linux用户添加到users组:

      sudo usermod -a -G users "$(whoami)"

注:这里要说的是我们现在是root用户,如果打开新窗口的话起始用户是pi,所以出现[ setupvars.sh] OpenVINO environment initialized,是对于pi用户来说的,如果在新窗口中用root执行程序,其实并没有成功加载[ setupvars.sh] OpenVINO environment initialized,需要自己再执行一遍
source /home/pi/Downloads/inference_engine_vpu_arm/bin/setupvars.sh,才能给root用户配置好OpenVINO environment initialized。这一点要特别注意,很细节的东西,我在这里折腾了好久。
接下来配置USB规则,执行:

      sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh

在这里插入图片描述
到这里就成功安装好计算棒所需的所有东西了

9、 demo测试验证安装是否成功

构建和运行对象检测示例,这个例子是执行人脸检测的。
转到包含示例源代码的文件夹:

      cd inference_engine_vpu_arm/deployment_tools/inference_engine/samples
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a"
make -j2 object_detection_sample_ssd

在这里插入图片描述
编译完成后下载网络和权重文件:

      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

在这里插入图片描述
然后自己在网上找一张人脸的图片,执行

      ./armv7l/Release/object_detection_sample_ssd -m face-detection-adas-0001.xml -d MYRIAD -i <path_to_image>
#<path_to_image>是人脸图片的绝对路径

如果运行成功,会在build文件夹下输出一副out_0.bmp图片:
在这里插入图片描述
到这里表示计算棒运行成功!

10、 Opencv + python api调用方法:

有时候我们是在python下做开发,这里也有提供了Opencv + python的运行例子
新建一个文件夹,先建立一个face_detection.py文件,写入:

      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)

在文件夹中放入刚刚我们下载的那两个文件:face-detection-adas-0001.bin和face-detection-adas-0001.xml
还有用于检测用的脸的图片face.jpeg
此时是在root权限下,我们执行:

      source /home/pi/Downloads/inference_engine_vpu_arm/bin/setupvars.sh

然后执行:

      python3 face_detection.py

程序成功运行没报错,则表示运行成功,然后我们会在文件夹下看见输出结果,检测成功
在这里插入图片描述

相关 [从零开始 树莓派 intel] 推荐:

从零开始搭建树莓派 + intel movidius 神经元计算棒2代深度学习环境 - Mingyong_Zhuang的技术博客 - CSDN博客

- -
从零开始搭建树莓派+intel movidius 神经元计算棒2代深度学习环境. 下载OpenVINO toolkit for Raspbian安装包:. Opencv + python api调用方法:. 本文从零开始搭建,从烧写树莓派的系统开始,到最后用计算棒跑人脸检测. 本教程适用二代的计算棒,不适合一代的计算棒.

从零开始,教你用树莓派 + IFTTT 实现 HomeKit 智能家居自动化

- - 少数派
你可以现在设想一下:天气预报说要下雨了,网关灯变红. 如果爸爸回家,手机接入 Wi-Fi,赶紧推送告诉我不要看小视频了. 只要米家 + IFTTT + HomeAssistant 就可以做到. 上一章题目是《 入门智能家居,从米家到 HomeKit(一)》. 主要讲的是在「树莓派」上通过 HomeBridge 把米家智能家居接入到 iOS 的 HomeKit 中.

在树莓派3B+上部署Intel NCS2神经网络计算棒 - weixin_43741611的博客 - CSDN博客

- -
2018.12.20日 英特尔更新了OpenVINO Toolkit R5版本. 作为NCS2的官方开发套件,OpenVINO在此之前只能在台式机ubuntu 16.04上使用. 而在树莓派上使用的ncsdk并不支持NCS2计算棒. 通过在树莓派上部署OpenVino,可实现在树莓派上使用NCS2加速神经网络计算.

树莓派初级折腾

- - 极客范 - GeekFan.net
前些天在网上买了一个二手的树莓派 裸板子190包邮 (新品套装280 360什么的太贵了啊岂可修). 到手目测没有问题 主IC还有一个铜质散热片 不错. 电源就用买移动电源送的充电器(标称5v 1000mA输出 )和数据线. SD卡么… 把很久没玩的PSP掏出来 把马甲卡中的东西倒到记忆棒里 记忆棒插回PSP TF卡装到转接卡上 (话说还是个class10的呢).

安装树莓派 Raspberry PI

- - CSDN博客综合推荐文章
树莓派终于到货了,是这个样子的. 上面有一行日期是 Raspberry PI (c) 2011.12. 选择这个镜像: RASPBIAN Debian 2014-01-07. 780M的压缩包,很大的样子. 似乎还有个NOOBS的安装方式,完全无感. 顺便展示一下SD卡,通过查阅可用SD卡列表,似乎是支持个别的64G Class10的卡的,就像这个,编号是 Transcend SDXC 64G Class10 TS64GSDXC10.

树莓派 1602A显示屏

- - 编程语言 - ITeye博客
树莓派 1602A显示屏. 下面代码本人测试过没有问题,开始运行完屏幕上什么也没有显示出来,后来调整了下电位器可以了,所以大家如果按着下面的做出来之后运行什么也没有显示的话,记得调整下电位器. VO,液晶对比度调节,接电位器中间的引脚,电位器两边的引脚分别接5V和接地. RS,寄存器选择,接GPIO14.

从零开始搭建SRE

- - DockOne.io
【编者的话】Google在10年前创造了SRE这个工种. SRE,Site Reliability Engineering的缩写. 其中site是指Website,可以翻译为网站可靠性工程. 几年前资深Google SRE Chris Jones等人联合撰写了《Google SRE: How Google runs production systems》,首次向外界解密了Google的生产环境以及整个SRE的方法论.

在树莓派上用python控制LED

- - 极客范 - GeekFan.net
初步学习RPi.GPIO模块的过程中写了一个控制8个LED的模块,基本上只是一个对RPi.GPIO的一个封装. 一个已经安装配置好了的树莓派. 连接控制树莓派所用的其他必须设备. 按照电路图所示,在面包板上进行连接. 首先得确定RPi.GPIO已安装. 最新的系统已经自带了,如果没有的可以使用命令.

PiLarm: 便携式树莓派警报器

- - 极客范 - GeekFan.net
我一直在寻找一些能给自己孩子带来教益的瞬间. 当我五岁的儿子来寻求我的帮助,别再让他的弟弟偷偷溜进他的房间的时候,我突然灵光一现,发现这是教他关于输入、输出和其他一些编程知识的绝佳时机. 而且让他在解决自己实际问题中学习这些也会相对容易. 我本来可以用很多不同的方法来建立一个简单的警报系统,但是我想要让这个系统是一体化的并且在功能上不止能满足我儿子最初的原始需求.

树莓派的10个最佳资源

- - 极客范 - GeekFan.net
如果还没有找到答案,你是时候要从线上或者线下的资源寻找一些想法和项目,来帮助你将树莓派的潜能完全发掘出来. 树莓派没有内置的操作系统,也经常甚至连存储设备都没有. 但树莓派已经被证明了是一个非常成功的小型计算设备. 而很多学校(树莓派的目标用户),狂热爱好者,和那些想要打造一个小型家庭影音中心(包括其他设备)的用户都将树莓派作为他们的一个选择.