(10)YOLOv8算法基本原理
YOLOv8由开发 YOLOv5 的公司 Ultralytics 发布。它在 YOLOv5 的基础上进行了改进,旨在进一步提高目标检测的性能和效率。
一、YOLO v8的创新点
1、YOLOv8 的骨干网络和特征整合(Neck)部分借鉴了 YOLOv7 中的 ELAN设计理念,摒弃了 YOLOv5 原有的 C3 模块,创新性地采用了 C2f 结构。这个C2f模块增强了跳层连接(Skip Connections)的运用,并对分支内部分卷积操作进行了简化或去除。
YOLOv5的C3 模块 VS YOLOv8的C2f:
2、YOLOv8 相较于 YOLOv5 做出了重大革新,采用当下流行的解耦合头部结构,将分类任务和边界框检测任务独立开来,并且放弃了传统的基于锚点(Anchor-Based)的方法,转向更为先进的无锚点(Anchor-Free)机制。
YOLOv5解耦头:
YOLOv8解耦头:
3、YOLOv8抛弃了以往的IoU分配或者单边比例的分配方式,采用了TaskAlignedAssigner策略来分配正类样本,并引入了Distribution Focal Loss,以提高模型学习的精确性和鲁棒性。
4、在训练过程中的数据增强环节,YOLOv8 采纳了 YOLOX 中的技巧,即在最后 10 个训练 epoch 中禁用 Mosaic 增强,这一策略被证明有助于提升模型的最终检测精度。YOLOv8的推理过程与YOLOv5相似,但在前面需要对Distribution Focal Loss中的积分表示bbox形式进行解码。
5、YOLOv8对分类和回归任务分别采用了BEC Loss和CIoU Loss。BEC Loss是一种新型的分类损失函数,具有更好的收敛性和稳定性;而CIoU Loss则是一种针对边界框回归任务的损失函数,通过考虑多个因素使得模型在预测边界框时更加准确。
6、YOLOv8的开源库不仅仅能够用于YOLO系列模型,而且能够支持非YOLO模型以及分类分割姿态估计等各类任务,使得YOLOv8成为一个算法框架,而非某一个特定算法。
7、YOLOv8在模型架构中引入了新的激活函数,进一步提升了模型的性能。
二、表现
YOLOv8 是一个强大且灵活的目标检测和图像分割工具,它融合了两者的优势:取得比较所有以前 YOLO 版本更好的能力。
在COCO数据集上的5种尺寸的性能指标:
三、往期回顾
yolo入门教程:《吐血录制,yolo11猫狗实时检测实战项目,从零开始写yolov11代码》,视频全程25分钟。
(1)yolo11猫狗实时检测实战项目,从零开始写yolov11代码
(2)从零开始学yolo之yolov1的技术原理
(3)YOLOv1训练过程,新手入门
(4)YOLOv2和yolov1的差异
(5)YOLOv3和yolov1、yolov2之间的差异
(6)YOLOv4算法基本原理以及和YOLOv3 的差异
(7)YOLOv5算法基本原理大揭秘!
(8)YOLOv6算法基本原理
(13)10张结构图,深入理解YOLOv11算法各个模块
高清视频,3分钟揭秘神经网络技术原理
Transfermer的Q、K、V设计的底层逻辑