YOLOv8代码逐行讲解:一勺AI帅汤投稿视频-一勺AI帅汤视频分享-哔哩哔哩视频
1.YOLOv8在架构和技术上进行了多项创新和改进,以下是对这些改进的详细描述:
1.1 Backbone:
YOLOv8在Backbone中继续沿用CSP(Cross-Stage Partial Network)思想,但将YOLOv5中的C3模块替换成了C2f模块。这种改进带来了进一步的轻量化。C2f模块通过减少计算量和模型参数,从而提高了效率和速度。同时,YOLOv8依然使用了YOLOv5等架构中使用的SPPF(Spatial Pyramid Pooling-Fusion)模块,以增强特征表达能力。
1.2 PAN-FPN:
YOLOv8在特征金字塔网络(PAN-FPN)的设计上做出了优化。与YOLOv5相比,YOLOv8在PAN-FPN的上采样阶段中删除了卷积结构,并将C3模块替换成了C2f模块。这种调整不仅减少了计算量,而且改进了特征融合和上下文捕捉能力。
1.3 Decoupled-Head:
YOLOv8引入了Decoupled-Head(解耦头)的设计,这是一种将分类和回归任务分开的设计方法。Decoupled-Head在YOLOv5的基础上,通过分别处理分类和回归任务,提高了模型的性能和精度。这种设计使得分类和回归可以分别优化,从而提高了检测的准确性。
1.4 Anchor-Free:
YOLOv8放弃了以往的Anchor-Based(基于锚点)方法,转而采用Anchor-Free(无锚点)思想。Anchor-Free方法不再依赖于预定义的锚点框,而是通过直接预测目标的边界框来简化模型的设计和训练过程。这种方法减少了锚点选择和匹配的复杂性,进一步提升了模型的灵活性和准确性。
1.5 损失函数:
YOLOv8在损失函数的设计上也进行了改进。分类损失采用了VFL(Variable Focal Loss),回归损失则结合了DFL(Distribute Focal Loss)和CIOU(Complete IOU)损失。VFL Loss通过自适应调整损失的焦点,DFL Loss提升了边界框回归的精度,而CIOU Loss则增强了目标框的定位精度和重叠度计算。
1.6 样本匹配:
YOLOv8在样本匹配方面引入了Task-Aligned Assigner(任务对齐分配器),替代了以往的IOU匹配或单边比例分配方式。Task-Aligned Assigner通过对齐任务的特定需求来优化样本的分配,提升了样本匹配的准确性和效率。这种方法使得模型在训练过程中能够更好地处理不同任务的要求,从而提高了整体性能。
1.Backbone+Neck+head
1.1backbone的改进
YOLOv8的backbone相比较于前几个版本的主要改进是C2f模块和SPPF模块。
C2f模块在YOLOv5的C3模块和YOLOv7模型的ELAN模块基础上做了进一步改进,核心在于跨层连接和轻量化分支结构:
-
跨层连接的高效信息传递:C2f模块继承了C3的跨层连接思想,输入特征图中的一部分直接跳过复杂的卷积运算传递到最终输出,另一部分则通过若干卷积层进行更细粒度的特征提取。跨层连接的作用在于有效保留了输入信息ÿ