• 树莓派3B+安装OpenVINO,Intel Movidius神经计算棒NCS2的环境部署


    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/weixin_41665225/article/details/86508556
    0 前言
    要写论文,做点真正能用的智慧设备,顺便用在自己果园里,降低人工成本。
    首先是要建一个图像识别+视觉导航实验的平台。
    考虑到后期可能要真的投入使用并推广,没采用nVidia Jetson TX2这样的豪华配置(比树莓派+NCS2贵差不多3000块)。
    折腾了一天多,总算是弄好了,考虑到自己岁数大了,容易忘事。把整个过程写下来,以便后面参考。
    关于OpenVINO和神经计算棒,可以先看OpenVINO的介绍和这篇文章。
    基本上就是把做好的神经网络部署到嵌入式环境用的。训练模型还是在PC机上。


    1. 材料
    树莓派 Raspberry Pi 3B+

    Intel Movidius Neural Compute Stick 2


    2 准备工作
    到树莓派官网去下载最新版的Raspbian。由于后续工作需要用到图形界面,选
    Raspbian Stretch with desktop。树莓派官网推荐用etcher安装,听官方的没错。下载etcher并安装。

    2.1 烧写系统镜像到sd卡
    由于操作系统安装在SD卡上,SD卡的读写速度直接影响系统运行速度,因此SD卡要选尽量快的。我用的是32G的98MB/S的SD卡。

    我下载的镜像文件是 2018-11-13-raspbian-stretch.zip
    在电脑上插上SD卡。不用解压,直接用etcher打开下载来的压缩包。
    Flash之。得等一会儿。


    2.2 启动树莓派
    我没买树莓派专用的显示器和键盘鼠标(将来都是电子垃圾,能少一样是一样),按照下面的文章来安装。
    https://segmentfault.com/a/1190000010976507

    为了能顺利启动ssh,需要在SD卡的根目录写一个文件名为ssh的空文件,还有让它能自动连接WiFi。

    但问题来了,烧写后的SD卡boot分区是readonly的,需要用usbroot工具来去掉readonly标志。需要的话自行百度“usbroot”并下载。

    重新插拔SD卡,并打开usbroot,选“用0重置参数”,然后开始。

    如果提示“无法打开…”,不用管,重新插拔SD卡即可。


    写入ssh启动文件和wifi配置文件。


    2.3 进入Raspbian系统
    通上电(电脑USB或者充电宝),就能从路由器里看到树莓派了。


    默认的名字是“dhcpcd-6.11.5-armv71”。用ssh客户端(我用bitwise ssh client)。
    用户名pi,密码raspberry。

    这时候用VNC Viewer去连接,还不能连接图形界面。

    下一节解决软件安装的问题。

    3 OpenVINO开发环境的部署
    3.1 更换国内源
    sudo nano /etc/apt/sources.list
    #用nano不用vi,vi不好用
    1
    2
    把源改成

    deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
    deb-src https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
    1
    2
    然后Ctrl+O保存,Ctrl+X退出。

    同样

    sudo nano /etc/apt/sources.list.d/raspi.list
    1
    内容改成

    deb https://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
    deb-src https://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
    1
    2
    保存退出。

    执行

    sudo apt-get update
    1
    更新软件源,速度快了很多。

    树莓派自带了一个vncserver,我们来配置它

    sudo raspi-config
    1
    弹出来一个配置窗口

    选5,enable VNC Server. 重启。
    然后配置vncseserver,创建配置文件

    sudo nano /etc/init.d/vncserver
    1
    内容为:

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides: vncserver
    # Required-Start: $local_fs
    # Required-Stop: $local_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Start/stop vncserver
    ### END INIT INFO

    # More details see:
    # http://www.penguintutor.com/linux/vnc

    ### Customize this entry
    # Set the USER variable to the name of the user to start vncserver under
    export USER='pi'
    ### End customization required

    eval cd ~$USER

    case "$1" in
    start)
    # 启动命令行。此处自定义分辨率、控制台号码或其它参数。
    su $USER -c '/usr/bin/vncserver -depth 16 -geometry 1024x768 :1'
    echo "Starting VNC server for $USER "
    ;;
    stop)
    # 终止命令行。此处控制台号码与启动一致。
    su $USER -c '/usr/bin/vncserver -kill :1'
    echo "vncserver stopped"
    ;;
    *)
    echo "Usage: /etc/init.d/vncserver {start|stop}"
    exit 1
    ;;
    esac
    exit 0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    sudo chmod 755 /etc/init.d/vncserver
    sudo update-rc.d vncserver defaults
    sudo shutdown -r now

    1
    2
    3
    4
    VNC Viewer能连接了。


    网上有文章教怎么设置固定IP,我的路由器一旦分配了IP后不改变,这步就略了。

    3.2 安装OpenVINO
    参考官方网站:

    Install the Intel® Distribution of OpenVINO™ Toolkit for Raspbian* OS

    先下载并解压OpenVINO 2018R5

    cd Downloads
    wget https://download.01.org/openvinotoolkit/2018_R5/packages/l_openvino_toolkit_ie_p_2018.5.445.tgz
    tar zxvf l_openvino_toolkit_ie_p_2018.5.445.tgz
    cd inference_engine_vpu_arm
    nano inference_engine_vpu_arm/bin/setupvars.sh
    1
    2
    3
    4
    5
    修改nano inference_engine_vpu_arm/bin/setupvars.sh文件的内容
    <INSTALLDIR> 改为~/Downloads/inference_engine_vpu_arm。
    运行

    source inference_engine_vpu_arm/bin/setupvars.sh
    1
    设置环境,显示

    [setupvars.sh] 64 bitness for Python 3.5 is requred
    [setupvars.sh] OpenVINO environment initialized
    1
    2
    3.3 解决环境依赖的问题
    3.3.1 安装cmake
    sudo apt-get install cmake
    1
    3.3.2 其他
    编译安装Python 3.6.8

    https://www.python.org/downloads/

    编译安装X264

    git clone https://git.videolan.org/git/x264.git
    1
    编译安装FFmpeg
    http://www.ffmpeg.org/download.html

    P.S. 这几个东西要编译好久,之前编译的我都打包存起来了。

    搞新的系统的时候直接拷贝过去解压运行

    百度网盘:
    Python 3.6.8 提取码 phtg
    FFmpeg 提取码 yyog
    X264 提取码 862b

    sudo apt-get install libsdl2-dev
    sudo apt-get install libomxil-bellagio-dev
    #挨个解压,进入相应文件夹,运行
    sudo make install
    1
    2
    3
    4
    就能用。

    3.4 使计算棒能即插即用,自动加载
    3.4.1 把当前用户增加到users组里面
    执行

    sudo usermod -a -G users "$(whoami)"
    logout
    1
    2
    然后重新登录。

    3.4.2 配置NCS2的驱动
    详见 https://software.intel.com/en-us/neural-compute-stick/get-started
    执行以下代码:

    cd ~/Downloads
    cat <<EOF > 97-myriad-usbboot.rules
    SUBSYSTEM=="usb", ATTRS{idProduct}=="2150", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
    SUBSYSTEM=="usb", ATTRS{idProduct}=="2485", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
    SUBSYSTEM=="usb", ATTRS{idProduct}=="f63b", ATTRS{idVendor}=="03e7", GROUP="users", MODE="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
    EOF

    sudo cp 97-myriad-usbboot.rules /etc/udev/rules.d/
    sudo udevadm control --reload-rules
    sudo udevadm trigger
    sudo ldconfig
    rm 97-myriad-usbboot.rules
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    P.S. 如果nano inference_engine_vpu_arm/bin/setupvars.sh文件的内容
    <INSTALLDIR> 不是替换成~/Downloads/inference_engine_vpu_arm,这步执行会如果执行

    sh inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh
    1
    会报错

    pdate udev rules so that the toolkit can communicate with your neural compute stick
    File '97-myriad-usbboot.rules' is missing. Please check that you installed 'Inference Engine Runtime for Intel® Movidius™ VPU'.
    inference_engine_vpu_arm/install_dependencies/install_NCS_udev_rules.sh: 30: exit: Illegal number: -1
    1
    2
    3
    配置正确的话会看到

    Update udev rules so that the toolkit can communicate with your neural compute stick
    1
    3.5 编译samples并且验证
    看官方文档接着搞吧。
    https://software.intel.com/en-us/articles/OpenVINO-Install-RaspberryPI#add-usb-rules

    4. 收尾
    让OpenVINO在登录时启动,并把samples的编译输出目录添加到PATH环境变量里面。

    nano ~/.bashrc
    1
    增加两行

    source ~/Downloads/inference_engine_vpu_arm/bin/setupvars.sh
    export PATH=~/Downloads/inference_engine_vpu_arm/inference_engine/samples/armv7l/Release:$PATH
    1
    2
    题外话
    在OpenVINO之前神经计算棒有NCSDK,通过API的方式来使用Neural Compute Stick
    这里是一篇完整的教程。现在不知道Neural Compute Stick2还能不能用了。
    下一篇:

    《在树莓派+Intel NCS2上跑YoloV3 Tiny》

    先放几个参考链接
    https://software.intel.com/en-us/forums/computer-vision/topic/800208
    https://software.intel.com/en-us/articles/OpenVINO-InferEngine
    https://software.intel.com/en-us/forums/computer-vision/topic/800049

    明天再慢慢整理。
    ————————————————
    版权声明:本文为CSDN博主「rosqin」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_41665225/article/details/86508556

  • 相关阅读:
    Asp.net并发请求导致的数据重复插入问题
    记一次完整的asp.net-mvc页面优化过程
    设计完美的策略模式,消除If-else
    EF|CodeFirst数据并发管理
    mongo upsert
    js回调函数传参
    使用poi时,两个环境下,一个错误一直正常
    jna笔记1
    springboot集成rabbitmq测试
    一个方法让你了解js中的细节
  • 原文地址:https://www.cnblogs.com/cloudrivers/p/11458975.html
Copyright © 2020-2023  润新知