自学内容网 自学内容网

肆十二--YOLOv8原理解析 学习笔记

  • YOLOv8是一款计算机视觉框架
  • 可支持的任务:
  • 检测
  • 分类
  • 分割
  • 追踪
  • 姿态估计

下图是YOLOv8在coco目标检测的一些性能结果:

左图:x:参数量(根据卷积层的宽度和深度区分,n:Nano,s:small, m:medium, l:large, x:xlarge) ;  y:coco的mAP

右图:x: Latency A100 TensorRT FP16 ;y:coco的mAP 


 YOLOv8网络结构

架构图分为以下几个部分:

  • backbone(主干网络):特征提取,从这个主干网络中提取3个不同尺度的特征:80*80 , 40*40,  20*20(这些数据要送入neck部分)
  • neck:特征融合(融合的特征送入头部)
  • 头部:解码:bonding box(边界框的解码);class loss(分类的解码)

 backbone原理解析:

C3:3层conv ,蓝色框:conv(卷积层);用了残差的链接,在主干的左侧有个直线连过来 ;C2f: 2层conv  faster;使用了split(分离)再concat(连接):这样的结构可以提供网络更加丰富的梯度流,学习到更多的信息,速度更快。所以将C3结构更换为C2f结构

 neck解析:

coupled  head==》decoupled head

coupled  head:拿到主干网络提取的特征之后,送入到卷积层,然后做解码(3个部分在一起,只是不同的位置代表的含义不同):

bonning box (用4个数值表示)用CloU的损失函数;

object(置信度)(用1个数值表示),用二进制交叉熵的损失函数

CLS:分类的类别,有几类就有几个数值来进行表示,用二进制交叉熵的损失函数

decoupled head:分为bonning box CLS,各自有单独的卷积,单独的边界框解码;bonning box是CloU+DCE 损失函数 ;CLS是BCE损失函数

CLS(分类):识别出你所框选的物体是一个什么样的类别


 损失函数的含义:

在目标检测中的关键点:正负样本分配:网络选了一堆框,这个框对于我们的ground truth(标签)是正样本还是负样本,结合LU和分类的分数进行评估

在数据增强:使用了YOLOX中的方式:在最后10个epoch,关闭数据增强,让网络尽可能向着数据真实的分布来进行学习

网络推理: 

80:COCO的80类

4:bonning box的4个数值

解码之后拿到分数,边界框结果,我们会做一个非极大值抑制,得到最终的结果进行输出,然后做一些可视化的内容

YOLOv8网络的特点:

  • 全新的视觉模型,保持精度的同时,实现了较高的检测速度,并且同时支持支持图像分类、物体检测和实例分割等多种视觉任务。
  • 新的骨干网络:将YOLOv5中的C3结构换成了梯度流更丰富的C2f结构,并对不同尺度模型调整了不同的通道数,大幅提升了模型性能。
  • 解耦头的设计:YOLOv8的Head部分从原先的耦合头变成了解耦头结构,简化了模型结构并提高了推理速度。
  • 新的损失函数:YOLOv8在Loss计算方面采用了TaskAlignedAssigner正样本分配策略,并引入了Distribution Focal Loss,确保了检测结果的准确性和鲁棒性。


原文地址:https://blog.csdn.net/weixin_75033552/article/details/142828657

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!