zoukankan      html  css  js  c++  java
  • 搭建树莓派 + movidius 神经元计算棒2代深度学习

    摘要

    本文从零开始搭建,从烧写树莓派的系统开始,到最后用计算棒跑人脸检测。本教程适用二代的计算棒,不适合一代的计算棒。 
    参考: 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

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

  • 相关阅读:
    Hdu 1257 最少拦截系统
    Hdu 1404 Digital Deletions
    Hdu 1079 Calendar Game
    Hdu 1158 Employment Planning(DP)
    Hdu 1116 Play on Words
    Hdu 1258 Sum It Up
    Hdu 1175 连连看(DFS)
    Hdu 3635 Dragon Balls (并查集)
    Hdu 1829 A Bug's Life
    Hdu 1181 变形课
  • 原文地址:https://www.cnblogs.com/cloudrivers/p/11459403.html
Copyright © 2011-2022 走看看