目标检测——YOLOv8算法解读
创始人
2025-01-09 22:07:47
0

作者:Ultralytics公司
代码:https://github.com/ultralytics/ultralytics


YOLO系列算法解读:
YOLOv1通俗易懂版解读、SSD算法解读、YOLOv2算法解读、YOLOv3算法解读、YOLOv4算法解读、YOLOv5算法解读、YOLOR算法解读、YOLOX算法解读、YOLOv6算法解读、YOLOv7算法解读、YOLOv8算法解读、YOLOv9算法解读、YOLOv10算法解读

PP-YOLO系列算法解读:
PP-YOLO算法解读、PP-YOLOv2算法解读、PP-PicoDet算法解读、PP-YOLOE算法解读、PP-YOLOE-R算法解读


文章目录

  • 1、算法概述
  • 2、YOLOv8细节
    • 2.1 YOLOv8的C2f结构
    • 2.2 YOLOv8的SPPF模块
    • 2.3 YOLOv8的neck和head
    • 2.4 YOLOv8的损失函数


1、算法概述

YOLOv8和YOLOv5都是由小型初创公司Ultralytics创建并维护的,和YOLOv5一样,也没有形成论文,但工程readme里面链接了参考文档(https://docs.ultralytics.com/models/yolov8/),该文档非常丰富,包含如何快速运行、训练、验证、预测及导出其他格式模型,还包含除检测任务的其他任务的扩展如:分割、分类和姿态估计,同时也包含YOLO系列其他模型的汇总介绍。
YOLOv8的主要特点有:
1、模型更快更准确;
2、模型除了能完成目标检测任务,也可以无缝衔接到实例分割、图像分类以及姿态估计任务;
3、与之前的YOLO版本兼容可扩展,ultralytics相当于一个YOLO统一框架;
4、YOLOv8采用新的backbone,与YOLOv5相比采用了anchor-free策略,模型也采用了新的损失函数;
5、YOLOv8支持导出多种格式的模型,并且可以在CPU/GPU上运行。


2、YOLOv8细节

YOLOv8网络结构如下所示,图片来自github用户@RangeKing
在这里插入图片描述
对比YOLOv8和YOLOv5的yaml格式网络结构配置
在这里插入图片描述
可以看到网络规模n/s/m/l/x的深度、宽度配置比例没有改变,但max_channels,YOLOv8的减少了。
Backbone部分,YOLOv8将YOLOv5采用的C3结构升级成了C2f,其余通道数配置均未改变
Head部分,相对于YOLOv5,上采样之前减少了卷积操作,同样将C3升级成了C2f

2.1 YOLOv8的C2f结构

YOLOv8中的C2f结构如下图红框部分:
在这里插入图片描述
由子模块ConvModule和多个DarknetBottleneck所组成,而DarknetBottleneck又包含两个3x3卷积的ConvModule;
对比YOLOv5的C3结构,如下:
在这里插入图片描述
其中ConvModule对应CBS,结构没有改变,DarknetBottleneck相对于YOLOv5的Bottleneck结构,将其第一个1x1的CBS换成了3x3的CBS结构,即YOLOv8的DarknetBottleneck包含两个3x3卷积,值得注意的是,YOLOv8和YOLOv5一样,都在backbone部分的Bottleneck应用了shortcut连接,而neck部分没有应用shortcut。最大的不同是C2f中每个DarknetBottleneck均分出一半通道的特征图直接连接到最后,多个DarknetBottleneck分出来的通道以及最后一个DarknetBottleneck的输出通过Concat操作合并在一起,并经过1x1的ConvModule得到想要的输出通道,这有点像YOLOv7的E-ELAN结构,优化了梯度在网络之间的传播路径,下面具体看代码实现:
在这里插入图片描述

2.2 YOLOv8的SPPF模块

之前YOLOv5以及YOLO其他系列均采用SPP模块,结构如下:
在这里插入图片描述
而YOLOv8采用的SPPF是将池化操作的并行分支改为了串行操作,并在每个池化后接了shortcut,结构如下:
在这里插入图片描述
代码对应如下:
在这里插入图片描述

2.3 YOLOv8的neck和head

Neck部分变化得比较少,一是上采样之前减少了卷积操作,二是将C3升级成了C2f。
变化比较大的是head部分,像YOLOv6一样,YOLOv8解耦了分类和回归分支,并且取消了obj分支(为什么这么做,请参阅论文[1]),并且变成了anchor-free,如下:
当为YOLOv8l模型时,w=1.0,最大通道数为512
在这里插入图片描述
而YOLOv5l的耦合方式检测头结构如下:
在这里插入图片描述

2.4 YOLOv8的损失函数

由上部分可知,检测头解耦后,每个特征尺度的检测头有两个分支:分类分支和回归分支,结构如下:
在这里插入图片描述
分类分支还是采用BCE损失,回归分支是采用CIoU与DFL(Distribution Focal Loss)共同控制。

参考文献:
[1] Generalized Focal Loss(https://arxiv.org/pdf/2006.04388.pdf)
知乎:大白话 Generalized Focal Loss(https://zhuanlan.zhihu.com/p/147691786)

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...