当前位置:   article > 正文

目标检测——YOLOv8算法解读_yolov8封装检测算法及调用

yolov8封装检测算法及调用

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


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

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



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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/727464
推荐阅读
相关标签
  

闽ICP备14008679号