目标检测——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)

相关内容

热门资讯

总算了解!广西老友有破解吗,开... 总算了解!广西老友有破解吗,开心泉州免费辅助器,攻略教程(有挂分享)1、开心泉州免费辅助器有没有辅助...
无独有偶!微信小程序免费黑科技... 无独有偶!微信小程序免费黑科技透视,微乐小程序多功能修改器法子教程(有挂分享)1、这是跨平台的微乐小...
避坑细节!宝宝游戏辅助,决战卡... 避坑细节!宝宝游戏辅助,决战卡五星游戏辅助器,积累教程(有挂规律)亲,关键说明,决战卡五星游戏辅助器...
据权威媒体报道!微信小程序免费... 据权威媒体报道!微信小程序免费黑科技透视,钱塘十三水其实真的有挂手段教程(有挂详细)1、钱塘十三水其...
实测揭晓!同乡游辅助工具制作,... 实测揭晓!同乡游辅助工具制作,永胜联盟会封号吗,模块教程(有挂教学)1、同乡游辅助工具制作模拟器是什...
实测必看!微信小程序免费黑科技... 实测必看!微信小程序免费黑科技开挂,皮皮胡子辅助举措教程(有挂详细)1、起透看视 微信小程序免费黑科...
一分钟揭秘!微乐小程序免费黑科... 一分钟揭秘!微乐小程序免费黑科技安卓,新超凡软件辅助练习教程(有挂存在)1、微乐小程序免费黑科技脚本...
必备辅助推荐!蜜瓜大厅可以装挂... 必备辅助推荐!蜜瓜大厅可以装挂吗,友友联盟辅助脚本,指南书教程(有挂技术)1、进入游戏-大厅左侧-新...
今日焦点!微信小程序免费黑科技... 今日焦点!微信小程序免费黑科技透视,川南久久辅助模块教程(存在有挂)运微信小程序免费黑科技辅助工具,...
技术分享!山西扣点点辅助工具,... 技术分享!山西扣点点辅助工具,福州十八扑外卦视频,诀窍教程(有挂方法)1、山西扣点点辅助工具公共底牌...