YOLOv5网络结构详解

一、 模型结构

YOLOv5 的架构由三个主要部分组成:

  • Backbone: 在 YOLOv5 中,主干网络采用新 CSP-Darknet53 结构设计,这是对以前版本中使用的 Darknet 架构的修改。
  • Neck: 连接主干和头部的部分。在 YOLOv5 中,使用了 SPPF 和 New CSP-PAN 结构。
  • Head:该部分负责生成最终输出。YOLOv5 使用了与 YOLOv3相同的 Head。

网络结构图如下所示,具体参见models文件夹下的.yaml文件

与之前的版本相比,YOLOv5 引入了一些微小的变化:

早期版本中的 Focus 结构被 6x6 Conv2d 结构所取代。这一改动提高了效率。
SPP 结构被 SPPF 所取代。这一改动使处理速度提高了一倍多。

二、数据增强技术

YOLOv5 采用了多种数据增强技术,以提高模型的泛化能力并减少过度拟合。这些技术包括:

  • Mosaic增强: 这是一种图像处理技术,可以将四张训练图像合并为一张图像,从而促使物体检测模型更好地处理各种物体比例和平移。

  • Copy-Paste增强: 这是一种创新的数据增强方法,它能从图像中复制随机片段,并将其粘贴到另一张随机选择的图像上,从而有效生成新的训练样本。

  • 随机仿射变换: 包括图像的随机旋转、缩放、平移和剪切。

  • 混合增强: 一种通过对两幅图像及其相关标签进行线性组合来创建合成图像的方法。

  • Albumentations: 功能强大的图像增强库,支持多种增强技术。
  • HSV 增强:随机改变图像的色调、饱和度和值。

  • 随机水平翻转:一种水平随机翻转图像的增强方法。

三、 训练策略

YOLOv5 采用了几种复杂的训练策略来提高模型的性能。它们包括:

  • 多尺度训练: 在训练过程中,输入图像会在其原始尺寸的 0.5 至 1.5 倍范围内随机重新缩放。
  • 自动锚点: 该策略可优化先验锚点框,使其与自定义数据中地面实况框的统计特征相匹配。
  • Warmup 和 Cosine LR调度器: 一种调整学习率以提高模型性能的方法。在正式训练之前先有一个热身时期,在此期间(例如0.1epoch)学习率会逐渐增加到初始学习率,这有助于稳定训练初期的优化过程。
  • 指数移动平均 (EMA): 一种使用过去步骤参数平均值来稳定训练过程并减少泛化误差的策略。
  • 混合精度训练: 一种以半精度格式执行运算的方法,可减少内存使用量并提高计算速度。
  • 超参数进化:一种自动调整超参数以达到最佳性能的策略。

四、附加功能

4.1 计算损耗

YOLOv5 中的损失函数是由三个单独的损失部分组合而成的:

  • 类别损失(BCE Loss): 二元交叉熵损失,用于测量分类任务的误差。
  • 对象损失(BCE Loss): 另一种二元交叉熵损失,计算检测特定网格单元中是否存在物体的误差。
  • 位置损失(CIoU Loss): 完全 IoU 损失,测量在网格单元内定位物体的误差。

整体损失函数描述如下:

4.2 平衡损失

三个预测层(P3、P4、P5)的对象损失权重不同。平衡权重分别为 [4.0,1.0,0.4]。这种方法可确保不同尺度的预测对总损失做出适当的贡献。

4.3 消除网格敏感性

与早期版本的 YOLO 相比,YOLOv5 架构对方框预测策略做出了一些重要改变。在 YOLOv2 和 YOLOv3 中,方框坐标是利用最后一层的激活直接预测的。

不过,在 YOLOv5 中,预测边框坐标的公式已经更新,以降低网格敏感性,防止模型预测出无边界的边框尺寸。

修订后的预测边界框计算公式如下:

比较缩放前后的中心点偏移。中心点偏移范围从(0,1)调整到(-0.5,1.5)。因此,偏移量很容易变为 0 或 1。

比较调整前后的高度和宽度缩放比(相对于锚点)。原始的 yolo/darknet 方框方程有一个严重缺陷。宽度和高度完全没有限制,因为它们只是 out=exp(in),这是很危险的,因为它会导致梯度失控、不稳定、NaN 损失,并最终导致训练完全失败。

4.4 建立目标

YOLOv5 中的构建目标过程对训练效率和模型精度至关重要。它包括将地面实况框分配到输出地图中的适当网格单元,并将其与适当的锚点框匹配。

该过程遵循以下步骤:

  • 计算地面实况框尺寸与每个锚点模板尺寸的比率。

  • 如果计算出的比率在阈值范围内,则将地面实况框与相应的锚点相匹配。

  • 将匹配的锚点分配到相应的单元格,注意由于中心点偏移量的调整,一个地面实况框可以分配到多个锚点。因为中心点偏移范围已从 (0, 1) 调整为 (-0.5, 1.5)。地面实况方框可以分配给更多的锚点。

这样,构建目标过程就能确保在训练过程中正确分配和匹配每个地面实况对象,使 YOLOv5 能够更有效地学习对象检测任务。

结论

总之,YOLOv5 代表着实时物体检测模型的开发向前迈进了一大步。通过整合各种新功能、增强功能和训练策略,YOLOv5 在性能和效率上都超越了 YOLO 系列之前的版本。

YOLOv5 的主要改进包括使用动态架构、广泛的数据增强技术、创新的训练策略,以及对计算损耗和目标构建过程的重要调整。所有这些创新都极大地提高了目标检测的准确性和效率,同时还保持了 YOLO 模型所特有的高速度。

参考Architecture Summary - Ultralytics YOLOv8 Docs

  • 24
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值