终于到了YOLO系列最新最火爆的网络–YOLOv8,前面YOLOv5中已经提到ultralytics团队集成了先进的YOLO系列目标检测最佳实践,YOLOv8则是他们的最新力作。
YOLOv8本身的创新点不多,偏向工程实践。
提示:以下是本篇文章正文内容,下面内容可供参考
YOLOv8同样根据缩放给出了以下版本:YOLOv8n
、YOLOv8s
、YOLOv8m
、YOLOv8l
、YOLOv8x
,同时包括两种输入尺度:P5 640
和 P6 1280
YOLOv8 P5的网络结构图如下,相比于YOLOv5,可以看出改进在于:
之前在目标检测-One Stage-YOLOv5的讲解中说到了YOLOv5(5.0) 中使用的残差块是CSP结构,在新版YOLOv5(6.0)中, 则将CSP结构改为C3结构。YOLOv8中又将C3结构改为C2f结构。
CSP(YOLOv5 -5.0)
C3(YOLOv5-6.0)
C2f(YOLOv8)
TaskAlignedAssigner是一种标签分配方法,其匹配策略简单总结为: 根据分类与回归的分数加权的分数选择正样本。
t = s α + u β t=s^\alpha+u^\beta t=sα+uβ
s 是标注类别对应的预测分值,u 是预测框和 gt 框的 iou,两者相乘就可以得到对齐程度分数 alignment_metrics。
和YOLOx不同的是,YOLOv8 loss 计算包括 2 个分支: 分类和回归分支,没有了之前的 objectness 分支。其中
ps:
- 变为Anchor-Free后,由于其基于中心点的策略(Center-based methods)后,模型从输出“锚框大小偏移量(offest)”变为"预测目标框左、上、右、下边框距目标中心点的距离(ltrb = left, top, right, bottom)",如果距离中心点过远,则收敛较慢,且容易陷入局部最优。
- 因此YOLOv8采用了如下方法:
- 先利用softmax处理后得到预测框位置的离散分布值(shape为4K x reg_max,K为预测框数量,reg_max为预设值)
- 然后使用DFL,通过巧妙利用交叉熵损失将预测位置迅速聚焦到目标位置附近,经过加权求和得到四个预测坐标值
- 最后使用CIoU Loss进一步精确坐标位置。
YOLOv8实验表明,Mosiac数据增强可以迫使模型学习新位置、部分遮挡以及针对不同周围像素的对象,增强模型鲁棒性。但如果在整个训练过程中都进行Mosiac数据增强,则会降低模型性能,在最后十个训练周期中关闭Mosiac是有利的。
YOLOv8的出现进一步促进了实时目标检测的发展。其在COCO数据的精度和速度如下: