YOLOv10: Real-Time End-to-End Object Detection

双重标签分配

与一对一多分配不同,一对一匹配只为每个地面真相分配一个预测,避免了NMS后处理。然而,这导致了较弱的监督,导致次优的准确性和收敛速度。幸运的是,这种缺陷可以通过一对一多分配来弥补。为此,作者为YOLO引入了双重标签分配,以结合两种策略的优点。

具体来说,如图2.(a)所示,作者在YOLO中增加了一个一对一的 Head 。它与原始一对一多分支保持相同的结构和采用相同的优化目标,但利用一对一匹配来获得标签分配。在训练过程中,两个 Head 与模型联合优化,使得主干和 Neck 能够享受到一对一多分配提供的丰富监督。

在推理过程中,作者丢弃一对一多 Head ,并利用一对一 Head 进行预测。这使得YOLO能够端到端部署,而不会产生任何额外的推理成本。此外,在一对一匹配中,作者采用顶部选择,其性能与匈牙利匹配[4]相同,但额外的训练时间更少。

一致的匹配度量

在分配过程中,一对一和多对多方法都采用一种度量来定量评估预测与实例之间的一致性水平。

以效率为导向的模型设计

b:The compact inverted block(CIB)紧凑倒置块

在深层阶段的CIB中使用大核深度卷积。作者将CIB中的第二个33深度卷积的核大小增加到77。此外,作者采用结构重参化技术带来另一个33深度卷积分支,以减轻优化问题,而无需推理开销

c:partial self-attention(PSA)部分自注意力模块

在11卷积后均匀地将特征在通道上划分为两部分。作者只将一部分输入到由多头自注意力模块(MHSA)和前馈网络(FFN)组成的块中。然后,两部分通过11卷积进行拼接和融合。

YOLO中的组件包括Stem、下采样层、带有基本构建块的阶段和 Head 。Stem产生的计算成本很少,因此作者仅对其他三个部分进行以效率为导向的模型设计。

  1. 轻量级分类 Head . 在YOLOs中,分类 Head 和回归 Head 通常共享相同的架构。然而,它们在计算开销上表现出显著的差异。例如,在YOLOv8-S中,分类 Head 的FLOPs和参数数量(5.95G/1.51M)分别是回归 Head (2.34G/0.64M)的2.5倍和2.4倍。但是,在分析了分类误差和回归误差的影响(见表6)之后,作者发现回归 Head 对YOLOs的性能承担了更多的意义。

因此,作者可以减少分类 Head 的开销,而不必担心对性能造成太大伤害。因此,作者为分类 Head 采用了简单的轻量级架构,该架构包括两个深度可分离卷积(核大小为3×3),后面跟着一个1×1卷积。

  1. 空间-通道解耦下采样. YOLOs通常使用常规的3×3标准卷积,步长为2,同时实现空间下采样(从到)和通道转换(从到)。这引入了不可忽视的计算成本和参数数量。相反,作者建议将空间缩小和通道增加操作解耦,实现更高效的下采样。

具体来说,作者首先利用点状卷积调节通道维度,然后使用深度卷积进行空间下采样。这减少了计算成本到和参数数量到。同时,它最大化了下采样期间的信息保留,以具有竞争力的性能降低延迟。

  1. 秩引导的块设计. YOLO通常为所有阶段采用相同的基本构建块,例如YOLOv8中的瓶颈块。为了彻底检查YOLO的这种同质设计,作者利用内在秩[31, 15]来分析每个阶段的冗余性。具体来说,作者计算每个阶段最后一个基本块中最后一个卷积的数值秩,这计算的是超过阈值的奇异值数量。图3(a)展示了YOLOv8的结果,表明深层阶段和大模型容易出现更多冗余。这个观察提示,为所有阶段简单地应用相同块设计并不是最佳容量效率权衡。

准确度驱动的模型设计

作者进一步探索了大核卷积和自注意力用于准确度驱动的模型设计,旨在以最小的成本提升性能。

  1. 大核卷积. 采用大核深度卷积是扩大感受野和增强模型能力的一种有效方法。然而,在所有阶段简单地利用它们可能会在用于检测小物体的浅层特征中引入污染,同时也可能在高分辨率阶段引入显著的I/O开销和延迟。因此,作者提出在深层阶段的CIB中使用大核深度卷积。具体来说,作者将CIB中的第二个33深度卷积的核大小增加到77。此外,作者采用结构重参化技术带来另一个33深度卷积分支,以减轻优化问题,而无需推理开销。此外,随着模型规模的增加,其感受野自然扩大,使用大核卷积的好处减弱。因此,作者只对小型模型规模采用大核卷积。
  2. 部分自注意力(PSA)。自注意力因其卓越的全局建模能力而被广泛应用于各种视觉任务中。然而,它表现出高计算复杂度和内存占用。为此,考虑到普遍存在的注意力头冗余,作者提出了一个高效的 partial self-attention (PSA) 模块设计,如图3(c)所示。

具体来说,作者在11卷积后均匀地将特征在通道上划分为两部分。作者只将一部分输入到由多头自注意力模块(MHSA)和前馈网络(FFN)组成的块中。然后,两部分通过11卷积进行拼接和融合。此外,作者遵循[21]将 Query 和键的维度设置为值维度的一半,并在MHSA中使用BatchNorm代替LayerNorm以便快速推理。而且,PSA只放置在具有最低分辨率的Stage 4之后,避免了自注意力二次计算复杂度过大的开销。通过这种方式,作者可以将全局表征学习能力以低计算成本融入到YOLOs中,这大大增强了模型的性能,并带来了性能的改进。

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

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

相关文章

Redis的配置优化、数据类型、消息队列

文章目录 一、Redis的配置优化redis主要配置项CONFIG 动态修改配置慢查询持久化RDB模式AOF模式 Redis多实例Redis命令相关 二、Redis数据类型字符串string列表list集合 set有序集合sorted set哈希hash 三、消息队列生产者消费者模式发布者订阅者模式 一、Redis的配置优化 redi…

Androidstudio安卓开发,SharedPreferences实现登录注册

1. 项目涉及到的技术点 SharedPreferences的使用 2. 效果图 3. 实现过程 注册布局文件&#xff1a;activity_register.xml <?xml version"1.0" encoding"utf-8"?> <androidx.appcompat.widget.LinearLayoutCompat xmlns:android"http:…

mindspore打卡第24天之LSTM+CRF序列标注

LSTMCRF序列标注 概述 序列标注指给定输入序列&#xff0c;给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取&#xff0c;包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。以命名实…

细说MCU用定时器控制ADC采样频率的实现方法

目录 一、工程依赖的硬件及背景 二、设计目的 三、 建立工程 1.选择时钟源和Debug模式 2.配置系统时钟和ADC时钟 3.配置串口 4.配置ADC 5.设置TIM3 6.设置TIM4 7.配置中断 8.GPIO 四、代码修改 1.重新定义ADC回调函数 2.在主程序中编写数据发送代码 3.使能ADC和…

json-server服务使用教程

目录标题 安装 json-server启动 json-server 本地服务 安装 json-server npm install -g json-server0.17.4json-server -v报错请参考&#xff1a;执行json-server -v报错 因为在此系统上禁止运行脚本。 启动 json-server 本地服务 查看本机IP&#xff1a;ipconfig Shift右…

220.贪心算法:根据身高重建队列(力扣)

代码解决 class Solution { public:// 定义排序规则&#xff1a;首先按身高降序排序&#xff0c;如果身高相同则按k值升序排序static bool cmp(const vector<int>&a, const vector<int>&b){if (a[0] b[0]) return a[1] < b[1]; // 如果身高相同&#…

51单片机-第三节-LCD1602调试工具,矩阵键盘

一、LCD调试工具函数&#xff1a; 使用&#xff1a; 所有函数&#xff0c;前两个参数&#xff0c;均为指定显示位置。 四个参数的&#xff0c;第四个参数&#xff0c;为保留位数&#xff0c;少的保留后面&#xff08;123,2 -> 23&#xff09;&#xff0c;多的前面补零。 …

Web开发 —— 放大镜效果(HTML、CSS、JavaScript)

目录 一、需求描述 二、实现效果 三、完整代码 四、实现过程 1、HTML 页面结构 2、CSS 元素样式 3、JavaScript动态控制 &#xff08;1&#xff09;获取元素 &#xff08;2&#xff09;控制大图和遮罩层的显隐性 &#xff08;3&#xff09;遮罩层跟随鼠标移动 &…

k8s核心操作_k8s中的存储抽象_基本概念与NFS搭建_Deployment使用NFS进行挂载---分布式云原生部署架构搭建028

然后我们继续开始看 如果我们使用容器部署,比如我们有三个节点,一个是master,一个node1 一个是node2 那么pod 中我们可以看到,容器中的 /data 等各个目录都映射了出来了,但是 如果比如上面红色的部分,有个pod,原来在node2上,最右边那个,但是这个pod宕机了 那么,k8s会在node…

永磁同步电机谐波抑制算法(7)——基于自适应陷波(adaptive notch filter,ANF)的精确谐波电流抑制策略

1.前言 1.1经典谐波抑制策略存在的问题 在之前的谐波抑制专题中&#xff0c;主要介绍了两种谐波抑制策略——基于多同步旋转坐标系的谐波抑制策略以及基于比例积分谐振PIR调节器的谐波抑制策略&#xff0c;同时还介绍了这两种策略的改进办法&#xff0c;进而使得这两种策略在…

Go:基本变量与数据类型

目录 前言 前期准备 Hello World! 一、基本变量 1.1 声明变量 1.2 初始化变量 1.3 变量声明到初始化的过程 1.4 变量值交换 1.5 匿名变量 1.6 变量的作用域 二、数据类型 1.1 整型 1.2 浮点型 1.3 字符串 1.4 布尔类型 1.5 数据类型判断 1.6 数据类型转换 1.…

NewStarCTF 2023 week5--web

目录 Unserialize Again 法一:(非预期) 法二: Final Yes Pickle pppython? 4-复盘 Unserialize Again f12告诉了我们cookie, 查看一下,可以发现 pairing.php <?php highlight_file(__FILE__); error_reporting(0); class story{private $useradmin;public $p…

Centos7 新增yum源

背景&#xff1a;原来的yum源&#xff0c;无法下载yum包了。新增一个阿里云的&#xff08;网易163的源失效了&#xff0c;无法使用&#xff09; Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx86_64&repoos&infrastock error was …

three.js官方案例webgpu_reflection.html学习记录

目录 ​1 判断浏览器是否支持 2 THREE.DirectionalLight 2.1DirectionalLightShadow 3 Texture 3.1 .wrapS 3.2 .wrapT 3.3 .colorSpace 4 创建地面 5 WebGPURenderer 6 OrbitControls 控制器 7 屏幕后处理 import * as THREE from three;import { MeshPhongNodeMa…

简析“请求头”——可以用“头部字典”按需定制请求头

请求头是HTTP请求的重要部分&#xff0c;可以用“头部字典”按需定制请求头。 (笔记模板由python脚本于2024年07月12日 19:28:44创建&#xff0c;本篇笔记适合喜欢钻研web知识点的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free…

RSA算法(C++)

RSA加解密过程 RSA为非对称加密算法&#xff0c;由一对公钥和一对私钥构成&#xff0c;私钥加密公钥解密&#xff0c;公钥加密私钥解密 如下图,D为私密的&#xff0c;假设传输英文字母&#xff0c;我们给英文字母编号A1,B2,C3… RSA加解密过程 两对密钥产生方法如下 C Op…

【RHCE】基于密钥的身份验证(Win-Linux)

目的&#xff1a;要提⾼系统安全性&#xff0c;通过在 OpenSSH 服务器上禁⽤密码⾝份验证来强制进⾏基于密钥的⾝份验证。 1、一台虚拟机无需密码连接另一台虚拟机 .ssh目录 > 保存了ssh相关的key和一些记录文件 &#xff08;1&#xff09;生成密钥对 使⽤这个流程在本地…

U盘打不开的终极解决方案:原因剖析、恢复策略与预防之道

U盘困境&#xff1a;打不开的焦虑与应对 在数字化时代&#xff0c;U盘作为数据交换与存储的重要工具&#xff0c;几乎成为了每个人工作、学习和生活中的必需品。然而&#xff0c;当您满怀期待地将U盘插入电脑&#xff0c;却遭遇“无法识别”、“无法访问”等提示&#xff0c;U…

【人工智能】Transformers之Pipeline(一):音频分类(audio-classification)

​​​​​​​ 目录 一、引言 二、音频分类&#xff08;audio-classification&#xff09; 2.1 概述 2.2 技术原理 2.2.1 Wav2vec 2.0模型 2.2.1 HuBERT模型 2.3 pipeline参数 2.3.1 pipeline对象实例化参数 2.3.2 pipeline对象使用参数 2.4 pipeline实战 2.4.1 …

【Qt 基础】Qt Creator 的初步使用、创建项目的过程

文章目录 1. Qt SDK 中工具程序的介绍2. 创建第一个 Qt 项目的前置步骤 1. Qt SDK 中工具程序的介绍 下载之后会出现下面几个程序&#xff1a; Assistant 表示 Qt 自带的离线官方文档&#xff1b; Designer &#xff1a;Qt设计师&#xff0c;图形化的设计界面的工具&#xf…