YOLOv9来了,可编程梯度信息与广义高效层聚合网络 助力全新检测SOTA前沿

本文首发:AIWalker
欢迎关注AIWalker,近距离接触底层视觉与基础AI技术

摘要

当今的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果最接近真实情况;与此同时,必须设计一个适当的架构,以便于获取足够的信息进行预测。现有的方法忽略了一个事实:当输入数据进行逐层特征提取和空间变换时,会丢失大量信息。本文将深入探讨数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆功能。

  • 提出了可编程梯度信息(PGI)的概念,以应对深度网络实现多重目标所需的各种变化。PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权重。
  • 设计了一种基于梯度路径规划的新型轻量级网络架构——广义高效层聚合网络(GELAN)。GELAN的架构证实了PGI在轻量化模型上取得了优异的成绩。我们在基于MS COCO数据集的目标检测上验证了所提出的GELAN和PGI。

结果表明,与基于深度卷积的现有方法相比,GELAN仅使用传统的卷积算子即可实现更好的参数利用。PGI可用于从轻量级到大型的各种型号。它可以用来获得完整的信息,使从头开始训练的模型比使用大数据集预训练的最先进的模型获得更好的结果,比较结果如图1所示。 源代码位于:https://github.com/WongKinYiu/yolov9。

本文贡献

本文的贡献总结如下:

  • 我们从可逆函数的角度对现有的深度神经网络架构进行了理论分析,通过这个过程,我们成功地解释了许多过去难以解释的现象。我们还基于该分析设计了PGI和辅助可逆分支,并取得了优异的效果。
  • 我们设计的PGI解决了深度监督只能用于极深神经网络架构的问题,从而让新的轻量级架构真正应用到日常生活中。
  • 我们设计的GELAN仅使用常规卷积,比基于最先进技术的深度卷积设计实现更高的参数使用,同时显示出轻巧、快速、准确的巨大优势
  • 结合所提出的PGI和GELAN,YOLOv9在MS COCO数据集上的目标检测性能在各个方面都大大超越了现有的实时目标检测器

本文方案

为了解决上述问题,我们提出了一种新的辅助监督框架,称为可编程梯度信息(PGI),如上图(d)所示。PGI主要包括三个组成部分,(1)主分支,(2)辅助可逆分支,(3)多级辅助信息。
从中我们可以看到,PGI 的推理过程仅使用 main 分支,因此不需要任何额外的推理成本。至于其他两个组件,它们用于解决或减缓深度学习方法中的几个重要问题。

  • 辅助可逆分支旨在处理神经网络深化带来的问题,即网络深化会造成信息瓶颈,使损失函数无法生成可靠的梯度
  • 多级辅助信息旨在处理深度监管导致的误差累积问题,特别是针对多预测分支的架构和轻量级模型。

Auxiliary Reversible Branch

在PGI中,我们提出了辅助可逆分支来生成可靠的梯度并更新网络参数。通过提供从数据映射到目标的信息,损失函数可以提供指导,并避免从与目标不太相关的不完整前馈特征中发现错误相关性的可能性。

我们提出通过引入可逆架构来维护完整的信息,但是在可逆架构中添加主分支会消耗大量的推理成本。我们分析了图 3 (b) 的架构,发现当添加从深层到浅层的额外连接时,推理时间将增加 20% 。当我们将输入数据反复添加到网络的高分辨率计算层(黄框)时,推理时间甚至超过两倍的时间。由于我们的目标是使用可逆架构来获得可靠的梯度,因此“可逆”并不是推理阶段的唯一必要条件。有鉴于此,我们将可逆分支视为深度监督分支的扩展,然后设计辅助可逆分支,如图3(d)所示。

至于由于信息瓶颈而丢失重要信息的主分支深层特征,它们将能够从辅助可逆分支接收可靠的梯度信息。这些梯度信息将驱动参数学习,以帮助提取正确且重要的信息,而上述操作可以使主分支获得对目标任务更有效的特征。此外,可逆架构在浅层网络上的表现比在一般网络上更差,因为复杂的任务需要在深层网络中进行转换。 我们提出的方法不强迫主分支保留完整的原始信息,而是通过辅助监督机制生成有用的梯度来更新它。该设计的优点是所提出的方法也可以应用于较浅的网络。

Multi-level Auxiliary Information

在本节中,我们将讨论多级辅助信息的工作原理。包括多个预测分支的深度监督架构如图 3 (c) 所示。对于目标检测,可以使用不同的特征金字塔来执行不同的任务,例如,它们可以一起检测不同大小的对象 。因此,在连接到深度监督分支后,将引导浅层特征学习小目标检测所需的特征,此时系统将以其他尺寸物体的位置为背景。然而,上述行为将导致深特征金字塔丢失预测目标对象所需的大量信息。

关于这个问题,我们认为每个特征金字塔都需要接收到所有目标对象的信息,以便后续的主分支能够保留完整的信息来学习对各种目标的预测 。多级辅助信息的概念是在辅助监督的特征金字塔层次层和主分支之间插入一个集成网络,然后用它来组合来自不同预测头返回的梯度,如图3(d)所示。然后,多级辅助信息是聚合包含所有目标对象的梯度信息,并将其传递给主分支,然后更新参数。此时,主分支的特征金字塔层次结构的特征将不再受某些特定对象信息的支配。因此,该方法可以缓解深度监督中的信息破损问题。此外,任何集成网络都可以用于多级辅助信息。 因此,我们可以规划所需的语义级别来指导不同规模的网络架构的学习。

Generalized ELAN

在本节中,我们将介绍拟议的新网络架构 – GELAN。通过结合采用梯度路径规划设计的两种神经网络架构 CSPNet [ 64] 和 ELAN [ 65),我们设计了兼顾轻量级、推理速度和准确性的广义高效层聚合网络 (GELAN)。其整体架构如图 4 所示。我们将最初仅使用卷积层堆叠的 ELAN [ 65] 的功能推广到可以使用任何计算块的新架构中。

本文实验

表 1 列出了我们提出的 YOLOv9 与其他从头开始训练的实时目标检测器的比较。总体而言,现有方法中性能最好的方法是轻量级模型的 YOLO MS-S [ 7] 、中型模型的 YOLO MS [ 7] 、通用模型的 YOLOv7 AF [ 63] 和大型模型的 YOLOv8-X [ 15]

  • 与轻量级和中型型号YOLO MS[7]相比,YOLOv9的参数减少了约10%,计算量减少了5∼15%,但AP仍提高了0.4%∼%0.6%;
  • 与YOLOv7 AF相比,YOLOv9-C的参数减少了42%,计算次数减少了21%,但AP相同(53%);
  • 与YOLOv8-X相比,YOLOv9-X的参数减少了15%,计算次数减少了25%,AP显著提高了1.7%。

以上对比结果表明,与现有方法相比,我们提出的YOLOv9在各个方面都有了显著的改进

另一方面,我们还在比较中加入了 ImageNet 预训练模型,结果如图 5 所示。我们分别根据参数和计算量对它们进行比较。

  • 就参数数量而言,性能最好的大型模型是RT DETR。从图 5 中可以看出,在参数利用方面,使用传统卷积的 YOLOv9 甚至比使用深度卷积的 YOLOv9 更好。至于大模型的参数利用率,也大大超过了使用ImageNet预训练模型的RT DETR。更好的是,在深度模型中,YOLOv9 展示了使用 PGI 的巨大优势。通过准确保留和提取将数据映射到目标所需的信息,我们的方法只需要 64% 的参数,同时保持 RT DETR-X 的精度

  • 至于计算量,现有最好的模型从小到大是 YOLO MS、 PP-YOLOE和 RT-DETR。从图 5 中可以看出,YOLOv9 在计算复杂度方面远远优于从头开始训练的方法。此外,如果与基于深度卷积和基于 ImageNet 的预训练模型相比,YOLOv9 也非常有竞争力。

推荐阅读

  • U版YOLO-World来了,YOLOv8再度升级,三行代码上手YOLO-World!
  • YOLO-World | 赋能YOLOv8开集检测能力,构建新一代YOLO新标杆
  • YOLOv8重磅升级,新增旋转目标检测,又该学习了~
  • YOLO-NAS | YOLO新高度,引入NAS,出于YOLOv8而优于YOLOv8
  • YOLOv6 v3.0 | 重磅升级!性能超越V8!
  • DAMO-YOLO | 超越所有YOLO,魔搭社区开源至强YOLO,5行代码即可体验!
  • 南开大学提出YOLO-MS | 超越YOLOv8与RTMDet,即插即用打破性能瓶颈

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

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

相关文章

[electron]官方示例解析

官方例子 github链接 main.js const { app, BrowserWindow } require(electron)说句实话这里的语法是有部分看不懂的。导入模块虽然electron有很多模块。但是这里只是用到了app 和 BrowserWindow function createWindow () {// Create the browser window.const mainWindo…

解锁网络世界的大门:探索Gateway网关的奇妙之旅(二)

本系列文章简介: 本系列文章将带领您深入探索Gateway网关的神秘世界。我们将了解它们的工作原理、功能和重要性,以及它们在互联网中的角色。您将会发现,这些看似普通的设备,实际上拥有着惊人的能力和影响力。我们将揭示它们背后隐…

go语言的理解,看这一篇就够了

1.来源 Go语言是谷歌2009年发布的第二款开源编程语言 2.谷歌为什么要创建Go语言 计算机硬件技术更新频繁, 性能提高很快,默目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个简洁而高效…

SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示

目录 前言 一、加入DWZ J-UI框架 二、实现登录页面 三、实现主页面菜单显示 前言 大家好!写文章之前先列出几篇相关文章。本文内容也在其项目中接续实现。 一. SSM项目集成Spring Security 4.X版本(使用spring-security.xml 配置文件方式&#xff…

eclipse中open Type 、 open type in Hierachy、open Resource的区别

目录 场景: open Type open Resource open type in Hierachy 场景: 在项目中想要研究底层代码,经常要用eclipse看依赖jar包的类,比如spring的源码中AbstractApplicationContext类CTLSHIFTT用的少,经常用的CTLSHIR…

YOLO系列论文阅读(v1--v3)

搞目标检测,绕不开的一个框架就是yolo,而且更糟糕的是,随着yolo的发展迭代,yolo网络可以做的事越来越多,语义分割,关键点检测,3D目标检测。。。这几天决定把YOLO系列彻底梳理一下,在…

leet hot 100-4 移动零

移动零 原题链接思路代码 原题链接 leet hot 100-4 283. 移动零 思路 遍历数组 将非0数字 移动到数组前端 数字0就会被移动到数组末端 时间复杂度O(n) 空间复杂度(n) 代码 class Solution { public:void moveZeroes(vector<int>& nums) {int start 0;int ind…

Spring篇----第五篇

系列文章目录 文章目录 系列文章目录前言一、Spring IoC 的实现机制。二、什么是 spring bean?三、spring 提供了哪些配置方式?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享…

CNCF之毕业Projects简介

CNCF组织管理着大量的云原生基础设施软件系统&#xff0c;如著名的k8s&#xff0c;不同的系统解决不同的技术点&#xff0c;也有一些系统是解决同一个问题的&#xff0c;形成一个自由竞争的关系&#xff0c;互相促进彼此创新进步&#xff0c;同时也给我们做技术选型带来了多样性…

XSS原理和攻防

Cross Site Scripting:跨站脚本攻击 用户提交的数据中可以构造恶意代码&#xff0c;并且执行&#xff0c;从而实现窃取用户信息等攻击 攻击&#xff1a; 防御&#xff1a; 1.对输入进行过滤&#xff0c;对输出进行编码 2.cookie设置http-only

Android 如何添加自定义字体

Android 如何添加自定义字体 比如我要添加 jetbrains 相关字体 在 res 文件夹中添加 font 文件夹。里面放入你的字体文件 .ttf .otf&#xff0c;字体文件名需要是小写&#xff0c;只能是字母和下划线。 在 xml 布局文件中直接通过 android:fontFamily"font/jetbrainsmo…

Spring事务失效场景

【事务的回滚仅仅对于unchecked的异常有效。对于checked异常无效。也就是说事务回滚仅仅发生在&#xff0c;出现RuntimeException或Error的时候。通俗一点就是&#xff1a;代码中出现的空指针等异常&#xff0c;会被回滚。而文件读写、网络超时问题等&#xff0c;spring就没法回…

1.openEuler概述及安装指南(一)

openEuler OECA认证辅导,标红的文字为学习重点和考点。 1.openEuler简介 openEuler是一款面向全球的开源操作系统 支持ARM、X86等多种处理器,能够充分释放计算芯片的潜能:高效、稳定、安全 适用于数据库、大数据、云计算、人工智能等多种应用场景 通过社区合作,打造创新平…

[面试] 什么是死锁? 如何解决死锁?

什么是死锁 死锁&#xff0c;简单来说就是两个或者多个的线程在执行的过程中&#xff0c;争夺同一个共享资源造成的相互等待的现象。如果没有外部干预线程会一直阻塞下去. 导致死锁的原因 互斥条件&#xff0c;共享资源 X 和 Y 只能被一个线程占用; 请求和保持条件&#xf…

Chapter 8 - 18. Congestion Management in TCP Storage Networks

Comparison with Lossless Networks Recall that in Fibre Channel fabrics (explained in Chapter 3, “Detecting Congestion in Fibre Channel Fabrics”) and lossless Ethernet networks (explained in Chapter 7), when the source of congestion is within an end-devi…

U版YOLO-World来了,YOLOv8再度升级,三行代码上手YOLO-World!

本文首发&#xff1a;AIWalker 欢迎关注AIWalker&#xff0c;近距离接触底层视觉与基础AI https://arxiv.org/abs/2401.17270 https://github.com/AILab-CVC/YOLO-World https://github.com/ultralytics/ultralytics https://www.yoloworld.cc/ YOLO-World亮点 YOLO-World是下…

安珀警报发挥重要作用

在周二&#xff08;2月13日&#xff09;的傍晚时分&#xff0c;美国加州发生了一起令人震惊的绑架事件。一名年仅四岁的男童在其父送外卖时被一名嫌犯带走。在加州公路巡逻队和长滩警察局发布安珀警报后&#xff0c;全城的人们都行动了起来。 安珀警报&#xff0c;全名为Ameri…

MiKTeX安装后,Latex编译后PDF无法预览,是灰色的

解决方式删掉编译器就可以&#xff0c; 即删掉MiKTeX MiKTeX安装后会将编译器默认修改为MiKTeX&#xff0c;这个时候会显示报错&#xff0c;简单粗暴的方式是删掉MiKTeX软件

AI:135-基于卷积神经网络的艺术品瑕疵检测与修复

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带关键代码,详细讲解供大家学习,希望…

YOLOv9:目标检测的新里程碑

YOLOv9&#xff1a;目标检测的新里程碑 摘要&#xff1a;YOLOv9是目标检测领域的一个重大突破&#xff0c;它在性能、速度和准确性方面都取得了显著的进步。本文详细介绍了YOLOv9的架构创新、优化策略以及在实际应用中的表现&#xff0c;并通过与YOLOv8等先前版本的比较&#…