yolov3和yolov4的区别(简述YOLOv8与YOLOv5的区别)
前言
yolov7,yoloX相关论文还没细看,yolov8就出来了 。太卷了!
YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本 。
GitHub地址 : github.com/ultralytics/ultralyticsYOLOv8是在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/584153158YOLOv8架构:
架构特点:
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
区别:
当使用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 的对比曲线如下:创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!