YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

Abstract 如今的深度学习方法主要关注如何设计最合适的目标函数,使模型的预测结果能够最接近真实情况。同时,必须设计一个适当的架构,可以帮助获取足够的信息进行预测。现有方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。本文将深入研究数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆函数。我们提出了可编程梯度信息(PGI)的概念来应对深度网络实现多个目标所需的各种变化。 PGI可以为目标任务计算目标函数提供完整的输入信息,从而获得可靠的梯度信息来更新网络权值。此外,还设计了一种基于梯度路径规划的新型轻量级网络架构——通用高效层聚合网络(GELAN)。GELAN的架构证实了PGI在轻量级模型上取得了优异的结果。我们在基于 MS COCO 数据集的目标检测上验证了所提出的 GELAN 和 PGI。结果表明,与基于深度卷积开发的最先进方法相比,GELAN 仅使用传统的卷积算子即可实现更好的参数利用率。 PGI 可用于从轻型到大型的各种模型。它可以用来获取完整的信息,使得train-from-scratch (从零开始训练) 模型能够比使用大数据集预训练的state-of-theart模型获得更好的结果,对比结果如图1所示。源代码位于:https: //github.com/WongKinYiu/yolov9。 核心创新点: 依然是网络结构的创新 Programmable Gradient Information (PGI) Generalized Efficient Layer Aggregation Network(GELAN) Introduction 基于深度学习的模型在计算机视觉、语言处理和语音识别等各个领域都表现出了比过去的人工智能系统更好的性能。近年来,深度学习领域的研究人员主要关注如何开发更强大的系统架构和学习方法,例如CNN,Transformers[8,9,40] 、41、60、69、70],Perceivers[26、26、32、52、56、81、81]和Mambas[17、38、80]。此外,一些研究人员尝试开发更通用的目标函数,例如损失函数[5,45,46,50,77,78],标签分配[10,12,33,67,79]和辅助监督[18] 、20、24、28、29、51、54、68、76]。上述研究都试图精确地找到输入和目标任务之间的映射。然而,大多数过去的方法都忽略了输入数据在前馈过程中可能会产生不可忽略的信息丢失量。这种信息丢失可能会导致有偏差的梯度流,随后用于更新模型。上述问题可能导致深度网络在目标和输入之间建立不正确的关联,导致训练后的模型产生不正确的预测。 在深度网络中,输入数据在前馈过程中丢失信息的现象俗称信息瓶颈[59],其示意图如图2所示。目前可以缓解这种现象的主要方法有:(1)可逆架构的使用[3,16,19]:该方法主要使用重复的输入数据,并以显式的方式维护输入数据的信息; (2)使用Masked建模[1,6,9,27,71,73]:主要利用重构损失,采用隐式方式最大化提取特征并保留输入信息; (3)引入深度监督概念[28,51,54,68]:它利用没有丢失太多重要信息的浅层特征来预先建立从特征到目标的映射,以确保重要信息能够被传递到更深的层次。然而,上述方法在训练过程和推理过程中都存在不同的缺点。例如,可逆架构需要额外的层来组合重复馈送的输入数据,这将显着增加推理成本。另外,由于输入数据层到输出层不能有太深的路径,这种限制将导致在训练过程中难以对高阶语义信息进行建模。对于 Masked 建模,其重建损失有时与目标损失相冲突。此外,大多数掩码机制还会产生与数据的不正确关联。 对于深层监督机制来说,会产生误差累积,如果浅层监督在训练过程中丢失信息,后续层将无法检索到所需信息。上述现象在困难任务和小模型上会更加显着。 针对上述问题,我们提出了一个新的概念,即可编程梯度信息(PGI)。其概念是通过辅助可逆分支生成可靠的梯度,使得深层特征仍然能够保持执行目标任务的关键特征。 辅助可逆分支的设计可以避免传统的融合多路径特征的深度监督过程可能造成的语义损失。换句话说,我们在不同语义层面上编程梯度信息传播,从而达到最佳的训练结果。 PGI的可逆架构建立在辅助分支上,因此没有额外的成本。由于PGI可以自由选择适合目标任务的损失函数,因此也克服了Masked建模遇到的问题。所提出的PGI机制可以应用于各种规模的深度神经网络,并且比仅适用于非常深的神经网络的深度监督机制更通用。 在本文中,我们还基于ELAN[65]设计了广义ELAN(GELAN),GELAN的设计同时考虑了参数量、计算复杂度、准确性和推理速度。这种设计允许用户针对不同的推理设备任意选择合适的计算块。我们将提出的PGI和GELAN结合起来,然后设计了新一代YOLO系列物体检测系统,我们称之为YOLOv9。我们使用MS COCO数据集进行实验,实验结果验证了我们提出的YOLOv9在所有比较中都取得了顶尖的性能。 我们总结本文的贡献如下: 我们从可逆函数的角度对现有的深度神经网络架构进行了理论分析,通过这个过程我们成功地解释了许多过去难以解释的现象。我们还基于此分析设计了PGI和辅助可逆分支,并取得了优异的结果。 我们设计的PGI解决了深度监督只能用于极深的神经网络架构的问题,从而让新的轻量级架构真正应用于日常生活中。 我们设计的GELAN仅使用常规卷积来实现比基于最先进技术的深度卷积设计更高的参数利用率,同时表现出轻、快速、准确的巨大优势。 结合所提出的PGI和GELAN,YOLOv9在MS COCO数据集上的目标检测性能在各个方面都大大超过了现有的实时目标检测器。 Programmable Gradient Information (PGI): 自由选择适合目标任务的损失函数 可逆结构建立辅助分支,不增加推理成本 适用于各种规模的深度神经网络 GELAN: 轻、快速、准确 采用常规卷积吊打其他新颖卷积 Related work 2.1 Real-time Object Detectors 目前主流的实时目标检测器是YOLO系列[2,7,13–15,25,30,31,47–49,61–63,74,75],这些模型大多数使用CSPNet[64]或 ELAN [65] 及其变体作为主要计算单元。在特征集成方面,通常使用改进的PAN[37]或FPN[35]作为工具,然后使用改进的YOLOv3头[49]或FCOS头[57, 58]作为预测头。最近也提出了一些实时目标检测器,例如 RT DETR [43],其基础是 DETR [4]。然而,由于DETR系列目标检测器在没有相应领域预训练模型的情况下很难应用于新领域,因此目前应用最广泛的实时目标检测器仍然是YOLO系列。本文选择 YOLOv7 [63] 作为开发该方法的基础,该方法已在各种计算机视觉任务和各种场景中被证明有效。...

March 1, 2024 · 2 min · SwimmingLiu

YOLOSHOW - YOLOv5/YOLOv7/YOLOv8/YOLOv9/RTDETR GUI based on Pyside6

Introduction YOLOSHOW is a graphical user interface (GUI) application embed withYOLOv5 YOLOv7 YOLOv8 YOLOv9 RT-DETR algorithm. English   |   简体中文 Demo Video YOLOSHOW v1.x : YOLOSHOW-YOLOv9/YOLOv8/YOLOv7/YOLOv5/RTDETR GUI YOLOSHOW v2.x : YOLOSHOWv2.0-YOLOv9/YOLOv8/YOLOv7/YOLOv5/RTDETR GUI Todo List Add YOLOv9 Algorithm Adjust User Interface (Menu Bar) Complete Rtsp Function Support Instance Segmentation ( YOLOv5 & YOLOv8 ) Add RT-DETR Algorithm ( Ultralytics repo) Add Model Comparison Mode(VS Mode) Support Pose Estimation (YOLOv8 ) Tracking & Counting ( Industrialization ) Functions 1....

February 18, 2024 · 3 min · SwimmingLiu

YOLOSHOW 中文版 - YOLOv5/YOLOv7/YOLOv8/YOLOv9/RTDETR GUI based on Pyside6

介绍 YOLOSHOW 是一款集合了 YOLOv5 YOLOv7 YOLOv8 YOLOv9 RT-DETR English   |   简体中文 演示视频 YOLOSHOW v1.x : YOLOSHOW-YOLOv9/YOLOv8/YOLOv7/YOLOv5/RTDETR GUI YOLOSHOW v2.x : YOLOSHOWv2.0-YOLOv9/YOLOv8/YOLOv7/YOLOv5/RTDETR GUI 待做清单 加入 YOLOv9 算法 调整UI (菜单栏) 完成Rtsp功能 支持实例分割 ( YOLOv5 & YOLOv8 ) 加入 RT-DETR 算法 ( Ultralytics 仓库) 加入模型对比模式(VS Mode) 支持姿态估计 ( YOLOv8 ) 追踪和计数模型 ( 工业化 ) 功能 1. 支持 图片 / 视频 / 摄像头 / 文件夹(批量) 目标检测 选择左侧菜单栏的图片 / 视频 / 摄像头 / 文件夹(批量)进行目标检测...

February 18, 2024 · 2 min · SwimmingLiu