树莓派4B与Intel Movidius计算棒2代实现人脸识别加速实例

  • 树莓派
    • 树莓派介绍
    • 教程
    • 操作
      • 换源部分:
      • 安装cmake
  • Intel 神经计算棒环境配置
    • Intel 神经计算棒简介
    • OpenVINO™ 工具套件
      • 下载安装OpenVINO™ 工具套件
        • demo测试验证安装是否成功
          • Opencv + python api调用方法:
      • OpenVINO推理简介
      • openvinotoolkit/open_model_zoo

本文参考了 从零开始搭建树莓派 + intel movidius 神经元计算棒2代深度学习环境
以及 树莓派+英特尔神经棒2代部署人工智能应用

树莓派

树莓派介绍

Raspberry Pi(中文名为“树莓派”,简写为RPi,(或者RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。

树莓派由注册于英国的慈善组织“Raspberry Pi 基金会”开发,Eben·Upton/埃·厄普顿为项目带头人。
它是一款基于ARM的微型电脑主板,以SD/MicroSD卡为内存硬盘,卡片主板周围有1/2/4个USB接口和一个10/100 以太网接口(A型没有网口),可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等诸多功能。 Raspberry Pi B款只提供电脑板,无内存、电源、键盘、机箱或连线。

教程

链接: 树莓派新手无痛开机指南
链接: 树莓派使用视频教程

操作

  • 内存卡操作

    • 软件

      • WIN32Disk
      • rpi-imager
    • 操作
      • 向空白内存卡写入新的系统
      • 系统备份
  • 文件传输
    • Filezilla 参见Windows10和树莓派互传文件(filezilla)
  • 远程查看
    • VNC viewer 参见使用teamviewer树莓派远程控制树莓派
    • Teamviewer 参见使用teamviewer树莓派远程控制树莓派
      以上为了Filezilla及VNCviewer使用方便,最好将树莓派的IP设置为固定IP。 具体方法参见树莓派4B设置静态IP
      下载树莓派镜像、烧写镜像、启动配置树莓派参见从零开始搭建树莓派 + intel movidius 神经元计算棒2代深度学习环境

换源部分:

  1. 修改sources.list
    使用Linux自带的nano编辑器:

    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 退出

  2. 修改raspi.list

    sudo nano /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
    

    ctrl + O 保存, ctrl + X 退出.
    使用sudo apt-get update命令,更新软件源列表,若没有错误,表示换源成功。

安装cmake

编译c/c++程序时需要使用cmake
使用以下命令安装cmake
sudo apt-get install cmake

Intel 神经计算棒环境配置

Intel 神经计算棒简介

见Intel的Movidius神经计算棒基本概念梳理

OpenVINO™ 工具套件

见英特尔® 发行版 OpenVINO™ 工具套件概述及OpenVINO™ 工具套件概述

下载安装OpenVINO™ 工具套件

下载OpenVINO toolkit for Raspbian安装包:
使用以下地址从download.01.org/网站下载树莓派版的openvino工具套件。

https://download.01.org/opencv/2019/openvinotoolkit/R3/l_openvino_toolkit_runtime_raspbian_p_2019.3.334.tgz

经测试,2021版本的openvino与2019版本相比有一定改变,以下的配置和编译方式不适用于2021版。

下载完后包位于Downloads/目录下,打开命令行

cd ~/Downloads/

解压包:

tar -xf l_openvino_toolkit_runtime_raspbian_p_2019.3.334.tgz

在home/pi目录下新建一个名为intel文件夹:

mkdir ~/intel

将上述解压好的l_openvino_toolkit_runtime_raspbian_p_2019.3.334文件夹修改名称为openvino_2019,移动至intel文件夹下。

配置路径与环境
执行以下命令,会自动对setupvars.sh文件做修改

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

配置环境,添加环境变量

sudo nano /home/pi/.bashrc

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

source /home/pi/intel/openvino_2019/bin/setupvars.sh

保存,再打开一个新的终端,如果出现:

[setupvars.sh] OpenVINO environment initialized

就表示成功了

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

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

接下来配置USB规则,执行:

sh ~intel/openvino_2019/install_dependencies/install_NCS_udev_rules.sh

到这里就成功安装好计算棒所需的所有东西了

demo测试验证安装是否成功

构建和运行对象检测示例,这个例子是执行人脸检测的。
下面第一步代表转到包含示例源代码的文件夹~/openvino_2019/deployment_tools/inference_engine/samples,后面三步表示建立新的文件夹build,并执行编译操作。

cd ~/openvino_2019/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/opencv/2019/open_model_zoo/R3/20190905_163000_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/R3/20190905_163000_models_bin/face-detection-adas-0001/FP16/face-detection-adas-0001.xml

然后自己在网上找一张人脸的图片,在build文件夹下执行

./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图片,到这里表示计算棒运行成功!

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

然后在终端执行:

python3 face_detection.py
程序成功运行没报错,则表示运行成功,然后我们会在文件夹下看见输出结果,检测成功

OpenVINO推理简介

见OpenVINO推理简介

openvinotoolkit/open_model_zoo

见openvinotoolkit/open_model_zoo
如果遇到下载问题,使用下面百度网盘链接:

链接:https://pan.baidu.com/s/1iVX4hfss8n3l0B6JwbnwLw
提取码:s30k

在下面的open_model_zoo仓库里有很多其他应用的权重文件

https://download.01.org/opencv/2019/open_model_zoo/R3/20190905_163000_models_bin/

比如司机动作识别、面部表情识别、人体姿势识别、行人识别等等。

树莓派4B与Intel Movidius计算棒2代实现深度学习应用加速相关推荐

  1. 树莓派3b+和 intel movidius 神经元计算棒2代 跑yolo v3 tiny

    本帖子主要是参考了以下两篇: 第一篇: 从零开始搭建树莓派 + intel movidius 神经元计算棒2代深度学习环境 这篇文章主要目录如下: 摘要 材料硬件: 步骤: 1.    下载树莓派镜像 ...

  2. 从零开始搭建树莓派 + intel movidius 神经元计算棒2代深度学习环境

    从零开始搭建树莓派+intel movidius 神经元计算棒2代深度学习环境 摘要 材料硬件: 步骤: 1. 下载树莓派镜像并解压 2. 烧写镜像 3. 启动树莓派 4. 配置树莓派 5. 安装cm ...

  3. 实录分享 | 计算未来轻沙龙:深度学习工具专场(PPT下载)

    12 月 2 日(周日)下午,PaperWeekly 携手清华大学计算机系推出了计算未来轻沙龙第六期线下活动--深度学习工具专场.来自亚马逊 AWS.谷歌.英伟达.百度 PaddlePaddle 以及 ...

  4. 搭建树莓派 4B + intel movidius 神经元计算棒2代深度学习环境

    换源 这样下载速度会快一点稳定一点: 使用管理员权限,执行 sudo leafpad /etc/apt/sources.list 在打开的文件中,用#注释掉原文件内容,用以下内容取代: deb htt ...

  5. 树莓派4B+配件+Intel神经棒2代购机指南

    下一篇:树莓派4B开机配置指南_利用官方模型实现人脸识别 目录 一.摘要  1.1.树莓派简介  1.2.英伟达JETSON NANO简介  1.3.其他派  1.4.Intel神经棒简介 二.采购清 ...

  6. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  7. 计算未来轻沙龙 | 当深度学习遇上归纳推理,图神经网络有多强大?

    作为一名新世纪的深度学习炼丹师 是否整天面对各种结构的原(shu)料(ju)? 对于无规则的空间数据 传统炼丹大法好像并不能发挥奇效 图作为一种非常神奇的表示方式 可以表示生活中绝大多数现象或情境 那 ...

  8. Intel Movidius Neural Computer Stick 2使用(PC-Based Ubuntu)

    接着博主前面的系列博客继续讲,这篇来介绍上Intel的第二代加速神经棒的使用,主要还是参考官网来配置.前面很多博客也都访问过多家公司的官网,比较下来,Intel的真的很强大,满满的技术感. Intel ...

  9. 1.搭建深度学习项目树莓派的硬件设备选择

    搭建深度学习项目树莓派的硬件设备选择 文章目录 搭建深度学习项目树莓派的硬件设备选择 1.型号选择 1.1 官网产品 1.2 型号介绍 1.2.1 树莓派 400 1.2.2 树莓派 数字系列 1.2 ...

最新文章

  1. lightgbm简易评分卡制作
  2. 画出该lti系统的幅频特性响应曲线_模拟电路-放大电路的频率响应
  3. idea上一些比较有用的插件
  4. PX4飞控之导航及任务架构
  5. apt-get clean 清除 apt 的缓存
  6. Java 中的 Reference
  7. vue = 什么意思_Vue导入模块import xxx from '@/xxx'中的@是什么含义?
  8. Linux Mount命令浅解
  9. Numpy——numpy属性
  10. 【Java】Servlet原理
  11. python分位数回归模型_分位数回归及其Python源码
  12. 国内使用dropbox_如何在iPhone或iPod Touch上使用Dropbox
  13. 网吧用计算机性能配件清单,如何查看网吧电脑配置清单图文教程
  14. Google Drive(谷歌网盘)下载超大文件方法
  15. 【效率工具】markdown文档自动同步到印象笔记evernote
  16. html,canvas——星星闪烁
  17. Python地理数据处理 十五:基于arcpy的批量操作
  18. Redis集群(Cluster)
  19. 阿里云OS 2012(天语W806大黄蜂)破解教程/ROOT教程(一键破解法)
  20. 【每日早报】2019/09/27

热门文章

  1. 3Dmax2020动画制作
  2. java swing实现计算器,Java swing实现的计算器功能完整实例
  3. iOS 修改image尺寸
  4. Python拼接SQL字符串的方法
  5. TPMS胎压监测系统
  6. 【JavaScript 上卷】对象
  7. wepy 小程序 echarts 搭配使用
  8. typeScript基础(1)_原始数据类型学习
  9. 彻底掌握 java 注解
  10. 图片无损放大如何操作?