YOLOv10 | 无NMS的YOLO | 实时端到端目标检测的新突破

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

论文地址YOLOv10: Real-Time End-to-End Object Detection点击即可跳转

官方代码官方代码仓库点击即可跳转

关注我后续会发布更详细的解读以及创新

目录

1. 创新点

2. 精度对比

3. 一致匹配度量(Consistent Matching Metric)

3.1 效率驱动的模型设计

3.2 基于秩的块设计(Rank-Guided Block Design)

3.3 精度驱动的模型设计

4.总结


1. 创新点

无NMS的一致双分配(consistent dual assignments):

  • YOLOv10提出了一种通过双标签分配而不用非极大值抑制NMS的策略。这种方法结合了一对多和一对一分配策略的优势,提高了效率并保持了性能。

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

  • 轻量化分类头:在不显著影响性能的情况下,减少了计算开销。

  • 空间-通道解耦下采样:解耦空间下采样和通道调整,优化计算成本。

  • 基于秩的块设计:根据各阶段的内在秩适应块设计,减少冗余,提高效率。

  • 大核卷积和部分自注意力PSA:在不显著增加计算成本的情况下,增强了感受野和全局建模能力。

图片

1. 一致双分配策略(Consistent Dual Assignments)

YOLOv10引入了一种新的双分配策略,用于在训练期间同时利用一对多(one-to-many)和一对一(one-to-one)标签分配。这种方法在保持模型高效训练的同时,摆脱了推理过程中对非极大值抑制NMS的依赖。

双标签分配(Dual Label Assignments)

  • 一对多分配:在训练期间,多个预测框被分配给一个真实物体标签。这种策略提供了丰富的监督信号,优化效果更好。

  • 一对一分配:仅一个预测框被分配给一个真实物体标签,避免了NMS,但由于监督信号较弱,容易导致收敛速度慢和性能欠佳。

  • 双头架构:模型在训练期间使用两个预测头,一个使用一对多分配,另一个使用一对一分配。这样,模型可以在训练期间利用一对多分配的丰富监督信号,而在推理期间则使用一对一分配的预测结果,从而实现无NMS的高效推理。

2. 精度对比

  • 图片

    可视化结果

    图片

    消融实验和分析

    图片

    图片

图片

3. 一致匹配度量(Consistent Matching Metric)

为了在训练期间保持两个预测头的一致性,提出了一致匹配度量。通过调整匹配度量参数,使得一对一和一对多分配的监督信号一致,减少了训练期间的监督差距,提升了模型的预测质量。

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

YOLOv10在模型架构的各个方面进行了全面优化,旨在提升效率精度

3.1 效率驱动的模型设计

轻量化分类头(Lightweight Classification Head)

在YOLO系列中,分类头和回归头通常共享相同的架构,但分类任务的计算开销更大。为分类头采用轻量级的架构,包括两个3×3的深度可分离卷积(depthwise separable convolutions)和一个1×1卷积,以减少计算开销。

空间-通道解耦下采样(Spatial-Channel Decoupled Downsampling)

传统的下采样方法同时进行空间和通道的转换,计算成本较高。YOLOv10首先使用逐点卷积(pointwise convolution)调整通道维度,然后使用深度卷积(depthwise convolution)进行空间下采样。这样可以最大限度地保留信息,同时减少计算成本。

3.2 基于秩的块设计(Rank-Guided Block Design)

在YOLO模型中,各阶段通常使用相同的基本构建块,容易导致深层阶段的计算冗余。因此根据各阶段的内在秩(intrinsic rank)调整块设计,减少冗余,采用紧凑的反向块(Compact Inverted Block, CIB)设计,用深度卷积进行空间混合和逐点卷积进行通道混合,提高效率。

图片

3.3 精度驱动的模型设计

大核卷积(Large-Kernel Convolution)

大核卷积的感受野较大,能够更好地捕捉图像中的全局信息。然而,直接在所有阶段使用大核卷积可能会导致小物体特征的污染,并增加高分辨率阶段的I/O开销和延迟。因此,在深层阶段使用大核深度卷积(如7×7)来扩大感受野,增强模型能力,同时使用结构重参数化技术(structural reparameterization)优化训练。

对于小模型规模(如YOLOv10-N/S),大核卷积的使用能够显著提升性能,而对于大模型规模(如YOLOv10-M),其天然较大的感受野使得大核卷积的效果不明显,因此仅在小模型中使用。

部分自注意力(Partial Self-Attention, PSA)

部分自注意力模块通过引入全局建模能力来提升模型性能,同时保持较低的计算开销。

自注意力(self-attention)在视觉任务中因其出色的全局建模能力而被广泛使用,但其计算复杂度和内存占用较高。本文引入PSA模块,通过将特征按通道分成两部分,仅对一部分应用多头自注意力(Multi-Head Self-Attention, MHSA),然后进行融合,增强全局建模能力,降低计算复杂度。

3.4 YOLOv10的base版本yaml文件

# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov8n.yaml' will call yolov8.yaml with scale 'n'
  # [depth, width, max_channels]
  b: [0.67, 1.00, 512] 

# YOLOv8.0n backbone
backbone:
  # [from, repeats, module, args]
  - [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
  - [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
  - [-1, 3, C2f, [128, True]]
  - [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
  - [-1, 6, C2f, [256, True]]
  - [-1, 1, SCDown, [512, 3, 2]] # 5-P4/16
  - [-1, 6, C2f, [512, True]]
  - [-1, 1, SCDown, [1024, 3, 2]] # 7-P5/32
  - [-1, 3, C2fCIB, [1024, True]]
  - [-1, 1, SPPF, [1024, 5]] # 9
  - [-1, 1, PSA, [1024]] # 10

# YOLOv8.0n head
head:
  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 6], 1, Concat, [1]] # cat backbone P4
  - [-1, 3, C2fCIB, [512, True]] # 13

  - [-1, 1, nn.Upsample, [None, 2, "nearest"]]
  - [[-1, 4], 1, Concat, [1]] # cat backbone P3
  - [-1, 3, C2f, [256]] # 16 (P3/8-small)

  - [-1, 1, Conv, [256, 3, 2]]
  - [[-1, 13], 1, Concat, [1]] # cat head P4
  - [-1, 3, C2fCIB, [512, True]] # 19 (P4/16-medium)

  - [-1, 1, SCDown, [512, 3, 2]]
  - [[-1, 10], 1, Concat, [1]] # cat head P5
  - [-1, 3, C2fCIB, [1024, True]] # 22 (P5/32-large)

  - [[16, 19, 22], 1, v10Detect, [nc]] # Detect(P3, P4, P5)

4.总结

YOLOv10引入了额外的one-to-one头部,通过双分配策略,在训练时提供更丰富的监督信息,而在推理时则利用one-to-one头部进行高效预测,从而无需NMS后处理。此外,YOLOv10从效率和准确性两个方面全面优化了YOLO的各个组件,包括轻量级分类头部、空间-通道解耦的下采样层、基于秩的模块设计等,以降低计算冗余并提升模型性能。 

YOLOv10检测器的提出不仅为实时目标检测领域带来了新的突破,也展示了通过后处理和模型设计的联合优化,同时提升效率和精度的有效思路。YOLOv10检测器有望在自动驾驶、机器人导航、物体跟踪等实际应用中得到广泛应用,为实时目标检测任务带来更高的效率。

对于后处理,我们提出了用于NMS-free训练的一致双分配策略,实现了高效的端到端检测。在模型架构方面,我们引入了全面的效率和准确性驱动的模型设计策略,改善了性能和效率之间的权衡。这些创新带来了我们的YOLOv10,这是一个全新的实时端到端目标检测器。大量的实验结果表明,YOLOv10与其他先进检测器相比,在性能和延迟方面都取得了state-of-the-art的成果,充分展示了其优越性。

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

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

相关文章

人工智能的阴暗面:犯罪分子如何利用 AI 进行欺诈

在当今数字化时代,人工智能(AI)正迅速成为推动各行各业生产力和创新的关键力量,而一些不法分子也开始探索如何将这些先进的工具用于他们自己的非法目的。从网络钓鱼到深度伪造,再到人肉搜索、越狱服务和身份验证系统的…

【无标题】亚马逊5月24日宣布推出2024出口跨境物流加速器计划

亚马逊中国5月24日郑重宣布启动“2024亚马逊出口跨境物流加速器计划”,旨在依托其世界领先的物流网络和前沿技术,结合本土资源,不断优化跨境物流服务,以强化中国卖家在跨境物流供应链管理方面的能力,进而提升整体效率&…

云平台的安全能力提升解决方案

提升云平台的安全能力是确保数据和服务安全的关键步骤。针对大型云平台所面临的云上安全建设问题,安全狗提供完整的一站式云安全解决方案,充分匹配云平台安全管理方的需求和云租户的安全需求。协助大型云平台建设全网安全态势感知、统一风险管理、统一资…

如何从恢复出厂设置的Android手机恢复联系人?

“嗨,先生/女士,我不小心将手机恢复出厂设置,因此所有数据都从我的小米手机中删除。我真的压力很大!我什么都试过了,但没有任何效果!求求你,帮帮我!!” 由于各种原因,许多人可能已经…

2024年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年山东省安全员C证证模拟考试题库及山东省安全员C证理论考试试题是由安全生产模拟考试一点通提供,山东省安全员C证证模拟考试题库是根据山东省安全员C证最新版教材,山东省安全员C证大纲整理…

试用百川智能的百小应-说的太多,做的太少

“百小应”的品牌标识(logo)上有一缕黄色,这是王小川特意设计的。他说,其他AI应用都在强调科技感,更愿意用蓝色或者冷色调。但他觉得这一代科技与上个时代不一样,现代科技应该像人,所以选择使用…

设计模式9——适配器模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 适配器模式(Adapte…

Transformers实战02-BERT预训练模型微调

文章目录 简介BERT的基本原理分词模型输出 BERT预训练的方法BERT模型微调加载数据集DatasetDataLoader 训练模型构建模型tqdm使用训练模型模型预测 简介 BERT(Bidirectional Encoder Representations from Transformers)是一种基于 Transformer 模型的预…

Python爬取B站视频:封装一下

📚博客主页:knighthood2001 ✨公众号:认知up吧 (目前正在带领大家一起提升认知,感兴趣可以来围观一下) 🎃知识星球:【认知up吧|成长|副业】介绍 ❤️如遇文章付费,可先看…

深度学习500问——Chapter09:图像分割(5)

文章目录 9.12 DenseNet 9.13 图像分割的数据集 9.13.1 PASCAL VOC 9.13.2 MS COCO 9.13.3 Cityscapes 9.14 全景分割 9.12 DenseNet 这篇论文是CVPR2017年的最佳论文。 卷积神经网络结构的设计主要朝着两个方向发展,一个是更宽的网络(代表&#xff1a…

3D 生成重建011-LucidDreamer 优化SDS过平滑结果的一种探索

3D 生成重建011-LucidDreamer 优化SDS过平滑结果的一种探索 文章目录 0论文工作1论文方法2 效果 0论文工作 文本到3D生成的最新进展标志着生成模型的一个重要里程碑,为在各种现实场景中创建富有想象力的3D资产打开了新的可能性。虽然最近在文本到3D生成方面的进展…

2024 一键批量下载微博内容/图片/视频/评论/转发数据,导出excel和pdf

以李健的微博为例,抓取2010-2024年所有的微博数据excel,包含微博链接,微博内容,发布时间,点赞数,转发数,评论数,话题等。 每个月的微博转评赞总数曲线,2015年是高峰。 微…

Pod进阶——资源限制以及探针检查

目录 一、资源限制 1、资源限制定义: 2、资源限制request和limit资源约束 3、Pod和容器的资源请求和限制 4、官方文档示例 5、CPU资源单位 6、内存资源单位 7、资源限制实例 ①编写yaml资源配置清单 ②释放内存(node节点,以node01为…

APP广告变现怎么实现的,背后逻辑是什么?

广告变现的实现主要基于以下几个关键步骤和逻辑: 用户获取与留存:首先,APP需要吸引足够的用户并确保他们的留存率。只有拥有庞大且活跃的用户基础,APP才能吸引广告商投放广告。因此,开发者需要通过优化APP质量、提升用…

阅读笔记——《未知协议状态机推断技术研究综述》

【参考文献】盛嘉杰, 牛胜杰, 陈阳, 等. 未知协议状态机推断技术研究综述[J]. 计算机与现代化, 2023 (05): 58.【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。 摘要 协议逆向工程(PRE)描述了协议的行为逻辑&#xff…

【Python】—— lambda表达式

目录 (一)应用场景 (二)lambda 语法 (三)示例分析 (四)lambda参数形式 4.1 无参数 4.2 一个参数 4.3 默认参数 4.4 可变参数 :*args 4.5 可变参数 :…

需求响应+配网重构!含高比例新能源和用户需求响应的配电网重构程序代码!

前言 配电网重构作为配电网优化运行的手段之一,通过改变配电网的拓扑结构,以达到降低网损、改善电压分布、提升系统的可靠性与经济性等目的。近年来,随着全球能源消耗快速增长以及环境的日趋恶化,清洁能源飞速发展,分…

orin部署tensorrt、cuda、cudnn、pytorch

绝大部分参考https://blog.csdn.net/qq_41336087/article/details/129661850 非orin可以参考https://blog.csdn.net/JineD/article/details/131201121 报错显卡驱动安装535没法安装、原始是和l4t-cuda的部分文件冲突 Options marked [*] produce a lot of output - pipe it th…

基于SSM的“酒店管理系统”的设计与实现(源码+数据库+文档)

基于SSM的“酒店管理系统”的设计与实现(源码数据库文档) 开发语言:Java 数据库:MySQL 技术:SSM 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 首页 管理员登录页面 用户管理页面 客房信息查询 酒店详细信息 后台…

rmxprt转换的3D模型只有一半?---模大狮模型网

在3D建模和渲染的工作流程中,我们经常需要用到各种转换工具来兼容不同平台或软件之间的模型格式。rmxprt(或其他类似的模型转换工具)就是其中的一种,它能够将模型从一种格式转换为另一种格式。然而,有时在转换过程中可能会遇到一些问题&#…