请你继续卷:YOLOV9

yolov9

关键词:yolov7、 yolov9 、 机器学习、深度学习 、 目标检测

引言

yolov7-depth,yolov7-3d挂了两年还没出,真是服了,现在又搞个yolov9。吐槽归吐槽,但新菜来了,又怎能忍住不品尝呢?大家通过我的吐槽隐约可以得到一个结论:yolov7和yolov9是同一拨作者。在这里我们一起看看最新的yolov9有哪些变化呢?

前言

现在的深度学习方法集中在如何设计最合适的目标函数,使模型的检测结果更接近真值。同时,一个合适的架构可以充分获取足够的信息以进行预测,但这需要精妙的设计。现在存在的方法忽略了这样的一个事实:当输入数据经历逐层特征时空间转换,大量的信息会丢失。在yolov9这篇文章中主要是在讨论:当数据通过深度网络传输时数据丢失的情况,即信息瓶颈和可逆函数。

核心贡献:

  1. YOLOv9从可逆函数角度理论上分析了现有的CNN架构,基于这种分析,YOLOv9作者还设计了PGI和辅助可逆分支,并取得了优秀的结果;
  2. YOLOv9用到的PGI解决了深度监督只能用于极深的神经网络架构的问题,因此使得新的轻量级架构才更适合落地;
  3. YOLOv9中设计的GELAN仅使用传统卷积,就能实现比基于最先进技术的深度可分卷积设计更高的参数使用率,同时展现出轻量级、快速和精确的巨大优势;
  4. 基于所提出的PGI和GELAN,YOLOv9在MS COCO数据集上的性能在所有方面都大大超过了现有的实时目标检测器。

综合比对

GELAN

通过下图我们可以得到在更小parameter的可以获取更高的精度。这是受益于广义有效聚合网络(GELAN),设计了基于梯度路径规划设计GELAN。

在深度学习中向前传播过程中数据会存在丢失,这种丢失现象通常被描述为信息瓶颈问题。如下图所示,在不同网络结构的随机初始权重输出特征映射的可视化结果,从左至右分别是:原始图像、PlainNet、ResNet、CSPNet、GELAN 在图中我们可以看到在不同体系结构中GELAN可以保持最为完整的信息,这为计算目标函数提供了最可靠的梯度信息。

GELAN通过结合两种神经网络架构,即结合用梯度路径规划(CSPNet)和(ELAN)设计了一种广义的高效层聚合网络(GELAN);GELAN综合考虑了轻量级、推理速度和准确度。GELAN整体架构如下图所示: YOLOv9将ELAN的能力进行了泛化,原始ELAN仅使用卷积层的堆叠,而GELAN可以使用任何计算块作为基础Module。

PGI

PGI及相关的网络架构和方法如下图所示。其主要组成部分为:

  1. 主干分支;
  2. 辅助可逆分支;
  3. 多级辅助信息;   根据图中的信息传递可得到PGI在推理的过程中仅使用主分支,所以不需要额外的推理成本。这一设计精巧地应对了深度学习中的关键挑战,通过两个关键组件提升模型性能:

1.辅助可逆分支:引入此组件是为了解决随着网络深度增加而引发的信息瓶颈问题。这种信息瓶颈会干扰损失函数生成有效梯度的能力,辅助可逆分支通过保持信息流动的完整性来克服这一障碍。

2.多级辅助信息:此部分旨在解决深度监督可能导致的误差累积问题,尤其是在拥有多个预测分支的结构和轻量级模型中。通过引入多级辅助信息,模型能够更有效地学习并减少误差传播

【最先进的实时对象检测器的比较:】从下表中的比对信息可以看出在2D领域的目标检测yolov9性能的确top,后续应该会有各种魔改v9的操作吧。

GELAN的pan特征图(可视化结果)和yolov9(gelen+pgi)采用热启动。gelan在初始阶段有一些不同,但是在加入了PGI后可逆分支,它能更好的聚焦于目标检测。

相关推荐
NAGNIP1 天前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队1 天前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
AI小云2 天前
【机器学习与实战】回归分析与预测:线性回归-03-损失函数与梯度下降
机器学习
Fanxt_Ja2 天前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下2 天前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶2 天前
算法 --- 字符串
算法
隐语SecretFlow2 天前
国人自研开源隐私计算框架SecretFlow,深度拆解框架及使用【开发者必看】
深度学习
博笙困了2 天前
AcWing学习——差分
c++·算法
NAGNIP2 天前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP2 天前
大模型微调框架之LLaMA Factory
算法