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


文章目录

  • 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.hqwc.cn/news/190982.html

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

相关文章

oracle21c安装报错【[INS-32014] 指定的 Oracle 基目录位置XXX无效】

一.问题 [INS-32014] 指定的 Oracle 基目录位置XXX无效 二.解决办法 安装包的文件放置不可以在中文字文件夹下面,改为英文【soft】,就可以成功安装完成了!

微信小程序动态生成表单来啦!你再也不需要手写表单了!

dc-vant-form 由于我们在小程序上涉及到数据采集业务,需要经常使用表单,微信小程序的表单使用起来非常麻烦,数据和表单是分离的,每个输入框都需要做数据处理才能实现响应式数据,所以我开发了dc-vant-form,…

JAVAEE 初阶 多线程基础(一)

多线程基础 一.线程的概念二.为什么要有线程三.进程和线程的区别和关系四.JAVA的线程和操作系统线程的关系五.第一个多线程程序1.继承Thread类 一.线程的概念 一个线程就是一个 “执行流”. 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 “同时” 执行着多份代码 同…

C++类与对象(1)—初步认识

目录 一、面向过程和面向对象 二、类 1、定义 2、类的两种定义方式 3、访问限定符 4、命名规范化 5、类的实例化 6、计算类对象的大小 7、存储方式 三、this指针 1、定义 2、存储位置 3、辨析 四、封装好处 一、面向过程和面向对象 C语言是面向过程的&#xf…

算法设计与分析 | 分治棋盘

题目 在一个2^k * 2^k个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格&#xff0…

解锁OpenAI潜力:OpenAI 全面解析与最佳实践

该项目是由OpenAI公司提供的一个大型代码库,其中包含了各类与OpenAI API相关的代码示例和最佳实践。 此项目名为OpenAI Cookbook,目的是为了帮助使用者更有效地利用OpenAI API,将其应用于自己的工作和生活中。具体来说,可以解决一…

【数字人】7、GeneFace++ | 使用声音驱动的面部运动系数作为 condition 来指导 NeRF 重建说话头

文章目录 一、背景二、相关工作2.1 唇形同步的 audio-to-motion2.2 真实人像渲染 三、方法3.1 对 GeneFace 的继承3.2 GeneFace 的结构3.2.1 Pitch-Aware Audio-to-Motion Transform3.2.2 Landmark Locally Linear Embedding3.2.3 Instant Motion-to-Video Rendering 四、效果 …

二叉树中的深搜之二叉树的所有路径

257. 二叉树的所有路径 - 力扣(LeetCode) 对于二叉树的深度搜索,要学会从以下三个角度来去看待问题: 1. 全局变量,有时候全局变量会减少参数的个数,简化很多流程; 这道题目,要返回根…

视频怎么做成二维码?在线教学视频码的制作技巧

视频是怎么制作成二维码的呢?现在经常会发现扫描很多的二维码会观看视频内容的情况,这种方式简化视频传递的过程,能够更加简单快捷的在线获取视频内容。对于想要了解视频二维码制作方法的小伙伴,小编通过本篇文章来教大家一招&…

手把手教你用C语言写出“走迷宫”小游戏(能看懂文字就会自己敲系列)

目录 设计迷宫地图 设计主角——小球 完整代码 这次教大家编写一个简单的“走迷宫”小游戏,我们可以通过键盘上的‘W’、‘S’、‘A’、‘D’四个键来控制一个“小球”向上,下,左,右移动,目的就是让这个“小球”从起…

【0基础学Java第十课】-- 认识String类

10. 认识String类 10.1 String类的重要性10.2 常用方法10.2.1 字符串构造10.2.2 String对象的比较10.2.3 字符串查找10.2.4 转化10.2.5 字符串替换10.2.6 字符串拆分10.2.7 字符串截取10.2.8 字符串的不可变性10.2.9 字符串修改 10.3 StringBuilder和StringBuffer10.3.1 String…

制作翻页电子相册,这个工具你必须了解!

电子相册作为一种很有纪念意义的载体,无论是生日、旅行、结婚、毕业纪念等等,可以应用在很多场合当中,如何制作呢? 而对于不会制作电子相册的人来说,使用套用模板是最直接快速的方式了。所以,推荐大家使用…