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

news2024/12/23 10:17:16

深度学习论文: 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.coloradmin.cn/o/1705081.html

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

相关文章

如何评价 OpenAI 最新发布支持实时语音对话的模型GPT-4o?OpenAI发完GTP-4o,国内大模型行业还有哪些机会?

文章目录 OpenAI发完GTP-4o,国内大模型行业还有哪些机会?详细了解一下OpenAI最新发布的支持实时语音对话的模型GPT-4o国内大模型如何寻找发展机会?想要发展技术必须要创新与追赶或许应用场景拓展也是一种出路产业生态构建 ChatGPT 问世才 17 …

隆道专属商城 | 助力企业跨平台整合优势资源,解决采购寻源比价难题!

数字化采购时代,企业面临着日益激烈的市场竞争,如何优化资源配置、降低采购成本、提高采购效率成为企业追求的核心目标。当前,网上商城凭借其强大的供应链资源整合能力,为企业内部采购商城的搭建提供了独特的优势,已然…

【Lexus.4】Executive Sedan——Dismantling Follow-up

文章目录 【碰撞测试】前后防撞钢梁偏置碰撞A/B/C柱,边梁抗拉、屈服强度 【底盘】平整度护板(发动机,底盘)前副车架结构前悬架形式后悬架形式与材质簧下质量 【发动机】【轮上马力】【零部件供应商】 来自2021《懂车大爆炸》——是…

网络风暴:揭秘DDoS攻击的幕后黑手

在数字化时代的浪潮中,网络攻击已成为一种新型的战争手段。其中,分布式拒绝服务攻击(DDoS)以其强大的破坏力和隐蔽性,成为网络安全领域的一大挑战。DDoS攻击通过发动海量的恶意流量,如同狂风暴雨般席卷目标…

Springboot项目——博客平台

前言:为巩固之前学习的知识,同时锻炼自己的代码能力,项目经验,熟悉前后端交互方式等,特此完成一个博客平台系统。(总之,为了学习,为了进步) 博客平台:本项目…

干货|图生代码实例整理,让你的代码更高效

前言 “图生代码”。这项新功能允许开发人员直接利用产品设计图一键生成相应的代码,极大地提高了编程效率和研发速度。甚至会未来软件开发可能迎来一场革命性的变革。但图生代码究竟能直到什么程度?本文结合一款图生代码的实例程序整理了一些有代表意义…

如何在 DigitalOcean Droplet 云主机上创建 Ubuntu 服务器

在本文中,你将通过 DigitalOcean 的管理面板创建一个 Ubuntu 服务器,并将其配置为使用你的 SSH 密钥。设置好服务器后,你可以在其上部署应用程序和网站。 本教程是DigitalOcean云课程简介的一部分,它指导用户完成将应用程序安全地…

期望薪资30k字节java2面,A给B转账的同时B给A转账怎么并发量最高

一面 1、自我介绍 2、详细介绍一下自己的做的项目?根据项目提了一些问题 3、hashmap原理 4、B树原理? 5、final禁止重排序原理? 6、设计一个榨汁机类,面向对象怎么设计? 7、get、post区别,使用场景&…

mysql实战——mysql5.7保姆级安装教程

1、上传 上传5.7压缩包到/usr/local目录下 2、解压 cd /usr/local tar -zxvf mysql--5.7.38-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.38-linux-glibc2.12-x86_64/ mysql 3、创建mysql用户组和用户 groupadd mysql useradd -g mysql mysql 4、创建数据目录data&#xf…

OneForall工具的下载安装和使用(Windows和Linux)

目录 OneForall的介绍 OneForall的下载 OneForall的安装 安装要求 安装步骤(git 版) 安装(kali) OneForall的使用命令 在Windows 在Linux(kali) OneForall的结果说明 免责声明 本文所提供的文字和…

基于Java的高校学生勤工助学优派系统的设计与实现(论文+源码)_kaic

摘 要 高校勤工助学管理系统的出现,让学生的工作更加标准,不仅仅使高校办公室的办公水平以及管理水平大大提高,还优化了勤工助学资金的使用方式方法,完善了资助所需费用的资源配置,可以卓有成效地缩减学校的管理经费。本系统主…

智能SQL代码生成器,开发者的得力助手

🏡 博客首页:IT 派同学 ⛳️ 欢迎关注 🐳 点赞 🎒 收藏 ✏️ 留言 🎢 本文由 IT 派同学原创编撰 🚧 系列专栏:《开源专栏》 🎈 本系列主要输出作者自创的开源项目 🔗 作品…

B端产品C端化设计,趋势不可挡呀。

一、B端产品和C端产品设计的不同 在设计上,B端(Business-to-Business)和C端(Consumer)之间存在一些区别。 用户群体:B端产品的用户是企业或组织,而C端产品的用户是普通消费者。B端产品的用户通…

面向对象编程的魅力与实战:以坦克飞机大战为例

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、面向对象编程的引言 二、理解面向对象编程与面向过程编程的差异 三、创建类与对象&…

基于 React + Nest 全栈开发的后台系统

Xmw Admin 基于 React Nest 全栈开发的后台系统 🪴 项目简介 🎯 前端技术栈: React、Ant Design、Umi、TypeScript🎯 后端技术栈: Nest.js、Sequelize、Redis、Mysql😝 线上预览: https://r…

Java入门基础学习笔记48——ArrayList的应用案例

掌握从容器中找出某些数据并成功删除的技巧: 需求: 现在加入购物车中存储了如下这些商品:Java入门,宁夏枸杞,黑枸杞,人字拖,特级枸杞,枸杞子。现在用户不想买枸杞了,选…

JVM之【运行时数据区2】

三、堆(Heap) 1、什么是堆 在Java虚拟机(JVM)中,堆(Heap)是用于动态分配内存的区域。在Java程序运行时,所有对象和数组都是在堆中分配内存的。堆是Java内存模型的重要组成部分&…

常见SSL证书品牌关系图

常见SSL证书品牌关系图 在SSL证书市场上,有几个主要的品牌和他们之间的复杂关系。以下是一些主要的SSL证书提供商及其关系的简要概述: DigiCert: DigiCert 是最大的SSL证书颁发机构之一。它收购了Symantec的SSL和PKI业务,其中包括…

Linux系统硬盘分区

文章目录 一、硬盘和分区1.1 硬盘的概念1.2 硬盘分区的类别1.3 硬盘分区的方式1.3.1 MBR分区1.3.2 GPT分区 1.4 硬盘分区的意义1.4.1 分区的作用1.4.2 分区的缺点 二、如何建立分区2.1 分区命令2.1.1 fdisk命令2.1.2 gdisk命令 2.2 建立分区2.2.1 建立MBR分区建立主分区建立扩展…

leetCode.82. 删除排序链表中的重复元素 II

leetCode.82. 删除排序链表中的重复元素 II 题目思路: 代码 class Solution { public:ListNode* deleteDuplicates(ListNode* head) {auto dummy new ListNode(-1);dummy->next head;auto p dummy;while(p->next){auto q p->next->next;while(q …