【超详细】树莓派4B 英特尔神经棒2代 Openvino安装记录

主要参考了英特尔官方文档https://docs.openvinotoolkit.org/2019_R3.1/_docs_install_guides_installing_openvino_raspbian.html
还有同济子豪兄在达尔文的b站视频https://www.bilibili.com/video/BV17J41127L4?p=8
子豪兄视频中参考了这篇大佬的博文因此我也参考了下https://blog.csdn.net/qqqzmy/article/details/85213414

/*
吐槽,整这个花了大半个星期,到处都是坑,太难受了。跟着官方文档走cmake总是出错,然后跟着子豪兄的视频,4B和3B+还是有点小区别,按照视频来到build那一步会不一样,有点小问题。我稍微改了一下,现在应该没有问题了。另外过程中没有依赖问题这还是让人舒服的。下面将我的过程分享出来。
温馨提示:一定要注意是在哪个路径下操作的
*/

摘要

本文详细描述了树莓派4B配合英特尔神经棒2代的配置过程。

〇、用到的材料

硬件

  • 树莓派4B
  • 树莓派显示屏(非必要)
  • tf卡和读卡器
  • 英特尔神经棒2代
  • Windows电脑
  • 路由器

软件

  • SDFormatter(格式化tf卡)
  • Win32DiskImager(烧入镜像)
  • putty(远程ssh连接工具)(可选)
  • VNC Viewer(远程连接树莓派桌面)
  • FileZilla(远程传输文件到树莓派)

一、树莓派配置

1、官网下载镜像文件

我下载了树莓派官网上2020-02-13-raspbian-buster-full.img的镜像文件

2、格式化tf卡

将tf卡插入读卡器插上电脑
打开SDFormatter在这里插入图片描述
格式化之后电脑显示tf卡大小变成真实大小了
拔出
再插入

3、烧入镜像文件

打开Win32DiskImager,选择镜像,单击“write”
在这里插入图片描述
静待几分钟完成

4、将卡插入树莓派,开机

我有显示屏,如果没有也没关系,网上很多办法我就不加赘述了
在这里插入图片描述
Next
选中国
在这里插入图片描述
设置你的密码
在这里插入图片描述
我直接插网线了就没连wifi
不更新
在这里插入图片描述
进入首选项
在这里插入图片描述
VNC和SSH一定要打开,其他你看着需要打开
在这里插入图片描述

5、连接VNC

鼠标放到网络标志上可以看到ip
在这里插入图片描述打开VNC Viewer输入ip
在这里插入图片描述
继续
用户名是pi
密码填你刚刚设置的,如果刚刚没设置的话默认raspberry
在这里插入图片描述

6、换源

打开命令行输入

sudo nano /etc/apt/sources.list

在这里插入图片描述
替换为清华的

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

如图修改
在这里插入图片描述

保存退出(Ctrl O, 回车, Ctrl X)
然后修改下一个

sudo nano /etc/apt/sources.list.d/raspi.list

在这里插入图片描述
替换

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

如图
在这里插入图片描述

保存退出
下一个

sudo mkdir ~/.pip
cd .pip
sudo nano pip.conf

在这里插入图片描述
写入

[global]
timeout = 10
index-url =  http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=
    mirrors.aliyun.com
    pypi.douban.com

在这里插入图片描述
保存退出

sudo apt-get update

在这里插入图片描述

7、将根目录扩展

sudo raspi-config

在这里插入图片描述
进入第七个
在这里插入图片描述
选第一个
在这里插入图片描述
好了然后左右方向键选finish回车,提示重启
在这里插入图片描述
另外树莓派4B和3不一样,如果没有连接显示屏,亲测这里选5修改分辨率是没用的,用远程屏幕大小不会变,如果连了显示屏,那么会跟着显示屏大小来,修改分辨率反而会使屏幕变小,很无语

二、Openvino 安装

1、先装外部软件依赖项cmake

sudo apt install cmake

在这里插入图片描述
回车确认
在这里插入图片描述

2、下载和处理Openvino包

直接下有点慢可以用FileZilla传过去
打开FileZilla输入信息连接到树莓派
在这里插入图片描述
把下载好的包传到Downloads下面
在这里插入图片描述
树莓派上进入Downloads

cd Downloads

解压

tar -xf l_openvino_toolkit_runtime_raspbian_p_2019.3.334.tgz

在这里插入图片描述
进入图形化文件管理器找到解压后的文件重命名为

inference_engine_vpu_arm

在这里插入图片描述

3、设置环境

先修改setupvars.sh文件

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

在这里插入图片描述
然后设置环境,下面选一个
这种是临时的

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

这种是永久的

echo "source /home/pi/Downloads/inference_engine_vpu_arm/bin/setupvars.sh" >> ~/.bashrc

在这里插入图片描述
永久的设置了打开新终端就会看到如下图顶部这一串
在这里插入图片描述

4、添加USB规则

将当前的Linux用户添加到该users组

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

在这里插入图片描述
安装运行install_NCS_udev_rules.sh脚本的USB规则

sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh

在这里插入图片描述

5、将英特尔神经棒插到蓝色usb口(蓝色是3.0)

在这里插入图片描述

6、生成并运行物体检测示例

进入此目录

cd inference_engine_vpu_arm/deployment_tools/inference_engine/samples

并创建样本构建目录build并进入

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/opencv/2019/open_model_zoo/R1/models_bin/face-detection-adas-0001/FP16/face-detection-adas-0001.bin

在这里插入图片描述

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.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
在这里插入图片描述
给你画好了框框,不靠谱这下特靠谱啊233
到此恭喜你成功了

7、应用于python中

建一个文件夹,把之前下载的xml和bin文件、准备的图片、py文件都放进去
下面是官方示例代码,注意这个cv2,Openvino自带Opencv,不需要再自己去下

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')
if frame is None:    
    raise Exception('Image not found!')
    
# 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)

然后运行,一定要用python3,2没有OpenCV
还有一个细节要注意
如果你这样运行就会报错,说找不到xml文件(我被这个坑了好久emm)
在这里插入图片描述
要先进到文件夹里面再运行
在这里插入图片描述
Nice!

8、使用其他模型

你可以去因特尔官网下载
在这里插入图片描述
点击“资源“就可以找到很多预训练模型,每个模型官方也都做了介绍
只需要把xml和bin文件下下来和前面示例一样的方式使用即可
如果不想只做物体检测可以编译其他文件(前面只编译了object_detection_sample_ssd)

//希望这能帮到你

猜你喜欢

转载自blog.csdn.net/qq_47110957/article/details/105597468