树莓派4B部署YOLOv5目标检测模型部署(包含加速方法以及模型训练方法总结)

树莓派4B部署YOLOv5目标检测模型部署

1.工作内容简介:

(1)训练鱼类目标识别模型。首先建立水下鱼类目标数据集,由于目前国内暂时并没有可用红鳍东方鲀标注数据集,本文利用Labelimage软件对所采集水下鱼类样本进行标注,得到目标数据集后,参照YOLOv5结构算法训练得到YOLOv5s.pt鱼类目标模型。
(2)利用OPENVION模型转换。训练得到YOLOv5s.pt模型后,通过树莓派平台适配的学习工具OPENVION进行模型转换,将.pt模型转换为需要的IR模型,在本地设备和树莓派平台中搭建相应的运行环境,对整个流程进行必要的解释说明,得到推理速度更快的模型,以便完成部署,与优化之前的模型形成对比的推理速度。
(3)利用树莓派平台部署。在部署前需要了解树莓派软硬件搭配条件,对部分重要环境的搭建过程进行介绍,选择对应模型的软件环境版本,配置成功后进行项目测试,最终在树莓派平台完成模型的推理,并且实现目标实时检测的效果。
**

2. 数据集准备

**
首先我们利用水下摄像机及辅助LED照明光源,于养殖池水下环环境对红鳍东方鲀对象进行侧拍,采集图像数据样本,共计采集红鳍东方鲀图像样本2552幅。本文基于YOLOv5框架进行红鳍东方鲀目标检测算法研究,该框架属于全监督深度学习方法。样本数据集标注信息的准确度会直接影响模型训练准确性。然而,目前并没有可用的水下鱼类标注数据集,利用Labellmg标注软件对采集的目标鱼类图片进行标注,共获得图像及其标注信息2552组,可满足模型训练需求,样本数据及其标注结果。
鱼类
**

3.部署工作简介

**
模型转化的方法是我们主要研究对象,由于树莓派配套使用的OPENVION工具包不提供直接将训练所得的YOLOv5.pt模型转换为IR模型的接口,因此需借助YOLOv5模型框架中的export.py脚本文件,将原模型文件转换为.ONNX格式作为中间量。然后再将其转换成IR模型,主要工作分为本地设备和树莓派平台两个内容,在本地主机上下载OPENVION工具包需要很大的内存空间,因此选择在本地设备转换模型,而树莓派上下载的文件内存空间占用很小也很方便,我们只需在其进行模型的推理即可。在树莓派中下载OPENVION安装包以及配置NCS2环境,搭建可编译、执行YOLOv5模型的软件环境,安装文件互相之间的依赖包且严格对应好模型版本需求,最终在树莓派中完成其部署工作。树莓派的开发流程包括:选择预训练模型;使用模型优化器来转换模型;最后在树莓派平台完成推理模型。
在这里插入图片描述
**

3.1 软件环境搭建

**
为保证YOLOv5文件可以在树莓派中正常运行,需要在树莓派平台中安装如下几个重要的学习工具:Opencv,PyTorch,Torchvision,Cmake等,由于树莓派官方系统中包含的环境不足以支持我们完成YOLOv5的文件运行,因此我们需要主动选择各个库文件之间的安装版本以及安装依赖问题,安装过程中会遇到一些网络问题和设备硬件问题等,一些文件包不支持直接在树莓派中安装下载,需要在终端对其编译环境方可下载使用,以下是几个软件环境安装时的主要步骤介绍:
软件环境配置
软件工具 版本
Python 3.7
Cmake 3.18
Conda 4.3.16
Torch 1.6
Torchvision 0.7
OpenCV 4.4
Picamera 1.13
Numpy 1.19.4
OPENVION 2020

3.2 OPENVION安装准备工作
首先在树莓派平台下载安装2020版QPENVION工具包,解压安装后在其终端安装一些依赖环境,进行设置环境所需要的变量并对其测试,测试成功后添加USB原则,为了使加速棒成功插入进行测试,加入USB原则后对整个环境进行模拟测试,对YOLOv5的程序进行运行测试最终得到正确的运行结果即表示搭建安装的OPENVION环境成功。
在这里插入图片描述
**

3.3 运行环境测试

**
通过上一小节中配置运行模型所需的软件环境后,首先进行测试的是树莓派外接的CSI摄像头调用功能是否良好,摄像头功能能否正常使用决定了识别工作的成功与否,通过运行摄像头启动和调用的功能并用此来拍一张照片,成功得到目标图片后,即证明摄像头安装成功,接下来进行检测YOLOv5官网模型的源码程序并运行测试结果,得到图片和摄像头实时检测结果.
在这里插入图片描述

4.1 图片检测结果以及分析

在这里插入图片描述
在这里插入图片描述
结果分析:根据图片显示结果我们可以直观的看出,图片测试效果在树莓派中鱼类目标识别的精度较高,仅有一小部分识别框与鱼类本身位置有些出入,这与我们在使用本地设备中使用CPU识别效果基本保持一致,我们可以得到测试两张图片时间为6.9s,平均一张图片推理时间为3.45s,FPS大约为0.3帧/s左右,作为一款算力几乎为0的边缘设备没有通过任何加速模型方法,已经可以作为比较成功的效果了,我们可以通过使用转换模型后的推理速度形成对比。

4.2 视频检测结果以及分析

在这里插入图片描述

结果分析:水下鱼类视频目标识别在树莓派中检测结果如上,由于视频检测时间较长,相比于简单的图片会消耗树莓派运行的CPU占用时间和内存,所需等待时间也会比较久,在输出过程中需要保证树莓派本身的散热情况良好,使其在软硬件条件确保无误后输出视频结果,在运行结果中具体分析我们得到与图片近似的结论,在整个流程中随机截取两张图片所示,识别精度几乎与图片呈现的效果相同,视频整体视觉还是比较流畅,相比于启动摄像头实时识别的效果较好,识别精度较高可以证明训练所得模型数据真实可靠,可以完整流畅对视频进行识别,下面我们可以与实时识别的效果形成个对比。

4.3 实时摄像头识别效果

在这里插入图片描述
结果分析:从实时识别结果中我们可以发现,每一次识别时间大概为3.1秒左右,其速度是我们将图片输出的分辨率从原来的256640调整为256320得到的结果,推理速度与在本地设备中有些差异,可见树莓派中CPU实时检测的效果一般,这其中包括硬件设备算力不足等问题,但并非其模型本身识别效果问题,这就需要我们对YOLOv5模型通过一些方法优化再次部署到树莓派中检测其推理速度进行比较。

4.4 部署模型优化及分析

由于树莓派只有CPU这一限制条件,所以本文决定采用树莓派系统配备的OPENVION软件包经行模型转换处理。通过训练所得的YOLOv5s.pt模型是无法直接在树莓派平台转换为IR模型的,所以我们先在本地设备中选择处理,第一步将YOLOv5s.pt模型转为ONNX中间模型后再转为IR模型,最终我们在树莓派中可以实现完成推理速度的测试即可,与没有转换前的模型二者的推理速度形成一个对比,如果有速度提升则证明我们优化模型的方法是合理的,反之则方法不成立,最终通过转换后的模型得到如图显示的推理速度的结果:
在这里插入图片描述
通过模型转换后的YOLOv5s的FPS在0.89帧左右,相比高算力的本地设备来说速度并不算快,但是对比于树莓派本身,在没有通过模型转换前的FPS在0.35左右,通过NCS2加速后速度也算有所提升,其中主要耗时集中在神经棒的推理之中,需要耗费767ms,虽没有达到预期一样的本地设备推理效果,但相对其本身也有小幅提升,足以可见的此方法是成立的。

总结

本项目是在树莓派平台上面实现对鱼类目标模型识别与检测,硬件选择方面为树莓派4B与64gSD存储卡,由于需要进行实时视频的显示,我们在国内目前几个较为主流的摄像头中综合选出性价比较高的CSI摄像头进行实时视频的工作,并且根据本项目需要进行一些代码的操作以及编译工作选择鼠标,键盘,显示器来进行显示以及操作工作,考虑到树莓派的CPU需要长时间进行检测工作,为了保证CPU处在一个安全的温度区间需要在树莓派上面安装散热风扇。
软件环境首先需要进行的是树莓派操作系统的镜像烧录工作,在选择系统时我们更倾向于选择树莓派官网系统的32位操作系统,其中包括了很多我们搭建环境所需的文件包,在运行模型的时候相对其他非官网系统也要更为稳定一些,在烧录过程中主要需要注意SD卡的格式化操作,需要使用格式换软件进行格式化的操作,系统烧录结束之后我们就可以在树莓派终端搭建适合YOLOv5的环境以及各种文件之间的依赖包,由于网络问题常常会导致下载失败等问题,需要我们反复多次进行测试,搭建结束后我们通过测试YOLOv5官网模型识别到成功的结果说明软件环境已经搭建成功,接下来我们可以通过对自己的鱼类目标模型进行部署和模型优化处理,得到成功的部署结果。

最后的最后

想对新人刚开始学习树莓派并学习目标检测yolo系列的同学说一些,在学习过程中经常会遇到一些难以解决的问题,此时呢我们应该滤清思路,想一想我们到底应该去用什么方法解决什么问题,于此同时方可在学习的道路上越走越远,脚踏实地的向前迈进,由于树莓派这一设备的局限性不能发挥出yolo模型的全部优势 ,但是作为研究者的我们应该在各种平台设备中去进行测试推理得到结果,并最终根据结果验证方案是否可行,在学习这条路大家都是一致的,只不过每一个人的起点不同,只要肯坚持,都会有好的结果的。

  • 10
    点赞
  • 162
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
### 回答1: YOLOv5是一种效而准确的车辆检测模型。它基于You Only Look Once (YOLO) 系列模型的最新版本,并在精度和速度上做出了显著的改进。 YOLOv5的设计理念是将车辆检测任务转化为一个回归问题。它使用了一个轻量级的卷积神经网络架构,其中包含了多个卷积层和池化层。这使得模型能够在效地处理大量输入数据的同时,保持着较的检测准确率。 为了提准确性和稳定性,YOLOv5使用了一种名为"bag of freebies"的技术。这种技术通过提供更多的训练样本、使用更先进的数据增强方法和优化网络结构来增强模型的性能。此外,YOLOv5还采用了一种名为"bag of specials"的技术来进一步优化模型的性能。这种技术通过改善模型的损失函数、使用更强的优化算法以及设计更合适的模型架构来提升检测效果。 与其他车辆检测模型相比,YOLOv5具有以下优势: 1. 度精确:YOLOv5在车辆检测任务上具有较的准确率和定位准确度,能够很好地捕捉到不同大小、形状和姿态的车辆。 2. 低延迟YOLOv5能够在实时应用中实现较低的检测延迟,保证了车辆检测的效性。 3. 轻量级:YOLOv5相比于其他复杂的车辆检测模型,使用更少的计算资源,具有较小的模型体积和更快的推理速度。 4. 易用性:YOLOv5提供了易于使用和自定义的接口,用户可以根据自己的需求快速搭建并训练自己的车辆检测模型。 综上所述,YOLOv5是一种效而准确的车辆检测模型,能够在实时应用中提供质量的车辆检测服务。它的创新设计和技术方法使其在车辆检测领域具有显著的竞争优势。 ### 回答2: YOLOv5是一种用于车辆检测的最新视觉模型。它是由YOLO算法系列的创造者之一开发,并在YOLOv4的基础上进行了改进。 YOLOv5利用深度学习技术实现对车辆的快速而精确的检测。相较于传统的基于R-CNN的方法YOLOv5使用单阶段目标检测框架,这意味着它可以在一次前向传播过程中同时进行目标检测与定位,大大提了检测速度。 YOLOv5的主要优势在于其精度和效性能。它采用了一种新的主干网络架构,即CSPDarknet53,该架构具有更强的特征提取能力。此外,YOLOv5还引入了一种轻量级的骨干网络架构EfficientDet-D0,在保持性能的同时减少了模型大小和计算成本。 此外,YOLOv5还通过使用自适应训练技术,实现了更好的模型适应能力。这种技术可以根据训练数据的特点,自动调整模型的大小和结构,以获得更好的检测效果。 总之,YOLOv5是一款优秀的车辆检测模型,具有精度、效性能和适应能力强的特点。它在许多计算机视觉任务中都取得了卓越的成绩,并且在实际应用中具有很大的潜力。 ### 回答3: YOLOv5是一种用于车辆检测的深度学习模型。它是YOLO(You Only Look Once)系列模型的最新版本,具有更的检测精度和更快的运行速度。 YOLOv5采用了一种轻量化的网络架构,可以在保持准确性的同时减少模型的参数量和计算量。该模型通过将输入图像划分为多个网格单元格,并为每个单元格预测边界框和类别概率来进行检测。与传统的目标检测方法相比,YOLOv5具有更快的运行速度和更的实时性能。 为了提YOLOv5的车辆检测能力,模型训练时采用了大规模的车辆图像数据集进行训练,并使用了数据增强技术来增加模型对不同场景和尺度的适应能力。此外,YOLOv5还能够对车辆的不同部位和角度进行准确的定位和分类,从而提了车辆检测的精度。 YOLOv5还具有良好的实用性和灵活性。它可以应用于不同的车辆检测场景,如交通监控、自动驾驶、智能交通等。同时,YOLOv5还支持在不同硬件平台上进行部署,如GPU、CPU、移动设备等,使其具有更广泛的应用范围。 综上所述,YOLOv5是一种优秀的车辆检测模型,具有准确性、快速运行和良好的实用性。它在车辆检测领域具有广泛的应用前景,为交通安全和交通管理提供了有力的技术支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

萌动的心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值