树莓派4B部署Yolov5深度学习模型

关于如何在树莓派4B上部署深度学习模型

前言

对于在树莓派4b上部署深度学习模型,有几个坑点要写在前面:

  • 连接树莓派的摄像头一定不要在连接电源的过程中进行插拔,会导致摄像头烧掉。
  • 不要指望树莓派的性能,无论你使用什么方法,或是直接运行(.pt的模型)或是onnx模型进行推理优化,都无法达到很好的效果,我使用的是树莓派4B 4G的板子,这里如果没有推理优化一张图片的识别速度是3.x秒,利用onnx推理优化后的模型是0.7x秒,或许看着感觉很不错,但是应用到视频上毫不夸张的说比ppt还要卡。
  • 树莓派不支持GPU加速,也无法下载cuda,所以也不用考虑TensorRT。
  • 树莓派下载很多python的包需要在自己电脑上离线下载wheel,不然会很慢(无论你换什么镜像源都一样

如果你看完以上介绍还准备使用树莓派部署深度学习模型,那请继续向下看,博主经过两周时间把能踩的坑都踩过了!!!

使用工具

格式化工具:SDFormatter

烧录工具:任意

文件传输工具:FileZilla

远程连接工具:Putty, VNC

树莓派镜像版本:2021-10-18-raspbian-buster-full

具体流程

当烧录完成后,首先利用Putty远程连接服务器,成功进入服务器之后我们先激活VNC,终端输入sudo raspi-config进入树莓派配置界面,选择Interfacing Options,选择VNC并激活。然后重新输入sudo raspi-config进入后选择Boot Options然后选择Desktop/CLI,进入后继续选择Desktop Autologin Desktop GUI继续选择Advanced Options,然后选择Resolution,并根据你自己买的板子的配置选择具体的mode(这里我选择的是mode16)。然后选择Finnish,树莓派会自动重启,如果没有重启那么就在终端输入sudo reboot。到此为止,我们已经实现了树莓派系统的基本配置。

下面我们利用VNC连接树莓派并对深度学习模型所需的环境进行配置,进入之后会发现有两个python版本,一个是python2一个python3,并且默认是python2,这里要把默认的改成python3,通过python3 --version查看python3的版本,如果没有那需要自己安装,输入sudo apt-get install python3安装python3。在python3安装成功后,在终端输入以下命令修改默认python为python3

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3.x /usr/bin/python

这里的python3.x要换成你自己的python3的版本,如果是3.8这里就输入sudo ln -s /usr/bin/python3.8 /usr/bin/python

现在基本的python环境已经配置完成。

现在需要安装yolov5具体需要的python包,首先下载yolov5的GitHub项目,代码如下:

git clone https://github.com/ultralytics/yolov5
cd yolov5
pip install -r requirements.txt

不出意外的话在执行最后一步的时候会出现若干报错:

  • 下载超时
  • 找不到torch和torchvision对应的版本

由于树莓派的python包的下载地址位于https://www.piwheels.org/simple/,下载很慢,你可以先进行换源,换成清华的镜像源。但是很遗憾即使你换了也有很多包装起来非常的慢。所以这里我给出的方法是,先换源,然后把不好装的包在本机上下载wheel,再通过FileZilla传到树莓派上安装,这里我把几个不好装的包列出来,大家自行去网站下载

scipy
PyYAML
matplotlib
Pillow
opencv-python
torch
torchvision

除了以上几个包之外,其他的在镜像源中都可以找到,所以安装完上面的几个包后注释掉requirments.txt关于torch和torchvision的部分,然后重新执行pip install -r requirments.txt即可。安装完所有的包之后,首先检测一下是否可以直接调用.pt模型进行预测,终端输入python detect.py --source image.jpg,这里image.jpg是我上传到yolov5路径下的一张图片。这里最后会输出对这张图片检测所需要的时间,默认weights使用的是yolov5s的权重,我这里的时间大概是3.3秒左右。速度非常慢,换成摄像头视频检测就别提有多卡了。下面我再介绍一下如何利用onnx模型在树莓派上进行模型推理。

Onnx模型推理

为了加速运行,一般会使用onnxruntime对模型进行推理,首先要将.pt模型转换为onnx模型,对于yolov5,对应的onnx模型在官网可以自行下载,一般我们会使用TensorRT利用c++进行推理,但是TensorRT必须要使用cuda,因此这里就完全不用考虑了。这里使用Python对模型进行推理,树莓派直接安装onnxruntime库会提示找不到对应版本,因此我们还是去前面提到的官网下下载到本地在传输到自己树莓派上。

这里如果使用的yolov5s的模型可以直接使用下面这个GitHub中的推理代码,类似的代码网上有很多,大家可以自己选择

https://github.com/Amelia0911/onnxruntime-for-yolov5

利用onnx模型进行推理加速后,每张图片的检测速度可以达到0.7s左右,也就是1.4帧。看起来从原来的3.3s到0.7s提升很多,但是其实并没有任何意义,因为用摄像头做实时视频检测只有1.4帧的话,卡的跟ppt没什么区别。还有网上说用oepnvino在树莓派上做加速的效果也很差。这些效果差的原因不在于优化方法,只是因为树莓派这个性能本身就不适合部署目标检测框架。

  • 12
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
您好!对于树莓派4B部署Yolov8,您可以按照以下步骤进行操作: 1. 安装操作系统:首先,您需要在树莓派上安装适合的操作系统。推荐使用Raspberry Pi OS,并确保已经进行了更新和升级。 2. 安装依赖库:在树莓派上安装OpenCV和其他所需的依赖库。可以通过以下命令来安装: ``` sudo apt install libatlas-base-dev libjasper-dev libqtgui4 python3-pyqt5 libqt4-test libhdf5-dev libharfbuzz0b pip3 install opencv-python ``` 3. 下载Yolov8代码:可以在GitHub上找到Yolov8的开源代码,可以使用git命令进行下载: ``` git clone https://github.com/AlexeyAB/darknet.git ``` 4. 编译和配置Yolov8:进入下载的darknet目录,然后进行编译和配置: ``` cd darknet make ``` 5. 下载预训练权重:在darknet目录下创建一个新的文件夹,并从Yolov8的官方网站上下载预训练权重文件。您可以使用以下命令进行下载: ``` mkdir weights cd weights wget https://pjreddie.com/media/files/yolov3.weights wget https://pjreddie.com/media/files/yolov3-tiny.weights ``` 6. 进行推理:现在,您可以使用Yolov8进行目标检测。将带有目标图像的文件放入darknet/data目录,并使用以下命令运行推理: ``` ./darknet detector test cfg/coco.data cfg/yolov3.cfg weights/yolov3.weights data/image.jpg ``` 以上是在树莓派4B部署Yolov8的基本步骤。请注意,由于树莓派的资源限制,可能会导致推理速度较慢。您可以尝试使用Yolov3-tiny来提高性能,但可能会损失一些检测准确率。另外,确保您已经正确配置了摄像头和相应的驱动程序,以便进行实时目标检测。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠檬ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值