当前位置: 首页 > news >正文

目标检测——PP-YOLOE-R算法解读

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算法解读
  • PP-YOLOE-R算法解读

YOLO系列算法解读:

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

文章目录

  • 1、算法概述
  • 2、PP-YOLOE-R细节
  • 3、实验


PP-YOLOE-R(2022.11.4)

论文:PP-YOLOE-R: An Efficient Anchor-Free Rotated Object Detector
作者:Xinxin Wang, Guanzhong Wang, Qingqing Dang, Yi Liu, Xiaoguang Hu, Dianhai Yu
链接:https://arxiv.org/abs/2211.02386
代码:https://github.com/PaddlePaddle/PaddleDetection


1、算法概述

面向任意方向的目标检测是航拍场景、遥感图像和文本视觉场景中的一项基本任务。作者基于PP-YOLOE检测算法提出高效无锚框旋转目标检测器PP-YOLOE-R。作者在PP-YOLOE-R中引入了一套有用的技巧来提高检测精度,并减少了额外的参数和计算成本。结果表明,通过单尺度训练和测试,PP-YOLOE-R-l和PP-YOLOE-R-x在DOTA1.0数据集上的mAP分别达到78.14%和78.28%,优于几乎所有其他旋转目标检测器。通过多尺度训练和测试,PP-YOLOE-R-l和PP-YOLOE-R-x进一步提高了检测精度,分别达到80.02%和80.73%mAP。在这种情况下,PP-YOLOE-R-x超越了所有无锚点的方法,与目前最先进的基于锚点的两阶段模型相比,也非常具有竞争力。此外,PP-YOLOER具有部署友好性,PP-YOLOE-R-s/m/l/x在RTX 2080 Ti上使用TensorRT和fp16精度分别可以达到69.8/55.1/48.3/37.1 FPS,可以看出这个推理速度是满足实时性要求的。
在这里插入图片描述


2、PP-YOLOE-R细节

PP-YOLOE-R基于PP-YOLOE改进而来,和PP-YOLOE网络结构非常相似,其网络结构图如下所示:
在这里插入图片描述
图中画红框的就是PP-YOLOE-R新增的角度预测头分支,除此之外,backbone,neck,及剩余head部分结构一模一样。
相对于PP-YOLOE,PP-YOLOE-R主要做了4点改进:

  • 1、借鉴FCOSR[1]的方式也引入了ProbIoU loss[2]作为回归损失以避免边界不连续问题。
  • 2、改进任务一致性学习(Task Alignment Learning, TAL)以适配旋转目标检测算法。
  • 3、设计了一个解耦的角度预测头,通过DFL损失直接学习角度的一般分布,以获得更准确的角度预测。
  • 4、对重新参数化机制做了一些修改,增加了一个可学习的门控单元来控制来自前一层的信息量。

做的改进:
Baseline:添加FCOSR的标签分配策略和引入ProbIoU损失作为回归损失到PP-YOLOE中作为实验baseline;其backbone与neck部分和PP-YOLOE保持一样,但是head中的回归分支被调整为预测旋转矩形框5个值,即(x,y,w,h,θ),单尺度训练和测试情况下,baseline能在DOTA1.0数据集上达到75.61%mAP。
改进地方及其消融实验结果如下:
在这里插入图片描述

Rotated Task Alignment Learning: 任务一致性学习由任务对齐的标签分配和任务对齐的损失组成。任务对齐标签分配构建了一个任务对齐度量,用来从候选锚点中选择正样本;当候选锚点坐标落在任何gt真值框中,就可以根据这个对齐度量判定是否属于正样本。其计算公式如下:
在这里插入图片描述
这里s代表预测类别分数,u代表预测框和gt框的IoU大小。
在带旋转的任务一致性学习(Rotated Task Alignment Learning)中,候选锚点的选取过程则利用了gt真值边界框及其锚点的几何特性,采用预测值与gt真值边界框的SkewIoU值作为u。经过如上改变就可将任务对齐的标签分配策略应用在旋转框检测任务中。对于TAL的另一部分,任务对齐的损失,作者没有做出改变,经过上述改变后,mAP提升至77.24%。

Decoupled Angle Prediction Head: 大多数旋转目标检测算法都是在回归分支中预测5个参数(x,y,w,h,θ)用来预测带旋转的矩形框。这里作者假设了θ可能和其他4个坐标需要不同的特征,所以作者设计了另外的一个角度预测分支。这个改进措施给模型带来0.54%mAP的提升。

Angle Prediction with DFL: ProbIoU损失作为回归损失是通过联合优化(x,y,w,h,θ)这5个参数,为了计算ProbIoU损失,旋转矩形框被转换到高斯矩形框(Gaussian bounding box)。当旋转矩形框大致为正方形时,由于高斯矩形框中的方向是继承自椭圆表示,因此无法确定旋转矩形框的方向。为了克服这个问题,作者引入了Distribution Focal Loss(DFL)来预测角度。DFL的目的是学习角度的一般分布。在本文中,作者离散了角度值,用等间隔角度w来切分,预测角度值θ可表示为:
在这里插入图片描述
Pi代表角度落在第i个间隔的可能性,本文的旋转矩形框遵从OpenCV的定义,w设置为π/180。通过在角度预测时引入DFL,mAP提升了0.23%。

Learnable Gating Unit for RepVGG: RepVGG提出了一个由3x3卷积、1x1卷积和一个shortcut路径组成的多分支架构。其训练阶段的信息流可表示为:
在这里插入图片描述
其中f(x)代表3x3卷积,g(x)代表1x1卷积。在推理过程中,将该体系结构重新参数化为等效的3x3卷积。虽然RepVGG相当于卷积层,但在训练过程中使用的RepVGG多分支架构可以使得训练收敛效果更好,这得益于多分支结构引入了有用的先验知识。受此启发,作者在RepVGG中引入了一个可学习的门控单元来控制来自前一层的信息量。本设计主要针对微小物体或密集物体,自适应融合不同感受野的特征,可表述如下:
在这里插入图片描述
其中α1和α2是可学习参数,在PP-YOLOE的网络结构RepResBlock中,没有使用shortcut连接,所以这里RepResBlock只有一个参数α1,在推理过程中,可学习参数可以随着卷积层的变化而重新参数化,这样既不会改变参数的速度,也不会改变参数的数量。通过引入这个改变,mAP提升0.13%。

ProbIoU Loss: 在ProbIoU损失中,使用两个高斯分布的Bhattacharyya系数来度量两个旋转边界盒的相似度。但是GWD、KLD、KFIoU也能度量高斯矩形框的相似性。作者拿KLD Loss和ProbIoU Loss做对比,证明ProbIoU Loss确实更合适,如下:
在这里插入图片描述


3、实验

PP-YOLOE-R在DOTA1.0数据集上与现如今先进的旋转框检测算法对比情况如下表所示:
在这里插入图片描述
从表中结果可以看出,PP-YOLOE-R是具有高精度、实时性高,参数少,计算成本低的检测算法,优于所有无锚旋转框目标检测算法。


参考文献:
[1] Zhonghua Li, Biao Hou, Zitong Wu, Licheng Jiao, Bo Ren, and Chen Yang. Fcosr: A simple anchor-free rotated detector for aerial object detection. arXiv preprint arXiv:2111.10780, 2021. 1, 2, 3, 4, 5
[2] Jeffri M Llerena, Luis Felipe Zeni, Lucas N Kristen, and Claudio Jung. Gaussian bounding boxes and probabilistic intersection-over-union for object detection. arXiv preprint arXiv:2106.06072, 2021. 1, 2, 3, 4, 5

相关文章:

目标检测——PP-YOLOE-R算法解读

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

轻松解锁微博视频:基于Perl的下载解决方案

引言 随着微博成为中国最受欢迎的社交平台之一,其内容已经变得丰富多彩,特别是视频内容吸引了大量用户的关注。然而,尽管用户对微博上的视频内容感兴趣,但却面临着无法直接下载这些视频的难题。本文旨在介绍一个基于Perl的解决方…...

asp.net mvc 重新引导视图路径,改变视图路径

asp.net mvc 重新引导视图路径,改变视图路径 使用指定的控制器上下文和母版视图名称来查找指定的视图 通过本文学习,你可以根据该技法,去实现,站点自定义皮肤,手机站和电脑站,其他设备站点,在不…...

《优化接口设计的思路》系列:第九篇—用好缓存,让你的接口速度飞起来

一、前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农&#xff0c…...

专业130+总分410+西南交通大学924信号与系统考研经验西南交大电子信息通信工程,真题,大纲,参考书。

初试分数出来,专业课924信号与系统130,总分410,整体上发挥正常,但是还有遗憾,其实自己可以做的更好,总结一下经验,希望对大家有所帮助。专业课:(130) 西南交…...

MySQL数据库 - 存储引擎

一. mysql 存储引擎的相关知识 1.1 存储引擎的概念 MySQL中的数据用各种不下同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎。存储引擎是My…...

时序预测 | Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时间序列预测

时序预测 | Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab基于BiTCN-LSTM双向时间卷积长短期记忆神经网络时…...

Spring Cloud Alibaba Sentinel 使用详解

一、Sentinel 介绍 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景: Sentinel 承接了阿里巴…...

android gdb 调试

gdbgdbserver远程调试技术(一)——调试环境搭建_gdbserver 远程调试-CSDN博客 GDB/gdbserver 7.4.1 for Android with NEON support (gnutoolchains.com) sudo apt-get install texinfo$ tar zxvf gdb-7.12.tar.gz $ cd gdb-7.12/$ mkdir build$ cd bu…...

分布式搜索引擎elasticsearch专栏二

上一篇的传送门: 分布式搜索引擎elasticsearch专栏一-CSDN博客 这一篇博文主要讲解elasticsearch的数据搜索功能。下面会分别使用DSL和RestClient实现搜索。 1.DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1.DSL查询分类 Elasticsea…...

LeetCode第一天(495.提莫攻击)

题目: 在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。 当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。 正式地讲,提…...

SQL运维_Unix下MySQL-8.0.18配置文件示例

SQL运维_Unix下MySQL-8.0.18配置文件示例 MySQL 是一个关系型数据库管理系统, 由瑞典 MySQL AB 公司开发, 属于 Oracle 旗下产品。 MySQL 是最流行的关系型数据库管理系统之一, 在 WEB 应用方面, MySQL 是最好的 RDBMS (Relational Database Management System, 关系数据库管…...

python_BeautifulSoup爬取汽车评论数据

爬取的网站: 完整代码在文章末尾 https://koubei.16888.com/57233/0-0-0-2 使用方法: from bs4 import BeautifulSoup 拿到html后使用find_all()拿到文本数据,下图可见,数据标签为: content_text soup.find_all…...

24.2 SpringCloud电商进阶开发

24.2 SpringCloud电商进阶开发 1. 定时任务1.1 使用场景1.2 CRON表达式1.3 代码实战2. 线程池和ThreadLocal应用2.1 线程池1. 配置2. 应用3. Zuul安全性增强(重要)3.1 屏蔽接口转发3.2 异常统一处理4. SpringCloud Gateway网关4.1 Gateway创建基本架构1. 依赖</...

ES6—Module 的语法

export命令 ES6 模块的设计思想是尽量的静态化&#xff0c;使得编译时就能确定模块的依赖关系&#xff0c;以及输入和输出的变量。 模块功能主要由两个命令构成&#xff1a;export和import。export命令用于规定模块的对外接口&#xff0c;import命令用于输入其他模块提供的功…...

GitHub gpg体验

文档 实践 生成新 GPG 密钥 gpg --full-generate-key查看本地GPG列表 gpg --list-keys关联GPG公钥与Github账户 gpg --armor --export {key_id}GPG私钥对Git commit进行签名 git config --local user.signingkey {key_id} # git config --global user.signingkey {key_id} git…...

鸿蒙一次开发,多端部署(十一)交互归一

对于不同类型的智能设备&#xff0c;用户可能有不同的交互方式&#xff0c;如通过触摸屏、鼠标、触控板等。如果针对不同的交互方式单独做适配&#xff0c;会增加开发工作量同时产生大量重复代码。为解决这一问题&#xff0c;我们统一了各种交互方式的API&#xff0c;即实现了交…...

基于python+vue文学名著分享系统的设计与实现flask-django-nodejs-php

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的文学名著分享系统。当前的信息管理存在工作效率…...

[音视频学习笔记]七、自制音视频播放器Part2 - VS + Qt +FFmpeg 写一个简单的视频播放器

前言 话不多说&#xff0c;重走霄骅登神路 前一篇文章 [音视频学习笔记]六、自制音视频播放器Part1 -新版本ffmpeg&#xff0c;Qt VS2022&#xff0c;都什么年代了还在写传统播放器&#xff1f; 本文相关代码仓库&#xff1a; MediaPlay-FFmpeg - Public 转载雷神的两个流程…...

LeetCode每日一题——x 的平方根

x 的平方根OJ链接&#xff1a;69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; 乍一看题目只需要算一个数的平方根&#xff0c;根据我们之前学的C语言我们能很快的想到使用sqrt&#xff0c;pow这类的<math.h>库函数&#xf…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

Python Einops库:深度学习中的张量操作革命

Einops&#xff08;爱因斯坦操作库&#xff09;就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库&#xff0c;用类似自然语言的表达式替代了晦涩的API调用&#xff0c;彻底改变了深度学习工程…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架&#xff0c;实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

基于Python的气象数据分析及可视化研究

目录 一.&#x1f981;前言二.&#x1f981;开源代码与组件使用情况说明三.&#x1f981;核心功能1. ✅算法设计2. ✅PyEcharts库3. ✅Flask框架4. ✅爬虫5. ✅部署项目 四.&#x1f981;演示效果1. 管理员模块1.1 用户管理 2. 用户模块2.1 登录系统2.2 查看实时数据2.3 查看天…...

GB/T 43887-2024 核级柔性石墨板材检测

核级柔性石墨板材是指以可膨胀石墨为原料、未经改性和增强、用于核工业的核级柔性石墨板材。 GB/T 43887-2024核级柔性石墨板材检测检测指标&#xff1a; 测试项目 测试标准 外观 GB/T 43887 尺寸偏差 GB/T 43887 化学成分 GB/T 43887 密度偏差 GB/T 43887 拉伸强度…...

break 语句和 continue 语句

break语句和continue语句都具有跳转作用&#xff0c;可以让代码不按既有的顺序执行 break break语句用于跳出代码块或循环 1 2 3 4 5 6 for (var i 0; i < 5; i) { if (i 3){ break; } console.log(i); } continue continue语句用于立即终…...

从数据报表到决策大脑:AI重构电商决策链条

在传统电商运营中&#xff0c;决策链条往往止步于“数据报表层”&#xff1a;BI工具整合历史数据&#xff0c;生成滞后一周甚至更久的销售分析&#xff0c;运营团队凭经验预判需求。当爆款突然断货、促销库存积压时&#xff0c;企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…...

大模型的LoRa通讯详解与实现教程

一、LoRa通讯技术概述 LoRa(Long Range)是一种低功耗广域网(LPWAN)通信技术,由Semtech公司开发,特别适合于物联网设备的长距离、低功耗通信需求。LoRa技术基于扩频调制技术,能够在保持低功耗的同时实现数公里甚至数十公里的通信距离。 LoRa的主要特点 长距离通信:在城…...