深度学习论文: YOLOv5, YOLOv8 and YOLOv10: The Go-To Detectors for Real-time Vision

深度学习论文: YOLOv5, YOLOv8 and YOLOv10: The Go-To Detectors for Real-time Vision
YOLOv5, YOLOv8 and YOLOv10: The Go-To Detectors for Real-time Vision
PDF:https://arxiv.org/pdf/2407.02988v1
PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

本文全面回顾了 YOLO(You Only Look Once)目标检测算法的演进,重点关注了 YOLOv5、YOLOv8 和 YOLOv10。我们分析了这些版本在架构进步、性能提升以及边缘部署适用性方面的情况。YOLOv5 引入了 CSPDarknet 主干和马赛克增强等重大创新,平衡了速度和准确性。YOLOv8 在此基础上通过增强特征提取和无锚点检测,提高了通用性和性能。YOLOv10 通过无NMS训练、空间-通道解耦下采样和大核心卷积等特性,实现了跨越式进步,达到了最先进的性能,同时减少了计算开销。

2 YOLO v5

在Glenn Jocher紧随YOLOv4发布之后,于2020年引入了YOLOv5,这一新版本的目标检测模型在业界引起了广泛关注,它以其前所未有的易用性、卓越的稳健性能和极高的灵活性,成为了目标检测领域的一项重要突破。YOLOv5的成功,很大程度上归功于其引入的一系列关键创新,这些创新不仅提升了模型性能,还极大地促进了模型在边缘计算环境中的部署与应用。

核心创新点

  • 跨阶段部分网络(CSPNet)集成:YOLOv5的核心在于其深度集成了CSPNet,这是ResNet架构的一种高效变体。CSPNet通过引入CSP连接,有效地增强了网络的学习能力,同时减少了计算成本,提高了网络整体的效率。这种设计使得YOLOv5在保持高性能的同时,能够更好地适应资源受限的环境。
  • 空间金字塔池化(SPP)模块:为了进一步提升特征提取的多样性和鲁棒性,YOLOv5在CSPNet的基础上,融入了多个SPP模块。SPP模块能够在不同尺度上捕获丰富的上下文信息,这对于提高目标检测,尤其是对小目标和遮挡目标的检测能力至关重要。
  • 路径聚合网络(PAN)与上采样层:在架构的颈部区域,YOLOv5采用了PAN模块,并增加了额外的上采样层。这种设计有助于实现特征图的多层次融合,增强了特征表示的能力,同时提高了特征图的分辨率,为后续的预测任务提供了更加精细的信息。
  • 基于锚点的预测机制:在头部设计中,YOLOv5延续了YOLO系列一贯的基于锚点的预测方法。每个边界框都与一组预定义的锚点框相关联,这些锚点框具有特定的形状和大小,能够覆盖大多数目标的可能形态。这种机制简化了预测过程,提高了预测精度。
  • 损失函数优化:YOLOv5的损失函数由两部分组成:一是用于计算类别和目标性损失的二元交叉熵,二是用于衡量定位准确性的完整交并比(CIoU)。CIoU不仅考虑了边界框之间的重叠面积,还考虑了边界框的中心点距离、长宽比等因素,从而能够更准确地评估预测框与真实框之间的相似度。
  • 自动增强(AutoAugment):这项技术自动挑选最优的数据增强策略,以增强模型对新情况的适应力。在训练时应用多种数据增强方法,自动增强使模型能够学习到更加稳定的特征,提升其在未知数据上的表现。这在多变的边缘计算环境中尤为重要。
  • 马赛克数据增强(Mosaic Augmentation):通过将四张图像合成一张,这种技术使模型更擅长识别较小物体,同时增强了对不同尺寸和比例的适应性。马赛克增强有助于处理真实世界边缘应用中常见的多物体复杂场景,通过提供多样化的训练样本,它提高了模型泛化到新环境的能力。

综上所述,YOLOv5通过一系列精心设计的创新,成功地在目标检测领域树立了新的标杆。其高效、灵活、易用的特点,使得YOLOv5成为了众多应用场景中的首选模型,尤其是在边缘计算、实时检测等领域展现出了巨大的潜力。
在这里插入图片描述

3 YOLO v8

YOLOv8,于2023年推出,继承了YOLOv5的成功,并进行了进一步的增强,使其特别适合边缘部署。

核心创新点

  • C2f 构建块:新引入的 C2f 构建块,提升特征提取和融合,增强模型捕捉细节和复杂模式的能力,提高检测准确度。
  • CSPDarknet 主干:通过分割特征图并结合密集卷积,减少了计算量而保持了准确性。使用 SiLU 激活函数增强了梯度流动和特征表达,使得模型在保持高准确度的同时减小了体积,适合边缘部署。
  • PANet 颈部:基于 FPN 设计,增加自底向上的路径,通过特征融合和自适应池化,加强了不同层级间的信息流动和多尺度特征的融合,提升了小目标检测能力,适合多变的边缘应用场景。
  • 改进的 NMS:YOLOv8 的 NMS 算法优化了边界框处理,减少误检,提升检测精度。
  • 无锚点检测头:摒弃传统锚点框,简化架构,降低计算负担,加快推理速度,增强小目标和密集物体检测能力。

在这里插入图片描述

4 YOLO v10

YOLOv10,在2024年推出,是YOLO系列的重要进步,它克服了以往版本的限制,同时引入了创新特性来增强性能和效率。这个最新版本专注于通过在架构和训练协议方面的一系列优化,在效率和准确性之间实现平衡,提升了小目标检测能力,减少误报,并提高预测置信度。。

核心创新点

  • 无NMS训练和推理:YOLOv10引入了一种称为一致双重分配的NMS-free训练新方法。即YOLOv10在训练期间采用一对多和一对一策略的组合。一对多分配允许每个真实目标有多个预测,提高了召回率,而一对一分配通过选择最佳预测确保了精确度。这种方法确保了训练和推理之间的一致性,消除了推理期间对非极大值抑制(NMS)的需求,同时显著降低了推理延迟。
  • 轻量级分类头:YOLOv10的分类头设计轻巧,减少了分类过程中的计算冗余。这一优化确保了模型可以在不产生过多计算成本的情况下做出准确的预测,使其适合部署在资源有限的设备上。
  • 空间-通道解耦下采样:这种技术在下采样期间分离空间和通道信息,优化了特征提取过程。通过解耦这些方面,模型可以更有效地处理输入数据,从而在降低计算需求的同时带来更好的性能。
  • 等级引导块设计:等级引导块设计简化了整体架构,提高了计算效率。这种设计使用等级信息指导重要特征的选择,确保模型专注于输入数据最相关的方面。
  • 大核心卷积:YOLOv10结合了大核心卷积来提高模型捕获更大空间区域内详细特征的能力。这些卷积使模型能够更好地理解图像中对象的上下文,提高检测准确性。
  • 部分自注意力模块:部分自注意力模块以最小的额外计算成本提高准确性。这个模块帮助模型专注于输入数据中的相关特征,提高其准确检测和分类对象的能力。

在这里插入图片描述

5 Comparative Analysis of YOLOv5, YOLOv8, and YOLOv10

YOLOv5 到 YOLOv10 的架构演进展示了目标检测网络设计的重大进步。
在这里插入图片描述

主干网络演进:

  • YOLOv5:引入了CSPDarknet,整合了跨阶段部分网络以平衡计算成本和准确性。
  • YOLOv8:增强了CSPDarknet,可能整合了更高效的卷积操作和优化的通道配置。
  • YOLOv10:进一步优化了CSPDarknet,可能采用了等级引导块设计,实现更高效的特征提取。

颈部架构:

  • YOLOv5:使用PANet(路径聚合网络)进行有效的多尺度特征融合。
  • YOLOv8:改进了PANet,可能增强了跳跃连接或特征聚合方法。
  • YOLOv10:在PANet中引入了效率优化,可能采用了空间-通道解耦操作,更有效地进行特征传播。

检测头设计:

  • YOLOv5:使用基于锚点的方法,为对象检测预定义锚点框。
  • YOLOv8:转向无锚点设计,简化了检测过程,可能提高了小目标的性能。
  • YOLOv10:采用无锚点设计和双重分配,实现了无NMS训练和推理。

非极大值抑制(NMS):

  • YOLOv5和YOLOv8:需要NMS作为后处理步骤来过滤冗余检测。
  • YOLOv10:引入了无NMS训练和推理,显著减少了部署期间的计算开销和延迟。

激活函数:

  • YOLOv5:使用Leaky ReLU,这是深度学习模型的常见选择。
  • YOLOv8:采用SiLU(Swish)激活,以其平滑的梯度和潜在的性能优势而闻名。

特征金字塔网络(FPN):

  • YOLOv5:采用标准FPN进行多尺度特征表示。
  • YOLOv8:修改了FPN,可能改进了横向连接或特征融合策略。
  • YOLOv10:通过空间-通道解耦增强了FPN,可能允许更有效和有效的多尺度特征处理。

损失函数:

  • YOLOv5:使用CIoU(完整IoU)损失,平衡边界框回归和分类。
  • YOLOv8:引入了特定任务的损失,优化了不同计算机视觉任务的性能。
  • YOLOv10:开发了与无NMS训练方法一致的双重分配损失,可能提高了整体检测准确性。

数据增强:

  • YOLOv5:实施了马赛克和裁剪增强,增强了模型的鲁棒性。
  • YOLOv8:在增强流程中增加了Mixup,进一步提高了泛化能力。

训练策略:

  • YOLOv5和YOLOv8:采用单阶段训练,是YOLO模型的典型做法。
  • YOLOv10:采用双阶段训练方法,可能允许更精细的特征学习和改进的检测性能。

从 YOLOv5 到 YOLOv10 的架构演进明显趋向于更高效、更准确、更易于部署的设计。特别是 YOLOv10,引入了无NMS训练和空间-通道解耦等创新特性,这些对于边缘部署场景特别有益。这些进步共同促进了在各种部署环境中准确性的提高、计算开销的减少和实时性能的增强。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/796272.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过maven基于springboot项目构建脚手架archetype

1、引入脚手架构建的插件依赖 <!--构建脚手架archetype--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-archetype-plugin</artifactId><version>3.2.1</version></plugin><plugin><…

nodejs安装配置详解

一、下载Node.js安装包 官网下载链接[点击跳转] 建议下载LTS版本&#xff08;本教程不适用于苹果电脑&#xff09; 二 、安装Node.js 2.1 下载好安装包后双击打开安装包&#xff0c;然后点击Next 2.2 勾选同意许可后点击Next 2.3 点击Change选择好安装路径后点击Next&#x…

Mysql的语句执行很慢,如何分析排查?

1、检查服务器性能是否存在瓶颈 如果系统资源使用率比较高&#xff0c;比如CPU,硬盘&#xff0c;那访问肯定会慢&#xff0c;如果你发现是Mysl占比比较高&#xff0c;说明Mysql的读写频率高&#xff0c;如果本身网站访问量不大&#xff0c;说明你的sql参数&#xff0c;sql语句查…

羧基聚乙二醇生物素的制备方法;COOH-PEG-Biotin

羧基聚乙二醇生物素&#xff08;COOH-PEG-Biotin&#xff09;是一种常见的生物分子聚合物&#xff0c;具有多种应用&#xff0c;特别是在生物实验、药物研发和生物技术等领域。以下是对该化合物的详细解析&#xff1a; 一、基本信息 名称&#xff1a;羧基聚乙二醇生物素&#x…

Angular进阶之九: JS code coverage是如何运作的

环境准备 需要用到的包 node 18.16.0# Javascript 代码编辑"babel/core": "^7.24.7","babel/preset-env": "^7.24.7","babel-loader": "^9.1.3",# 打包时使用的 module&#xff0c; 给代码中注入新的方法# http…

云盘挂载 开机自动模拟 cmd- alist server

云盘挂载 开机自动模拟 cmd- alist server 打开Kimi智能助手, 网址:Kimi.ai - 帮你看更大的世界 (moonshot.cn) 问他: 帮我写一个vbs命令:在D:\sky目录下, 然后cmd, 进入命令行后, 输入 alist server 然后回车 这里 这个目录, 换成自己的 alist.exe所在目录 下面是我完善的示…

uni-app 保存号码到通讯录

1、 添加模块 2、添加权限 3、添加策略 Android&#xff1a; "permissionExternalStorage" : {"request" : "none","prompt" : "应用保存运行状态等信息&#xff0c;需要获取读写手机存储&#xff08;系统提示为访问设备上的照片…

pdf工具

iLovePDF | 为PDF爱好者提供的PDF文件在线处理工具 https://www.ilovepdf.com/zh-cn 图片 pdf 合并成一个pdf也可以拆分

C++ | Leetcode C++题解之第231题2的幂

题目&#xff1a; 题解&#xff1a; class Solution { private:static constexpr int BIG 1 << 30;public:bool isPowerOfTwo(int n) {return n > 0 && BIG % n 0;} };

西邮计科嵌入式复习

西邮嵌入式复习 一、第一章复习二、第二章复习三、第三章复习四、第四章复习 一、第一章复习 二、第二章复习 三、第三章复习 四、第四章复习

【零基础】学JS之APIS

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

使用Vsftpd服务传输文件

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 目录 一、文件传输协议 二、Vsftpd服务程序 三、TFTP简单文件传输协议 致谢 一、文件传输协议 FTP&#xff08;File Transfer Protocol&#xf…

vue3使用Echarts图表生成项目进度甘特图

先看效果 代码展示 <template><h1>项目进度甘特图</h1><div id"app"><!-- Echarts 图表 --><div ref"progressChart" class"progressChart"></div></div> </template><script setup&…

PMP是什么?PMP证书在国作用大吗?

PMP是全球认可的项目管理专业人士的通用语言&#xff0c;已在200多个国家得到认可。 1999年&#xff0c;中国国际人才交流基金会引入了项目管理知识体系指南和PMP职业资格认证。这一举措不仅推动了中国项目管理实践与国际接轨&#xff0c;也促进了项目管理培训和教育的发展&am…

Vue3 使用 Vue Router 时,prams 传参失效和报错问题

Discarded invalid param(s) “id“, “name“, “age“ when navigating 我尝试使用 prams 传递数据 <script setup> import { useRouter } from vue-routerconst router useRouter() const params { id: 1, name: ly, phone: 13246566476, age: 23 } const toDetail…

Golang:数据科学领域中的高性能并发编程新星

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 并发性能的卓越表现📝 系统级工具的便捷性📝 语言设计的简洁性📝 强类型系统的严格性📝 版本兼容性的稳定性📝 内置工具的全面性⚓️ 相关链接 ⚓️📖 介绍 📖 在数据科学和机器学习的广阔天地…

.Net Core 微服务之Consul(二)-集群搭建

引言: 集合上一期.Net Core 微服务之Consul(一)(.Net Core 微服务之Consul(一)-CSDN博客) 。 目录 一、 Consul集群搭建 1. 高可用 1.1 高可用性概念 1.2 高可用集群的基本原理 1.3 高可用集群的架构设计 1.3.1 主从复制架构 1.3.2 共享存储架构 1.3.3 负载均衡…

[每周一更]-(第105期):SSL证书过期后引发的DNS缓存问题

问题回顾&#xff1a; ​ 上班路上收到ZeroSSL邮件通知我们清点项目的SSL证书到期了&#xff0c;到公司还是登录网址查看信息&#xff0c;一看果然是7.10也就是今天到期&#xff0c;开始看下acme.sh的定制任务为何没生效&#xff0c;一看crontab脚本&#xff0c;日志任务丢垃圾…

【吊打面试官系列-ZooKeeper面试题】简述 Zookeeper 文件系统?

大家好&#xff0c;我是锋哥。今天分享关于 【简述 Zookeeper 文件系统?】面试题&#xff0c;希望对大家有帮助&#xff1b; 简述 Zookeeper 文件系统? Zookeeper 提供一个多层级的节点命名空间&#xff08;节点称为 znode&#xff09;。与文件系统不同的是&#xff0c;这些节…

centos安装minio文件系统服务器(踩坑版)

centos安装minio文件系统服务器&#xff08;踩坑版&#xff09; 引安装1. 下载2. 启动3. 创建access keys4. 创建buckets 坑 引 本来安装挺简单的&#xff0c;网上的教程一大堆&#xff0c;有些写的也挺详细的。不过自己还是踩到坑了&#xff0c;耽误了个把小时&#xff0c;特…