目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

目标检测领域,yolov9 在实现过程中不断进步,通过采用新架构和方法,有效提高了传统卷积的参数利用率,这使得其性能远超前代产品。

继 2023 年 1 月 YOLOv8 正式发布一年多以后,YOLOv9 终于来了!

自2015年Joseph Redmon和Ali Farhadi等人提出了第一代YOLO模型以来,目标检测领域的研究者们对其进行了多次更新和迭代。YOLO是一种基于图像全局信息的预测系统,其模型性能不断得到增强。通过不断改进算法和技术,研究人员取得了显著的成果,使得YOLO在目标检测任务中表现出越来越强大的能力。这些不断的改进和优化为目标检测技术的发展带来了新的机遇和挑战,同时也推动了该领域的进步和创新。YOLO的成功也激励着研究者们继续努力,

此次,YOLOv9 由中国台湾 Academia Sinica、台北科技大学等机构联合开发,相关的论文《Learning What You Want to Learn Using Programmable Gradient Information 》已经放出。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

论文地址:https://arxiv.org/pdf/2402.13616.pdf

GitHub 地址:https://github.com/WongKinYiu/yolov9

如今的深度学习方法重点关注如何设计最合适的目标函数,从而使得模型的预测结果能够最接近真实情况。同时,必须设计一个适当的架构,可以帮助获取足够的信息进行预测。然而,现有方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。 

因此,YOLOv9 深入研究了数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆函数。

研究者提出了可编程梯度信息(programmable gradient information,PGI)的概念,来应对深度网络实现多个目标所需要的各种变化。PGI 可以为目标任务计算目标函数提供完整的输入信息,从而获得可靠的梯度信息来更新网络权值。

此外,研究者基于梯度路径规划设计了一种新的轻量级网络架构,即通用高效层聚合网络(Generalized Efficient Layer Aggregation Network,GELAN)。该架构证实了 PGI 可以在轻量级模型上取得优异的结果。

研究者在基于 MS COCO 数据集的目标检测任务上验证所提出的 GELAN 和 PGI。结果表明,与基于深度卷积开发的 SOTA 方法相比,GELAN 仅使用传统卷积算子即可实现更好的参数利用率。

对于 PGI 而言,它的适用性很强,可用于从轻型到大型的各种模型。我们可以用它来获取完整的信息,从而使从头开始训练的模型能够比使用大型数据集预训练的 SOTA 模型获得更好的结果。下图 1 展示了一些比较结果。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

对于新发布的 YOLOv9,曾参与开发了 YOLOv7、YOLOv4、Scaled-YOLOv4 和 DPT 的 Alexey Bochkovskiy 给予了高度评价,表示 YOLOv9 优于任何基于卷积或 transformer 的目标检测器。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

                                    来源:https://twitter.com/alexeyab84/status/1760685626247250342

还有网友表示,YOLOv9 看起来就是新的 SOTA 实时目标检测器,他自己的自定义训练教程也在路上了。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机
目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

                               来源:https://twitter.com/skalskip92/status/1760717291593834648

更有「勤劳」的网友已经为 YOLOv9 模型添加了 pip 支持。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

                                 来源:https://twitter.com/kadirnar_ai/status/1760716187896283635

接下来看 YOLOv9 的详细信息。

问题陈述

通常,人们将深度神经网络收敛困难问题归因于梯度消失或梯度饱和等因素,这些现象确实存在于传统的深度神经网络中。然而,现代深度神经网络通过设计各种归一化和激活函数,已经从根本上解决了上述问题。不过即便如此,深度神经网络中仍然存在着收敛速度慢或收敛效果差的问题。那么这个问题的本质到底是什么?

研究者通过对信息瓶颈的深入分析,推断出了该问题的根本原因:梯度最初从非常深层的网络传递出来后不久,就丢失了许多达成目标所需的信息。为了验证这一推断,研究者们对具有初始权重的不同架构的深度网络进行前馈处理。图 2 对此进行了可视化说明。显然,PlainNet 在深层丢失了很多进行对象检测所需的重要信息。至于 ResNet、CSPNet 和 GELAN 能够保留的重要信息比例,确实与训练后能够获得的准确性正相关。研究者进一步设计了基于可逆网络的方法来解决上述问题的原因。

方法介绍

可编程梯度信息(PGI)

Remove.bg Remove.bg

AI在线抠图软件,图片去除背景

Remove.bg 174 查看详情 Remove.bg

该研究提出了一种新的辅助监督框架:可编程梯度信息(Programmable Gradient Information,PGI),如图 3(d)所示。 

PGI 主要包括三个部分,即(1)主分支,(2)辅助可逆分支,(3)多级辅助信息。

PGI 的推理过程仅使用了主分支,因此不需要额外的推理成本;

辅助可逆分支是为了处理神经网络加深带来的问题, 网络加深会造成信息瓶颈,导致损失函数无法生成可靠的梯度;

多级辅助信息旨在处理深度监督带来的误差累积问题,特别是多个预测分支的架构和轻量级模型。 

GELAN 网络

此外,该研究还提出了一个新的网络架构 GELAN(如下图所示),具体而言,研究者把 CSPNet、 ELAN 这两种神经网络架构结合起来,从而设计出兼顾轻量级、推理速度和准确性的通用高效层聚合网络(generalized efficient layer aggregation network ,GELAN)。研究者将最初仅使用卷积层堆叠的 ELAN 的功能泛化到可以使用任何计算块的新架构。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

实验结果

为了评估 YOLOv9 的性能,该研究首先将 YOLOv9 与其他从头开始训练的实时目标检测器进行了全面的比较,结果如下表 1 所示。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

该研究还将 ImageNet 预训练模型纳入比较中,结果如下图 5 所示。值得注意的是,使用传统卷积的 YOLOv9 在参数利用率上甚至比使用深度卷积的 YOLO MS 还要好。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

消融实验

为了探究 YOLOv9 中各个组件的作用,该研究进行了一系列消融实验。

该研究首先对 GELAN 的计算块进行消融实验。如下表 2 所示,该研究发现用不同的计算块替换 ELAN 中的卷积层后,系统可以保持良好的性能。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

然后该研究又在不同尺寸的 GELAN 上针对 ELAN 块深度和 CSP 块深度进行了消融实验,结果如下表 3 所示。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

在 PGI 方面,研究者分别在主干网络和 neck 上对辅助可逆分支和多级辅助信息进行了消融研究。表 4 列出了所有实验的结果。从表 4 中可以看出,PFH 只对深度模型有效,而本文提出的 PGI 在不同组合下都能提高精度。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

研究者进一步在不同大小的模型上实现了 PGI 和深度监控,并对结果进行了比较,结果如表 5 所示。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

图 6 显示了从基准 YOLOv7 到 YOLOv9- E 逐步增加组件的结果。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

可视化

研究者探讨了信息瓶颈问题,并将其进行了可视化处理,图 6 显示了在不同架构下使用随机初始权重作为前馈获得的特征图的可视化结果。

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

图 7 说明了 PGI 能否在训练过程中提供更可靠的梯度,从而使用于更新的参数能够有效捕捉输入数据与目标之间的关系。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机

更多技术细节,请阅读原文。

以上就是目标检测新SOTA:YOLOv9问世,新架构让传统卷积重焕生机的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/952291.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月1日 17:44:35
下一篇 2025年12月1日 17:44:56

相关推荐

  • 如何在Linux中挂载和卸载文件系统?

    挂载使用mount命令将设备关联到挂载点以访问数据,如sudo mount /dev/sdb1 /mnt/usb;卸载用umount断开连接,如sudo umount /mnt/usb;/etc/fstab配置开机自动挂载,操作需注意权限与设备状态以防数据丢失。 在Linux中挂载和卸载文件系统是管…

    2025年12月6日 运维
    000
  • 清华同方主机机械硬盘异响?老化坏道检测与数据恢复​

    清华同方主机机械硬盘异响通常由磁头臂故障、电机轴承磨损、内部零件松动或读写头老化等物理问题引起,也可能因供电不足导致;1.磁头臂故障会产生咔哒声或刮擦声;2.电机轴承磨损引发嗡嗡声或摩擦声;3.盘片损伤或松动也会造成异响。发现异响应立即停机并备份数据;可通过chkdsk、hd tune、crysta…

    2025年12月6日 硬件教程
    000
  • Linux文件系统的日志功能与故障排除

    Linux文件系统日志功能通过记录事务确保元数据一致性,提升崩溃后恢复能力。ext3/4、XFS等支持日志,分元数据、数据、顺序和回写模式,各具安全与性能权衡。故障常表现为启动卡住、挂载失败或内核报错“journal has aborted”。排查需查dmesg日志、卸载设备、运行e2fsck或xf…

    2025年12月6日 运维
    000
  • Linux文件系统smartctl命令使用教程

    smartctl是Linux下监控硬盘健康的核心工具,通过读取S.M.A.R.T.信息实现故障预警。1. 安装:Ubuntu/Debian用sudo apt install smartmontools,CentOS/RHEL/Fedora用sudo yum install smartmontools…

    2025年12月6日 运维
    000
  • 如何在mysql中选择存储引擎优化性能

    InnoDB适合高并发和事务场景,MyISAM适用于读多写少情况,Memory用于临时缓存,Archive用于归档存储;应根据业务需求选择引擎并配合参数与索引优化性能。 在 MySQL 中,选择合适的存储引擎对数据库性能至关重要。不同的存储引擎适用于不同的使用场景,合理的选择能显著提升查询效率、写入…

    2025年12月6日 数据库
    000
  • Linux文件系统mkfs和tune2fs命令应用

    mkfs用于创建ext文件系统,如mkfs.ext4 /dev/sdb1;tune2fs用于调整已创建的ext文件系统参数,如保留空间、检查间隔等,两者结合可优化存储管理与数据安全性。 在Linux系统中,mkfs 和 tune2fs 是管理ext系列文件系统的重要命令。它们分别用于创建和调整文件系…

    2025年12月6日 运维
    000
  • 如何在mysql中升级性能参数

    调整MySQL性能需结合硬件与业务场景优化配置。1. 内存方面:innodb_buffer_pool_size设为物理内存50%~70%,key_buffer_size根据存储引擎调整,query_cache_size在高并发写入时关闭,tmp_table_size与max_heap_table_s…

    2025年12月6日 数据库
    000
  • Microsoft Teams如何设置水印保护 Microsoft Teams敏感信息的防泄密方案

    首先在Microsoft 365合规中心创建敏感信息策略,启用屏幕水印并自定义显示用户名、IP、时间戳;接着配置DLP规则识别敏感内容并阻止传输;最后集成IRM实现文档加密与访问控制,全面保护Teams中的数据安全。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSe…

    2025年12月6日 科技
    000
  • Linux文件系统挂载错误排查方法

    挂载失败常见于设备路径错误、fstab配置不当或文件系统损坏。首先用lsblk和blkid确认设备存在及文件系统类型,检查挂载点目录是否创建;接着验证/etc/fstab中设备标识、挂载点、文件系统类型等字段正确,使用mount -a测试配置;若仍失败,通过dmesg或journalctl查看日志定…

    2025年12月6日 运维
    000
  • 如何在mysql中使用备份策略保证高可用

    答案:MySQL高可用需结合主从复制、定期备份与自动故障转移。通过主从复制实现数据实时同步,部署热备从库;结合mysqldump和XtraBackup进行逻辑与物理备份,保障数据可恢复;利用Group Replication或MHA实现自动切换;定期验证备份并演练恢复,确保RTO和RPO满足业务需求…

    2025年12月6日 数据库
    000
  • 如何在mysql中优化初始安装配置

    首先配置MySQL的文件位置与基础设置,包括指定数据目录、套接字文件、启用日志及绑定本地地址;随后根据服务器内存优化内存与缓存参数,如合理设置innodb_buffer_pool_size、key_buffer_size及临时表大小,并关闭查询缓存;接着调优InnoDB引擎,调整日志文件大小、刷新策…

    2025年12月6日 数据库
    000
  • Linux系统如何备份_Linux系统备份的多种方法与最佳实践

    答案:Linux系统备份需结合工具与策略保障数据安全。1. 使用rsync进行增量备份,支持本地或远程同步,配合cron定时任务实现自动化,并通过–link-dest保留多时间点快照;2. 利用tar打包关键目录,排除无关目录后生成压缩归档文件,适用于离线存档与迁移;3. 采用dd创建磁…

    2025年12月6日 运维
    000
  • Linux文件系统扩容实战指南

    首先确认磁盘分区状态,使用df -h、lsblk等命令检查空间与LVM情况;若为LVM环境,通过pvresize扩展物理卷,lvextend扩展逻辑卷,再用resize2fs或xfs_growfs扩展文件系统;非LVM环境下需确保磁盘末尾有未分配空间,使用parted调整分区大小,e2fsck检查后…

    2025年12月6日 运维
    000
  • Tomcat temp 目录清理策略:运行时安全删除旧临时文件的考量与实践

    本文探讨了在tomcat服务器运行时清理`temp`目录中旧临时文件的安全性与实践。针对`tomcat/temp`目录文件堆积的问题,提出了一种基于文件年龄的清理策略,即定期删除两天前创建的`.tmp`文件。文章深入分析了该策略可能面临的风险,如应用程序依赖和并发操作导致的偶发性故障,并提供了jav…

    2025年12月6日 java
    000
  • 如何在mysql中优化初始参数

    答案:MySQL性能优化需根据硬件和业务调整关键参数。1. 内存方面,innodb_buffer_pool_size设为物理内存50%~70%,key_buffer_size按MyISAM使用情况设置,query_cache_size在高并发写入时建议关闭;2. 日志与事务中,innodb_log_…

    2025年12月6日 数据库
    000
  • 外部系统ID与内部UUID映射策略:理解、实践与风险规避

    uuid旨在提供全球唯一标识,而非可逆的任意字符串编码工具。当需要将第三方系统的随机字符串id映射到内部uuid并实现双向查找时,最稳健的方案是采用数据库进行显式映射。虽然加密机制可以转换id,但涉及复杂的密钥管理和安全风险。本文将深入探讨这些策略,并提供最佳实践建议。 在现代系统集成中,将来自不同…

    2025年12月6日 java
    000
  • 使用Docker容器部署数据库服务时需要配置的存储卷与网络隔离方案

    使用命名卷或绑定挂载实现数据持久化,避免容器删除导致数据丢失;2. 创建自定义桥接网络并禁止端口暴露,确保数据库仅限内部安全访问;3. 应用容器与数据库容器共用自定义网络,通过服务名通信,提升安全性与性能;4. 注意文件权限与SELinux策略,保障挂载目录可读写。该方案确保Docker部署数据库时…

    2025年12月6日 电脑教程
    000
  • 环境搭建mysql时如何选择合适的存储路径

    选择MySQL存储路径需综合性能、容量、安全与维护。1. 优先SSD并避免系统盘,确保高I/O性能;2. 预留足够空间,推荐LVM便于扩容;3. 设置mysql:mysql权限,禁用NFS与临时目录;4. 规范路径如/data/mysql,日志可独立挂载。 选择MySQL合适的存储路径,关键在于性能…

    2025年12月6日 数据库
    000
  • 如何在mysql中启用安全更新

    安全更新模式通过启用SQL_SAFE_UPDATES防止无WHERE条件的UPDATE或DELETE操作,避免误删数据。启用方式包括:连接时使用–safe-updates参数、运行时执行SET SQL_SAFE_UPDATES=1、或在配置文件中添加safe-updates选项。 在 M…

    2025年12月6日 数据库
    000
  • Linux kill命令详解与实用示例

    kill命令通过发送信号控制进程,优先用SIGTERM(15)终止进程,必要时用SIGKILL(9)强制结束,结合ps、pgrep、pidof查找PID,配合killall和pkill按名或条件终止进程。 在Linux系统中,kill 命令用于向进程发送信号,最常见的是终止某个正在运行的进程。虽然名…

    2025年12月6日 运维
    000

发表回复

登录后才能评论
关注微信