热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

干货|树莓派4B搭建OpenVINO环境

01环境介绍硬件:树莓派4B8G内存版神经计算棒(NCS2)USB3.0的读卡器64GBSD卡HDMI线(因为要连接显示器)键盘ÿ

01环境介绍

 

  1. 硬件:

    树莓派4B 8G内存版

    神经计算棒(NCS2)

    USB3.0 的读卡器

    64GB SD卡

    HDMI线(因为要连接显示器)

    键盘(USB接口,连接树莓派用)

     

  2. 软件:

    Ubuntu20.04

    OpenVINO 2021.3

    Raspberry Pi Imager(用于烧录系统)

    任意命令行工具(我用的是Windows Terminal)

 

02安装操作系统

 

1. 从官网下载Ubuntu系统镜像

[Install Ubuntu on a Raspberry Pi | Ubuntu]

➡️ https://ubuntu.com/download/raspberry-pi

图片

图片

图片

 

 2. 等待镜像写入完成后,将SD卡插入树莓派。

 3. 开机

 如果连接显示器后显示没有信号,将树莓派重启即可。

图片

如果看不到登录,输入回车即可。

图片

默认账号和密码都是 ubunu。

第一次登录后,会让你修改密码

图片

 

03系统配置

 

1. swap设置

Ubuntu 20.04 默认是没有设置swap的,如果你没有比较非内存的应用可以跳过这一步,如果有,但是没有设置那么很容易出现死机的情况。

这里以8G为例:

sudo fallocate -l 8G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfilesudo sh -c 'echo "/swapfile\tnone\tswap\tsw\t0\t0" >> /etc/fstab'

> 注意第一行的不是数字1而是字母l

 

2. 设置WIFI

输入 ip a 可以看到如下内容

图片

wlan0即使wifi模块

编辑Netplan文件

sudo vim /etc/netplan/50-cloud-init.yaml

图片

> 在编辑的时候,如果输入回车,它会自动输入四个空格,记得把他们删除掉。

sudo netplan apply

再次输入 ip a

图片

可以看到已经有了IP地址。

 

3. 用ssh登录

默认是开通了ssh服务的,现在我们便可以通过 windows 连接到树莓派了。

> 这样截图会方便很多,哈哈哈

图片

设置一下系统时间

timedatectl set-timezone Asia/Shanghai

图片

 

4. 安装桌面

sudo apt update && sudo apt dist-upgrade -ysudo apt install -y ubuntu-mate-desktop

这有可能花费很多时间,根据网络情况而定

图片

图片

这两个根据自己的喜好选择就可以了。

图片

等待安装完成。

 

5. 配置vnc

有的时候我们不想用HDMI连接显示器,这时可以使用VNC Viewer来查看树莓派的内容。

sudo apt install tightvncserver

启动服务

vncserver

然后启动 windows 上的 vnc viewer 软件。

图片

图片

输入密码

图片

可以看到桌面了。

 

6. 配置FTP

由于我们后面会经常进行文件的传送,因此FTP还是很有必要的。

sudo apt-get install vsftpd

图片

cd /etc/sudo vim vsftpd.conf

通过上面的命令,进行配置,具体修改内容有以下几个地方:

图片

重启服务

service vsftpd restart

打开  Windows 里面的一个文件夹,并输入 ftp://192.168.2107。

图片

 

然后输入密码即可。

图片

 

04编译 OpenCV 4.5.2-openvino

1. 下载源代码

git clone --depth 1 -b 4.5.2-openvino https://github.com/opencv/opencv.git opencv-4.5.2-openvino

2. 开始编译

sudo apt install libtbb-dev libjpeg-dev libtiff-dev libwebp-devmkdir opencv-4.5.2-openvino/buildcd opencv-4.5.2-openvino/buildcmake\ -DCMAKE_INSTALL_PREFIX=/opt/intel/openvino/opencv \ -DCMAKE_BUILD_TYPE=Release \ -DWITH_INF_ENGINE=ON \ -DENABLE_CXX11=ON \ -DWITH_TBB=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python3.8 \ -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.8.so \ -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 .make -j 4sudo make install

这是一个比较漫长的过程,大概一个小时左右。

图片

图片

 

05安装 OpenVINO 开发套件

1. 做一点点事情准备

sudo apt install git-lfs cython3

2. 从 GitHub 拉取资源

cd ~git clone -b 2021.3 https://github.com/openvinotoolkit/openvino.git openvino-2021.3cd openvino-2021.3git submodule update --init --recursive

3. 编译

cd openvino-2021.3./install_build_dependencies.sh
mkdir build & cd build
cmake \ -DCMAKE_INSTALL_PREFIX=/opt/intel/openvino \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_SSE42=OFF \ -DTHREADING=SEQ \ -DENABLE_GNA=OFF \ -DENABLE_PYTHON=ON \ -DPYTHON_EXECUTABLE=/usr/bin/python3.8 \ -DPYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython3.8.so \ -DPYTHON_INCLUDE_DIR=/usr/include/python3.8 \ .. make -j 4sudo make install

同样需要一个小时左右

图片

4. 配置环境变量

配置完成后,新打开一个窗口如果看到下面的画面表示配置成功。

echo "source /opt/intel/openvino/bin/setupvars.sh" >> ~/.bashrc

5. 配置NCS驱动

将神经计算棒插入树莓派,并查看。

sudo usermod -a -G users "$(whoami)"sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh

sudo usermod -a -G users "$(whoami)"sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh

6. 配置一下其他环境变量

export ngraph_DIR=/opt/intel/openvino/deployment_tools/ngraph/cmakeexport OpenCV_DIR=/opt/intel/openvino/opencv export PYTHONPATH=$OpenCV_DIR/lib/python3.8/site-packages:$PYTHONPATH

7. 注意事项

由于安装时软件之间存在依赖关系,请按照如下顺序进行安装:

OpenCV → OpenVINO →OpenCV(Python库)

 

06验证是否安装成功


1. 安装 Open Model Zoo

pip3 install networkx defusedxml protobuf test-generator==0.1.1pip3 install opencv-python

2. 下载与OpenVINO版本相符的 Open Model Zoo

cd ~git clone https://github.com/openvinotoolkit/open_model_zoo.git -b 2021.3 --depth 1

3. 下载 Alexnet

cd ./open_model_zoo/tools/downloader./downloader.py --name alexnet --precisions=FP16

4. 转换成Neural Compute Stick可识别的形态

./converter.py --name alexnet --precisions=FP16

5. 最终确认

下载一个图片或者自己通过FTP上传一张也可以。

图片

 

cd ~wget https://www.pdclipart.org/albums/Food__D-M/lemon_3.png
python3 ~/openvino/inference-engine/ie_bridges/python/sample/classification_sample_async/classification_sample_async.py -m ~/open_model_zoo/tools/downloader/public/alexnet/FP16/alexnet.xml -i ~/lemon_3.png -d MYRIAD

图片

classid为951时的准确率是0.76,这里的 classid 相对于 Alexnet 学习时的图片id,我们查看一下发现,951的确为 lemon。

图片

 

text: imagenet 1000 class idx to human readable labels (Fox, E., & Guestrin, C. (n.d.). Coursera Machine Learning Specialization.) · GitHub

➡️https://gist.github.com/yrevar/942d3a0ac09ec9e5eb3a

 

07说在最后的话

我们在编译过程中会多次访问 GitHub,因此一个良好的外网环境很有必要。最开始尝试过各种加速方法,最终还是用了梯子。顺便重装了一次系统,细心的小伙伴发现,后面的IP地址从107变成了114。另外整个编译时间大概花费4个小时左右。 


推荐阅读
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Windows 7 部署工具DISM学习(二)添加补丁的步骤详解
    本文详细介绍了在Windows 7系统中使用部署工具DISM添加补丁的步骤。首先需要将光驱中的安装文件复制到指定文件夹,并进行挂载。然后将需要的MSU补丁解压并集成到系统中。文章给出了具体的命令和操作步骤,帮助读者完成补丁的添加过程。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文主要介绍关于linux文件描述符设置,centos7设置文件句柄数,centos7查看进程数的知识点,对【Linux之进程数和句柄数】和【linux句柄数含义】有兴趣的朋友可以看下由【东城绝神】投 ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
author-avatar
丹_jie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有