PP-YOLOE: An evolved version of YOLO

摘要
我们在之前 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.mzph.cn/news/784091.shtml

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

相关文章

JS的入口函数,并讲解入口函数的作用

windowonload function window.addEventListener (“load”,function ()) document.addEventListener (“DOMContentLoaded”, function ()) 作用: DOMContentLoaded DOM加载完毕,不包含图片fash css等就可以执行,加…

pytorch之model.eval()、model.fuse()及model.fuse.eval()介绍

在 PyTorch 中,model.eval() 是用于将模型设置为评估模式的方法,而 model.fuse() 是用于量化模型中的融合操作的方法。下面是它们的详细介绍: 1. model.eval()方法介绍 当涉及到 PyTorch 中的模型评估时,model.eval() 是一个非常…

2.灌水..

2.灌水 - 蓝桥云课 (lanqiao.cn) 问题描述 小蓝有一个01矩阵。他打算将第一行第一列的0变为2。变化过程有传染性,每次2的上下左右四个相邻的位置中的0都会变成2。直到最后每个2的周围都是1或2结束 请问,最终矩阵中有多少个 2? 以下是小蓝的矩阵&#xf…

PHP在线客服系统源码修复版

源码简介 在线客服系统网站源码https://www.888host.cn/330.html 新增消息预知,消息撤回,消息已读未读, 修复需要刷新才能收到消息 修复客户来源地址 修复消息提示音 修复桌面推送提醒 搭建环境 宝塔面板 ,Nginx1.16-1.18 …

C语言程序10题

第81题 (10.0分) 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:打印出如下图案(菱形&#xff0…

MySQL 之 数据库操作 及 表操作

🎉欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ 🎉感谢各位读者在百忙之中抽出时间来垂阅我的文章,我会尽我所能向的大家分享我的知识和经验📖 🎉希望我们在一篇篇的文章中能够共同进步!!&…

Qt QWebSocket讲解

QWebSocket 是 Qt 框架中用于处理 WebSocket 通信的类。WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。这使得客户端和服务器之间可以进行实时交互,而无需频繁地建立和关闭连接。 QWebSocket 的基本使用 创建 QWebSocket 对象: 你可以创建一个…

2024.03.21校招 实习 内推 面经

绿*泡*泡VX: neituijunsir 交流*裙 ,内推/实习/校招汇总表格 1、校招&实习 | 易控智驾 2024春季校园招聘(内推) 校招&实习 | 易控智驾 2024春季校园招聘(内推) 2、校招 | 中国机械总院集团2024…

cesium 加载gltf并实时改变位置

业务描述:在场景中添加一个车辆,并实时改变车辆的位置,可选方案比较多,根据实际情况有不同的实现方式。 1、知道车辆所有轨迹的点坐标,用entity方式添加模型,position用SampledPositionProperty记录每个点的…

【跟着CHATGPT学习硬件外设 | 01】SPI

文章目录 🚀 概念揭秘关键精华🌟 秒懂案例生活类比实战演练 🔍 原理与工作流程探秘步骤1:初始化SPI接口步骤2:主设备启动通信步骤3:主设备发送数据步骤4:从设备接收数据步骤5:从设备…

一文彻底搞懂 TSL 流程

文章目录 1. 什么是 TSL2. TSL 流程3. CA 签发流程 1. 什么是 TSL HTTPS(Hyper Text Transfer Protocol Secure)是基于 HTTP 协议之上的安全通信协议,它使用 TLS 或 SSL 加密协议来保护网络通信的安全性和隐私性。 TLS(Transpor…

模拟游戏《幸福工厂》好玩吗?《幸福工厂》怎么在mac电脑上打开?

关于《幸福工厂》这款游戏是否好玩,普遍的玩家反馈和评价表明,《幸福工厂》(Satisfactory)因其深度的工厂建造模拟、自由度极高的探索以及精美的图形表现而受到许多玩家的喜爱。它允许玩家在一个开放的世界中规划并建立复杂的生产…

hibernate开发步骤

hibernate开发步骤 创建hibernate配置文件 创建实体类 创建对象-关系映射文件 通过hibernate访问数据库 下面提供一个简单地示例 hibernate配置文件 <?xml version1.0 encodingutf-8?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernat…

DeepL Pro3.1 下载地址及安装教程

DeepL Pro是DeepL公司推出的专业翻译服务。DeepL是一家专注于机器翻译和自然语言处理技术的公司&#xff0c;其翻译引擎被认为在质量和准确性方面表现优秀.DeepL Pro提供了一系列高级功能和服务&#xff0c;以满足专业用户的翻译需求。其中包括&#xff1a; 高质量翻译&#xf…

随机规划:求解报童问题期望值模型的算法方案

文章目录 1 引言2 数学模型3 报童问题3.1 直接最优化3.2 样本均值近似3.3 两阶段规划3.4 结果分析 4 在线求教5 相关阅读 1 引言 上一篇关于不确定优化的文章&#xff08;不确定优化入门&#xff1a;用简单实例讲明白随机规划、鲁棒优化和分布鲁棒优化 &#xff09;发表后&…

道可云元宇宙每日资讯|工信部:加快推动大模型等AI赋能制造业发展

道可云元宇宙每日简报&#xff08;2024年3月27日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 江苏无锡设立5000万元算力券资金 近日&#xff0c;无锡市算力赋能人工智能产业发展暨算力应用政策发布会召开&#xff0c;《关于加快推进算力发展和应用的实施意见》…

Vue3+Vite Nginx部署 跨域

打包项目 webstorm打开项目之后&#xff0c;在Terminal执行打包命令 pnpm run build:prod 复制到Nginx 打包完成之后,生成的包在根目录dist&#xff0c;把dist目录拷贝到Nginx放网站目录下&#xff1a;\nginx-1.25.2\html\divided &#xff0c;dist改名了divided 修改配置…

基于Java+SpringBoot+vue仓库管理系统设计与实现

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

归并排序---分治法

1、算法的概念 归并排序&#xff1a;是创建在归并操作上的一种有效的排序算法。算法是采用分治法的一个非常典型的应用&#xff0c;且各层分治递归可以同时进行。归并排序的思路简单&#xff0c;速度仅次于快速排序&#xff0c;为稳定排序算法&#xff0c;一般用于对总体无序&…

2-Jquery层次选择器

一、选择题 1. 要选择ID为parent的元素下的所有直接子元素<div>&#xff0c;应使用哪个选择器&#xff1f; A. $("#parent > div") B. $("#parent div") C. $("#parent .div") D. $("#parent div") 答案&#xff1a; A 2…