PP-YOLOE: An evolved version of YOLO(2022.12)

news2024/11/15 19:28:26


文章目录

  • Abstract
  • 1. Introduction
  • 2. Method
    • 2.1. A Brief Review of PP-YOLOv2
    • 2.2. Improvement of PP-YOLOE
      • Anchor-free
      • Backbone and Neck
      • Task Alignment Learning (TAL)
      • Efficient Task-aligned Head (ET-head)
  • 3.Experiment
  • 4. Conclusion

原文链接
源代码

Abstract

在本报告中,我们介绍了PP-YOLOE,一种具有高性能和友好部署的工业最先进的目标探测器。我们在之前的PP-YOLOv2的基础上进行优化,采用无锚模式,使用强大的骨干和颈部,引入CSPRepResStage, ET-head和动态标签分配算法TAL
我们为不同的实践场景提供s/m/l/x模型,PP- YOLOE - l在COCO测试开发上实现了51.4 mAP,在Tesla V100上实现了78.1 FPS,与之前最先进的工业车型PP-YOLOv2和YOLOX相比,分别实现了(+1.9 AP, +13.35%提速)和(+1.3 AP, +24.96%提速)的显著提升。在TensorRT和fp16精度下,PP-YOLOE推理速度达到149.2 FPS。我们还进行了大量的实验来验证我们设计的有效性

1. Introduction

自YOLOv1[21]以来,YOLO系列目标探测器在网络结构、标签分配等方面发生了巨大的变化
YOLOX引入了先进的无锚方法,配备了动态标签分配,提高了探测器的性能,在精度方面明显优于YOLOv5[14]
受YOLOX的启发,我们进一步优化了之前的工作PP-YOLOv2[13],我们提出了YOLO的进化版本,命名为PP-YOLOE
PP-YOLOE避免使用可变形卷积[3,35]和矩阵NMS[29]等算子,以便在各种硬件上得到很好的支持。此外,PP- YOLOE可以轻松扩展到具有不同计算能力的各种硬件的一系列模型。这些特点进一步推动了PP-YOLOE在更广泛的实际场景中的应用
如图1所示,PP-YOLOE在速度和精度权衡方面优于YOLOv5和YOLOX。具体来说,PP-YOLOE- 1以78.1 FPS的速度在COCO上实现了640 × 640分辨率的51.4 mAP,超越了PP-YOLOv2 1.9%的AP和yolox - 1 1.3%的AP。此外,PP-YOLOE有一系列的模型,可以像YOLOv5一样通过宽度倍增器和深度倍增器进行简单的配置

2. Method

我们将首先回顾我们的基线模型(YOLOv2),然后从网络结构、标签分配策略、头部结构和损失函数等方面详细介绍PP-YOLOE的设计(图2)

2.1. A Brief Review of PP-YOLOv2

PP-YOLOv2的整体架构包括具有可变形卷积的ResNet50-vd[10]、具有SPP层和DropBlock[7]的PAN颈轻量级IoU感知头。在PP- YOLOv2中,主干部位采用ReLU激活函数颈部部位采用Mish激活函数。继YOLOv3之后,PP-YOLOv2只为每个地面真值对象分配一个锚框。除了分类损失、回归损失和对象损失外,PP-YOLOv2还使用IoU损失和IoU感知损失来提高性能

2.2. Improvement of PP-YOLOE

Anchor-free

我们在PP-YOLOv2中引入无锚法。FCOS[26]在每个像素上平铺一个锚点,我们设置了三个检测头的上界和下界,将ground truth分配给相应的feature map。然后,计算边界框的中心,选择最接近的像素作为正样本
根据YOLO序列,预测一个四维向量(x, y, w, h)进行回归。这个修改使模型更快了一点,损失了0.3 AP,如表2所示。虽然根据PP- YOLOv2的锚点尺寸仔细设置了上界和下界,但基于锚点和无锚点的分配结果仍然存在一些小的不一致,这可能导致精度下降很小

Backbone and Neck

残差连接[9,30,11]和密集连接[12,15,20]在现代卷积神经网络中得到了广泛的应用。残差连接引入了解决梯度消失问题的捷径,也可以看作是一种模型集成方法。密集连接集合了具有不同接收域的中间特征,在目标检测任务中表现出良好的性能CSPNet[28]利用了跨级密集连接,在不损失精度的情况下降低了计算量,在YOLOv5[14]、YOLOX等有效的目标检测器中得到了广泛应用

我们提出了一种新颖的RepResBlock将残差连接与密集连接相结合,用于我们的backbone和颈部
我们的RepResBlock源自TreeBlock[20],在训练阶段如图3(b)所示,在推理阶段如图3©所示。首先,我们对原始TreeBlock进行简化(图3(a))。然后,我们用元素相加操作替换连接操作(图3(b)),因为RMNet[19]在某种程度上显示了这两种操作的近似。因此,在推理阶段,我们可以将RepResBlock重新参数化为ResNet-34以RepVGG[4]风格使用的基本剩余块(图3©)

我们使用所提出的RepResBlock来构建backbone 和 neck。与ResNet类似,我们的主干名为CSPRepResNet,包含一个由三个卷积层组成的主干,以及由我们的RepResBlock堆叠的四个后续阶段,如图3(d)所示。在每一步中,采用跨阶段部分连接,避免了大量3 × 3卷积层带来的大量参数和计算负担。ESE(有效挤压和提取)层也用于在构建主干时在每个CSPRepResStage中施加信道注意。我们在PP-YOLOv2[13]之后使用所提出的RepResBlockCSPRepResStage构建颈部。与主干不同的是,主干去掉了RepResBlock中的快捷键和CSPRepResStage中的ESE层

我们使用宽度乘法器α和深度乘法器β来像YOLOv5[14]一样对基本骨干和颈部进行联合缩放。因此,我们可以得到一系列具有不同参数和计算量的检测网络。基本骨干宽度设置为[64,128,256,512,1024]。除主干外,基本主干的深度设置为[3,6,6,3]。基本颈宽设置为[192,384,768],深度设置为3。表1给出了不同模型的宽度乘法器α和深度乘法器β的规格。这样的修改使AP性能提高了0.7%,即49.5%

Task Alignment Learning (TAL)

为了进一步提高精度,标签分配是另一个需要考虑的方面。YOLOX使用SimOTA作为标签分配策略来提高性能。然而,为了进一步克服分类和定位的不对齐问题,在TOOD[5]中提出了任务对齐学习(TAL),它由动态标签分配和任务对齐损失组成。动态标签分配意味着预测/损失意识。根据预测,为每个真值分配动态的正锚点个数。通过显式地对齐这两个任务,TAL可以同时获得最高的分类分数和最精确的边界框
对于与任务对齐的损失,Tood使用一个归一化的t,即hat t来代替损失中的目标。它采用每个实例中最大的IoU作为归一化。分类的二进制交叉熵(Binary Cross Entropy, BCE)可以重写为:
本文以CSPRepResNet为骨干,在上述改进的模型上进行了实验。为了快速得到验证结果,我们只在COCO train2017上训练了36个epoch,并在COCO val上进行验证,如表3所示,TAL达到了最佳的45.2% AP性能。我们使用TAL替代标签分配,如FCOS样式,并实现0.9% AP改进- 50.4% AP

Efficient Task-aligned Head (ET-head)

在目标检测中,分类与定位之间的任务冲突是一个众所周知的问题。许多文献[5,33,16,31]都提出了相应的解决方案。YOLOX的解耦头部吸取了大多数一级和两级检测器的经验,并成功应用于YOLO模型,提高了精度。但是,解耦的头部可能会使分类和定位任务分离和独立,缺乏针对任务的学习
基于TOOD [5],我们改进了head,提出了速度和精度并重的ET-head。如图2所示,我们使用ESE替换了tood中的层关注将分类分支的对齐简化为shortcut将回归分支的对齐替换为分布焦损(DFL)层[16]。通过上述变化,ET-head在V100上增加了0.9ms

对于分类和定位任务的学习,我们分别选择了变焦损失(VFL)和分布焦损失(DFL)。PP-Picodet[32]成功地将VFL和DFL应用于目标检测器中,并获得了性能的提高。[33]中的VFL,与[16]中的质量焦损(QFL)不同,VFL使用目标分数来加权阳性样本的损失这种实现使得高IoU的阳性样本对损失的贡献相对较大。这也使得模型在训练时更加关注高质量的样本,而不是那些低质量的样本

相同的是,两者都使用IACS作为预测的目标。这可以有效地学习分类分数和定位质量估计的联合表示,使训练和推理之间具有较高的一致性。对于DFL,为了解决边界框表示不灵活的问题,[16]提出使用一般分布来预测边界框。我们的模型损失函数

式中,t hat为归一化目标分数

ET-head获得0.5% AP改善

3.Experiment

4. Conclusion

在本报告中,我们提出了PP- YOLOv2的几个更新,包括可扩展的主干颈结构,高效的任务对齐头,先进的标签分配策略和改进的目标损失函数,形成了一系列高性能的目标检测器PP- YOLOE。同时,我们提出了s/m/l/x模型,可以覆盖不同的实际场景。此外,在PaddlePaddle官方支持下,这些模型可以顺利过渡到部署

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

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

相关文章

恕我直言,大模型对齐可能无法解决安全问题,我们都被表象误导了

是否听说过“伪对齐”这一概念? 在大型语言模型(LLM)的评估中,研究者发现了一个引人注目的现象:当面对多项选择题和开放式问题时,模型的表现存在显著差异。这一差异根源在于模型对复杂概念的理解不够全面&…

Python hashlib 模块详细教程:安全哈希与数据完整性保护

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python hashlib 模块详细教程,文章6500字,阅读大约17分钟,大家enjoy~~ hashlib模块为Python提供了一种简便的方式来使用各种哈希算法&…

ACM练习——第五天

还有两天就要比赛了&#xff0c;进入正题吧 题目一&#xff1a;小红的签到题 小红的签到题 (nowcoder.com) 这道题也就是热身水平&#xff0c;机会很清楚的发现只需要c/a就可以得出答案了 参考代码&#xff1a; #include <iostream>using namespace std;int main(){int a…

SecureCRT的“New line mode“

New line mode选中与不选中啥区别 在SecureCRT中&#xff0c;"New line mode"是一个关键配置项&#xff0c;主要用于解决不同操作系统之间的换行问题。当不选中"New line mode"时&#xff0c;SecureCRT会将接收到的数据按照原样发送&#xff0c;不会对数据…

腾讯智影数字人工具

腾讯智影数字人工具 腾讯智影数字人的形象风格多样&#xff0c;包括写实、卡通等&#xff0c;可以满足不同年龄层观众的喜好。同时&#xff0c;腾讯智影数字人也提供了灵活的驱动方案&#xff0c;可以通过文本或配音直接生成视频&#xff0c;并支持数字人做出与视频一样的动作…

计算机网络——WLAN简解

1. WLAN的发展历程 ❓ WLAN和WIFI有什么区别。 &#x1f604; 具体来说&#xff0c;WALN是抽象的概念&#xff0c;代表这无线局域网这一类技术&#xff0c;而WIFI则是具体的具体技术标准&#xff0c;虽然在生活中&#xff0c;二者的表现是强相关的&#xff08;因为是使用的wifi…

talbay---贝叶斯网络分析工具产品介绍

一 简介 talbay是拥有独立知识产权的国产软件&#xff0c;主要功能是贝叶斯网络建模、决策网络建模、概率计算、决策支持、敏感性分析、网络模型验证、机器学习等。talbay以用户为中心&#xff0c;简单易用, 计算准确高效&#xff0c;分析全面多样&#xff0c;在应用成熟理论及…

基础模型的自然语言处理能力综述

NLP作为一个领域为基础模型开辟了道路。虽然这些模型在标准基准测试中占据主导地位&#xff0c;但这些模型目前获得的能力与那些将语言描述为人类交流和思维的复杂系统的能力之间存在明显的差距。针对这一点&#xff0c;我们强调语言变异的全部范围&#xff08;例如&#xff0c…

西南科技大学814考研一

C语言基础 字节大小 char&#xff1a;1 字节 unsigned char&#xff1a;1 字节 short&#xff1a;2 字节 unsigned short&#xff1a;2 字节 int&#xff1a;通常为 4 字节&#xff08;32 位平台&#xff09;或 8 字节&#xff08;64 位平台&#xff09; unsigned int&#x…

汽车音响静音检测电路芯片D3703F,适用于汽车音响系统,采用封装形式SOP8

D3703F是-块汽车音响静音检测电路。用于音响系统检测在放音或快进/退时进行静音检测。D3703F的电压范围: 6V~16V&#xff0c; 信号检测和静音时间可通过外围电阻、电容来改变。 主要特点&#xff1a; ● 快进退时也可进行静音检测 ● 信号检测和静音时间可通过外围元件值来改…

机器学习笔记 - 使用 PyTorch 的多任务学习和 HydraNet

一、HydraNet简述 特斯拉使用了一个模型可以解决他们正在处理的每一项可能的任务。 例如:物体检测、道路曲线估计、深度估计、3D重建、视频分析、物体追踪、ETC等等。 以下是在 NVIDIA GPU 上以 3 种不同配置运行的 2 个计算机视觉模型的基准测试。 在第一个配置中,我…

贝叶斯AB测试

AB测试是用来评估变更效果的有效方法&#xff0c;但很多时候会运行大量AB测试&#xff0c;如果能够在测试中复用之前测试的结果&#xff0c;将有效提升AB测试的效率和有效性。原文: Bayesian AB Testing[1] 随机实验&#xff0c;又称AB测试&#xff0c;是行业中评估因果效应的既…

iframe父子页面通信相互调用传递参数多个postMessage

效果 如何运行 父页面代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title>…

再也不用担心忘记密码了!如何在Windows 10或11中重置被遗忘的密码

​如果你忘记了Windows电脑的密码,不要惊慌。Windows 10和Windows 11都允许你重置忘记的密码,无论你使用的是Microsoft帐户还是本地帐户。你所要做的就是回答你的安全问题以重置密码。另一种选择是创建一个密码重置盘,你可以在任何U盘上进行。 除了使用密码之外,你还应该启…

CCF ChinaSoft 2023 论坛巡礼|软件测试产教研融合论坛

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

基于DOTween插件实现金币飞行到指定位置功能

文章目录 前言一、DOTween是什么&#xff1f;二、使用步骤1.导入DOTween插件在Unity官方插件商店找到DOTween插件导入DOTween插件启用DOTween插件 2.代码逻辑金币飞行代码控制飞行效果代码 3.物体配置1.物体上装配CoinEffect脚本2.在金币预制体上装配FlyControl脚本 三、效果展…

Pytorch torch.normal()的用法

该函数原型如下&#xff1a; normal(mean, std, *, generatorNone, outNone) 该函数返回从单独的正态分布中提取的随机数的张量&#xff0c;该正态分布的均值是mean&#xff0c;标准差是std。 用法如下&#xff1a;我们从一个标准正态分布N&#xff5e;(0,1)&#xff0c;提取…

YOLOv8-Seg改进:渐近特征金字塔网络(AFPN)

🚀🚀🚀本文改进:AFPN通过融合两个相邻的Low-Level特征来启动的,并渐进地将High-Level特征纳入融合过程,提升分割能力。 🚀🚀🚀AFPN小目标分割首选,暴力涨点 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻…

QTableWidget——表格的合并与拆分

一、整体思路 表格的操作使用QTableView::setSpan可以实现表格的行和列的合并 表格拆分没有对应的处理函数 主要思路&#xff1a;对表格的属性、内容、拆分与合并的参数进行存储&#xff0c;在进行拆分时对表格内容进行重新创建&#xff08;不考虑效率问题&#xff09; 二、效…

电脑技巧:低配置的旧电脑也可以使用Win11系统了

目录 一、优点和适用场景 二、下载以及版本说明 三、安装说明 四、Tiny11 设置安装简体中文语言方法 Windows 11&#xff0c;作为微软最新一代操作系统&#xff0c;固然有其强大的功能和卓越的性能&#xff0c;但有时&#xff0c;更轻、更小、更快速的需求也在用户的考虑范…