深度学习论文: YOLOv10: Real-Time End-to-End Object Detection

深度学习论文: YOLOv10: Real-Time End-to-End Object Detection
YOLOv10: Real-Time End-to-End Object Detection
PDF: https://arxiv.org/pdf/2405.14458
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

YOLO在实时物体检测领域因计算成本与检测性能的平衡而领先。尽管研究人员在架构、优化目标和数据增强方面取得显著进展,但YOLO对NMS的依赖影响了其端到端部署和推理速度。此外,YOLO组件设计的不足导致计算冗余和性能限制。为此,YOLOv10专注于后处理和模型架构,提出了无NMS训练的一致对偶分配方法,实现高性能和低延迟。同时,YOLOv10采用效率-准确度驱动的策略,全面优化YOLO组件,降低计算成本并提高性能。
在这里插入图片描述

2 YOLOv10

2-1 Consistent Dual Assignments for NMS-free Training

YOLO 算法在训练时通常使用 TAL 技术为每个实例分配多个正样本,这有助于优化并提升性能,但需要依赖 NMS 后处理,影响部署时的推理效率。先前研究尝试一对一匹配减少冗余预测,但可能增加推理开销或性能不佳。

本文提出了一种无需 NMS 的 YOLO 训练策略,采用双重标签分配和一致匹配度量,实现了高效和性能优异。
在这里插入图片描述
双重标签分配: 结合一对一和一对多匹配的优势,引入额外的一对一头部,与原有的一对多分支共享结构和优化目标,但在训练时采用一对一匹配获得标签。这样,训练时两个头部联合优化,享受一对多匹配的丰富监督,推理时只使用一对一头部,避免额外推理成本。

一致的匹配度量: 使用统一的匹配度量标准,结合分类得分、预测框和实例框的 IoU,以及空间先验,通过超参数平衡语义预测和位置回归任务。一致的匹配度量确保一对一头部在训练中与一对多头部对齐,优化方向一致。

通过这种策略,YOLO 可以在不牺牲性能的情况下,实现端到端部署,减少推理成本。研究还验证了监督对齐的改善,并提供了数学证明。

2-2 Holistic Efficiency-Accuracy Driven Model Design

YOLO模型在效率和准确性之间需要权衡,尽管之前的研究尝试了不同的设计策略,但对YOLO各组件的全面检查仍然不足。为了提升效率和性能,我们从效率和准确性两方面对YOLO模型进行了整体设计。
在这里插入图片描述
效率驱动的模型设计:

  • 轻量级分类头部:简化分类头部以减少计算负担,因为回归头部对YOLO性能的影响更大。因此,为分类头部采用了一个轻量级架构,由两个深度可分离卷积和1×1卷积组成。
  • 空间-通道解耦下采样:通过分离空间缩减和通道增加操作,使用逐点卷积和深度卷积实现更高效的下采样。
  • 等级引导的块设计:根据模型各阶段的内在等级分析冗余,采用紧凑的倒置块(CIB)结构,并通过等级引导的块分配策略优化效率。

准确性驱动的模型设计:

  • 大核心卷积:在深层阶段使用大核心深度卷积来扩大感受野,同时采用结构重参数化技术减轻优化问题。
  • 部分自注意力(PSA):为减少计算复杂性,仅在低分辨率阶段使用部分自注意力模块,通过合理分配查询和键的维度,并使用BatchNorm加速推理。

通过这些设计,YOLO模型在保持准确性的同时,能够实现更高的效率和性能。

3 Experiments

在这里插入图片描述

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

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

相关文章

104-1389-006马达单价1041389006可议价

104-1389-006 产品 M 马达 系列 02 2000 系列 排量 149 244.3 CM3/R [14.91 IN3/R] 安装类型 AH 标准,4 螺栓;先导直径为 82.6 [3.25] 13.59 直径为 [0.535] 直径为 106.4 [4.19] 的孔螺栓圆周 输出轴 16 直径为 32.00 [1…

用一个装饰器代替 try except

用一个装饰器代替 try except 要写很多封装的时候,大量的使用 try except 很麻烦,直接使用python装饰器解决 import functoolsdef handle_exceptions(func):functools.wraps(func)def wrapper(*args, **kwargs):try:return func(*args, **kwargs)excep…

地铁判官:啥时候B端系统界面,也出个“判官”,讲好不准打脸。

小编所在的城市——山东青岛,出了个地铁判官,我看了视频,哈哈哈,俗世的判断标准就是那么简单直接,而放到B端系统那就难说啦。 如何判断B端系统的优劣,各位看官,各抒己见吧。 判断B端系统界面的…

智慧校园建设规划方案

在信息化浪潮的推动下,智慧校园的建设已成为教育现代化的必然趋势。以创新科技赋能教育,打造智慧校园,旨在提升教学品质,优化管理流程,增强学生体验。构建智慧校园需要具有前瞻性的规划方案,它将以教育为核…

PL5358A 单芯锂离子/聚合物电池保护IC芯片

一般说明 PL5358A系列产品是锂离子/聚合物电池保护的高集成解决方案。PL5358A包含先进 的功率MOSFET,高精度电压检测电路和延迟电路。5358A被放入一个超小的SOT23-5封装,只有一个外部元件,使其成为理想的解决方案,在有限的…

vue2+elementui 表格中操作列不定个数按钮的折叠展开

vue2elementui 实现表格中操作列不定个数按钮的折叠展开&#xff0c;可以根据自己的需求自行修改样式和展示等。基本代码如下&#xff1a; <template><div class"table-action-col-box" :ref"_bf${rowId}"><div :ref"_bf${rowId}_but…

开源博客项目Blog .NET Core源码学习(28:App.Hosting项目结构分析-16)

本文学习并分析App.Hosting项目中后台管理页面的用户管理页面。   用户管理页面用于显示、检索、新建、编辑、删除用户数据&#xff0c;其附带一新建及编辑页面&#xff0c;以支撑新建和编辑用户数据&#xff0c;同时还附带重置密码页面&#xff0c;以重置用户密码。整个页面…

SUPRA:无须额外训练,将Transformer变为高效RNN,推理速度倍增

Transformers 已经确立了自己作为首要模型架构的地位&#xff0c;特别是因为它们在各种任务中的出色表现。但是Transformers 的内存密集型性质和随着词元数量的指数扩展推理成本带来了重大挑战。为了解决这些问题&#xff0c;论文“Linearizing Large Language Models”引入了一…

android-mvp模式

mvvm可以理解成使用databing的mvp模式&#xff0c;modleview 通过接口让view和Presenter层解耦 从图中就可以看出&#xff0c;最明显的差别就是view层和model层不再相互可知&#xff0c;完全的解耦&#xff0c;取而代之的presenter层充当了桥梁的作用&#xff0c;用于操作view…

set怎么实现有序

在Java集合框架中&#xff0c;Set接口的实现类主要有三种常见的变体&#xff1a;无序的HashSet、保持插入顺序的LinkedHashSet和按自然顺序或自定义比较器排序的TreeSet。要实现有序的Set&#xff0c;可以使用LinkedHashSet或TreeSet。 有序的Set实现类 LinkedHashSet&#xf…

0基础认识C语言(代码实操)

首先呢大家要知道C语言的常见格式如下 #include <stdio.h> int main() {return 0; } 可能看起来会有点懵&#xff0c;但是不着急&#xff0c;咱们一句一句讲 #include <stdio.h> 这是一个头文件&#xff0c;是标准输入输出&#xff0c;怎么理解呢&#xff0c;你…

芯片设计 | 什么是 NVMe?

文章目录 什么是 NVMe&#xff1f;什么是固态硬盘&#xff1f;为什么 NVMe 很重要&#xff1f;NVMe、SAS 和 SATA 之间的区别只有SSD运行在NVMe上PCIe和NVMe有关系&#xff0c;但它们不是同一个东西NVMe-oF连接SSD到网络NVMe 的工作原理是什么&#xff1f;NVMe SSD 外形尺寸M.2…

零售品牌做好差旅报销管理,真的能省钱

一年一度的“618”如期而至,甚至启动更早了。 各大厂商宣布取消延用了十多年的预售机制,主打“现货开卖”,充分回归“消费者价值”。 零售品牌给消费者省钱,更要给自己省钱。而这前提是充分了解“钱花在哪了”、“怎么花更合理”: ● 商业化BD、促销、营销等市场活动频繁,差…

手动验证 Azure AD 并设置登录状态

几个核心要点 1. client_id&#xff0c;client_secret&#xff0c;username&#xff0c;password 是必须要的 2. 通过 https://login.microsoftonline.com/...... 提交参数&#xff0c;成功就可以拿到 token 3. 自定义一个 CustomAuthenticationStateProvider 类继承自抽象类…

如何知道huggingface/modelscope的大模型的模型层名字

下载模型后&#xff0c;有个文件叫model.safetensors.index.json&#xff0c;里面有。 你下载的大模型位置在用户名/.cache/huggingface/hub/大模型名差不多这个路径。 或者直接print(parameters.name)&#xff0c;但是这样打出来特别多&#xff0c;很难看。差不多这样写&am…

LeetCode hot100-52-G

994. 腐烂的橘子 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a;值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单…

软件项目管理过程中的会议管理

项目会议类型 软件项目管理中的会议通常包括评审会议、项目例会、技术研讨会、项目启动会、项目回顾会、风险管理会议等多种类型&#xff0c;每种类型的会议都有其特定的目的和参与者。 1. 评审会议&#xff08;Review Meetings&#xff09;&#xff1a; & 需求评审&…

2024年【山东省安全员C证】考试及山东省安全员C证报名考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【山东省安全员C证】考试及山东省安全员C证报名考试&#xff0c;包含山东省安全员C证考试答案和解析及山东省安全员C证报名考试练习。安全生产模拟考试一点通结合国家山东省安全员C证考试最新大纲及山东省安全员…

VS2022配合Qt与boost.asio实现一个TCP异步通信系统远程操作mysql数据库

上一篇博客我们通过boost.asio搭建了一个简单的异步服务器&#xff0c;但是那是基于命令行的&#xff0c;所有用起来还是相当枯燥的&#xff0c;这次我们配合Qt实现一个简陋的前端页面来控制后端mysql数据库中的表&#xff0c;实现添加密钥的功能(本次博客使用的boost版本是1.8…

数据结构的直接插入排序(C语言版)

一.直接插入排序的基本概念 1.直接插入排序的基本思想 将数组分为已排序和未排序两部分。 每次从未排序部分取出一个元素,将其插入到已排序部分的合适位置,使得已排序部分保持有序。 重复步骤2,直到整个数组有序。 2.排序的工作原理 假设前 i-1 个元素已经有序,现在要将第…