咨询电话

012-08985689

最新公告:
诚信为本:市场永远在变,我们欧亿体育的诚信永远不变。
产品展示
012-08985689
黑龙江省哈尔滨市
公司动态

当前位置: 首页 > 新闻资讯 > 公司动态

(17)目标检测算法之 YOLOv8 算法改进详细解析

2024-02-11 11:03:11

目标检测算法之 YOLOv8 算法改进详细解析

1.YOLO的一些发展历史

  • YOLOv1:2015年Joseph Redmon和 Ali Farhadi等 人(华盛顿大学)

  • YOLOv2:2016年Joseph Redmon和**Ali Farhadi等人*(华盛顿大学)*

  • YOLOv3:2018年Joseph Redmon和**Ali Farhadi等人*(华盛顿大学)*

  • YOLOv4:2020年Alexey Bochkovskiy和Chien-Yao Wang等人

  • YOLOv5:2020年Ultralytics公司

  • YOLOv6:2022年美团公司

  • YOLOv7:2022年Alexey Bochkovskiy和Chien-Yao Wang等人

  • YOLOv8:2023年Ultralytics公司

上述简单罗列了 YOLOv数字系列 的发布时间和作者/单位机构,因为YOLO系列生态太猛了,比如还有知名的PP-YOLO系列、YOLOX等等工作。

YOLOv8是Ultralytics开发的 YOLO(You Only Look Once)物体检测和图像分割模型的最新版本,详细介绍可以参考Ultralytics发布的网址,可以通过ultralytics python 包获取代码,暂时还没有官方公布代码

安装ultralytics python包

pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ ultralytics==0.0.59
pip install -e ultralytics

可以在 /usr/local/lib/pythonx.x/dist-packages/ultralytics (Ubuntu) 中找到代码

2. YOLOv8的相关资源

YOLOv8 Github: https://github.com/ultralytics/ultralytics

YOLOv8的权重:https://github.com/ultralytics/assets/releases

YOLOv8文档: https://v8docs.ultralytics.com/

YOLOv8 Python package源码库:https://test.pypi.org/simple/ultralytics/

3.YOLOv8改进详解

3.1 YOLOv5回顾

这里粗略回顾一下,这里直接提供YOLOv5的整理的结构图吧:

  1. Backbone:CSPDarkNet结构,主要结构思想的体现在C3模块,这里也是梯度分流的主要思想所在的地方;

  2. PAN-FPN:双流的FPN,必须香,也必须快,但是量化还是有些需要图优化才可以达到最优的性能,比如cat前后的scale优化等等,这里除了上采样、CBS卷积模块,最为主要的还有C3模块;

  3. Head:Coupled Head+Anchor-base,毫无疑问,YOLOv3、YOLOv4、YOLOv5、YOLOv7都是Anchor-Base的;

  4. Loss:分类用BEC Loss,回归用CIoU Loss。

3.2 YOLOv8核心介绍

直接上YOLOv8的结构图吧,小伙伴们可以直接和YOLOv5进行对比,看看能找到或者猜到有什么不同的地方?

  下面就直接揭晓答案吧,具体改进如下:

  1. Backbone:使用的依旧是CSP的思想,不过YOLOv5中的C3模块被替换成了C2f模块,实现了进一步的轻量化,同时YOLOv8依旧使用了YOLOv5等架构中使用的SPPF模块;

  2. PAN-FPN:毫无疑问YOLOv8依旧使用了PAN的思想,不过通过对比YOLOv5与YOLOv8的结构图可以看到,YOLOv8将YOLOv5中PAN-FPN上采样阶段中的卷积结构删除了,同时也将C3模块替换为了C2f模块;

  3. Decoupled-Head:是不是嗅到了不一样的味道?是的,YOLOv8走向了Decoupled-Head;

  4. Anchor-Free:YOLOv8抛弃了以往的Anchor-Base,使用了Anchor-Free的思想;

  5. 损失函数:YOLOv8使用VFL Loss作为分类损失,使用DFL Loss+CIOU Loss作为分类损失;

  6. 样本匹配:YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner匹配方式。

3.3 C2f模块

我们不着急,先看一下C3模块的结构图,然后再对比与C2f的具体的区别。针对C3模块,其主要是借助CSPNet提取分流的思想,同时结合残差结构的思想,设计了所谓的C3 Block,这里的CSP主分支梯度模块为BottleNeck模块,也就是所谓的残差模块。同时堆叠的个数由参数n来进行控制,也就是说不同规模的模型,n的值是有变化的。

地址:黑龙江省哈尔滨市 电话:012-08985689


Copyright © 2012-2024 欧亿体育「中国」官方门户网站 - OUYI SPORTS 版权所有

ICP备案编号:浙ICP备13023472号-21

网站地图

扫一扫,加关注