• 搭建树莓派 + 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

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

  • 相关阅读:
    JS中attribute和property的区别
    px(像素)、pt(点)、ppi、dpi、dp、sp之间的关系
    计算几何
    动态凸包
    斜率DP题目
    斜率DP个人理解
    后缀数组题目
    CF#190DIV.1
    MANACHER---求最长回文串
    扩展KMP题目
  • 原文地址:https://www.cnblogs.com/cloudrivers/p/11459403.html
Copyright © 2020-2023  润新知