点击蓝字
关注我们,让开发变得更有趣
内 容 来 源 | 牛宝华内 容 排 版 | 卢蔷薇01
环境介绍
- 硬件:树莓派4B 8G内存版神经计算棒(NCS2)USB3.0 的读卡器64GB SD卡HDMI线(因为要连接显示器)键盘(USB接口,连接树莓派用)
- 软件:Ubuntu20.04OpenVINO 2021.3Raspberry 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而是字母l2. 设置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 -y
sudo 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-dev
mkdir opencv-4.5.2-openvino/build
cd opencv-4.5.2-openvino/build
cmake\
-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 4
sudo make install
05
安装 OpenVINO 开发套件
1. 做一点点事情准备sudo apt install git-lfs cython3
2. 从 GitHub 拉取资源3. 编译cd ~
git clone -b 2021.3 https://github.com/openvinotoolkit/openvino.git openvino-2021.3
cd openvino-2021.3
git submodule update --init --recursive
同样需要一个小时左右4. 配置环境变量配置完成后,新打开一个窗口如果看到下面的画面表示配置成功。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 4
sudo make install
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
6. 配置一下其他环境变量sudo usermod -a -G users "$(whoami)"
sh /opt/intel/openvino/install_dependencies/install_NCS_udev_rules.sh
7. 注意事项由于安装时软件之间存在依赖关系,请按照如下顺序进行安装:OpenCV → OpenVINO →OpenCV(Python库)export ngraph_DIR=/opt/intel/openvino/deployment_tools/ngraph/cmake
export OpenCV_DIR=/opt/intel/openvino/opencv
export PYTHONPATH=$OpenCV_DIR/lib/python3.8/site-packages:$PYTHONPATH
06
验证是否安装成功
1. 安装 Open Model Zoo
2. 下载与OpenVINO版本相符的 Open Model Zoopip3 install networkx defusedxml protobuf test-generator==0.1.1
pip3 install opencv-python
3. 下载 Alexnetcd ~
git clone https://github.com/openvinotoolkit/open_model_zoo.git -b 2021.3 --depth 1
cd ./open_model_zoo/tools/downloader./downloader.py --name alexnet --precisions=FP16
4. 转换成Neural Compute Stick可识别的形态./converter.py --name alexnet --precisions=FP16
5. 最终确认下载一个图片或者自己通过FTP上传一张也可以。 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/942d3a0ac09ec9e5eb3acd ~
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
07
说在最后的话
我们在编译过程中会多次访问 GitHub,因此一个良好的外网环境很有必要。最开始尝试过各种加速方法,最终还是用了梯子。顺便重装了一次系统,细心的小伙伴发现,后面的IP地址从107变成了114。另外整个编译时间大概花费4个小时左右。 如果你对「OpenVINO 在树莓派上的运行」感兴趣的话, 请持续关注公众号。我们下期见。--END--你也许想了解(点击蓝字查看)⬇️
➡️ 利用 ESH 下载 OpenVINO 与英特尔视觉边缘洞见平台
➡️ 黑客松大赛火热进行中|诚邀企业参赛者一同参与!
➡️ 4月28日直播回顾|基于 OpenVINO 的前端开发
➡️ 小白视角看 ros_openvino_toolkit
➡️ 基于 OpenVINO 的英特尔智慧社区参考架构
➡️ 完整教程|OpenVINO 能支持ARM架构了?!
➡️ 征集活动 | OpenVINO 邀你来做技术达人!
➡️ OpenVINO 部署 Mask-RCNN 实例分割网络
➡️ OpenVINO 部署模型时如何自定义任意尺寸的支持
????欢迎在留言区与我们互动哦,点击小程序 留言区 即可参与