YOLOV10:参数越少,速度越快,性能更高的新一代目标检测框架

2024-06-01 21:28

本文主要是介绍YOLOV10:参数越少,速度越快,性能更高的新一代目标检测框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

在过去的几年中,YOLOs由于在计算成本和检测性能之间实现了有效的平衡,已经成为实时目标检测领域的主导范式。研究人员已经探索了YOLOs的架构设计、优化目标、数据增强策略等,取得了显著的进展。然而,对非极大值抑制(NMS)的依赖限制了YOLOs的端到端部署,并负面影响了推理延迟。此外,YOLOs中各个组件的设计缺乏全面和彻底的检查,导致明显的计算冗余并限制了模型的能力。这使得效率次优,并且有很大的性能提升空间。在这项工作中,我们旨在从后处理和模型架构两方面进一步推进YOLOs的性能效率边界。为此,我们首先提出了一种一致的双重分配策略,用于无需NMS的YOLOs训练,这带来了竞争性能和低推理延迟。此外,我们引入了一种全面的效率-准确性驱动的模型设计策略,用于YOLOs。我们从效率和准确性两个角度全面优化了YOLOs的各个组件,大大减少了计算开销并提升了能力。我们的努力成果是新一代的YOLO系列,用于实时端到端目标检测,被称为YOLOv10。广泛的实验表明,YOLOv10在不同模型规模下实现了最先进的性能和效率。例如,我们的YOLOv10-S在COCO上与RT-DETR-R18相似的AP下速度提高了1.8倍,同时参数数量和FLOPs减少了2.8倍。与YOLOv9-C相比,YOLOv10-B在相同性能下的延迟减少了46%,参数数量减少了25%。代码:https://github.com/THU-MIG/yolov10。

方法论

3.1 无需NMS训练的一致双重分配 在训练期间,YOLOs[20, 59, 27, 64]通常利用TAL[14]为每个实例分配多个正样本。采用一对多分配方式可以提供丰富的监督信号,有助于优化并实现卓越的性能。然而,这种方法需要YOLOs依赖于NMS后处理,这导致了次优的推理效率。虽然先前的工作[49, 60, 73, 5]探索了一对一匹配以抑制冗余预测,但它们通常会引入额外的推理开销或导致次优性能。在这项工作中,我们提出了一种YOLOs的无需NMS训练策略,采用双重标签分配和一致的匹配度量,实现了高效率和竞争性能。

双重标签分配。与一对多分配不同,一对一匹配仅为每个真实标注分配一个预测,避免了NMS后处理。然而,这导致监督信号变弱,引起次优的准确性和收敛速度[75]。幸运的是,这种缺陷可以通过一对多分配[5]来补偿。为了实现这一点,我们为YOLOs引入了双重标签分配,结合了两种策略的优势。具体来说,如图2.(a)所示,我们为YOLOs增加了另一个一对一头部。它保持与原始一对多分支相同的结构,并采用相同的优化目标,但利用一对一匹配来获取标签分配。在训练期间,两个头部与模型一起进行联合优化,允许主干和颈部享受由一对多分配提供的丰富监督。在推理期间,我们丢弃一对多头部,并使用一对一头部进行预测。这使得YOLOs能够实现端到端部署,而不需要任何额外的推理成本。此外,在一对一匹配中,我们采用顶部选择,这在训练时间上与匈牙利匹配[4]相同,但减少了额外开销。

一致匹配度量。在分配过程中,一对一和一对多方法都利用一个度量标准来定量评估预测和实例之间的一致性水平。为了实现两个分支的预测感知匹配,我们采用了统一的匹配度量,即m(α, β) = s · p^α · IoU(ˆb, b)^β, (1),其中p是分类得分,ˆb和b分别表示预测和实例的边界框。s表示空间先验,指示预测的锚点是否在实例内[20, 59, 27, 64]。α和β是两个重要的超参数,用于平衡语义预测任务和位置回归任务的影响。我们将一对多和一对一度量分别表示为mo2m=m(αo2m, βo2m)和mo2o=m(αo2o, βo2o)。这些度量影响了两个头部的标签分配和监督信息。

在双重标签分配中,一对多分支提供了比一对一分支丰富得多的监督信号。直观地说,如果我们能够使一对一头部的监督与一对多头部的监督协调一致,我们就可以朝着一对多头部优化的方向优化一对一头部。结果,一对一头部在推理期间可以提供更高质量的样本,从而带来更好的性能。为此,我们首先分析了两个头部之间的监督差距。由于训练过程中的随机性,我们首先从两个头部以相同的值初始化并产生相同的预测开始检查,即一对一头部和一对多头部为每个预测-实例对生成相同的p和IoU。我们注意到两个分支的回归目标并不冲突,因为匹配的预测共享相同的目标,而不匹配的预测则被忽略。因此,监督差距在于不同的分类目标。给定一个实例,我们将其与预测的最大IoU表示为u*,以及一对多和一对一匹配的最大分数分别为mo2m和mo2o。假设一对多分支产生正样本集合Ω,并且一对一分支选择第i个预测,使用度量mo2o,i=mo2o,则我们可以推导出分类目标to2m,j=u · mo2m,j / mo2m ≤ u 对于j ∈ Ω,以及to2o,i=u* · mo2o,i / mo2o = u 对于任务对齐损失,如[20, 59, 27, 64, 14]中所述。因此,两个分支之间的监督差距可以通过不同分类目标的1-Wasserstein距离[41]来推导,即A = to2o,i − I(i ∈ Ω)to2m,i + Σk∈Ω{i} to2m,k, (2)

我们可以观察到,随着to2m,i的增加,差距减少,即i在Ω中的排名提高。当to2m,i=u*时,即i是Ω中最佳的正样本时,它达到最小,如图2.(a)所示。为了实现这一点,我们提出了一致匹配度量,即αo2o=r · αo2m和βo2o=r · βo2m,这意味着mo2o=mr o2m。因此,一对多头部的最佳正样本也是一对一头部的最佳样本。结果,两个头部可以一致且和谐地进行优化。为了简化,我们默认取r=1,即αo2o=αo2m和βo2o=βo2m。为了验证改善的监督对齐,我们统计了训练后在一对多结果的前1/5/10中一对一匹配对的数量。如图2.(b)所示,在一致匹配度量下,对齐情况有所改善。有关数学证明的更全面理解,请参阅附录。

3.2 全面的效率-准确性驱动的模型设计 除了后处理之外,YOLOs的模型架构也对效率-准确性权衡提出了巨大挑战[45, 7, 27]。尽管先前的工作探索了各种设计策略,但对YOLOs中各个组件的全面检查仍然缺乏。结果,模型架构表现出不可忽视的计算冗余和受限的能力,这阻碍了其实现高效率和性能的潜力。在这里,我们旨在从效率和准确性两个角度全面地为YOLOs执行模型设计。

效率驱动的模型设计。YOLO的组件包括干线、下采样层、具有基本构建块的阶段和头部。干线造成的计算成本很少,因此我们对其他三个部分执行效率驱动的模型设计。

(1)轻量级分类头部。分类和回归头部通常在YOLOs中共享相同的架构。然而,它们在计算开销上表现出显著的差异。例如,在YOLOv8-S中,分类头部(5.95G/1.51M)的FLOPs和参数计数分别是回归头部(2.34G/0.64M)的2.5倍和2.4倍。然而,在分析分类误差和回归误差的影响(见表6)后,我们发现回归头部对YOLOs的性能更为重要。因此,我们可以在不担心大大损害性能的情况下减少分类头部的开销。因此,我们简单地为分类头部采用了轻量级架构,该架构由两个深度可分离卷积[24, 8]组成,核大小为3×3,后跟1×1卷积。

(2)空间-通道解耦下采样。YOLOs通常利用常规的3×3标准卷积,步长为2,同时实现空间下采样(从H×W到H^2×W^2)和通道变换(从C到2C)。这引入了不可忽视的计算成本O(9^2HWC^2)和参数计数O(18C^2)。相反,我们提议将空间缩减和通道增加操作解耦,实现更高效的下采样。具体来说,我们首先利用点卷积来调节通道维度,然后使用深度卷积来执行空间下采样。这将计算成本降低到O(2HWC^2 + 9^2HWC),参数计数降低到O(2C^2 + 18C)。同时,它最大化了下采样期间的信息保留,带来了延迟降低的竞争力。

(3)基于排名的块设计。YOLOs通常对所有阶段使用相同的基本构建块[27, 59],例如YOLOv8中的瓶颈块[20]。为了彻底检查YOLOs的这种同质设计,我们利用内在排名[31, 15]来分析每个阶段的冗余。具体来说,我们计算每个阶段最后一个基本块中最后一个卷积的数值排名,这统计了大于某个阈值的奇异值的数量。图3.(a)展示了YOLOv8的结果,表明深层阶段和大型模型更倾向于表现出更多的冗余。这一观察表明,简单地将相同的块设计应用于所有阶段对于最佳容量-效率权衡来说是次优的。为了解决这个问题,我们提出了一个基于排名的块设计方案,旨在使用紧凑的架构设计降低显示出冗余的阶段的复杂性。我们首先提出了一个紧凑的倒置块(CIB)结构,它采用成本低廉的深度卷积进行空间混合和成本效益高的点卷积进行通道混合,如图3.(b)所示。它可以作为高效的基本构建块,例如嵌入到ELAN结构[58, 20]中(图3.(b))。

实验

4.1 实现细节 我们选择YOLOv8 [20]作为我们的基线模型,由于其在延迟和准确性之间取得了值得称赞的平衡,并且它在各种模型尺寸中都可用。我们采用一致的双重分配策略进行无需NMS的训练,并基于此进行全面的效率-准确性驱动的模型设计,带来了我们的YOLOv10模型。YOLOv10拥有与YOLOv8相同的变体,即N / S / M / L / X。此外,我们通过简单地增加YOLOv10-M的宽度比例因子,派生出一个新的变体YOLOv10-B。我们在COCO [33]上以相同的从头开始训练的设置[20, 59, 56]验证了所提出的探测器。此外,所有模型的延迟在T4 GPU上使用TensorRT FP16进行测试,遵循[71]。

4.2 与最先进方法的比较 如表1所示,我们的YOLOv10在不同模型尺寸下实现了最先进的性能和端到端延迟。我们首先将YOLOv10与我们的基线模型进行比较,即YOLOv8。在N / S / M / L / X五个变体中,我们的YOLOv10实现了1.2% / 1.4% / 0.5% / 0.3% / 0.5% AP改进,参数数量减少28% / 36% / 41% / 44% / 57%,计算量减少23% / 24% / 25% / 27% / 38%,延迟降低70% / 65% / 50% / 41% / 37%。与其他YOLOs相比,YOLOv10在准确性和计算成本之间也展现出了优越的权衡。具体来说,对于轻量级和小尺寸模型,YOLOv10-N / S在性能上分别比YOLOv6-3.0-N / S高出1.5 AP和2.0 AP,参数数量分别减少了51% / 61%,计算量分别减少了41% / 52%。对于中等尺寸模型,与YOLOv9-C / YOLO-MS相比,YOLOv10-B / M在相同或更好的性能下分别实现了46% / 62%的延迟降低。对于大型模型,与Gold-YOLO-L相比,我们的YOLOv10-L参数数量减少了68%,延迟降低了32%,并且AP显著提高了1.4%。此外,与RT-DETR相比,YOLOv10在性能和延迟方面都取得了显著的改进。值得注意的是,YOLOv10-S / X在相似性能下的推理速度分别比RT-DETR-R18 / R101快1.8倍和1.3倍。这些结果很好地展示了YOLOv10作为实时端到端探测器的优越性。

我们还使用原始的一对多训练方法比较了YOLOv10与其他YOLOs。在这种情况下,我们考虑模型前向过程的性能和延迟(Latencyf),遵循[56, 20, 54]。如表1所示,YOLOv10在不同模型尺寸下也展现出了最先进的性能和效率,这表明了我们架构设计的有效性。

评价:

YOLOv10的主要贡献包括:

  1. 提出了一种新的一致的双重分配策略,用于无需非极大值抑制(NMS)的YOLO训练,这样既保证了竞争性能,又降低了推理延迟。
  2. 引入了一种全面的效率-准确性驱动的模型设计策略,全面优化了YOLO的各个组成部分,从效率和准确性两个角度出发,大大降低了计算开销,提高了模型能力。
  3. 基于这些方法,开发了新一代的YOLO系列,即YOLOv10,它在不同模型规模下都实现了实时端到端目标检测的最新性能和效率。

YOLOv10-S在COCO数据集上与RT-DETR-R18相似的AP下速度提高了1.8倍,同时参数数量和浮点运算次数减少了2.8倍。与YOLOv9-C相比,YOLOv10-B在相同性能下的延迟减少了46%,参数数量减少了25%。

这篇关于YOLOV10:参数越少,速度越快,性能更高的新一代目标检测框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1022160

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X