当前位置: 首页 > article >正文

(10)YOLOv8算法基本原理

YOLOv8由开发 YOLOv5 的公司 Ultralytics 发布。它在 YOLOv5 的基础上进行了改进,旨在进一步提高目标检测的性能和效率。

3

一、YOLO v8的创新点

1、YOLOv8 的骨干网络和特征整合(Neck)部分借鉴了 YOLOv7 中的 ELAN设计理念,摒弃了 YOLOv5 原有的 C3 模块,创新性地采用了 C2f 结构。这个C2f模块增强了跳层连接(Skip Connections)的运用,并对分支内部分卷积操作进行了简化或去除。

YOLOv5的C3 模块 VS YOLOv8的C2f

image-20241213115042612

2、YOLOv8 相较于 YOLOv5 做出了重大革新,采用当下流行的解耦合头部结构,将分类任务和边界框检测任务独立开来,并且放弃了传统的基于锚点(Anchor-Based)的方法,转向更为先进的无锚点(Anchor-Free)机制。

YOLOv5解耦头:

image-20241213115146017

YOLOv8解耦头:

image-20241213115158860

3、YOLOv8抛弃了以往的IoU分配或者单边比例的分配方式,采用了TaskAlignedAssigner策略来分配正类样本,并引入了Distribution Focal Loss,以提高模型学习的精确性和鲁棒性。

4、在训练过程中的数据增强环节,YOLOv8 采纳了 YOLOX 中的技巧,即在最后 10 个训练 epoch 中禁用 Mosaic 增强,这一策略被证明有助于提升模型的最终检测精度。YOLOv8的推理过程与YOLOv5相似,但在前面需要对Distribution Focal Loss中的积分表示bbox形式进行解码。

image-20241213115358958

5、YOLOv8对分类和回归任务分别采用了BEC Loss和CIoU Loss。BEC Loss是一种新型的分类损失函数,具有更好的收敛性和稳定性;而CIoU Loss则是一种针对边界框回归任务的损失函数,通过考虑多个因素使得模型在预测边界框时更加准确。

6、YOLOv8的开源库不仅仅能够用于YOLO系列模型,而且能够支持非YOLO模型以及分类分割姿态估计等各类任务,使得YOLOv8成为一个算法框架,而非某一个特定算法。

7、YOLOv8在模型架构中引入了新的激活函数,进一步提升了模型的性能。

二、表现

YOLOv8 是一个强大且灵活的目标检测和图像分割工具,它融合了两者的优势:取得比较所有以前 YOLO 版本更好的能力。

image-20241213115738801

在COCO数据集上的5种尺寸的性能指标:

image-20241213120015725

三、往期回顾

yolo入门教程:《吐血录制,yolo11猫狗实时检测实战项目,从零开始写yolov11代码》,视频全程25分钟。

(1)yolo11猫狗实时检测实战项目,从零开始写yolov11代码

(2)从零开始学yolo之yolov1的技术原理

(3)YOLOv1训练过程,新手入门

(4)YOLOv2和yolov1的差异

(5)YOLOv3和yolov1、yolov2之间的差异

(6)YOLOv4算法基本原理以及和YOLOv3 的差异

(7)YOLOv5算法基本原理大揭秘!

(8)YOLOv6算法基本原理

(13)10张结构图,深入理解YOLOv11算法各个模块

高清视频,3分钟揭秘神经网络技术原理

Transfermer的Q、K、V设计的底层逻辑


http://www.kler.cn/a/449776.html

相关文章:

  • conda 环境报错error while loading shared libraries: libpython3.9.so.1.0
  • 下载运行Vue开源项目vue-pure-admin
  • 【087】基于51单片机智能宠物喂食器【Proteus仿真+Keil程序+报告+原理图】
  • jsp中的四个域对象(Spring MVC)
  • 【恶意软件检测】一种基于API语义提取的Android恶意软件检测方法(期刊等级:CCF-B、Q2)
  • 知识图谱+RAG学习
  • EasyPlayer.js播放器在React项目中应如何使用?
  • Jenkins Api Token 访问问题
  • MySQL 数据备份与恢复详解
  • 压缩为zip和gzip工具类
  • MySQL快速扫描
  • ios按键精灵脚本开发:ios悬浮窗命令
  • PHP中替换某个包或某个类
  • Linux 软硬链接详解:深入理解与实践
  • Ubuntu下ESP32-IDF开发环境搭建
  • C++ 虚函数、虚函数表、静态绑定与动态绑定笔记
  • 记录--uniapp 安卓端实现录音功能,保存为amr/mp3文件
  • Blazor项目中使用EF读写 SQLite 数据库
  • 在Ubuntu上通过Docker部署NGINX服务器
  • 第三节:GLM-4v-9B数据加载之huggingface数据加载方法教程(通用大模型数据加载实列)
  • 96 vSystem
  • 区块链与比特币:技术革命的双子星
  • ImportError: DLL load failed while importing jiter
  • 工信部“人工智能+”制造行动点亮CES Asia 2025
  • 便捷的线上游戏陪玩、线下家政预约以及语音陪聊服务怎么做?系统代码解析
  • 基于Spring Boot的电影网站系统