跳转至

YOLO 基础知识梳理

参考资料1:YOLO系列演化历史

参考资料2:深入浅出Yolo系列之 Yolov3 & Yolov4 & Yolov5 & Yolox9

YOLO是目标检测中非常经典的模型,但是其发展演化非常之快让人有点摸不清其脉络。这次内容安全实验课需要用到YOLOv8模型,我顺便将YOLO系列的原理都整理一遍。🐣

基础知识

整个YOLO模型由三个部分组成:

  • "backbone" 指的是骨干网络,负责提取特征;
  • "neck" 指的是位于骨干网络之后的模块,用于进一步处理特征;
  • "head" 指的是位于模型顶部的部分,执行特定任务并生成最终的预测结果。

YOLO v1

An image caption
An image caption

YOLO v1 的结构比较简单,可以分为两个部分理解:

  • 第一个部分用于提取特征,即 backone
  • 第二个部分用于预测目标 ( 维度信息为:7 * 7 * 30 ),即 head

    7 * 7 是特征图大小,30 是预测目标信息。具体来说 30 = 5 * 2 + 20 , 其中的 5 * 2 表示(X,Y,H,W,C)* 框的数量,20 表示支持20中类别。这些信息包含了框的位置、置信度和类别。

这样可以设计出其损失函数,主要分为:坐标损失、置信度损失、类别损失。

An image caption

YOLO v2

An image caption

YOLO v2 在第一版的基础上增加了很多改进:

An image caption

重点分析下面的几个改进:

  • Batch Normalization:可以提升模型收敛速度,起到正则化的作用,降低模型过拟合,训练更稳定
  • Backbone模块,使用DarkNet-19,降低了计算量
  • Neck模块,将不同尺度的特征进行融合(Fine-Grained Features),从而提高模型的泛化能力
  • Head模块,用卷积替换全连接,因此可以使用各种尺度(32的倍数)的图像进行训练
  • Anchor Box:使用聚类(Dimension Clusters)得到预设框的尺寸,提高目标的定位准确率。
An image caption

YOLO v3

An image caption

What’s new in YOLO v3? 图上非常清楚了,感觉挺好理解的,和v2非常像,就融入了一些小技巧。不过和v2图画的不一样,容易让人误解最后prediction有三个,其实最后会concat,所以还是和v2一样。 Backbone换成了DarkNet-53,v3 最显着的特点是它以三种不同的尺度进行检测。

An image caption

YOLO v4

An image caption
  • 输入端:主要包括Mosaic数据增强、cmBN、SAT自对抗训练
  • BackBone:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock(随机删除减少神经元的数量,使网络变得更简单,Dropout在卷积层上效果并不好)
  • Neck:目标检测网络在BackBone和最后的输出层之间会插入一些层,比如SPP模块、FPN+PAN结构
An image caption

FPN层自顶向下传达强语义特征,而特征金字塔(PAN)则自底向上传达强定位特征

An image caption
  • Head:训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms

    CIOU_Loss : 重叠面积、中心点距离,长宽比都考虑了进来

YOLO v5

An image caption

整体变化不大,YOLO v5,作者没有发论文

  • Focus结构,Yolov3&Yolov4中并没有这个结构,其中比较关键的是切片操作
An image caption
  • 自适应图片缩放,即根据长宽比对图像进行缩放,添加最少的黑边,减少计算量

YOLO v6

An image caption

官方参考文档 :美团 YOLOv6

YOLO v7

An image caption

github官方文档 : YOLOv7

An image caption

YOLO v8

An image caption

官方参考文档 : YOLOv8

An image caption
  • YOLOv8参考了YOLOX和YOLOV6,使用了Decoupled-Head,即使用两个卷积分别做分类和回归
  • 为了轻量化,v8设计了c2f结构,与c3相比少了一层conv,采用split将特征分层而不是conv
An image caption
An image caption

后面的YOLO感觉都只是小修小改,融入一些新的技术和理念...就不多赘述了