环境配置方式:🚀 整个过程采用远程的方式,记录树莓派部署
YOLOv5s
的过程。
准备:
- 树莓派5-4B
- 树莓派系统(安装的官方64位系统)
- USB摄像头
获取yolov5s.pt权值文件
使用的是轻量的yolov5s
模型,在本地训练后,通过命令发送发到树莓派上:
- 首先查看树莓派地址:
ifconfig # 查看地址
连接的wify,可以看到所属的地址端口。
- 将本地训练好的
yolov5s.pt
权值文件发送到树莓派上:
scp yolov5s.pt <用户名>@<树莓派地址>:<保存文件地址>
树莓派环境搭建
本打算参考其他博主的方法,将pt
权值文件转为ONNX
再利用OpenVINO
转为IR模型部署到树莓派上。
在本地成功得到IR
模型后,树莓派配置OpenVINO
环境加速推理时,遇到问题有点多😤,准备有空再进行尝试。
树莓派中运行yolov5s的环境使用Anaconda
配置和管理,步骤如下:
- 安装Anaconda
- 创建虚拟环境
- 下载yolov5源码
- 安装依赖库
- 安装Anaconda🌱
下载并安装Anaconda以管理Python环境,分别在终端执行:
wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
bash Anaconda3-2021.05-Linux-x86_64.sh
- 创建虚拟环境并安装YOLOv5 🌱
conda create -n yolov5 python=3.9 -y # 创建名为yolov5的虚拟环境,并指定Python版本为3.9
conda activate yolov5 # 激活虚拟环境
git clone https://github.com/ultralytics/yolov5.git # 克隆YOLOv5源码
cd yolov5
pip install -r requirements.txt # 安装YOLOv5所需的依赖库
检测图片
- 运行程序🌱
python detect.py \
--weights yolov5s.pt \ # 没有准备可省略该行,自动下载官方权值文件
--img 320 \ # 指定图片大小,压缩图片,加快检测速度,但是清晰度降低
--source /image/1.jpg \ # 指定图片路径
--device cpu \ # 使用cpu进行推理
使用的cpu进行推理,速度较慢,看资料显示树莓派也是有GPU的,但是因为树莓派GPU的算力太低,所以还是使用cpu进行推理,如果想使用GPU进行推理,需要安装CUDA
,而且树莓派安装CUDA
比较麻烦。
- 检测效果如下🌱:
开启摄像头实时检测
🍋检测视频流,遇到无法弹出实时检测界面,这让之前的工作毫无成就感😳,之后通过安装lightdm
来解决的。
lightdm
能够提供图形界面服务,使 OpenCV
cv2.imshow()
能通过 VNC
的虚拟显示端口渲染窗口。
- 安装
lightdm
🌱
sudo apt install lightdm # 安装图形界面管理器
sudo dpkg-reconfigure lightdm # 绑定显示服务到 VNC
sudo systemctl restart lightdm # 重启服务使配置生效
- 查看摄像头🌱
使用v4l2-ctl
指令查看所有视频设备
v4l2-ctl --list-devices
可以看到识别到的USB摄像头/dev/video0
、/dev/video1
,使用0
作为source
参数。
- 运行程序🌱
python detect.py \
--weights yolov5s.pt \
--source 0 \ # 使用摄像头(0 表示第一个摄像头)
--view-img \ # 启用实时画面显示--img-size 320
--device cpu
- 检测效果如下🌱:
🍀最终,通过远程的方式,在树莓派上成功部署了yolov5s
模型,实现了实时检测的功能。检测速度差不多8-9帧/s,后续会尝试加速推理。