【论文阅读】 YOLOv10: Real-Time End-to-End Object Detection

文章目录

  • Abstract
  • Introduction
  • Related Work
  • Methodology
    • Consistent Dual Assignments for NMS-free Training (无NMS训练的一致性双重任务分配)
    • Holistic Efficiency-Accuracy Driven Model Design (效率-精度驱动的整体模型设计)
  • Experiment
  • Conclusion

YOLOv10:实时端到端的目标检测
GitHub
paper

单位:清华大学

Abstract

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

Introduction

实时目标检测一直是计算机视觉领域的研究热点。
YOLOs 的检测流程由两部分组成:**模型前向处理和 NMS 后处理。**然而,这两部分仍存在缺陷,导致精度-延迟边界不理想。

具体来说,YOLO 在训练过程中通常采用一对多的标签分配策略,即一个真值对象对应多个正样本。尽管这种方法性能优越,但在推理过程中,NMS 必须选择最佳的正向预测。这就降低了推理速度,使性能对 NMS 的超参数非常敏感,从而阻碍了 YOLOs 实现最佳端到端部署。解决这一问题的方法之一是采用最近推出的端到端 DETR 架构 。例如,RT-DETR 提出了一种高效的混合编码器和不确定性最小的查询选择,将 DETR 推向了实时应用领域。然而,部署 DETR 本身的复杂性阻碍了它在准确性和速度之间达到最佳平衡的能力。另一条思路是探索基于 CNN 的端到端检测,通常利用一对一分配策略来抑制冗余预测 。然而,这些方法通常会引入额外的推理开销,或实现次优性能。

此外,模型结构设计仍然是 YOLOs 面临的一个基本挑战,它对精度和速度有重要影响。为了实现更高效、更有效的模型架构,研究人员探索了不同的设计策略。为提高特征提取能力,骨干网采用了多种主要计算单元,包括 DarkNet [43, 44, 45]、CSPNet [2]、EfficientRep [27] 和 ELAN [56, 58] 等。对于颈部,则探索了 PAN [35]、BiC [27]、GD [54] 和 RepGFPN [65] 等增强多尺度特征融合的方法。此外,还研究了模型缩放策略[56, 55]和重新参数化[10, 27]技术。虽然这些努力取得了显著进展,但仍缺乏从效率和准确性两个角度对 YOLOs 中各种组件的全面检测。因此,在 YOLOs 中仍然存在相当多的计算冗余,导致参数利用效率低下和效率不理想。此外,由此产生的受限模型能力也会导致性能低下,为提高精度留下了很大的空间。

在这项工作中,我们的目标是解决这些问题,并进一步推进 YOLO 的精度-速度界限。我们的目标是后处理和整个检测管道中的模型架构。为此,我们首先解决了后处理中的冗余预测问题,提出了无 NMS YOLOs 的一致双重分配策略,即双重标签分配和一致匹配度量。它使模型在训练过程中享受丰富而和谐的监督,同时在推理过程中无需 NMS,从而以高效率获得有竞争力的性能。其次,我们通过对 YOLOs 中的各个组件进行全面检查,为模型架构提出了效率-精度驱动的整体模型设计策略。在效率方面,我们提出了轻量级分类头、空间信道解耦下采样和等级引导块设计,以减少显性计算冗余,实现更高效的架构。在精度方面,我们探索了大核卷积,并提出了有效的部分自注意模块,以增强模型能力,在低成本的情况下利用潜在的性能改进。

基于这些方法,我们成功地实现了具有不同模型尺度的新型实时端到端检测器系列,即 YOLOv10-N / S / M / B / L / X。
在这里插入图片描述
如图 1 所示,在性能相似的情况下,我们的 YOLOv10-S / X 比 RT-DETRR18 / R101 分别快 1.8 倍和 1.3 倍。与 YOLOv9-C 相比,YOLOv10-B 在性能相同的情况下减少了 46% 的延迟。此外,YOLOv10 还表现出高效的参数利用率。我们的 YOLOv10-L / X 性能分别比 YOLOv8-L / X 高出 0.3 AP 和 0.5 AP,参数数量分别少 1.8 倍和 2.3 倍。OLOv10-M与 YOLOv9-M / YOLO-MS 相比,AP 与 YOLOv9-M / YOLO-MS 相似,参数分别减少了 23% 和 31%。

Related Work

Methodology

Consistent Dual Assignments for NMS-free Training (无NMS训练的一致性双重任务分配)

在训练过程中,YOLOs [20, 59, 27, 64] 通常利用 TAL [14] 为每个实例分配多个正样本。采用一对多的分配方式可以获得大量的监督信号,从而促进优化并获得卓越的性能。但是,这使得 YOLOs 必须依赖 NMS 的后处理,从而导致部署推理效率不理想。虽然之前的研究 [49, 60, 73, 5] 探索了一对一匹配来抑制冗余预测,但它们通常会引入额外的推理开销或产生次优性能。在这项工作中,我们提出了一种无 NMS 的 YOLOs 训练策略,它具有双标签分配和一致的匹配度量,实现了高效率和有竞争力的性能。

双标签分配。与一对多分配不同,一对一匹配只为每个真值分配一个预测,避免了 NMS 后处理。然而,这种方法会导致弱监督,从而使精度和收敛速度达不到最佳水平 [75]。幸运的是,这种缺陷可以通过一对多的分配来弥补 [5]。为此,我们为 YOLOs 引入了双标签分配,以结合两种策略的优点。具体来说,如图 2(a)所示,我们为 YOLOs 引入了另一种一对一头。它保留了与原来一对多分支相同的结构和优化目标,但利用一对一匹配来获得标签分配。在训练过程中,两个检测头与模型共同优化,让骨干和颈部享受一对多分配提供的丰富监督。在推理过程中,我们舍弃一对多检测头,利用一对一检测头进行预测。这样,端到端部署就可以实现 YOLO,而不会产生任何额外的推理成本。此外,在一对一匹配中,我们采用了前一个选择,这与匈牙利匹配[4]的性能相同,但额外的训练时间更少。

在这里插入图片描述
一致匹配度量。在分配过程中,一对一和一对多方法都会利用一个指标来定量评估预测和实例之间的一致程度。为了实现两个分支的预测感知匹配,我们采用了统一匹配度量,即
在这里插入图片描述
其中 p 是分类得分,ˆb 和 b 分别表示预测和真实的边界框。s 代表空间先验,表示预测的锚点是否在实例内 [20, 59, 27, 64]。α 和 β 是两个重要的超参数,用于平衡语义预测任务和位置回归任务的影响。我们将一对多指标和一对一指标分别记为
在这里插入图片描述
这些指标会影响两个标头的标签分配和监督信息。

在双标签分配中,一对多分支提供的监督信号比一对一分支丰富得多。直观地说,如果我们能协调一对一标头和一对多标头的监督,我们就能朝着一对多标头的优化方向优化一对一标头。因此,一对一标头可以在推理过程中提高样本质量,从而获得更好的性能。为此,我们首先分析了两个计算头之间的监督差距。由于训练过程中的随机性,我们在一开始就对两个 "头 "进行检查,这两个 "头 "以相同的值初始化并产生相同的预测,即一对一 "头 "和一对多 "头 "对每个预测-实例对产生相同的 p 和 IoU。我们注意到,两个分支的回归目标并不冲突,因为匹配的预测会共享相同的目标,而不匹配的预测则会被忽略。因此,监督差距在于不同的分类目标。给定一个实例,我们将其最大的预测 IoU 记为 u ∗ ,最大的一对多和一对一匹配分数分别记为 m∗ o2m 和 m∗ o2o。假设一对多分支产生正样本 Ω,一对一分支选择第 i 个预测,其指标为 mo2o,i=m∗ o2o、 然后,我们可以得出分类目标 to2m,j=u ∗ - mo2m,j m∗ o2m ≤ u ∗(对于 j∈ Ω)和 to2o,i=u ∗ - mo2o,i m∗ o2o =u ∗(对于任务对齐损失),如 [20,59,27,64,14] 所示。因此,两个分支之间的监督差距可以通过不同分类目标的 1-Wasserstein 距离得出:
在这里插入图片描述
我们可以观察到,差距随着 to2m,i 的增大而减小,即 i 在 Ω 中的排名靠前。如图 2.(a) 所示,当 to2m,i=u∗ 时,差距达到最小,即 i 是 Ω 中最好的正样本。为此,我们提出了一致匹配度量,即 αo2o=r - αo2m 和 βo2o=r - βo2m,这意味着 mo2o=mr o2m。因此,一对多磁头的最佳正样本也是一对一磁头的最佳正样本。因此,这两个磁头可以得到一致、和谐的优化。为简单起见,我们默认 r=1,即 αo2o=αo2m 和 βo2o=βo2m。为了验证改进后的监督配准,我们统计了训练后一对多结果的前 1 / 5 / 10 中一对一匹配对的数量。如图 2(b)所示,在一致匹配度量下,配准得到了改善。如需更全面地了解数学证明,请参阅附录。

Holistic Efficiency-Accuracy Driven Model Design (效率-精度驱动的整体模型设计)

效率驱动的模型设计。YOLO 的组件包括stem, downsampling layers, stages with basic building blocks, and the head.。stem的计算成本较低,因此我们对其他三个部分进行了效率驱动模型设计。

(1) 轻量级分类头。在 YOLOs 中,分类头和回归头通常采用相同的架构。但是,它们在计算开销方面表现出明显的差异。例如,在 YOLOv8-S 中,分类头的 FLOPs 和参数数(5.95G/1.51M)分别是回归头(2.34G/0.64M)的 2.5 倍和 2.4 倍。不过,在分析了分类误差和回归误差的影响后(见表 6),我们发现回归头对 YOLO 性能的影响更大。因此,我们可以减少分类头的开销,而不必担心性能会受到很大影响。因此,我们简单地采用了一种轻量级的分类头架构,它由两个深度可分离卷积[24, 8]组成,内核大小为 3×3,然后是 1×1 卷积。

(2) 空间-通道解耦降采样。YOLO 通常利用步长为 2 的常规 3×3 标准卷积,同时实现空间降采样(从 H × W 到 H 2 × W 2)和通道转换(从 C 到 2C)。这将带来不可忽略的计算成本 O( 9 2HW C2 ) 和参数数量 O(18C 2 ) 。取而代之的是,我们建议将空间缩小和通道增加操作解耦,从而实现更高效的下采样。具体来说,我们首先利用点卷积来调节通道维度,然后利用深度卷积来执行空间下采样。这将计算成本降低到 O(2HW C2 + 9 2HW C),参数数量降低到 O(2C 2 + 18C)。同时,它最大限度地保留了下采样过程中的信息,从而在降低延迟的同时实现了极具竞争力的性能。

(3) 等级引导的模块设计。YOLO 通常在所有阶段采用相同的基本构件 [27, 59],例如 YOLOv8 [20] 中的瓶颈构件。为了彻底检查 YOLO 的这种同构设计,我们利用本征等级 [31, 15] 来分析每个阶段的冗余度。具体来说,我们计算每个阶段中最后一个基本块中最后一次卷积的数值秩,其中计算大于阈值的奇异值的数量。图 3.(a) 显示了 YOLOv8 的结果,表明深度阶段和大型模型容易出现更多冗余。这一观察结果表明,简单地对所有阶段应用相同的块设计并不能实现最佳的容量-效率权衡。为了解决这个问题,我们提出了一种等级引导的区块设计方案,旨在通过紧凑的架构设计来降低冗余阶段的复杂性。我们首先提出了一种紧凑型反转块(CIB)结构,它采用廉价的深度卷积进行空间混合,并采用经济高效的点卷积进行信通道混合。它可以作为高效的基本构件,例如嵌入 ELAN 结构[58, 20](图 3.(b))。然后,我们主张采用等级引导的模块分配策略,在保持有竞争力的容量的同时实现最佳效率。具体来说,给定一个模型后,我们根据其内在等级以升序对其所有阶段进行排序。我们将进一步检验用 CIB 替换领先阶段基本区块的性能变化。如果与给定模型相比性能没有下降,我们就继续替换下一阶段,反之则停止这一过程。因此,我们可以实现跨阶段和跨模型规模的自适应紧凑块设计,在不影响性能的情况下实现更高的效率。由于篇幅限制,我们在附录中提供了算法的详细信息

在这里插入图片描述
精度驱动模型设计。我们进一步探索了大核卷积和自注意力的精度驱动设计,旨在以最小的成本提高性能。

(1) 大核卷积。采用大核深度卷积是扩大感受野和增强模型能力的有效方法 [9, 38, 37]。但是,如果在所有阶段都简单地利用它们,可能会对用于检测小物体的浅层特征造成污染,同时也会在高分辨率阶段带来巨大的 I/O 开销和延迟[7]。因此,我们建议在深度阶段利用 CIB 中的大核深度卷积。具体来说,我们仿照文献[37],将 CIB 中第二个 3×3 深度卷积的核大小增加到 7×7。此外,我们还采用了结构重参数化技术 [10, 9, 53],引入了另一个 3×3 深度卷积分支,在不增加推理开销的情况下缓解了优化问题。此外,随着模型大小的增加,其感受野自然也会扩大,使用大核卷积的好处也会随之减少。因此,我们只在模型规模较小的情况下采用大核卷积。

(2) 部分自注意力(PSA)。自注意力[52]因其卓越的全局建模能力而被广泛应用于各种视觉任务中[36, 13, 70]。然而,它的计算复杂度和内存占用都很高。为了解决这个问题,考虑到普遍存在的注意头冗余问题 [63],我们提出了一种高效的部分自注意(PSA)模块设计,如图 3©所示。具体来说,我们在 1×1 卷积后将各通道的特征平均分成两部分。我们只将其中一部分输入由多头自注意模块(MHSA)和前馈网络(FFN)组成的 NPSA 模块。然后,两部分通过 1×1 卷积进行连接和融合。此外,我们遵循文献[21],将查询和关键字的维度分配为 MHSA 中值的一半,并用 BatchNorm [26] 代替 LayerNorm [1],以实现快速推理。此外,PSA 只放在分辨率最低的第 4 阶段之后,避免了自注意力的二次计算复杂度带来的过高开销。这样,全局表示学习能力就能以较低的计算成本融入 YOLOs,从而很好地增强了模型的能力,提高了性能。

Experiment

在这里插入图片描述

在这里插入图片描述

Conclusion

在本文中,我们将后处理和模型架构作为整个 YOLOs 检测流程的目标。在后处理方面,我们提出了无 NMS 训练的一致双重分配,实现了高效的端到端检测。在模型架构方面,我们引入了效率-精度驱动的整体模型设计策略,改善了性能-效率的权衡。这些都为我们带来了全新的实时端到端对象检测器 YOLOv10。广泛的实验表明,与其他先进的检测器相比,YOLOv10 的性能和延迟都达到了最先进的水平,充分证明了它的优越性。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32F4_HAL_LWIP_RAM接口UDP实验

目录 RAW 的 UDP 接口简介 RAW 的 UDP 实验 硬件设计 例程功能 软件设计 UDP 配置步骤 软件设计流程图 RAW 的 UDP 接口简介 UDP 协议的 RAW 的 API 功能函数,我们使用这些函数来完成 UDP 的数据发送和接收功能。 (1) udp_new 函数 此函数用来创建一个 UDP …

如何用俄语预定酒店,柯桥外贸俄语培训

-Привет, Алекс! Как твои дела? 你好,阿列克斯!你最近好吗? -Отлично! Я скоро уезжаю на 10 дней в Санкт-Петербург, но никак не могу найти там…

如何查询Windows 10电脑的IP地址

如何查询Windows 10电脑的IP地址 引言 在Windows 10操作系统中,查询电脑的IP地址是一项基本而重要的任务,无论是为了配置网络、解决连接问题,还是进行远程访问。 基础知识 IP地址:互联网协议地址,用于标识网络中的…

帆软报表点击表格给数据集传递参数案例

一、效果 有四个模块,分别是采购总金额,采购总数量,采购合同数量,采购合同申请数量通过点击单元格上的月份,展示不同的月份数据,进行单元格和表格之间的联动 二、准备好数据库表和展示数据内容 2.1 建表 …

私人健身与教练预约|基于SprinBoot+vue的私人健身与教练预约管理系统(源码+数据库+文档)

私人健身与教练预约管理系统 目录 基于SprinBootvue的私人健身与教练预约管理系统 一、前言 二、系统设计 三、系统功能设计 1系统功能模块 2后台功能模块 5.2.1管理员功能 5.2.2用户功能 5.2.3教练功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算…

CentOS8搭载正反向解析dns服务器

1.介绍(是什么) DNS(Domain Name System),即域名系统,是一个将域名和 IP 地址相互映射的分布式数据库,它可以将用户输入的域名转换成对应的 IP 地址。DNS 由多个服务器组成,分为多个…

Creo模型按一定的比例放大或缩小(实际尺寸)

原来,距离是100mm 缩放操作 放大3倍,距离变为300mm

使用QtCreator C++编写串口调试助手

100编程书屋_孔夫子旧书网 1.首先看一下我设计的界面(我这里比较简单,大家可根据自己的需求进行设计) (界面设计的过程中,每一个控件的名称最好进行修改,便于后续控件太多不好区分,给控件命名的…

6.1 Go 数组

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

深入分析 Android Activity (十一)

文章目录 深入分析 Android Activity (十一)1. Activity 的内存管理和优化1.1 内存泄漏的常见原因1.2 避免内存泄漏的方法1.3 内存泄漏检测工具 2. Activity 的配置变更处理2.1 处理配置变更2.2 保存和恢复状态2.3 使用 ViewModel 3. Activity 的测试3.1 单元测试3.2 UI 测试 4…

质量工具系列之Dependency-Track

项目开发中依赖了很多第三方开源工具,对于其版本,漏洞等因为时间或者是数量太多而无法关注到,Dependency-Track解决这些问题。 Dependency-Track 是一个开源组件分析平台,是开放网络应用安全项目(OWASP)的一…

web自动化-数据驱动与失败用例截图、失败重新运行

因为只有失败的用例需要截图,那么问题就是: 什么时候用例会失败? 数据驱动测试 我们前面覆盖到的用例都是正常的用例,如果要测试异常的用例呢? 我们来写一下登录的异常 场景:【login_page】 # 用户输入框…

LAMP集群分布式实验报告

前景: 1.技术成熟度和稳定性: LAMP架构(Linux、Apache、MySQL、PHP)自1998年提出以来,经过长时间的发展和完善,已经成为非常成熟和稳定的Web开发平台。其中,Linux操作系统因其高度的灵活性和稳…

【XR806开发板试用】基础篇,从零开始搭建一个LCD彩屏时钟(ST7735S驱动)

本文从搭建环境开始,step by step教大家使用XR806实现驱动SPI屏幕(ST7735S驱动),并连接WiFi实现ntp对时,最终实现把时间显示到屏幕上。 #1. 搭建开发环境 1. 安装编译环境所需的依赖包 基于ubuntu 20.04,按…

UI自动化测试最佳设计模式POM

当使用Selenium进行UI自动化测试时,Page Object Model(POM)是一种最佳实践的设计模式。POM的核心思想是通过将页面封装成对象,使得测试代码更加清晰、可维护和可重用。 POM的主要组成部分包括页面对象类、元素定位方式和操作方法…

LabVIEW车轮动平衡检测系统

LabVIEW车轮动平衡检测系统 随着汽车行业的快速发展,车轮动平衡问题对乘坐舒适性、操控稳定性及安全性的影响日益凸显,成为了提高汽车性能的一个关键环节。传统的检测系统因精度低、成本高、操作复杂等问题,难以满足现代汽车行业的需求。开发…

行车安全:UWB模块的智能化在车辆安全系统中的作用

随着交通车辆数量的不断增加和道路交通拥堵的加剧,车辆安全问题日益引起人们的关注。在这种背景下,超宽带(UWB)技术作为一种新兴的定位技术,正逐渐应用于车辆安全系统中,为提高车辆行车安全性提供了新的解决…

Django配置

后端开发: python 解释器、 pycharm 社区版、 navicate 、 mysql(phpstudy) 前段开发: vs code 、 google 浏览器 django 项目配置 配置项目启动方式 创建模型 创建一个应用 在应用中创建模型类 根据模型类生成数据表 创建应用 创建模型类 …

智能除螨—wtn6040-8s语音芯片方案引领除螨仪新时代

语音螨仪开发背景: 随着物联网技术的快速发展,除螨仪作为家庭清洁的重要工具,其智能化、人性化的设计成为提升市场竞争力的关键。置入语音芯片的除螨仪,通过开机提示、工作状态反馈、操作指引、故障提醒等内容。用户可以更加直观…

邦注科技三机一体除湿干燥机在工业中的应用

三机一体除湿干燥机在工业中的应用广泛且重要,其结合了传统除湿机、冷凝器和加热器的功能,具有节能、环保、方便等特点。以下是关于三机一体除湿干燥机在工业中应用的详细解析: 一、应用领域 电子制造行业:在半导体、集成电路和…