树莓派4B 安装Ubuntu 18.04 部署深度学习框架

燕鸿波
2023-12-01

镜像下载

ubuntu-18.04.5-preinstalled-server-arm64+raspi3.img.xz
官方链接

写入镜像

我使用的是Ubuntu + balenaEtcher
官网

Ubuntu 安装balenaEtcher的方法

curl -1sLf \
   'https://dl.cloudsmith.io/public/balena/etcher/setup.deb.sh' \
   | sudo -E bash
sudo apt-get update
sudo apt-get install balena-etcher-electron

桌面设置

进入系统后会提示输入账号密码
初始账号密码均为ubuntu ,然后提示修改密码,依次输入当前密码即ubuntu 和新密码,确认密码

配置完成之后需要重新登陆。

下面开始安装桌面

接下来这一个过程

sudo apt update && sudo apt upgrade -y

安装并启动tasksel

sudo apt install tasksel -y
sudo tasksel

方向键控制上下移动,空格键选中/取消,Tab键选中OK ,按下回车即可开始安装
等待完成
在下方的命令行中输入reboot,重启即可

远程控制

SSH

首先需要将树莓派联网,
安装SSH服务

sudo apt install openssh-server

确定它的IP地址

ifconfig

将控制机连接到相同的网络下,先尝试是否能ping通

ping 192.168.XXX.XXX

尝试SSH连接

ssh ubuntu@192.168.XXX.XXX

如果可以连接的话,则会让你输入被控机的密码
如果提示can’t be established,则输入以下命令,自动信任主机并添加到已知连接中 , 该文件为~/.ssh/known_hosts

ssh -o StrictHostKeyChecking=no 192.168.XXX.XXX

VNC

被控机

安装vnc

sudo apt install -y vnc4server

启动vnc,并设置密码。启动成功后会返回端口号比如 :1 ,控制机进行连接时,需要输入IP+端口号进行连接

vncserver

安装桌面环境

sudo apt install -y x-window-system-core gdm3 gnome-panel gnome-settings-daemon metacity nautilus gnome-termina 

修改 VNC的配置文件

sudo gedit ~/.vnc/xstartup

修改情况如下

#xsetroot -solid grey
#vncconfig -iconic &
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

关闭已启动的VNC

vncserver -kill :1

启动新的vnc

vncserver

控制机

下载VNC View ,官网

输入IP和端口号
比如
192.168.XXX.XXX:1

NoMachine

只需在控制机和被控机上分别下载安装文件并安装即可
官网

环境准备

ROS安装

请参阅我之前的文章:Ubuntu 18.04 ROS

python环境

安装pip

sudo apt install python3-pip

安装cython

pip3 install cython

升级pip

python3 -m pip install --upgrade pip

安装opencv-python

pip3 install opencv-python

部署Tensorflow Lite

TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi

检查python版本

python3

查看输出的信息,我的是python3.6

Lite 网址 https://tensorflow.google.cn/lite/guide/python?hl=zh_cn
下载 Linux Arm 64 python 3.6 版本的文件

pip3 install tflite_runtime-2.1.0.post1-cp36-cp36m-linux_aarch64.whl

验证

python3
>>import tflite_runtime.interpreter as tflite
>>tflite.interpreter()

测试一个物体识别程序

git clone https://github.com/EdjeElectronics/TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi.git
mv TensorFlow-Lite-Object-Detection-on-Android-and-Raspberry-Pi tflite
cd tflite
bash get_pi_requirements.sh

下载模型
还是在上面的终端中输入

wget -c https://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip
unzip coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip -d model

运行,使用本地相机继续物体识别,在这里我是通过USB外接的相机

python3 TFLite_detection_webcam.py --modeldir=model

训练lite模型

请参考训练lite模型

部署Torch 1.8

yolov5

查看的其他资料都说官方没有arm版的pytorch 1.7.1 只能自己编译,但是我发现应该有。
可自己尝试
根据yolov5中的requirement.txt 修改
torch ==1.8.0
torchvision ==0.9.1
执行

pip3 install -r requirement.txt

就不需要自己再编译了

下面这两个版本检测结果是有问题的,不能使用,但是可以参考一下编译步骤

自编译PyTorch 1.7.1
python 版本3.6.9

git clone --recursive https://github.com/pytorch/pytorch  
cd pytorch
git checkout v1.7.1
git submodule update --init --recursive   # 这一步会很慢,多重复几次

设置环境变量

export NO_CUDA=1
export NO_DISTRIBUTED=1
export NO_MKLDNN=1
export NO_NNPACK=1
export NO_QNNPACK=1

开始编译

python3 setup.py build

安装

sudo python3 setup.py install

编译torchvision 0.8.1

git clone https://github.com/pytorch/vision.git
cd vision
git checkout v0.8.1 

编译

python3 setup.py build

安装

sudo python3 setup.py install
 类似资料: