以YOLOv8为例详解YOLO系列

一、History

YOLO:You only look once,其特征如其名,快!只看一次的速度就可以实现图片检测和分割。

由华盛顿大学的Redmon和Farhadi在15年发表,以其高超的速度和准确率迅速得到普及。

1.1 v2

提供了合并批量正则化;固定盒子;维度簇;

1.2 v3

使用更快速的主干网络,多重anchor和大椎池化层

1.3 v4

引入Mosaic 数据增强方法;一种无anchor的检测头;以及一种新的损失函数;

1.4 v5

进一步改善模型性能;增加了超参数优化器、完整的试验追踪、自动输出成流行的排版。

1.5 v6

被开源,用于很多公司的自动化交付机器人。

1.6 v7

提供了如COCO数据集上的姿势评估。

1.7 v8

最新版本,现在被Ultralytics所主持开发。

具有更强的表现,灵活性和效率。

支持物理检测、分割、姿势估计、追踪以及分类任务,几乎大多数AI主流的任务。

以YOLOv8为例详解YOLO系列_第1张图片

附上官网的历代版本性能对比,通过对于COCO数据集上的表现可以看出:可以看到每代之间参数更少,速度更快。

目前V8的子版本性能对比

以YOLOv8为例详解YOLO系列_第2张图片

二、YOLOv8的组成部分

以YOLOv8为例详解YOLO系列_第3张图片

官网上的DOC没有详细介绍模型的结构,随即找到其核心源码的分支目录。

退到上一节详细查看其各个核心组件(层)的结构:

2.1 block

以YOLOv8为例详解YOLO系列_第4张图片

第一个块DFL,是一种损失,通俗来说先进行了卷积,然后转置以后计算Softmax损失。

以YOLOv8为例详解YOLO系列_第5张图片

2.2 Proto

这是一种用于分割的模块,上采样以后经过两次卷积。

以YOLOv8为例详解YOLO系列_第6张图片

2.3 HGStem

这是一种PPHGNetV2 的主干附带了5个卷积以及一个最大池化层

以YOLOv8为例详解YOLO系列_第7张图片

2.4 HGBlock

属于PPHGNetV2带有两层卷积和一个轻量类型的卷积

以YOLOv8为例详解YOLO系列_第8张图片

2.5 SPP

是一种池化,在V3版本中被提出

以YOLOv8为例详解YOLO系列_第9张图片

2.6 SPPF

更快的SSP,在V5中被提出,它的快速的特性源于其m已经定义好,取代了原有的FOR循环,也就是说优化了性能。

以YOLOv8为例详解YOLO系列_第10张图片

2.7 C1-C3

使用了不同数量的卷积和CSP 瓶颈块,1-3代表其卷积数量。

2.8 GhostBottleneck

进行了特殊的卷积和深度可分离卷积(DeepWiseConvolution),然后产生输出向量。

以YOLOv8为例详解YOLO系列_第11张图片

三、Head分支(主要定义各种任务所要执行的类,一个任务一个类以及一个负责输出的模块)

主要有检测、分割、分类等。这些表示所要执行的任务的类负责将组成部分写好的各个方法集成在一起完成特定的任务。

负责输出的模块主要进行与编码器对接,并且进行参数的最后处理,其中主要有:接受编码器的输入;产生锚(anchor,俗一点来说就是框住物体的方框);以及重新调整超参数的函数。

好了,就到这里了,对于YOLO的解读。

码字不易,点赞收藏加关注。

欢迎关注无神一起学机器学习。

你可能感兴趣的:(跟着无神学机器学习,YOLO,机器学习,深度学习,人工智能,图像处理)