热门标签 | 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个小时左右。 


推荐阅读
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 在 openSUSE Tumbleweed 系统上搭建 51 单片机开发环境并进行编程实践。首先,通过 `sudo zypper in emacs` 命令安装文本编辑器 Emacs。接着,使用 `sudo zypper in sdcc` 安装 SDCC 编译器。最后,利用 `wget` 下载 sdcflash Python 脚本,以便于单片机的烧录和调试。此外,还介绍了如何配置开发环境,确保各组件协同工作,提高开发效率。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 利用Apache构建高效稳定的Web服务器环境
    本文详细介绍了如何利用Apache构建高效稳定的Web服务器环境。首先,概述了Apache服务器的基本概念及其安装步骤,并深入探讨了相关配置文件的设置方法。接着,通过具体的实验环境示例,展示了服务端(域名:zhangpp63.cn,IP地址:192.168.1.63)和客户端的配置过程,确保读者能够全面理解并实际应用这些技术。此外,还提供了一些优化建议,以提高服务器的性能和稳定性。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
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社区 版权所有