【YOLOv9】完胜V8的SOTA模型Yolov9(论文阅读笔记)

news2025/4/8 23:54:27

官方论文地址: 论文地址点击即可跳转

官方代码地址: GitCode - 开发者的代码家园

                          官方代码地址点击即可跳转

1 总述

当输入数据经过各层的特征提取和变换的时候,都会丢失一定的信息。针对这一问题:

  1. 论文中提出的可编程梯度信息(PGI)能够为目标检测任务提供完整的信息,进而计算目标函数,得到可靠的梯度信息来更新网络的权重参数。本文引入了DynamicDet架构作为设计可逆分支的基础。此外,可逆信息进一步引入到所提出的PGI中。所提出的新架构在推理过程中不需要额外的连接,因此可以完全保留速度、参数数量和准确性的优势。
  2. 论文中提出了基于梯度路径规划的新型轻量级网络结构-GELAN(Generalized Efficient Layer Aggregation Network, 广义高效层聚合网络)。GELAN优化了网络架构的参数利用率和计算效率,展现了轻巧、快速和准确的巨大优势。
  3. 论文使用GELAN改进架构,并使用所提出的PGI改进训练过程,然后得到了新一代YOLO系列对象检测系统-YOLOv9。使用MS COCO数据集进行实验,实验结果验证了提出的YOLOv9的性能相当优秀。

 接下来,我们先看看YOLOv9的表现,如下图:

从上图可以看出:基于GELAN和PGI的对象检测方法在对象检测性能方面超越了之前的所有从零开始训练的方法。在准确性方面,新的方法优于预训练的RT - DETR ,并且在参数利用率方面,它也优于基于深度卷积设计的YOLO MS。

2 信息丢失问题

在深度网络中,输入数据在前向传播过程中丢失信息的现象通常被称为信息瓶颈。目前,可以缓解这种现象的主要方法如下:

  1. 使用可逆架构:这种方法主要通过重复使用输入数据并以显式方式保持输入数据的信息。这种方法需要额外的层来组合重复输入的数据,这将显著增加推理成本。同时还存在输入数据层到输出层的路径不能太深这一限制
  2. 使用掩码建模:主要通过重构损失使用隐式方式最大化提取的特征并保留输入信息。掩码建模重构损失有时与目标损失冲突。除此之外,大多数掩码机制也会产生错误的数据关联的情况
  3. 引入深度监督概念:它使用尚未丢失太多重要信息的浅层特征,预先建立从特征到目标的映射,以确保重要信息可以传输到更深的层。但是,这种方法会产生错误累积,如果浅层监督在训练过程中丢失信息,后续层将无法检索所需信息

综上所述,上述方法在训练过程和推理过程中都有不同的缺点或问题,在困难任务和小型模型上会更加显著。

从上图可以看出:不同网络架构的随机初始权重输出特征图的可视化结果。

(a) 输入图像,(b) PlainNet,(c) ResNet,(d) CSPNet,和 (e) 本文的GELAN。从这些可视化结果中,提供给目标函数用以计算损失的信息在不同程度上有所丢失,而提议的GELAN架构能够保留最完整的信息,并为计算目标函数提供最可靠的梯度信息。这对于目标检测等任务至关重要,因为信息的完整性直接关系到网络最后预测的准确性。

3 PGI

可编程梯度信息(PGI)就是为了解决输入数据在前馈过程中丢失信息的问题而设计的。PGI机制使得轻量级模型能从辅助监督机制中受益可以应用于各种大小的深度神经网络,更为通用。

① 信息瓶颈

数据X在经过变换时可能会导致信息损失,公式如下:

解决上述问题的方法是增加模型的大小。这一方法允许即使在数据前馈过程中丢失了信息,仍有机会保留足够的信息以执行到目标的映射。上述现象解释了为什么在大多数现代模型中宽度比深度更重要。然而,上述结论不能从根本上解决非常深的神经网络中不可靠梯度的问题。

可逆函数

当函数r具有逆变换函数v的时候,称这个函数r为可逆函数,如下述公式(2)所示。

数据X通过可逆函数转换而不丢失信息,如下述公式(3)所示。当网络的转换函数由可逆函数组成时,可以获得更可靠的梯度来更新模型,如下述公式(4)所示。尝试找到r的逆变换v,以便转换后的特征可以使用稀疏特征保留足够的信息,公式(5)如下所示。信息瓶颈的公式如公式(6)所示。

轻量级模型本身处于欠参数化状态,因此在前馈阶段很容易丢失大量重要信息。因此,对轻量级模型的目标是如何从I(X;X)中准确筛选出I(Y;X)。至于完全保留X的信息,那是难以实现的。因此,本文提出一种新的深度神经网络训练方法,不仅能生成可靠的梯度来更新模型,而且也适用于浅层和轻量级神经网络。

③ PGI

PGI的目的是通过辅助可逆分支(上图中虚线框中的部分)来解决信息瓶颈问题,以便在不增加推理成本的情况下为深度网络提供更可靠的梯度。通过这种设计使得轻量级和浅层的神经网络也可以实现有效的信息保留和准确的梯度更新。

  1. 主分支:只用于推理的架构,因此不需要任何额外的推理成本。
  2. 辅助可逆分支:生成可靠的梯度,以供给主分支进行反向传播,以帮助提取正确和重要的信息,并使主分支能够获取更有效的目标任务特征。旨在处理由神经网络加深造成的信息瓶颈问题。辅助可逆分支可以在推理阶段移除
  3. 多级辅助信息:控制主分支学习可规划的多级语义信息。旨在处理由深度监督造成的误差累积问题,特别是对于具有多个预测分支的架构和轻量型模型。

4 GELAN

GELAN允许支持多种类型的计算块,这使得它可以更好地适应各种不同的计算需求和硬件约束。

5 实验

选择CSP-ELAN作为YOLOv9中GELAN的组成单元。

6 可视化

GELAN有更稳定的结果和更清晰的边界信息。

7 结论

PGI的引入使得轻量级模型和深度模型都能实现精度的显著提升。通过结合PGI和GELAN设计的YOLOv9展现了强大的竞争力。其出色的设计使得深度模型与YOLOv8相比,参数数量减少了49%,计算量减少了43%,但在MS COCO数据集上仍然实现了0.6%的AP提升。

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

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

相关文章

高颜值的B端界面,如果漂亮也有错,就让它错下去吧。

分享一波漂亮的B端界面,内行看门道,外行看热闹,不喜勿喷昂。

防止狗上沙发,写一个浏览器实时识别目标检测功能

家里有一条狗🐶,很喜欢乘人不备睡沙发🛋️,恰好最近刚搬家 狗迎来了掉毛期 不想让沙发上很多毛。所以希望能识别到狗,然后播放“gun 下去”的音频📣。 需求分析 需要一个摄像头📷 利用 chrome…

反激电源RC吸收电路设计

一、什么是RC吸收? RC吸收是指在电路设计中,尤其是在开关电源、功率电子设备以及电力电子系统中,使用电阻与电容串联组成的电路结构,用于吸收和衰减电路中由于开关元件(如MOSFET、IGBT等)的快速切换所产生的…

Blender2.83 下载地址及安装教程

Blender是一款开源的3D计算机图形软件,广泛应用于动画制作、游戏开发、建模、渲染等领域。它提供了一套强大的工具和功能,让用户能够进行三维建模、动画制作和视觉效果的创作。 Blender支持多种文件格式的导入和导出,使用户能够与其他软件进…

从汇编指令看函数调用堆栈的详细过程

我们以下述代码为例来说明函数调用堆栈的详细过程 #include<iostream>int sum(int a,int b) {int temp0;tempab;return temp; }int main() {int a10;int b20;int retsum(a,b);std::cout<<"ret:"<<ret<<std::endl;return 0; } 接下来&#…

粒子群优化算法PSO与鹈鹕优化算法(POA)求解无人机三维路径规划(MATLAB代码)

一、无人机路径规划模型介绍 二、算法介绍 close all clear clc dbstop if all error warning (off) global model model CreateModel(); % 创建模型 FF1; [Xmin,Xmax,dim,fobj] fun_info(F);%获取函数信息 pop100;%种群大小(可以自己修改) maxgen100;%最大迭代次数(可以自己…

电商数据采集的网页抓取数据、淘宝、天猫、京东等平台的电商数据抓取|电商数据API接口网页爬虫、采集网站数据

电商数据采集的网页抓取数据、淘宝、天猫、京东等平台的电商数据抓取&#xff0c;网页爬虫、采集网站数据、网页数据采集软件、python爬虫、HTM网页提取、APP数据抓包、APP数据采集、一站式网站采集技术、BI数据的数据分析、数据标注等成为大数据发展中的热门技术关键词。那么电…

以太网数据量大小字符串生成方法(可变单位)

0 前言 当我们想显示以太网数据量大小时&#xff0c;往往有个头疼的单位需要处理&#xff0c;单位取小了不一目了然&#xff0c;单位取大了精度太低。本例设计一个函数&#xff0c;将根据以太网数据量大小自动生成单位可变的字符串&#xff08;KB、MB、GB、TB、PB&#xff09;…

CSS之固定定位、相对定位、绝对定位

一、相对定位 相对元素自身所在的原来的位置进行定位&#xff0c;可以设置 left&#xff0c;right&#xff0c;top&#xff0c;bottom四个属性。 效果&#xff1a;在进行相对定位以后&#xff0c;元素原来所在的位置被保留了&#xff0c;既保留占位&#xff0c;其他元素的位置…

软件全周期检查单

1、立项阶段 2、计划阶段 3、需求阶段 4、设计阶段 5、编码集成阶段 6、测试阶段 7、交付阶段 8、结项阶段 软件全套资料包获取进主页或本文末个人名片直接获取。

Bezier曲线的绘制 matlab

式中&#xff1a; 称为基函数。 。 因为n表示次数&#xff0c;点数为n1&#xff0c;显然i表示第i个控制点。 显然在Matlab中可以同矩阵的形式来计算C(u)。 关键代码为&#xff1a; clc clear % 假设控制点P取值为&#xff1a; P [4,7;13,12;19,4;25,12;30,3]; % 因此&a…

5 个让日常编码更简单的 Python 库

今天我们一起来研究一些非常有用的第三方模块&#xff0c;可以使得我们的日常编码变得更加简单方便 sh https://github.com/amoffat/sh 如果曾经在 Python 中使用过 subprocess 库&#xff0c;那么我们很有可能对它感到失望&#xff0c;它不是最直观的库&#xff0c;可能还有些…

C语言中局部变量和全局变量是否可以重名?为什么?

可以重名 在C语言中, 局部变量指的是定义在函数内的变量, 全局变量指的是定义在函数外的变量 他们在程序中的使用方法是不同的, 当重名时, 局部变量在其所在的作用域内具有更高的优先级, 会覆盖或者说隐藏同名的全局变量 具体来说: 局部变量的生命周期只在函数内部,如果出了…

mars3d.MaterialType.Image2修改配置面状:图片2的speed数值实现动画效果说明

摘要&#xff1a; mars3d.MaterialType.Image2修改配置面状&#xff1a;图片2的speed数值实现动画效果说明 前提&#xff1a; 1.在示例中&#xff0c;尝试给mars3d.MaterialType.Image2材质的图片加上speed参数&#xff0c;实现动画效果&#xff0c;但是没有看到流动效果说明…

酷漫熊,最好用的漫画工具,资源全,支持下载,全部免费!

hi&#xff0c;大家好我是技术苟&#xff0c;每周准时上线为你带来实用黑科技&#xff01;由于公众号改版&#xff0c;现在的公众号消息已经不再按照时间顺序排送了。因此小伙伴们就很容易错过精彩内容。喜欢黑科技的小伙伴&#xff0c;可以将黑科技百科公众号设为标星&#xf…

互联网轻量级框架整合之MyBatis核心组件

在看本篇内容之前&#xff0c;最好先理解一下Hibernate和MyBatis的本质区别&#xff0c;这篇Hibernate和MyBatis使用对比实例做了实际的代码级对比&#xff0c;而MyBatis作为更适合互联网产品的持久层首选必定有必然的原因 MyBatis核心组件 MyBatis能够成为数据持久层首选框&a…

中国移动传关停8元保号套餐?或是5G成本带来的压力所致

日前有网友发现希望使用中国移动的保号套餐&#xff0c;却发现已无法办理&#xff0c;媒体对此多有报道&#xff0c;这意味着中国移动的套餐业务发生了重大变动&#xff0c;如此做或许在于5G成本上涨带来的压力促使它不得不提高套餐的门槛。 中国移动已建成最多的5G基站&#x…

世界各国柴油价格22.7统计

数据详情介绍&#xff1a; 统计时间为2022年7月4日。在该月份&#xff0c;全球柴油的平均价格为每升1.43美元。然而&#xff0c;各国间存在明显的价格差异。一般而言&#xff0c;西欧等发达国家的价格基本在每升2美元以上&#xff1b;相反&#xff0c;像伊朗、委内瑞拉、利比亚…

基于springboot实现视频网站管理系统【项目源码+论文说明】计算机毕业设计

基于springboot实现视频网站管理系统演示 摘要 使用旧方法对视频信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在视频信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问…

【信号与系统 - 8】取样定理

1 定义 取样处理就是对连续信号的离散化处理 p ( t ) p(t) p(t) 是开关函数 f s ( t ) f ( t ) ⋅ p ( t ) f_s(t)f(t)\cdot p(t) fs​(t)f(t)⋅p(t) 当 p ( t ) p(t) p(t) 为周期矩形函数时 该取样为均匀抽样&#xff0c;周期为 T s T_s Ts​&#xff0c;则取样角频率为&…