raspberrypi连接神经计算棒人脸识别

2023-05-16

Raspberrypi连接神经计算棒人脸识别

树莓派3B上部署英特尔神经网络计算棒Intel NCS2进行最普通的人脸识别。

参考

  1. 英特尔官方文档

  2. 博文树莓派上部署英特尔神经网络计算棒Intel NCS2

  • 硬件: 树莓派3B
  • 树莓派3B安装系统 :2020-02-13-raspbian-buster.zip
  • 神经计算棒: IntelNCS2

1. 安装 openvino 工具包

到网站下载工具: openvino 工具包,也可以找其它的版本下载到 cd ~/Downloads/ ,这时使用以下版本:

l_openvino_toolkit_runtime_raspbian_p_2020.3.341.tgz

打开终端

cd ~/Downloads/ 

sudo tar -xf  l_openvino_toolkit_runtime_raspbian_p_2020.3.341.tgz//解压文件

mv l_openvino_toolkit_runtime_raspbian_p_2020.3.341.tgz inference_engine_vpu_arm//修改文件夹名称

2. 安装外部软件支持

sudo apt install cmake

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

显示 以下,就正常了

[setupvars.sh] OpenVINO environment initialized

环境变量

4. 添加USB规则

sudo usermod -a -G users "$(whoami)"  //添加规则
source /home/pi/Downloads/inference_engine_vpu_arm/bin/setupvars.sh //加载修改后的设置,使之生效
sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh //退出 重新登录 

显示以下正常:

Updating udev rules...
Udev rules have been successfully installed.

在这里插入图片描述

插上神经计算棒

5. 运行对象检测示例验证安装的推理机

进入此目录

cd inference_engine_vpu_arm/deployment_tools/inference_engine/samples/cpp  

sudo mkdir build && cd build

构建对象检测样本:

cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=armv7-a"

进入子目录构建样本

编译

make -j2 object_detection_sample_ssd

构建成功编译成功

下载预培训的人脸检测模型

下载带有权重的.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.bin

下载带有网络拓扑结构的.xml文件:

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 yangmi.jpg

应用程序输出一个图像(out_0.bmp),检测到的面用矩形括起来。

命令行运行示例显示结果

6. 验证OpenCV的安装

6.1 下载带有权重的.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.bin

6.2 下载带有网络拓扑结构的.xml文件:

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

7. 了解树莓派的工作流

创建 Python 文件 openvino_fd_myriad.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')
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 openvino_fd_myriad.py

脚本命令运行结果

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

raspberrypi连接神经计算棒人脸识别 的相关文章

随机推荐

  • 将一个字节数据进行高低位镜像对调的实现函数

    unsigned char swap unsigned char pData unsigned char value 61 0 tmp 61 0 unsigned char ii jj for ii 61 0x80 jj 61 0 ii 6
  • PX4-做飞控二次开发需要知道的事情-Cxm

    前言 废话 来了 之前一直在做APM飞控的开发 发现除了企业用APM 在比赛方面还是PX4居多一点 加上最近也有这个需求所以又重拾了PX4 这两个飞控最大的区别应该就是系统了吧 PX4学习起来还是比较简单的 比较系统和模块化 在重拾PX4之
  • 指针函数和函数指针的区别

    1 指针函数 xff1a 带指针的函数 xff0c 其本质是一个函数 xff0c 函数返回是某一类型的指针 例如 xff1a int f x xff0c y 其结构为 类型标识符 函数名 参数 首先你要从心里承认这是一个函数 xff0c 只
  • 什么是中断?

    中断嘛 xff0c 对于很多新手来讲 xff0c 有点难以理解 xff0c 举个容易的现实的例子吧 如果还不懂 xff0c 骚年 xff0c 考虑换行吧 xff0c 或许这不是你的方向呢 xff0c 诗和远方在前面岔路左拐 比如小明和老丈人
  • 什么是看门狗?

    一样采用简单明了的例子来解释 条件 xff1a 你家有条狗 事件 xff1a 让他看门 xff0c 报警 结果 xff1a 1到点不给吃饭 xff0c 会叫 xff0c 2到点喂他吃东西 xff0c 等待下次开饭 影响 xff1a 叫了 x
  • BUG的烦恼

    在我们这个行业的学习和工作中 xff0c bug是个逃不掉的话题 最近两天 xff0c 在调试一个程序 xff0c 程序本来是完整的 xff0c 只是我需要把它移植到另一个平台上 框架是没有动的 xff0c 连平台的架构都很像 xff0c
  • 什么是Handler

    1 什么是Handler xff1f Handler就是将消息放入队列的机制 我们在哪个线程中创新handler xff0c handler就将消息放入所在的线程 xff0c 除非在创建handler对象时是指定具体的线程 通常handle
  • 905协议第四部分简单说明

    905协议以5b开头5d结尾 转成ascii就是 这两个符号 905是用中括号括起来的消息 消息构成 61 43 消息头 43 消息体 43 crc 43 业务逻辑是消息头与消息体两部分组成 消息头 61 数据长度 43 消息序列号 43
  • git命令创建分支|合并分支|删除分支

    一 创建test分支提交步骤 1 列出所有分支 xff1a git branch a 2 创建test分支 xff1a git branch test 3 切换到test分支 xff1a git checkout test 4 添加add修
  • JS版SM2国密算法的签名验证

    前段时间因工作需要 xff0c 了解到在Github上已经有人实现了用JavaScript来写签名和验签 xff0c 支持RSA ECC DSA等算法 xff0c 还能解析X 509证书 xff0c 一时觉得JavaScript是无比强大
  • 配置VNC连接阿里云服务器

    1 安装vncserver2 安装Linux gnome界面3 修改 vnc xstartup4 使用vnc工具连接 使用VNC Viewer使用Remmina Remote Desktop Client 1 安装vncserver 阿里云
  • SCI论文状态

    自己留好投稿时的文件号 xff0c 然后登录网站查询 一般有以下几种情况 xff1a 1 Submitted to Journal 刚提交的状态 2 Manuscript received by Editorial Office 就是你的文
  • STM32控制直流电机笔记(一)——电源转换和电机驱动电路设计及注意事项

    STM32控制直流电机笔记 xff08 一 xff09 电源转换和电机驱动电路设计及注意事项 电压转换电路15V 转 12V 12V 转 5V 所用芯片LM2575 05 LM2575 12 12v直流电机驱动电路 所以芯片TB6612 注
  • CMake Error: The following variables are used in this project, but they are set to NOTFOUND解决办法

    在配置px4 Firmware时 xff0c 编译make时报错 xff1a CMake Error The following variables are used in this project but they are set to
  • PX4 avoidance ROS仿真之——使用自定义的飞机模型

    运行自己的飞机模型主要需解决的问题 飞机模型的stereo相机话题 当你的飞机模型中包含了双目相机时 xff0c 需要运行一个ROS的node xff0c 将下面内容添加到posix sitl launch文件中 xff1a lt span
  • RealSense T265相机及IMU标定,运行VINS

    转自 https www jianshu com p 194d6c9ef9a4 不确定该文章有没有对IMU和相机的时间做同步 xff01 1 使用imu utils工具包标定IMU 这里有个坑 xff0c imu utils依赖code u
  • 编译px4 Firmware 执行make报错的问题解决办法

    ccache error Failed to create temporary file for home xxx ccache tmp tmp cpp stderr Permission denied 一般这个报错下面还会接另一个报错 x
  • 在Ubuntu中安装Docker,添加Docker官方GPG key失败,解决方案

    1 添加Docker官方GPG key xff1a curl fsSL https download docker com linux ubuntu gpg sudo apt key add 2 问题来了 xff0c 有的人会遇到如下的Bu
  • git中push或者clone时报错the remote end hung up unexpectedly

    使用git提交或者克隆时出现the remote end hung up unexpectedly的异常 xff0c 原因应该是网络原因引起的而且文件可能比较大的情况下 解决办法是 xff1a 配置git的最低速度和最低速度时间 xff0c
  • raspberrypi连接神经计算棒人脸识别

    Raspberrypi连接神经计算棒人脸识别 树莓派3B上部署英特尔神经网络计算棒Intel NCS2进行最普通的人脸识别 参考 英特尔官方文档 博文树莓派上部署英特尔神经网络计算棒Intel NCS2 硬件 xff1a 树莓派3B树莓派3