目标检测——PP-YOLOv2算法解读

PP-YOLO系列,均是基于百度自研PaddlePaddle深度学习框架发布的算法,2020年基于YOLOv3改进发布PP-YOLO,2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet,2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列,所以放一起解读,方便对比前后改进地方。


PP-YOLO系列算法解读:

  • PP-YOLO算法解读
  • PP-YOLOv2算法解读
  • PP-PicoDet算法解读
  • PP-YOLOE算法解读

YOLO系列算法解读:

  • YOLOv1通俗易懂版解读
  • SSD算法解读
  • YOLOv2算法解读
  • YOLOv3算法解读
  • YOLOv4算法解读
  • YOLOv5算法解读

文章目录

  • 1、算法概述
  • 2、PP-YOLOv2细节
  • 3、实验
    • 3.1 消融实验
    • 3.2 与其他检测算法比较
    • 3.3 不起作用的trick


PP-YOLOv2(2021.4.21)

论文:PP-YOLOv2: A Practical Object Detector
作者:Xin Huang, Xinxin Wang, Wenyu Lv, Xiaying Bai, Xiang Long, Kaipeng Deng, Qingqing Dang, Shumin Han, Qiwen Liu, Xiaoguang Hu, Dianhai Yu, Yanjun Ma, Osamu Yoshie
链接:https://arxiv.org/abs/2104.10419
代码:https://github.com/PaddlePaddle/PaddleDetection


1、算法概述

基于现有的改进trick,在保持推理时间基本不变的情况下,尽量提升PP-YOLO的mAP指标。通过结合多种有效的改进,作者将PP-YOLO在COCO2017test-dev数据集中的性能从45.9%mAP提高到49.5%mAP。PP-YOLOv2在640x640输入尺寸下运行速率为68.9FPS。如果将模型转换为TensorRT并且以FP16的推理精度在batchsize为1的情况下,推理速度可以提升至106.5FPS,远远超越了相同参数量下的YOLOv4-CSP和YOLOv5l。另外,如果用ResNet101作为PP-YOLOv2的主干网络,在COCO2017test-dev集上的mAP可达到50.3%mAP。和其他算法mAP及FPS指标对比如图:
在这里插入图片描述


2、PP-YOLOv2细节

论文通篇看下来改进的地方不多,都是借助现有trick在PP-YOLO基础上改,主要改的地方还是集中在Neck和head部分,直接看网络结构图:
在这里插入图片描述
改进的地方如下:

  • Path Aggregation Network: 直接翻译叫路径增强网络,用于加强不同层特征图进行融合。PP-YOLO中neck部分仅仅使用了FPN,特征融合还不够,现在增强特征金字塔融合的子网络有很多,比如:BiFPN,PAN,RFP等等;参考YOLOv4,PP-YOLOv2也在neck部分使用了PAN。
  • Mish Activation Function: YOLOv4和YOLOv5中都使用了Mish激活函数用于提升检测器的性能,但是它们是在主干网络中使用的。我们为了保持强大的主干预训练模型不变,所以只在neck部分使用mish激活函数。
  • Larger Input Size: 输入尺寸由608变到768,多尺度训练变换集为[320,352,384,…,704,736,768]
  • IoU Aware Branch: 改进IoU感知分支的损失计算方式,PP-YOLO是以软权重方式计算,这里改为以软标签形式计算损失:
    在这里插入图片描述
    其中t代表anchor和匹配到的gt框的IoU大小,p是IoU感知分支的预测输出,σ代表sigmoid激活函数。注意这里只有正样本的anchor才参与损失的计算。通过这个改进,IoU感知分支比上一个版本工作得更好。

3、实验

3.1 消融实验

同PP-YOLO一样,作者对如上改进实验做了消融实验以得到改进措施对应提升多少mAP,实验结果如下:
在这里插入图片描述
从表中可以看出,提升最大的还是从A->B,增加neck部分的特征融合及改进激活函数,直接提升2%mAP;虽然增加收入尺寸可以提升少许mAP,但这是以减少FPS为代价的;改进IoU感知分支在不影响推理速度的情况下也可以直接带来近1%mAP的提升。

3.2 与其他检测算法比较

PP-YOLOv2与现如今最新检测算法在COCO数据集上的mAP比较如下表所示。
在这里插入图片描述
从表中可以看出,PP-YOLOv2和YOLOv4、YOLOv5比较,相近FPS情况下,mAP都好于后者。

3.3 不起作用的trick

  • Cosine Learning Rate Decay: 由于余弦学习率衰减策略对初始学习率、预热步数和结束学习率等超参数敏感,所以作者没有采用这种方式。
  • Backbone Parameter Freezing: 在对下游任务的ImageNet预训练参数进行微调时,通常在前两个阶段冻结参数。作者在COCO minitrain数据集上确实提升了1%mAP,但在COCOtrain2017上下降了0.8%mAP,所以作者最终没有冻结训练backbone参数。
  • SiLU激活函数: 在neck部分采用SiLU激活函数会不如Mish激活函数。

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

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

相关文章

面向未来的前沿人工智能监管

策制定者应该为未来十年人工智能系统更加强大的世界做好准备。这些发展可能会在人工智能科学没有根本性突破的情况下发生,只需扩展当今的技术以在更多数据和计算上训练更大的模型即可。 用于训练前沿人工智能模型的计算量在未来十年可能会显着增加。到 2020 年代末…

Linux初识环境变量

🌎环境变量【上】 文章目录: 环境变量 什么是环境变量 关于命令行参数 环境变量       简单了解       为什么需要环境变量       系统中其他环境变量 总结 前言: 环境变量是一种非常重要的概念,它们对于系统的…

springboot酒店管理系统 论文【源码】

springboot酒店管理系统开发说明 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件&#xff1…

路由器级联

目录 一、实现功能二、实现步骤2.1 接线步骤 三、效果3.1 常规连接3.2 路由器级联 一、实现功能 主路由器:可有WiFi功能,LAN口下接各设备,并接一个辅路由器辅路由器:开启WiFi功能,有线或无线下接各设备功能&#xff1…

长安链正式发布三周年,技术更迭支撑产业变革

导语: 2024年1月27日长安链正式发布三周年,开源社区借开年之际与大家一同回顾长安链三年来的技术发展历程,每一个里程碑的建设都得益于与长安链同行的合作伙伴与开发者,希望在2024年可以共同携手继往开来,为数字经济发…

深入浅出前端本地储存(1)

引言 2021 年,如果你的前端应用,需要在浏览器上保存数据,有三个主流方案: CookieWeb Storage (LocalStorage)IndexedDB 这些方案就是如今应用最广、浏览器兼容性最高的三种前端储存方案 今天这篇文章就聊一聊这三种方案的历史…

安装vcenter管理esxi

安装vcenter管理esxi虚拟化操作系统 文章目录 安装vcenter管理esxi虚拟化操作系统1.安装vcenter2.vcenter的应用 1.安装vcenter esxi虚拟机具体安装步骤请参考上一篇文章,vcenter软件包需自己到网上下 2.vcenter的应用

蚓链帮助企业对资源进行数字化整合,加速变现实现利他多赢!

​蚓链作为一种数字化资源整合的工具或平台,可以帮助企业实现数字化资源整合。在当前的数字化时代,各种信息和资源呈现出乘方式的增长。企业要想在竞争中脱颖而出,就需要对这些资源进行有效的整合和利用。蚓链通过提供一套完善的数字化解决方…

Flutter Plugin中依赖aar本地包

一、首先在项目的根目录的build.gradle中,添加如下代码 allprojects {repositories {//...flatDir {//pay_2c2p就是你的flutter plugin插件名称dirs project(:pay_2c2p).file(libs)}} }二、然后到Plugin的android目录中 ,在src目录的同级创建libs目录将…

Java安全基础 必备概念理解

Java安全基础 关键概念汇总 文章目录 Java安全基础 关键概念汇总前置知识1.构造器this以及包的使用2.继承3.重写/ 重载 / super4.多态5.区分和equals方法6.toString的使用7.Object的概念8.static,final,代码块static代码块final 9.动态代理10.类的动态加载1)类加载器含义&#…

LeetCode 热题 100 | 回溯(三)

目录 1 131. 分割回文串 2 51. N 皇后 菜鸟做题,语言是 C,感冒好了 ver. 1 131. 分割回文串 题眼:给你一个字符串 s,请你将 s 分割 成一些子串。 根据题眼可知,我们需要做的是将字符串 s 连续分割 为几段&#…

医保智慧购药:探索医保买药小程序技术开发与应用

如今,医保智慧购药成为了一种趋势,尤其是医保买药小程序的技术开发和应用,为患者提供了更加便捷、高效的医药购买体验。 医保买药小程序是一种基于手机移动终端的应用程序,它通过智能化的算法和医保系统的对接,为患者…

gPTP简介

1、gPTP(generalized precision time protocol)广义时钟同步协议 gPTP(generalized precision time protocol)广义时钟同步协议,即IEEE 802.1AS协议。它是IEEE 1588协议的延伸,可以为TSN提供全局精准…

Legacy|电脑Windows系统如何迁移到新安装的硬盘?系统迁移详细教程!

前言 前面讲了很多很多关于安装系统、重装系统的教程。但唯独没有讲到电脑换了新的硬盘之后,怎么把旧系统迁移到新的硬盘上。 今天小白就来跟各位小伙伴详细唠唠: 开始之前需要把系统迁移的条件准备好,意思就是在WinPE系统下,可…

【Linux】Linux权限详解(权限管理-目录权限-粘滞位)

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.Linux权限的概念 2.Linux权限管理 2.1 文件访问者的分类 2.2 文件类型和访问权限 ​编辑 1.文件类型 2.基本权限 2. 3 文件权…

android adb 实时画面 和操作

1. 下载 scrcpy 建议 windows10 用户 点击链接下载 不然可能会提示缺少部分 dll https://github.com/Genymobile/scrcpy/releases/download/v2.3.1/scrcpy-win32-v2.3.1.ziphttps://github.com/Genymobile/scrcpy/releases/download/v2.3.1/scrcpy-win32-v2.3.1.zip windo…

Java语言: JVM

1.1 内存管理 1.1.1 JVM内存区域 编号 名字 功能 备注 1 堆 主要用于存放新创建的对象 (所有对象都在这里分配内存) jdk1.8之后永久代被替换成为了元空间(Metaspace) 2 方法区(加、常、静、即) 被虚拟机加载的类信息(版本、字段、方法、接口…

递推算法C++

所谓递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果。其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简后确定。从已知条件出发逐步推到问题结果,此种方法叫顺推…

Linux:网络的初步认知

文章目录 网络的认知如何理解协议网络分层OSI模型TCP/IP五层(或四层)模型网络传输的基本流程协议的参与局域网通信原理 本篇将会引入到网络的话题 网络的认知 第一个问题是,网卡是文件吗?答案是显然的,在Linux下一切皆文件,基于…

大模型日报 3月14日

资讯 研究 智能体的ChatGPT时刻!DeepMind通用AI向人类玩家进化,开始理解游戏 https://mp.weixin.qq.com/s/-GNZaY9vPQJCJUD7WGTjGA 视频游戏是 AI 系统的重要试验场。与现实世界一样,游戏也是丰富的学习环境,具有反应灵敏的实…