YOLOv10:实时端到端目标检测的新突破

目标检测作为计算机视觉领域的一个核心问题,其关键在于能够在图像中准确识别并定位对象。随着深度学习技术的发展,基于深度神经网络的目标检测方法不断涌现,其中YOLO(You Only Look Once)系列算法以其优异的实时性和准确性,成为实时目标检测领域的主流选择。最近,清华大学的研究团队推出了YOLO系列的最新力作——YOLOv10,本文将对这篇论文进行详细解读,并探讨YOLOv10在实时目标检测领域的新突破。

YOLOv10简介

YOLOv10是YOLO系列的最新一代算法,它继承了YOLO家族在实时目标检测上的优势,同时在模型架构和后处理上进行了创新性改进,进一步提升了检测性能和效率。YOLOv10的核心贡献可以概括为以下几点:

  1. 无NMS(Non-Maximum Suppression)训练:YOLOv10提出了一种新的一致性双重赋值策略(Consistent Dual Assignments),使得模型在训练时能够获得丰富的监督信号,在推理时则无需NMS即可实现高效的端到端检测。

  2. 全面优化的模型架构:研究者们从效率和准确性两个角度出发,全面优化了YOLO的各个组件,包括轻量级分类头、空间-通道解耦下采样、基于秩引导的模块设计等。

  3. 大核心卷积和部分自注意力模块:YOLOv10引入了大核心卷积来扩大感受野,并提出了部分自注意力模块(PSA),以较低的计算成本增强模型性能。

YOLOv10的主要贡献

一致性双重赋值策略

在传统的目标检测模型中,NMS是一个必要的后处理步骤,用于从多个候选框中选择最佳的检测结果。然而,NMS不仅增加了推理时间,还使得模型无法实现端到端的训练。YOLOv10通过一致性双重赋值策略解决了这一问题,该策略在训练时采用一对多的赋值方式提供丰富的监督信号,在推理时则切换到一对一的赋值方式,无需NMS即可快速得到检测结果。

在训练期间,YOLO 通常利用 TAL 为每个实例分配多个正样本。一对多的分配方式产生了丰富的监督信号,促进了优化并使模型实现了卓越的性能。然而,这需要 YOLO 依赖于 NMS 后处理,这导致了部署时次优的推理效率。虽然之前的研究工作探索了一对一匹配来抑制冗余预测,但它们通常引入了额外的推理开销。与一对多分配不同,一对一匹配对每个 ground truth 仅分配一个预测,避免 NMS 后处理。然而,这会导致弱监督,以至于准确率和收敛速度不理想。幸运的是,这种缺陷可以通过一对多分配来弥补。

该研究提出的「双标签分配」结合了上述两种策略的优点。如上图所示,该研究为 YOLO 引入了另一个一对一 head。它保留了与原始一对多分支相同的结构并采用相同的优化目标,但利用一对一匹配来获取标签分配。在训练过程中,两个 head 联合优化,以提供丰富的监督;在推理过程中,YOLOv10 会丢弃一对多 head 并利用一对一 head 做出预测。这使得 YOLO 能够进行端到端部署,而不会产生任何额外的推理成本。

全面优化的模型架构

除了后处理之外,YOLO 的模型架构也对效率 - 准确率权衡提出了巨大挑战。尽管之前的研究工作探索了各种设计策略,但仍然缺乏对 YOLO 中各种组件的全面检查。因此,模型架构表现出不可忽视的计算冗余和能力受限。

YOLOv10对模型架构进行了全面优化,包括:

  • 轻量级分类头:简化分类头的网络结构,减少计算量而不影响检测性能。
  • 空间-通道解耦下采样:将空间下采样和通道变换操作分离,降低计算复杂度。
  • 基于秩引导的模块设计:根据模型不同阶段的冗余程度,动态调整网络模块,提高计算效率。

大核心卷积和部分自注意力模块

YOLOv10引入了大核心卷积来扩大模型的感受野,增强对小目标的检测能力。同时,通过部分自注意力模块(PSA),YOLOv10在保持计算效率的同时,引入了Transformer模型的全局建模能力,进一步提升检测精度。

采用大核深度卷积是扩大感受野和增强模型能力的有效方法。然而,简单地在所有阶段利用它们可能会在用于检测小物体的浅层特征中引入污染,同时在高分辨率阶段也会带来大量的I/O开销和延迟。因此,建议在深阶段利用CIB中的大核深度卷积。具体来说,本文将CIB中第二个3×3深度卷积的核大小增加到7×7。此外,本文采用结构重参数化技术引入另一个3×3深度卷积分支,以缓解优化问题,而无需推理开销。此外,随着模型大小的增加,其感受野自然扩大,使用大核卷积的好处会减少。因此,对于小模型尺度,我们只采用大核卷积。

YOLOv10的实验结果

研究团队在COCO数据集上对YOLOv10进行了广泛的实验验证。实验结果表明,YOLOv10在不同模型规模下均取得了优异的检测性能,与当前最先进的目标检测模型相比,在保持相似精度的同时,显著降低了推理延迟。

结论

YOLOv10作为YOLO系列的最新成员,通过创新性的一致性双重赋值策略和全面优化的模型架构,实现了实时目标检测领域的新突破。它不仅在学术上具有重要意义,也为自动驾驶、机器人导航、视频监控等实际应用提供了强大的技术支持。随着YOLOv10的开源,我们期待它在未来能够在更多的应用场景中发挥重要作用。

相关参考:

论文地址:https://arxiv.org/abs/2405.14458

Github地址:https://github.com/THU-MIG/yolov10

其他:https://zhuanlan.zhihu.com/p/700329479

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

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

相关文章

【PB案例学习笔记】-14使用次数和日期限制

写在前面 这是PB案例学习笔记系列文章的第14篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

如何注册及使用飞浆AI Studio资源跑模型

之前已经介绍过如何注册及使用Kaggle平台的资源跑模型,今天我们将介绍如何注册及使用飞浆AI Studio资源​。 一、AI Studio简介 飞桨AI Studio是基于百度深度学习开源平台飞桨(PaddlePaddle)的人工智能学习与实训社区。我们先让文心一言给对…

数字组合问题(回溯法)

一、问题描述 找出从自然数1、2、……、n中任取r个数的所有组合。 问题的状态空间为: E{(x1,x2,...,xr)∣xi∈S ,i1,2,...,r } 其中&#xff1a…

现成方案 - 复刻版类似 Perplexity 与秘塔 AI 的搜索引擎

这里为大家带来一个极具创新性的开源 AI 搜索引擎,其灵感源自 Perplexity。 该搜索引擎主要具备以下功能: 能够接收用户提出的各种问题。借助 Bing 搜索 API 可查找出前 6 个结果并予以展示。会抓取这 6 个链接的文本内容,将其作为重要的上下…

基于springboot实现青年公寓服务平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现青年公寓服务平台系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,房屋信息因为其管理内容繁杂&#xff…

Spark 3.5.1 升级 Java 17 异常 cannot access class sun.nio.ch.DirectBuffer

异常说明 使用Spark 3.5.1 升级到Java17的时候会有一个异常,异常如下 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.htm…

面试题:谈谈你对观察者和订阅发布的理解

面试题:谈谈你对观察者和订阅发布的理解 1. 观察者设计模式 场景引入之杂志订阅:小王想要购买一本尚未出版的杂志,他向出版社预订该杂志并提供联系方式,一旦该杂志出版,出版社就会根据小王预留的联系方式通知他可以来…

YOLOv8_obb预测流程-原理解析[旋转目标检测理论篇]

YOLOv8_obb的预测流程,主要分预处理模块、推理模块和后处理模块。这里面有很多内容是和目标检测预测流程是重合的,主要区别在于Angle分支、NMS后处理以及regularize_rboxes部分。本文也主要介绍一下这三个模块,其他模块可以结合YOLOv8预测流程-原理解析[目标检测理论篇]一起…

最新版wordpress网创资源美化以及更新自动同步插件

最新更新了美化右侧悬浮图标 底部分类板块,以及文章自动同步插件 1.支持分类替换 将主站同步过来的文章分类进行替换 2.支持本地化文章图片 (使用储存桶可能会导致无法保存图片) 3.支持自定义文章作者(选择多个作者则同步到的…

辩证 逻辑学 | 洞察 事物矛盾及变化规律 在形式逻辑基础上 学会辩证思维(40节课)

课程下载:辩证逻辑学洞察事物矛盾及变化规律在形式逻辑基础上学会辩证思维(40节课)-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载:关注我。 在形式逻辑的基础上,学会 辩证思维 敏锐 洞察事物发展变化的规…

RPG Maker MV角色战斗动画记录

角色战斗动画记录 角色战斗状态判断的语句赋值 战斗管理战斗精灵创建精灵进行角色的更新 角色战斗状态 角色的战斗状态是由 Game_Battler 类中的 _actionState 属性的字符串决定的,它有哪些值呢? undecided 未确定或者说是操作状态inputting 输入waiti…

开源VS闭源:大模型之争,究竟谁更胜一筹?

随着人工智能技术的快速发展,大模型作为其中的核心组件,已经引起了业界的广泛关注。在大模型的研发过程中,开源与闭源成为了两个备受争议的话题。究竟开源与闭源谁更好?本文将从多个角度进行深入分析,为大家揭示真相。…

React + SpringBoot开发用户中心管理系统

用户中心项目搭建笔记 技术栈 前端技术栈 “react”: “^18.2.0”,ant-design-pro 后端技术栈 SpringBoot 2.6.x 项目源码地址 https://gitee.com/szxio/user-center 前端项目搭建 快速搭建一个后端管理系统项目框架 初始化 antDesignPro 官网: https://…

godot.bk:how to add map to the game

1.项目构建如下,map是我们点击start之后才渲染出来的 mian.tscn --main.gd --background(textureact) --start(button) --button.gd sourceFile map.tscn --tilemap --tileset 2.main.gd:注意main.gd并不定义信号,它只是接收信号而已 extend…

新书推荐:1.2 动态链接库与API

本节必须掌握的知识点: kernel32.dll user32.dll gdi32.dll ■动态链接库 最早的软件开发过程,所有的功能实现都是有程序员独立完成的。在这个过程中,我们很快就会发现,有很多常用的功能模块是可以重复利用的,我们将…

UE5.1_常用快捷键

UE5.1_常用快捷键 shift1,,模式选择 shift2,,模式选择 shift3,,模式选择 shift4,,模式选择 shift5,,模式选择 shift6,,模式选择 …

定义多层Toggle选项,第一层为总开关

本文为笔记,暂未整理。主要逻辑为,我们有需求,需要再第一个Toggle选中之后,余下的几个Toggle才是可以被修改的状态。 ①:当第一个是灰色的时候,余下两个Toggle都是灰色的,并且都是不可选中的。…

【全开源】Java共享台球室无人系统支持微信小程序+微信公众号+H5

智能引领台球新体验 一、引言:共享经济的新篇章 在共享经济的大潮中,各类共享服务层出不穷,为人们的生活带来了极大的便利。共享台球室作为其中的一员,以其独特的魅力吸引了众多台球爱好者的目光。而今天,我们要介绍…

代码随想录算法训练营第三十六 | ● 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

今天的三道题都是区间问题 435. 无重叠区间 讲解链接&#xff1a;https://programmercarl.com/0435.%E6%97%A0%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4.html 思路分析在代码注释 class Solution { public:static bool cmp(const vector<int>&a, const vector<int&…

AI智能体|基于已有的扣子Coze Bot进行插件化改造

大家好&#xff0c;我是无界生长&#xff0c;国内最大AI付费社群“AI破局俱乐部”初创合伙人。 AI智能体&#xff5c;基于已有的扣子Coze Bot进行插件化改造本文通过案例演示的方式&#xff0c;介绍了如何将扣子Coze平台创建的Bot改造成插件并发布到插件商店供第三方使用。如果…