【目标检测】——Gold-YOLO为啥能超过YOLOV8

news2024/12/27 11:33:22

华为
https://arxiv.org/pdf/2309.11331.pdf
文章的出发点:FPN中的信息传输问题

1. 简介

基于全局信息融合的概念,提出了一种新的收集和分发机制(GD),用于在YOLO中进行有效的信息交换。通过全局融合多层特征并将全局信息注入到更高的层次,显著增强了NECK的信息融合能力,提高了模型在不同对象大小上的性能。具体来说,GD机制包括两个分支:一个浅层收集和分发分支和一个深层收集和分发分支,它们通过卷积基础块和注意力基础块提取和融合特征信息。为了进一步促进信息流动,我们引入了一个轻量级的相邻层融合模块,它在局部范围内结合了来自相邻层的特征。我们的Gold-YOLO架构超越了现有的YOLO系列,有效地展示了我们提出的方法的有效性。

为了进一步提高模型的准确性,我们还引入了一种预训练方法,我们使用MAE方法在ImageNet 1K上预训练模型的主干网络,这显著提高了模型的收敛速度和准确性。例如,我们的Gold-YOLO-S经过预训练后,实现了46.4%的AP,超过了之前的SOTA YOLOv6-3.0-S的45.0%的AP,同时速度相似。

2. method

现有Neck的问题
传统上,不同层次的特征携带了关于各种大小对象的位置信息。较大的特征包含了较小对象的低维纹理细节和位置。相反,较小的特征包含了较大对象的高维信息和位置。特征金字塔网络(FPN)的原始思想是,这些不同的信息可以通过相互协助来提高网络性能。FPN提供了一种有效的架构设计,通过跨尺度连接和信息交换来融合多尺度特征,从而提高了对各种大小对象的检测精度。

基于FPN,路径聚合网络(PANet)引入了一个自下而上的路径,使得不同层次之间的信息融合更为充分。类似地,EfficientDet提出了一种新的可重复模块(BiFPN),以提高不同层次之间信息融合的效率。M2Det引入了一个具有U形和特征融合模块的高效MLFPN架构。Ping-Yang Chen通过双向融合模块改进了深层和浅层之间的交互。与这些层间工作不同,[35]使用集中特征金字塔(CFP)方法探索了单个特征信息。此外,[51]扩展了FPN,使用渐近特征金字塔网络(AFPN)进行非相邻层之间的交互。

YOLO系列的颈部结构,如图3所示,采用了传统的FPN结构,该结构包含多个分支用于多尺度特征融合。然而,它只能完全融合来自相邻层次的特征,对于其他层次的信息,只能通过“递归”方式间接获取。在图3中,展示了传统FPN的信息融合结构:其中现有的level-1、2和3从上到下排列。FPN用于不同层次之间的融合。当level-1从其他两个层次获取信息时,有两种不同的情况:

1. 如果第一层(level-1)想要使用来自第二层(level-2)的信息,它可以直接获取并融合这些信息。
2. 如果第一层想要使用来自第三层(level-3)的信息,它需要递归地调用相邻层的信息融合模块。具体来说,必须先融合第二层和第三层的信息,然后第一层可以通过结合第二层的信息间接获取第三层的信息。

这种方法是为了解决在传统的特征金字塔网络(FPN)结构中存在的信息传输问题。在FPN中,当需要跨层级融合信息时(例如,将level-1和level-3进行融合),传统的FPN结构无法无损地传输信息,这阻碍了YOLOs更好地进行信息融合。因此,作者提出了一种新的收集和分发机制(GD),通过全局融合多尺度特征并将全局信息注入到更高的层次,显著增强了脖子的信息融合能力,提高了模型在不同对象大小上的性能

在这里插入图片描述
收集和分发过程对应于三个模块:特征对齐模块(FAM),信息融合模块(IFM)和信息注入模块(Inject)

收集过程涉及两个步骤。首先,FAM从各个层次收集并对齐特征。其次,IFM融合对齐的特征以生成全局信息。
在从收集过程中获取融合的全局信息后,注入模块将此信息分发到每个层次并使用简单的注意力操作注入,从而增强分支的检测能力。 为了增强模型检测不同大小对象的能力,我们开发了两个分支:低阶收集和分发分支(Low-GD)和高阶收集和分发分支(High-GD)。这些分支分别提取和融合大尺寸和小尺寸的特征图。

网络结构
在这里插入图片描述

2.1 low-stage gather-and-distribute branch

分为:对齐,融合,注入三步
在这里插入图片描述

  • 用PSP对齐不同尺度的特征
  • 再用conv,RepConv进行特征融合
  • 最后用split分类两个特征用于同B3,B4融合
  • 注入:采用注意力机制。具体的实现:
    在这里插入图片描述

2.2 High-stage gather-and-distribute branch

在这里插入图片描述

  • 特征融合用transformer来做了。

2.3 增强的特征插入模块

在这里插入图片描述
不用原始的特征,而是用多尺度融合后的特征。

2.4 MIM预训练

采用Spark的预训练方式。在ImageNet 1K上预训练了我们模型的主干网络,用于多个Gold-YOLO模型,并取得了显著的改进。

3 实验

3.1 Low-GD, High-GD模块作用

在这里插入图片描述
1:说明了Low-GD,低层特征对小目标的作用
2:说明High-GD, 高层特征对大目标的作用

3.2 预训练MIM的作用

采用预训练之后能带来1个点左右的提升
在这里插入图片描述

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

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

相关文章

AIGC玩转卡通化技术实践

FaceChain写真开源项目插播: 最新 FaceChain支持多人合照写真、上百种单人写真风格,项目信息汇总:ModelScope 魔搭社区 。 github开源直达(觉得有趣的点个star哈。):https://github.com/modelscope/…

护眼灯显色指数应达多少?眼科医生推荐灯光显色指数多少合适

台灯的显色指数是其非常重要的指标,它可以表示灯光照射到物体身上,物体颜色的真实程度,一般用平均显色指数Ra来表示,Ra值越高,灯光显色能力越强。常见的台灯显色指数最低要求一般是在Ra80以上即可,比较好的…

Spring进阶(AOP的应用)—— 动态代理AOP后controller层的private方法访问失效的问题

前言 动态代理,面向切面编程AOP(Aspect Oriented Programming)作为spring中的一个重点和难点,需要不断深入理解,并且在项目中学习如何灵活应用。 本篇博客介绍动态代理AOP在实际应用中遇到的private方法访问失效的问…

亚马逊电动玩具UL696的测试报告办理

在亚马逊平台销售的电子产品,要符合指定的标准,如果不合格很容易发生起火,爆炸等危及消费者生命财产的安全,因此很多客户因为缺少UL报告,导致产品被下架,销售权被移除等问题,也少不了同行之间的…

leetCode 63.不同路径II 动态规划 + 空间复杂度优化 一维dp

63. 不同路径 II - 力扣(LeetCode) 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”&…

.NET Core nuget 组件的安装、更新、卸载

上面的 NuGet\ 是可以省略的。 更新 Update-Package xxx 卸载 Uninstall-Package xxx Uninstall-Package Newtonsoft.Json

400G QSFP-DD FR4 与 400G QSFP-DD FR8光模块:哪个更适合您的网络需求?

QSFP-DD 光模块随着光通信市场规模的不断增长已成为400G市场中客户需求量最高的产品。其中400G QSFP-DD FR4和400G QSFP-DD FR8光模块都是针对波分中距离传输(2km)的解决方案,它们之间有什么不同?应该如何选择应用?飞速…

SpringBoot 学习(二)配置

2. SpringBoot 配置 2.1 配置文件类型 配置文件用于修改 SpringBoot 的默认配置。 2.1.1 properties 文件 **properties ** 是属性文件后缀。 文件名:application.properties 只能保存键值对。 基础语法:keyvalue namewhy注入配置类 Component //…

Java基于SpringBoot的民宿管理系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 开发环境:后端:前端:数据库: 系统架构&#xff1a…

Vue computed计算属性购物车实例

效果演示 对于computed的计算属性可以通过这个购物车例子来了解&#xff0c;笔者最近很是疲累&#xff0c;真的不想过多解释了&#xff0c;还请读者自行看代码研究。 参考代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"U…

数据库管理-第107期 Relocating PDB(20230927)

数据库管理-第107期 Relocating PDB&#xff08;20230927&#xff09; 在我长期的blog生涯&#xff0c;当需要迁移PDB的时候&#xff0c;出现了几种方式&#xff0c;基本上就是在线克隆或者datapump&#xff0c;然而这两种方式都需要一定的停机时间。在数据库版本一致的情况下…

Redis 数据类型底层原理

String 内部编码有三种&#xff1a;int、embstr、raw int&#xff1a;如果一个字符串对象保存的是整数值&#xff0c;并且这个整数值可以用 long类型来表示(不超过 long 的表示范围&#xff0c;如果超过了 long 的表示范围&#xff0c;那么按照存储字符串的编码来存储&#xf…

notepad++配置python2环境

&#xff08;1&#xff09;python2版本下载&#xff1a;Index of /ftp/python/2.7.8/https://www.python.org/ftp/python/2.7.8/ &#xff08;2&#xff09; 配置notepad环境 1.打开Notepad&#xff0c;点击“插件”-“插件管理器”&#xff0c;在“可用”选项卡中&#xff0c…

使用Process Monitor工具探测日志文件是程序哪个模块生成的

目录 1、问题描述 2、使用Process Monitor监测目标文件是哪个模块生成的思路说明 3、操作Process Monitor监测日志文件是哪个模块生成的 4、通过screenctach.dll库的时间戳&#xff0c;找到其pdb文件&#xff0c;然后去查看详细的函数调用堆栈 5、最后 VC常用功能开发汇总…

C++编程入门与提高:学习策略与技巧

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 摘要&#xff1a;C是一门…

淘宝商品sku信息抓取接口api

在电商行业中&#xff0c;SKU是一个经常被使用的术语&#xff0c;但是对于很多人来说&#xff0c;这个词可能还比较陌生。在这篇文章中&#xff0c;我们将详细解释什么是SKU&#xff0c;以及在电商业务中它的作用和意义。 什么是SKU&#xff1f; SKU是“Stock Keeping Unit”…

Ubuntu 20.04编译GPMP2过程记录

前言 GPMP2是董靖博士等人在16-17年提出的结合GTSAM因子图框架与Gaussian Processes完成motion planning的一项工作。前身源于Barfoot教授的课题组提出的STEAM(Simultaneous Trajectory Estimation and Mapping)问题及其相关工作。在提出董靖博士提出GPMP2后&#xff0c;borgl…

1400*B. Two Buttons(BFS)

解析&#xff1a; 每次一个点有两种情况&#xff0c;-1 和 *2 两种情况&#xff0c;直接 BFS 即可。 #include<bits/stdc.h> using namespace std; const int N2e55; int n,m,vis[N],cnt[N]; void bfs(){queue<int>q;vis[n]1;q.push(n);while(q.size()){auto tq.f…

使用低代码实现一个表单页面 ------ XinBuilder

平台介绍 如果你不是一个前端开发&#xff0c;但是想要实现出一个前端页面。 那么就可以通过低代码的方式&#xff0c;拖拽和配置出你想要的页面。 而XinBuilder就是简单的一套低代码平台&#xff0c;你可以在上面拖拽出自己想要使用的组件并进行配置。使用方式也很简单。 这…

13. ShardingSphere-Proxy 数据库代理

Spring Cloud 微服务系列文章&#xff0c;点击上方合集↑ 1. 简介 ShardingSphere-Proxy是ShardingSphere分布式数据库中间件的一部分&#xff0c;它提供了数据库代理功能。通过引入ShardingSphere-Proxy&#xff0c;可以在无需改动应用程序代码的情况下&#xff0c;实现分库…