简述YOLOv8与YOLOv5的区别

慈云数据 2024-03-12 技术支持 130 0

前言

yolov7,yoloX相关论文还没细看,yolov8就出来了。太卷了!

YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本

GitHub地址 : github.com/ultralytics/ultralytics

YOLOv8是在YOLOv5上的一次更新,故本篇文章主要对比两者区别

目录

  • 前言
  • YOLOv5架构:
    • 架构特点:
      • 1.Backbone
      • 2.PAN/FPN
      • 3.Head
      • 4.正负样本分配策略
      • 5.Loss
      • 其他补充:Yolov5中SPP和SPPF的区别。
      • YOLOv8架构:
        • 架构特点:
          • 1.Backbone
          • 2.PAN-FPN
          • 3.Head
          • 4.正负样本分配策略
          • 5. Loss
          • 两者推理过程区别
          • coupled head 和 decoupled head 有什么差异?

            YOLOv5架构:

            YOLOv5架构

            架构特点:

            1.Backbone

            CSP的思想(/梯度分流)的主要思想, 其中多为CBS和C3模块。

            2.PAN/FPN

            双流的FPN,其中多为CBS和C3模块。

            3.Head

            coupled head + Anchor-base(coupled head这一词是在YoloX提出decoupled head 与之对应,后续会讲解coupled head 和decoupled head的区别)。

            4.正负样本分配策略

            静态分配策略。

            5.Loss

            分类用BCE Loss,回归用CIOU Loss。还有一个存在物体的置信度损失(BCE Loss)。

            其他补充:Yolov5中SPP和SPPF的区别。

            作用/功能: 经过1×1,5×5,9×9,13×13的池化生成的特征图都是13×13的,保持原大小不变。这里作用是融合局部和整体特征。

            区别: SPPF可以减少计算量,原来要3个MaxPool2d,现在只要1个MaxPool2d,有点像快速幂求解的算法思路。

            详细看:https://zhuanlan.zhihu.com/p/584153158

            YOLOv8架构:

            YOLOv8架构

            架构特点:

            1.Backbone

            相同:CSP的思想(/梯度分流);并且使用SPPF模块。

            不同:将C3模块替换为C2f模块。

            2.PAN-FPN

            双流的FPN,(其中多为CBS和C3模块)。

            相同:PAN的思想。

            不同:删除了YOLOv5中PAN-FPN上采样的CBS 1*1,将C3模块替换为C2f模块。

            3.Head

            Decoupled head + Anchor-free

            4.正负样本分配策略

            采用了TAL(Task Alignment Learning)动态匹配。

            5. Loss

            相同:分类损失依然采用 BCE Loss

            不同:(1).舍去物体的置信度损失;(2).回归分支loss: CIOU loss+ DFL

            DFL的描述详见: https://zhuanlan.zhihu.com/p/147691786

            两者推理过程区别

            YOLOv8 的推理过程和 YOLOv5 几乎一样,唯一差别在于前面需要对 Distribution Focal Loss 中的积分表示 bbox 形式进行解码,变成常规的 4 维度 bbox,后续计算过程就和 YOLOv5 一样了。

            coupled head 和 decoupled head 有什么差异?

            参考:

            https://www.cnblogs.com/chentiao/p/16420907.html

            区别:

            couple head 和decoulpled head区别

            当使用coupled head时,网络直接输出shape (1,85,80,80);

            如果使用 decoupled head,网络会分成回归分支和分类分支,最后再汇总在一起,得到shape同样为 (1,85,80,80)。

            为什么用decoupled head?

            如果使用coupled head,输出channel将分类任务和回归任务放在一起,这2个任务存在冲突性。(论文中说有冲突性,但是没有理解为什么存在冲突,我考虑的是从损失函数角度存在冲突)

            通过实验发现替换为Decoupled Head后,不仅是模型精度上会提高,同时 网络的收敛速度也加快了,使用Decoupled Head的表达能力更好。

            Couple Head和 Decoupled Head 的对比曲线如下:

            Couple Head和 Decoupled Head 的对比曲线

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon