PP-YOLOv2: A Practical Object Detector(2021.4)


文章目录

  • Abstract
  • 1. Introduction
  • 2. Revisit PP-YOLO
    • Pre-Processing
    • Baseline Model
    • Training Schedule
  • 3. Selection of Refinements
      • Path Aggregation Network
    • Mish Activation Function
    • Larger Input Size
    • IoU Aware Branch
  • 4. Experiments
  • 6. Conclusions

原文地址
源代码

Abstract

对于实际使用的目标检测器来说,有效和高效是必不可少的。为了满足这两个问题,我们综合评估了现有的改进集合,以提高PP-YOLO的性能,同时几乎保持推断时间不变。本文将分析一系列改进,并通过增量烧蚀研究来实证评估它们对最终模型性能的影响,我们尝试过但没有成功的东西也会被讨论。
通过结合多种有效的改进,我们将PP-YOLO在COCO2017测试开发中的性能从45.9% mAP提高到49.5% mAP。由于取得了显著的性能提升,我们提出了PP-YOLOv2。在速度方面,PP-YOLOv2在640x640输入尺寸下运行68.9FPS。采用TensorRT、FP16-精度和batchsize=1的桨叶推理引擎进一步提高了pp - yolov2的推理速度,达到了106.5 FPS。这样的性能超过了具有大致相同参数数量的现有目标检测器(即YOLOv4-CSP, YOLOv5l)。此外,基于ResNet101的PP-YOLOv2在COCO2017测试开发上实现了50.3%的mAP

1. Introduction

近年来,随着深度卷积神经网络(cnn)的兴起,目标检测器的性能得到了迅速提高,YOLOv3[20]仍然是工业中应用最广泛的检测器之一,YOLOv3的精度与两阶段目标探测器存在较大差距。因此,如何在保持推理速度的同时提高YOLOv3的有效性是实际应用中必不可少的问题

为了同时满足这两个问题,我们增加了一堆改进,几乎不增加推断时间,以提高PP-YOLO[16]的整体性能

实际上,这篇文章更像是一篇TECH REPORT,它告诉你如何一步一步地构建PP-YOLOv2
我们在有效性(49.5% mAP)和效率(69 FPS)之间实现了更好的平衡,超过了现有的具有大致相同参数数量的鲁棒检测器,如YOLOv4-CSP[26]和yolov5。希望我们构建PP-YOLOv2的经验可以帮助开发人员和研究人员在实际应用中实现目标检测器时进行更深入的思考

2. Revisit PP-YOLO

Pre-Processing

使用从Beta(α,β)分布中采样的权值来应用Mixup Training[27],其中α = 1.5,β = 1.5。然后,RandomColorDistortion, RandomExpand, RandCrop和RandomFlip逐个应用,概率为0.5。接下来,分别减去0.485、0.456、0.406,除以0.229、0.224、0.225,对RGB通道进行归一化。最后,从中均匀抽取输入大小 [320, 352, 384, 416, 448, 480, 512, 544, 576,608]

Baseline Model

我们的基准模型是PP-YOLO,它是YOLOv3的增强版本。具体来说,它首先将主干替换为ResNet50-vd[9]。之后,总共有10个技巧可以提高YOLOv3的性能几乎没有损失效率,如变形Conv [5], SSLD[4],协调Conv [12], Drop- Block [6], SPP[7]等。本文介绍了PP-YOLO的体系结构

Training Schedule

在COCO train2017上,使用随机梯度下降法(SGD)对网络进行500K次迭代训练,其中96张图像分布在8个gpu上。在4K迭代中,学习率从0线性增加到0.005,在迭代400K和450K时分别除以10。权重衰减设为0.0005,动量设为0.9。采用梯度裁剪来稳定训练过程

3. Selection of Refinements

Path Aggregation Network

在不同尺度上检测目标是目标检测的一个基本挑战。neck用于在所有尺度上构建高级语义特征图。在PP-YOLO中,采用FPN组成自下而上的路径,最近,人们提出了几种FPN变体来增强金字塔表示的能力。如:BiFPN[24]、PAN[14]、RFP[19]等。我们遵循PAN的设计来聚合自顶向下的信息。PAN的详细结构如图2所示

Mish Activation Function

Mish激活函数[18]在许多实际的探测器中被证明是有效的,如YOLOv4和YOLOv5。它们在骨干中采用mish激活功能。然而,我们更喜欢使用预训练的参数,因为我们有一个强大的模型,在ImageNet上达到82.4%的top-1准确率。为了保持主干不变,我们在检测颈部使用mish激活函数代替主干

Larger Input Size

增加输入大小可以扩大对象的面积。这样,小尺度物体的信息就比以前更容易保存。因此,性能将得到提高。但是,更大的输入大小占用更多的内存。为了应用这个技巧,我们需要减小批大小。更具体地说,我们将批处理大小从每个GPU 24张图像减少到每个GPU 12张图像,并将最大输入大小从608张扩展到768张。输入大小从[320,352,384,416,448,480,512,544,576,608,640,672,704,736,768]中均匀抽取

IoU Aware Branch

在PP-YOLO中, IoU aware loss是以软权重形式计算的,这与初始意图不一致。因此,我们采用软标签格式。这是 IoU aware loss

式中t为锚点与其匹配的真地边界框之间的IoU,p为IoU感知支路的原始输出,σ(·)为s型激活函数。需要注意的是,只计算阳性样本的IoU感知损失。通过替换损失函数,IoU感知分支比以前工作得更好(yolov3和pp-yolo也没见IoU aware公式呀)

4. Experiments


我们比较了批大小为1,不使用tensorRT(不使用TRT)或使用tensorRT(使用TRT)的结果。用“+”标记的结果是来自相应官方代码库的更新结果。用“*”标记的结果在我们的环境中使用官方代码和模型进行测试。“†”表示结果包括边界框解码时间(1 ~ 2ms)

6. Conclusions

本文对PP- yolo进行了一些改进,形成了高性能的目标检测器PP- YOLOv2。PP-YOLOv2比其他著名的探测器(如YOLOv4和YOLOv5)在速度和精度之间取得了更好的平衡。在本文中,我们探索了一些技巧,并展示了如何将这些技巧结合在PP- YOLO检测器上,并证明了它们的有效性。此外,有了PaddlePaddle的官方支持,模型开发和生产部署之间的差距缩小了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STC89C52+HX711完成电子秤设计

一、项目背景 电子秤是一种通过传感器测量物体质量的设备,被广泛应用于商业和工业领域。传统的机械秤已经逐渐被电子秤取代,因为电子秤具有更高的精度、更方便的使用和更多的功能。 本项目利用STC89C52单片机和HX711模块完成电子秤设计,具有…

基于猕猴感觉运动皮层的神经元运动调制分析

公开数据集中文版详细描述参考前文:https://editor.csdn.net/md/?not_checkout1&spm1011.2124.3001.6192神经元Spike信号分析参考前文:https://blog.csdn.net/qq_43811536/article/details/134359566?spm1001.2014.3001.5501 目录 0. 公开数据集1.…

如何选择正确的SSL证书?

SSL证书已经成为网站安全管理的重要部分,但是市场上SSL证书种类繁多,很多新手在初次购买时都会感到困惑。下面我们就一起来看看如何快速地选择正确的SSL证书。 第一步:明确SSL证书的主要分类 SSL证书主要有三种类型:单域名证书、…

解决LX音乐切换音乐来源失败问题

之前免费听歌神器落雪音乐不能用了,原因懂得都懂 LX音乐Github链接 可以通过切换音乐来源进行解决 一、下载自定义音源文件 免费下载链接 下载一 百度网盘:1o7v 下载二 CSDN资源:自定义音源 全部音源文件来源 蓝奏云:8mno 下…

MDM如何配置数据审批功能

MDM基础数据平台是进行清洗和治理企业的主数据,使企业的主数据具有唯一性、准确性、一致性、及时性,通过主数据数据清洗功能将错误数据和重复数据进行清洗,从而保证企业数据能够做到以上那几点,然后再分发至下游系统,使…

超声波清洗机的工作原理是什么样的?值得入手的超声波清洗机推荐

超声波清洗机最常见的应该是在眼镜店了吧,眼镜店用来清洗眼镜频率非常高的!超声波清洗机在清洁方面也是非常快速、高效的!像眼镜党配戴眼镜脏的第一时间就会想到去眼镜店清洗,但也有很多朋友是随便清洗一下就了事了,其…

基于vue 2.0的H5页面中使用H5自带的定位,高德地图定位,搜索周边商户,覆盖物标记,定位到当前城市

基于vue的H5页面中使用高德地图定位&#xff0c;搜索周边商户&#xff0c;覆盖物标记 首先安装高德地图插件 npm i amap/amap-jsapi-loader --save地图承载容器 <template><div id"container"></div> </template>地图容器样式 <style…

关于跨域问题的个人理解

我也工作蛮多年了&#xff0c;期间既做过前端也做过后端。对于跨域问题&#xff0c;究竟是由前端程序员还是后端程序员来解决&#xff0c;我在不同的时期有不同的理解。现在&#xff0c;我更倾向于认为跨域问题应该由前端程序员来解决&#xff0c;即使在解决跨域问题的过程中涉…

全志R128基础组件开发指南——图像采集

图像采集 CSI&#xff08;DVP&#xff09; 图像采集 SENSOR -> CSI 通路 CSI &#xff08;CMOS sensor interface&#xff09;接口时序上可支持独立 SYNC 和嵌入 SYNC(CCIR656)。支持接收 YUV422 或 YUV420 数据。 VSYNC 和HSYNC 的有效电平可以是正极性&#xff0c;也可…

计算机网络之物理层

物理层 1. 物理层的基本概念 2.物理层下面的传输媒体 传输媒体可分为两类&#xff0c;一类是导引型传输媒体&#xff0c;另一类是非导引型传输媒体。 3.传输方式 3.1 串行传输和并行传输 串行传输&#xff1a;串行传输是指数据是一个比特依次发送的&#xff0c;因此在发送端…

如何使用Servlet写一个简单的网站

文章目录 前言1. 创建项目2. 引入依赖3. 创建目录4. 编写代码5. 打包程序6. 部署7.验证程序将 tomcat 集成到 idea 中 前言 前面我们学习了Java中常用的 HTTP 服务器 tomcat 的安装和使用&#xff0c;那么今天我们将使用这个 HTTP 服务器为大家写一个简单的网站&#xff0c;这…

AI技术如何融合应用于工业物联网

人工智能技术在近年来得到飞跃性地发展&#xff0c;在自主识别、分析、判断、规划等功能方面都进步显著&#xff0c;也已经应用于越来越多的行业产业。 在工业物联网领域&#xff0c;人工智能也将成为一大助力&#xff0c;通过与工业物联网系统集成融合&#xff0c;能够为工业…

Word多出一页空白页删不掉?这5个方法要记好!

“我在用Word编写文档时经常会遇到一个问题&#xff0c;文档排版都完成了&#xff0c;但是总会有一个空白页是无法删掉的&#xff0c;怎么解决这个问题呢&#xff1f;请大家帮帮我&#xff01;” 在使用Word编辑文档时&#xff0c;可能很多用户有时都会遇到一个常见问题&#x…

小型洗衣机哪个牌子质量好?性价比高的迷你洗衣机推荐

这两年内衣洗衣机可以称得上较火的小电器&#xff0c;小小的身躯却有大大的能力&#xff0c;一键可以同时启动洗、漂、脱三种全自动为一体化功能&#xff0c;在多功能和性能的提升上&#xff0c;还可以解放我们双手的同时将衣物给清洗干净&#xff0c;让越来越多小伙伴选择一款…

vue中bus的详细使用

vue中关于兄弟组件bus的使用方法 首先&#xff0c;bus可以用在任何组件之间的传值 废话不多说&#xff0c;请看下面代码解说 首先&#xff0c;先创建bus.js文件&#xff0c;然后在引用&#xff0c;这里有两种引用方法&#xff1a;局部引用和全局引用。 // bus.js文件内容 imp…

客服易中招的3大常见职业病及缓解方法分享

1️⃣无论和谁聊天都可以“亲”~“亲亲”我也很无奈&#xff0c;但真的习惯了&#xff08;其实也不是什么病啦&#xff0c;还能让朋友觉得我性格变好了呢哈哈哈&#xff09; 2️⃣鼠标手&#xff08;腕管综合征&#xff09;其实很多上班族都有这个职业病。但由于我们客服工作属…

OpenHarmony 开发者论坛正式上线,盖楼赢惊喜好礼~

你&#xff0c;是否曾遇到 OpenHarmony 开发难题&#xff0c;却不知找谁解答&#xff1f; 你&#xff0c;是否曾想分享 OpenHarmony 技术&#xff0c;但没有一个官方投稿平台&#xff1f; 你&#xff0c;是否想加入火热的 OpenHarmony 开源项目&#xff0c;却不知如何参与和贡…

Spring 只用一招,就摆脱被垃圾回收的命运,拯救了自己

SpringBoot ApplicationContext 会被 JVM 当成垃圾对象&#xff0c;然后回收掉吗&#xff1f; 最近五阳哥在复习JVM 垃圾回收的知识&#xff0c;被别人问到这个问题&#xff0c;我心里感到一惊&#xff0c;如果Spring 被回收掉&#xff0c;Spring管理的bean全部会被回收&#…

【Proteus仿真】【Arduino单片机】HC-SR04超声波测距

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶、HC-SR04超声波传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD1602显示超声波检测距离。 二、软件设计 …

vcenter server (部署较大服务器)

作用 VMware vCenter是集中管理控制台&#xff0c;管理所有安装了VMware ESXI的主机 使用vCenter Server可以对虚拟机进行实时的监控&#xff0c;包括服务器硬件、网络和共享的存储&#xff0c;并可以进行故障诊断。 可以查看实时的统计和图表&#xff0c;监控虚拟主机和资源…