英特尔神经棒二代适用于树莓派4B的部署教程

前言

前几天拿到了老师的神经棒,花了一天多的时间终于配置好了,期间踩了很多坑,遇到了很多困难的问题,后来翻了很多国内外的论坛,尝试了多个版本后才解决,成功用opencv运行了摄像头实时检测识别等功能。这篇博客用来给自己做个备忘录,也帮助有需要的人。作者水平不高,如有纰漏,烦请多多包涵,指出错误!

事先准备

  1. 树莓派4B

国内各大论坛里都是树莓派3B的配置教程,虽说和4B配置过程大同小异,但还是有一些小小的变化。
本文所用的树莓派硬件及系统版本如下(其实只要大版本一致即可)
重点信息如下:
系统版本:Raspbian 10 Buster(据我所知,2019版本以前的opvino不适配该系统)
CPU型号:BCM2711-v7l在这里插入图片描述

系统版本

  1. openivo_raspbian_2020.1.023版
    这是部署神经棒的必备程序,建议与笔者版本一致,英特尔官方对其更新速度还是挺快的,而且每次更新都会有变化。
    下面是我上传的地址,只需要一个币,大家有币的支持下吧,我确实缺😭
    链接: openivo_raspbian_2020.1.023版.
    也可以在这里下载免费的版本:
    https://download.01.org/opencv/2020/openvinotoolkit/2020.1/

开始配置

  1. 安装Camke
    如果你是使用C或者C++调用神经棒计算的,这一步是必须的,如果你和笔者一样使用python编译,那么这一步可以跳过。
    打开终端,执行:
apt install cmake
  1. 配置openvino

下载好安装包后,移动到树莓派里,放到一个文件夹下,笔者放在了/Downloads/下,大家可以根据自己的路径进行修改。

//打开终端,输入
cd ~/Downloads/

解压包:

tar -xf l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz

解压后将文件夹重命名为 openvino_2020
进入到/bin/目录下,输入一下命令打开setupvars.sh文件

sudo mousepad setupvars.sh

大概在第17行,将

INSTALLDIR="${INTEL_OPENVINO_DIR:-<INSTALLDIR>}"

替换为

INSTALLDIR=/home/pi/Downloads/openvino_2020/

然后再命令行中输入

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

这是临时启动,即仅本次有效,建议执行下面的命令使其永久有效:

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

执行完成后,打开一个新的终端,看到如下命令,则成功:

[setupvars.sh] OpenVINO environment initialized

如果报错,建议检查一下前面的步骤,看有没有遗漏,尤其是setupvars.sh里路径的修改

  1. 添加USB规则
    将当前Linux用户添加到users组:
sudo usermod -a -G users "$(whoami)"

然后运行这个脚本:

sh openvino_2020/install_dependencies/install_NCS_udev_rules.sh

同样,如果报错请认真查看前文的setupvars.sh修改路径是否正确,这是报错的主要原因。
到这里就完成了。

  1. 测试
    其实这一步非必要,这是给用C或者C++用户测试用的,Python用户可以直接跳到下一步。
    在当前目录下新建build文件夹并进入
mkdir build && cd build

生成物体检测样本:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a" /home/pi/Downloads/openvino_2020/deployment_tools/inference_engine/samples/cpp

make -j2 object_detection_sample_ssd

从英特尔官方地址下载.bin和.xml文

wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/face-detection-adas-0001/FP16/face-detection-adas-0001.bin

wget --no-check-certificate https://download.01.org/opencv/2020/openvinotoolkit/2020.1/open_model_zoo/models_bin/1/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 "这里填入待检测人像的图片路径"
  1. 用python测试
    用python调用神经棒就非常简单了,首先需要安装opencv-python
    然后复制如下代码:
import cv2 as cv

print('开始检测人脸')
net = cv.dnn.readNet('face-detection-retail-0004.xml', 'face-detection-retail-0004.bin')
net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)
frame = cv.imread('./1.jpg')
blob = cv.dnn.blobFromImage(frame, size=(672, 384), ddepth=cv.CV_8U)
net.setInput(blob)
out = net.forward()
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))
cv.imwrite('./out.png', frame)//输出图像名及路径可以自行修改
print('人脸检测完成,已保存检测结果图像')

以上代码借鉴了B站UP主"同济自豪兄"的代码,如有侵权,请联系我立即删除,这是视频连接:https://www.bilibili.com/video/BV1UJ411q7du?p=15

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值