PP-YOLOE: An evolved version of YOLO

news2024/11/27 12:31:29
摘要
我们在之前 PP-YOLOv2 的基础上进行了优化,使用 无锚 范式,更强大的主干和颈部配备了
CSPRepResStage ET-head 和动态标签分配算法 TAL
1 、介绍
YOLOX 的启发,我们进一步优化了之前的工作 PP-YOLOv2 PP-YOLOv2 是一款高性能单级探测器。基于PP-YOLOv2 ,我们提出了一个 YOLO 的进化版本,命名为 PP-YOLOE PP-YOLOE 避免使用像可变形 卷积和矩阵NMS 这样的运算符来在各种硬件上得到很好的支持。此外, PP-YOLOE 可以很容易地扩展到 具有不同计算能力的各种硬件的一系列模型。这些特性进一步推动了PP-YOLOE 在更广泛的实际场景中 的应用。
2 、方法
本节中,我们将首先回顾我们的基线模型,然后从网络结构、标签分配策略、头部结构和损失函数等方面详细介绍PP-YOLOE 的设计,如图 2 所示。
2.1PP-YOLOv2 简介
PP-YOLOv2 的整体架构包括具有可变形卷积的 ResNet50-vd 的主干、具有 SPP 层和 DropBlock PAN 颈部以及轻量级IoU 感知头。在 PP-YOLOv2 中, ReLU 激活功能用于主干,而 mish 激活功能用于颈部。在YOLOv3之后, PP-YOLOv2 仅为每个 ground truth 对象分配一个 anchor 盒。除了分类损失、回归损失和对象损失外,PP-YOLOv2 还使用 IoU 损失和 IoU 感知损失来提高性能。
2.2 PP-YOLOE 的改进
anchor free 。如上所述, PP-YOLOv2 以基于锚的方式分配 ground truth ,然而, anchor 机制引入了许多超参数,并依赖手工设计,这可能无法在其他数据集上很好的推广。基于上述原因,在PP-YOLOv2 中 引入了无锚方法。 FCOS 之后,我们为三个检测头设置上限和下限,以将 ground truth 分配给相应的 特征图 然后,计算边界框的中心,以选择最近的像素作为正样本 。在 YOLO 系列之后,预测 4D 向量 (x,y,w,h) 用于回归。尽管根据 PP-YOLOv2 的锚点大小仔细设置了上下限,但基于锚点和无锚点的方式之间的分配结果仍然存在小的不一致,这可能会导致精度下降。
Backbone Neck . 残差连接和密集连接已被广泛用于现代卷积神经网络。 残差连接 引入了 缓解梯度消 失问题的捷径 ,也可以被视为一种模型集成方法。 密集连接聚合 了具有 不同感受野的中间特征 ,在对象检测任务中表现出良好的性能。CSPNet 利用跨级密集连接在不损失精度的情况下降低计算负担,这在YOLOv5、 YOLOX 等有效物体探测器中很受欢迎。 VoVNet 和随后的 TreeNet 在对象检测和实例分割方面也表现出优异得性能。受这些工作的启发,我们提出了一种新的RepResBlock ,将残差连接和密集连接相结合,用于我们的主干和颈部。源自TreeBlock ,我们的 RepResBlock 如图 3(b) 所示,在训练阶段,在推理阶段如图3(c) 所示。首先,我们 简化了原始 TreeBlock (如图 3(a) )。然后,我们 将级联运算替换为 逐元素加法运算 (图 3 b)) ,因为这两个运算在某种程度上是近似的,如 RMNet 。因此,在推理阶段, 我们将RepResBlock 重新参数化为基本残差块(图 3(c)) ,由 ResNet-34 RepVGG 风格使用。我们 使用建
议的 RepResBlock 来构建主干和颈部 。与 ResNet 类似,我们的 主干名为 CSPRepResNet 包含一个由 三个卷积层组成的主干和由我们的 RepResBlock 堆叠的四个后续阶段,如图 3(d) 所示。
在每个阶段,使用跨阶段部分连接来避免大量 3x3 卷积层带来的大量参数和计算负担。 ESE (有效挤压和 提取)层也用于在每个 CSPRepResStage 中施加通道注意力 ,同时构建主干。我们在 PP-YOLOv2 之后使用拟议的RepResBlock CSPRepResBlock 构建颈部。与主干不同, 推理阶段, RepResBlock 中的快捷 方式和 CSPRepResStage 中的 ESE 层在颈部被删除
我们使用宽度系数 深度系数 联合缩放基本骨干和颈部,如 YOLOv5 。因此,我们可以得到一 系列具有不同参数和计算成本的检测网络。基于主干的宽度设置为 [64,128,256,512,1024] 。除主干外 基本主干的深度设置为 [3,6,6,3] 。基本颈部的宽度设置和深度设置分别为 [192,384,768] 3. 1 显示了不 同模型的宽度系数和深度系数的规格。如表 2 所示,此类修改可获得 0.7% AP 性能改进。
TAL (任务协调学习) 。为了进一步提升性能,标签分配是需要考虑的另一个方面。 YOLOX 使用
SimOTA 作为标签分配策略来提高性能。然而,为了进一步克服分类和定位的错位, TOOD 中提出了任 务对齐学习( TAL ,它由动态标签分配和任务对齐损失组成。动态标签分配意味着预测 / 损失感知。 据预测,它为每个 ground truth 分配动态数量的正锚 通过明确对齐这两个任务, TAL 可以同时获得最 高的分类分数和最精确的边界框。
对于任务对齐损失, TOOD 使用标准化的t,即 来替换 损失中的目标。它 采用每个实例中最大的 IoU 为规范化 分类的二进制交叉熵( BCE )可以重写为:
我们使用不同的标签分配策略来研究性能。我们在上述修改后的模型上进行了实验,该模型以
CSPRepResNet 为主干。使用 TAL 来取代 FCOS 风格的标签分配。
高效任务协调 Head ET-head 。在目标检测这中,分类和定位之间的任务冲突是一个众所周知的问题。许多论文[5,33,16,31] 提出了相应的解决方案。 YOLOX 的解耦头借鉴了大多数一级和两级探测器的 经验 ,并成功应用于 YOLO 模型,提高了精度。 然而 解耦的头部可能会使分类和定位任务分离和独 立,并且缺乏特定任务的学习 基于 TOOD ,我们改进了 head ,并提出了 ET-head ,目标是速度和准确性。如图2 所示,我们 使用 ESE 代替 TOOD 中的层注意力 将分类分支的对齐简化为快捷方式,并用分布 焦点损失( DFL )层代替回归分支的对齐 。经过上述变化, ET 头在 v100 上增加了 0.9ms
对于分类和定位任务的学习,我们分别选择变焦距损失( VFL )和分布焦距损失( DFL PP-Picodet成功地将VFL DFL 应用于物体探测器,并获得了性能的提高。对于 [33] 中的 VFL ,和 [16] 中的质量焦点损失(QFL )不同, VFL 使用目标分数来加权阳性样本的损失 。这种实现使得具有高 IoU 的正样本对损耗的贡献相对较大。这也使得模型在训练时更加关注高质量的样本,而不是那些低质量的样本。相同的是,两者都使用 IoU 感知分类得分( IACS )作为预测目标 。这可以有效地学习分类得分和定位质量估计的联合表示,从而实现训练和推理之间的高度一致性。对于DFL ,为了解决边界框表示不灵活的问题, [16]提出使用一般分布预测边界框。我们的模型受损失函数的监督:

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

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

相关文章

使用hping3网络工具构造TCP/IP数据包和进行DDos攻击

1 概述 hping3是一个强大的命令行工具,用于生成、发送和解析TCP/IP协议的数据包。它是开源的网络安全工具,由Salvatore Sanfilippo开发,主要应用于网络审计、安全测试和故障排查等领域。hping3不仅可以作为普通的网络连通性检测工具&#xf…

深入理解数据结构(2):顺序表和链表详解

文章主题:顺序表和链表详解🌱所属专栏:深入理解数据结构📘作者简介:更新有关深入理解数据结构知识的博主一枚,记录分享自己对数据结构的深入解读。😄个人主页:[₽]的个人主页&#x…

数据结构——lesson12排序之归并排序

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

揭秘五力模型:轻松掌控企业竞争命脉,决策不再迷茫!

五力分析模型又成为波特五力模型是由著名的管理学者迈克尔波特(Michael Porter)在20世纪80年代初提出的一种理论框架,它对企业营销中的战略制定产生了全球性的深远影响。这一模型被广泛应用于企业竞争战略的分析,可以帮助企业有效地分析企业在营销环境中…

Java实验报告2

一、实验目的 本实验为Java课程的第二次实验,其主要目的如下: 理解继承和多态的概念; 掌握域和方法在继承中的特点; 掌握构造函数的继承和重载; 掌握this和super的用法; 二、实验原理 ​ 继承性是面…

上市公司-动态能力数据集(2008-2022年)

01、数据介绍 上市公司动态能力是指企业在不断变化的外部环境中,通过整合、创建和重构内外部资源,寻求和利用机会的能力。这种能力有助于企业重新构建、调配和使用其核心竞争力,从而保持与时俱进,应对市场挑战。具体来说&#xf…

Chrome DevTools中的骚操作

今天来分享 Chrome DevTools 中一些非常实用的功能和调试技巧! 保留日志 当我们刷新完页面之后,通常控制台的 Console 面板就会被清空。如果想保留控制台的日志,就可以在设置中勾选 Preserve log 选项以保留控制台中的日志。 代码覆盖率 我…

快讯!TiDB v8 发版!超硬核 v8 引擎!

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品。 具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数…

【Docker】Windows中打包dockerfile镜像导入到Linux

【Docker】Windows中打包dockerfile镜像导入到Linux 大家好 我是寸铁👊 总结了一篇【Docker】Windows中打包dockerfile镜像导入到Linux✨ 喜欢的小伙伴可以点点关注 💝 前言 今天遇到一个新需求,如何将Windows中打包好的dockerfile镜像给迁移…

【Linux】进程程序替换 做一个简易的shell

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 文章目录 前言 进程程序替换 替换原理 先看代码和现象 替换函数 第一个execl(): 第二个execv(): 第三个execvp(): 第四个execvpe()&a…

android WMS服务

android WMS服务 WMS的定义 窗口的分类 WMS的启动 WindowManager Activity、Window、DecorView、ViewRootImpl 之间的关系 WindowToken WMS的定义 WMS是WindowManagerService的简称,它是android系统的核心服务之一,它在android的显示功能中扮演着…

YOLOv9改进策略 :卷积魔改 | 感受野注意力卷积运算(RFAConv)

💡💡💡本文改进内容:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 💡💡💡使用方法:代替YOLOv9中的卷积,使得更加关注感受野注意力,提升性能 💡💡💡RFAConv…

vue3:通过【自定义指令】实现自定义的不同样式的tooltip

一、效果展示 vue3自定义不同样式的tooltip 二、实现思路 1.ts文件 在ts文件中创建一个全局容器 import一个容器组件,用于存放自定义的各式组件 创建一个指令并获取到指令传递的数据,并为容器组件传值 2.容器组件 用于存放自定义Tooltip样式的组件…

最新2024年增强现实(AR)营销指南(完整版)

AR营销是新的最好的东西,就像元宇宙和VR营销一样。利用AR技术开展营销活动可以带来广泛的利润优势。更不用说,客户也喜欢AR营销! 如果企业使用AR,71%的买家会更多地购物。40%的购物者准备在他们可以在AR定制的产品上花更多的钱。…

详解Java线程的状态

一、观察线程的所有状态 线程的状态是⼀个枚举类型 Thread.State public class ThreadState {public static void main(String[] args) {for (Thread.State state : Thread.State.values()) {System.out.println(state);}} } NEW: 安排了⼯作, 还未开始⾏动 RUNNABLE: 可⼯…

JavaSE day16笔记 - string

第十六天课堂笔记 学习任务 Comparable接口★★★★ 接口 : 功能的封装 > 一组操作规范 一个抽象方法 -> 某一个功能的封装多个抽象方法 -> 一组操作规范 接口与抽象类的区别 1本质不同 接口是功能的封装 , 具有什么功能 > 对象能干什么抽象类是事物本质的抽象 &…

MYSQL——索引概念索引结构

索引 索引是帮助数据库高效获取数据的排好序的数据结构。 有无索引时,查询的区别 主要区别在于查询速度和系统资源的消耗。 查询速度: 在没有索引的情况下,数据库需要对表中的所有记录进行扫描,以找到符合查询条件的记录&#…

《深入理解计算机系统》学习(9):链接和执行

目录 一、链接1.1 编译器驱动程序1.2 链接任务 二、目标文件2.1 目标文件三种形式2.2 可重定位目标文件 三、符号3.1 符号表3.2 符号解析3.3 链接器解析多重定义的全局符号 四、重定位4.1 重定位条目4.2 重定位符号引用 五、可执行目标文件5.1 可执行文件结构5.2 加载可执行目标…

设置asp.net core WebApi函数请求参数可空的两种方式

以下面定义的asp.net core WebApi函数为例,客户端发送申请时,默认三个参数均为必填项,不填会报错,如下图所示: [HttpGet] public string GetSpecifyValue(string param1,string param2,string param3) {return $"…

C++格式化输入和输出

格式化输入与输出 除了条件状态外,每个iostream对象还维护一个格式状态来控制IO如何格式化的细节。 格式状态控制格式化的某些方面,如整型值是几进制、浮点值的精度、一个输出元素的宽度等。 标准库定义了一组操纵符来修改流的格式状态。 一个操纵符…