YOLOv5 vs YOLOv8

YOLOv8是ultralytics公司对YOLOv5的重大更新,改进包括网络结构的调整,如C2f块的使用,去耦合的头部设计,以及正负样本匹配策略的改变。它采用了TaskAlignedAssigner,DistributionFocalLoss和CIoULoss等新方法,并在训练策略和数据增强方面进行了优化。YOLOv8的推理过程与YOLOv5相似,但需要对积分形式的bbox进行解码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本。
https://github.com/ultralytics/yolov5
https://github.com/ultralytics/ultralytics

在这里插入图片描述

2 网络结构

YOLOv5 N/S/M/L/X 骨干网络的通道数设置使用同一套缩放系数;
YOLOv8 N/S/M/L/X 骨干网络的通道数设置不一样,使用不同的缩放系数。YOLOv7 网络设计也采用类似的方式作用于所有模型。

scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
  # [depth, width, max_channels]
  n: [0.33, 0.25, 1024]  # YOLOv8n summary: 225 layers,  3157200 parameters,  3157184 gradients,   8.9 GFLOPs
  s: [0.33, 0.50, 1024]  # YOLOv8s summary: 225 layers, 11166560 parameters, 11166544 gradients,  28.8 GFLOPs
  m: [0.67, 0.75, 768]   # YOLOv8m summary: 295 layers, 25902640 parameters, 25902624 gradients,  79.3 GFLOPs
  l: [1.00, 1.00, 512]   # YOLOv8l summary: 365 layers, 43691520 parameters, 43691504 gradients, 165.7 GFLOPs
  x: [1.00, 1.25, 512]   # YOLOv8x summary: 365 layers, 68229648 parameters, 68229632 gradients, 258.5 GFLOPs

YOLOv5:
在这里插入图片描述

YOLOv8:
在这里插入图片描述

2-1 Backbone

a) 第一个卷积层的 kernel 从 6x6 变成了 3x3
b) 所有的 C3 结构换成了梯度流更丰富的 C2f 结构, C2f 比 C3 多了更多的跳层连接和额外的 Split 操作
在这里插入图片描述

c) Backbone 中 C2f 的 block 数从 3-6-9-3 改成了 3-6-6-3

2-2 Neck

a) 所有的 C3 结构换成了梯度流更丰富的 C2f 结构, C2f 比 C3 多了更多的跳层连接和额外的 Split 操作
b) 去掉了 Neck 模块中的 2 个卷积连接层

2-3 Head

a)从原先的耦合头变成了解耦头
b) YOLOv5 的 Anchor-Based 变成了 Anchor-Free
c) 回归分支使用了 Distribution Focal Loss 中提出的积分形式表示法

3 Loss

a)正负样本分配策略
YOLOX 使用 simOTA、TOOD 使用 TaskAlignedAssigner 和 RTMDet 使用 DynamicSoftLabelAssigner,
YOLOv5 采用的依然是静态分配策略,YOLOv8 直接使用 TOOD 的 TaskAlignedAssigner。
TaskAlignedAssigner 的匹配策略简单总结为: 根据分类与回归的分数加权的分数选择正样本。
b) Loss计算
Loss 计算包括 2 个分支: 分类和回归分支,没有了yolov5的 objectness 分支。
分类分支依然采用 BCE Loss;
回归分支 Distribution Focal Loss;同时还使用了 CIoU Loss。
3 个 Loss 采用一定权重比例加权即可。

4 Data augmentation

a) 引入YOLOX 中提出的最后 10 个 epoch 关闭 Mosaic 的操作
在这里插入图片描述

b) 对于不同大小模型,部分超参会进行修改,如大模型会开启 MixUp 和 CopyPaste。

5 Training strategy

a) 训练总 epoch 数从 300 提升到了 500

6 Inference

YOLOv8 的推理过程和 YOLOv5 几乎一样,唯一差别在于前面需要对 Distribution Focal Loss 中的积分表示 bbox 形式进行解码,变成常规的 4 维度 bbox.
在这里插入图片描述
yolov8 推理和后处理过程为:
(1) bbox 积分形式转换为 4d bbox 格式
对 Head 输出的 bbox 分支进行转换,利用 Softmax 和 Conv 计算将积分形式转换为 4 维 bbox 格式
(2) 维度变换
YOLOv8 输出特征图尺度为 80x80、40x40 和 20x20 的三个特征图。Head 部分输出分类和回归共 6 个尺度的特征图。将 3 个不同尺度的类别预测分支、bbox 预测分支进行拼接,并进行维度变换。为了后续方便处理,会将原先的通道维度置换到最后,类别预测分支 和 bbox 预测分支 shape 分别为 (b, 80x80+40x40+20x20, 80)=(b,8400,80),(b,8400,4)。
(3) 解码还原到原图尺度
分类预测分支进行 Sigmoid 计算,而 bbox 预测分支需要进行解码,还原为真实的原图解码后 xyxy 格式。
(4) 阈值过滤
遍历 batch 中的每张图,采用 score_thr 进行阈值过滤。在这过程中还需要考虑 multi_label 和 nms_pre,确保过滤后的检测框数目不会多于 nms_pre。
(5) 还原到原图尺度和 nms
基于前处理过程,将剩下的检测框还原到网络输出前的原图尺度,然后进行 nms 即可。最终输出的检测框不能多于 max_per_img。

### 选择YOLOv5而非YOLOv10的原因 #### 性能优化与效率提升 YOLOv7-E6相较于YOLOv5-X6(r6.1),虽然不是直接对比YOLOv10,但在性能上展示了显著的优势。具体而言,在相同的硬件条件下,YOLOv7-E6实现了更高的平均精度(AP),参数减少了45%,计算量降低了63%,同时推理速度提升了47%[^1]。 #### 参数规模与计算复杂度 YOLO系列模型随着版本迭代不断优化其架构设计,旨在平衡性能与资源消耗。YOLOv5作为较为成熟的版本之一,已经过大量实践验证,具备良好的泛化能力。而关于YOLOv10的信息较少提及具体的改进之处或优势特性,因此难以评估其相对于YOLOv5的具体收益。 #### 社区支持与文档完备性 考虑到实际应用中的可维护性开发便利性,社区活跃程度支持力度也是重要考量因素。YOLOv5拥有广泛的用户基础完善的技术文档,便于开发者快速上手并解决遇到的问题。相比之下,较新的版本可能缺乏足够的案例积累技术交流平台的支持。 ```python import torch from torchvision.models.detection import fasterrcnn_resnet50_fpn, yolo_v5 model_yolov5 = yolo_v5(pretrained=True) def compare_models(): device = 'cuda' if torch.cuda.is_available() else 'cpu' model_yolov5.to(device).eval() with torch.no_grad(): # 假设输入图像尺寸为(3, 640, 640) dummy_input = torch.randn((1, 3, 640, 640)).to(device) output_yolov5 = model_yolov5(dummy_input)[0]['boxes'].shape print(f"YOLOv5预测框数量: {output_yolov5}") ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

mingo_敏

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

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

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

打赏作者

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

抵扣说明:

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

余额充值