简介:
YOLOv8 是 ultralytics 公司在 2023 年 1月 10 号开源的 YOLOv5 的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务。不过 ultralytics 并没有直接将开源库命名为 YOLOv8,而是直接使用 ultralytics 这个词,原因是 ultralytics 将这个库定位为算法框架,而非某一个特定算法,一个主要特点是可扩展性。
Github地址:https://github.com/ultralytics/ultralytics
网络结构
核心原理详解:
1、Backbone:
使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了梯度流更丰富的C2f模块,为了轻量化也缩减了骨干网络中最大stage的blocks数,同时不同缩放因子N/S/M/L/X的模型不再是共用一套模型参数,M/L/X大模型还缩减了最后一个stage的输出通道数,进一步减少参数量和计算量。
2、Neck :
毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块。
3、Head :
换成了目前主流的Decoupled-Head解耦头结构,将分类分支和定位分支分离,缓解了分类和回归任务的内在冲突。
同时也从 Anchor-Based 换成了 Anchor-Free。
4、Loss:
采用了TAL(Task Alignment Learning)动态匹配,并引入了DFL(Distribution Focal Loss)结合CIoU Loss做回归分支的损失函数,使得分类和回归任务之间具有较高的一致性。
TaskAlignedAssigner 的匹配策略简单总结为: 根据分类与回归的分数加权的分数选择正样本。
5、训练策略:
训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度。
总结
回顾整个虎年,堪称YOLO内卷元年,美团发布YOLOv6、Alexey发布YOLOv7、百度发布PP-YOLOE+、阿里发布DAMO-YOLO、OpenMMLab发布RTMDet。同时这些系列模型也在不断更新迭代。
YOLOv8 主要参考了最近提出的诸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相关设计,本身的创新点不多,偏向工程实践,主推的还是 ultralytics 这个框架本身。