从0开始实现目标检测——基于YOLOv5

一. 背景

在上次我们利用YOLOv3做目标检测的任务中(参考文章:从0开始实现目标检测——实践篇),我们遗留一些问题,其中一个是利用YOLOv5做一次对比,既然是对比,也就是在数据集不变的情况下,基于YOLOv5进行训练,看看整个模型的mAP是否有变化。整个过程也分为以下4步:

  1. 为什么是YOLOv5 ?
  2. 安装体验YOLOv5,并跑通基于公开数据训练YOLOv5
  3. 基于自己的数据训练YOLOv5
  4. 计算mAP

那么,我们开始吧~

二. 为什么是YOLOv5?

基于对目标检测原理的探究(参考文章:从0开始实现目标检测——原理篇),我们知道了YOLO系列的算法思想:它不使用窗口滑动,而是直接将原始图片分割成互不重合的小方块,然后通过卷积最后生产这样大小的特征图,可以认为特征图的每个元素也是对应原始图片的一个小方块,然后用每个元素来可以预测那些中心点在该小方格内的目标。

YOLO系列的算法都是基于这个思想实现的。对比YOLOv3,YOLOv5在整个神经网络分为4个部分的改进如下:

  1. Input:数据加载使用了3种数据增强:缩放、色彩空间调整和马赛克增强。
  2. BackBone:结合了很多先进的图像识别领域的内容和算法,包括:CSPNet、Leaky ReLU和Sigmoid 激活函数。
  3. Neck:在BackBone和最后的输出层之间往往会插入一些层,这里就加入了SPP-Net、FPN+PAN结构。
  4. Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数GIOU Loss,加快了收敛速度。

此外,YOLOv5还增加了自适应锚定框的功能,这样就不用根据不同训练数据调整锚定框的大小和位置了。

在这些改进下,YOLOv5在兼顾mAP的同时,有着更短的检测时间,同时YOLOv5s的权重文件大小只有27MB,能够更好的适应嵌入式设备和移动设备。这里有张官方的性能图参考,如下:

简单解释下YOLOv5上新增的技术点中的2个:

SPP-Net:神经网络是需要输入固定尺寸的图片,比如224x224、32x32、96x96等。这样对于我们希望检测各种大小的图片的时候,需要经过crop,或者warp等一系列操作,这都在一定程度上导致图片信息的丢失和变形,限制了识别精确度。而且,从生理学角度出发,人眼看到一个图片时,大脑会首先认为这是一个整体,而不会进行crop和warp,所以更有可能的是,我们的大脑通过搜集一些浅层的信息,在更深层才识别出这些任意形状的目标。SPP-Net对这些网络中存在的缺点进行了改进,基本思想是,输入整张图像,提取出整张图像的特征图,然后利用空间关系从整张图像的特征图中,在池化层中提取各个区域的特征。一个正常的深度网络由两部分组成,卷积部分和全连

  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
基于yolov5的烟火检测可以分为两个主要步骤:模型训练和C++实现部署。 首先是模型训练。我们需要收集包含烟火的图像数据集,并进行数据标注,即标记图像中的烟火目标。接着,在yolov5的基础上进行一些调整和优化,以适应烟火检测任务。然后,使用标注好的数据集进行模型训练,通过迭代优化模型的权重和参数,使其具备较高的烟火检测精度。可以使用GPU来加速模型训练过程。最后,通过评估指标如mAP(平均精度均值)等来评估模型的性能。 其次是C++实现部署。在完成模型训练后,我们需要将其部署到实际环境中进行使用。首先,将模型保存为.onnx或.torchscript格式,以便于在C++中加载和使用。然后,使用C++编程语言,利用相应的深度学习框架(如OpenCV、TensorRT等)进行模型加载和推理。通过读取输入图像数据,将其输入到模型中进行烟火检测,获取检测结果。最后,根据实际需求,可以将检测结果进行可视化展示、保存或者与其他业务系统进行集成。 总之,基于yolov5的烟火检测涉及模型训练和C++实现部署两个主要步骤。模型训练需要进行数据收集、标注和调优,以及模型训练和性能评估;C++实现部署需要将模型保存,并利用C++编程语言和深度学习框架进行模型加载、推理和结果处理。这样可以实现高效准确的烟火检测功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

guohuang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值