YOLOv9来了:实时目标检测新SOTA,完胜各种轻量或大型模型!

news2024/11/19 12:40:41

距离YOLOv8发布仅1年的时间,v9诞生了!

这个新版本主打用“可编程梯度信息来学习你想学的任何内容”。

无论是轻量级还是大型模型,它都完胜,一举成为目标检测领域新SOTA:

网友的心情be like:

鉴于源码已经发布,有人已率先实测了一把效果:

对比v8当时的表现,可以说是进步很大:

来吧,速度论文。

可编程梯度信息+轻量级GELAN架构

一般来说,为了使模型预测结果最接近真实情况,目前的深度学习方法比较侧重于如何设计出一个最合适的目标函数。

同时,还要设计一种适当的架构,用于获取足够的信息,方便后续预测。

在此,作者认为:

现有的方法忽略了一个问题,即当输入数据经过逐层特征提取和空间变换时,会丢失大量信息。

因此,YOLOv9主要破解的就是数据通过深度网络传输时丢失的问题,具体来说就是“信息瓶颈和可逆函数”。

具体贡献上,一是提出可编程梯度信息(PGI)的概念,来应对深度网络检测多个目标所需的各种变化。

PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权重。

下图为PGI及相关网络架构和方法示意图。

其中(a)为路径聚合网络,(b) 为可逆列,(c)传统深度监督,(d)为作者提出的可编程梯度信息(即PGI)。

它主要由三部分组成:

主分支:用于推理的架构;辅助可逆分支:生成可靠的梯度,为主分支提供反向传输;多级辅助信息:用来控制主分支学习可规划的多级语义信息。作者解释:

由于可逆架构在浅层网络上的性能比在一般网络上差,因为复杂的任务需要在更深的网络中进行转换。因此该设计的特点之一是不强迫主分支保留完整的原始信息,而是通过辅助监督机制生成有用的梯度来进行更新。>这样的优点是,方法也可以应用于较浅的网络。

YOLOv9的第二个贡献是设计了一种新的基于梯度路径规划的轻量级网络架构GELAN,用于证明PGI的有效性。

它通过模仿CSPNet架构+扩展ELAN网络而得出,可以支持任何计算块(CSPNet和ELAN都是采用梯度路径规划设计的神经网络)。

大小同类模型都完胜

效果验证在MS COCO数据集上进行。

所有模型都使用从头开始训练策略进行训练,总训练次数为500个epoch。

基于YOLOv7和Dynamic YOLOv7构建了YOLOv9的通用版和扩展版。

下表为YOLOv9与其他从头开始训练的实时目标探测算法的比较结果。

在此前已有方法中,性能最好的是用于轻型模型的YOLO MS-S、用于中型模型的YOLO-MS,用于普通模型的YOLOv7 AF和用于大型模型的YOLOv8-X。

与轻型和中型型号YOLO MS相比,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在各个方面都有了显著的改进,PGI的设计使其可以用于从轻量到大型的各种模型。

除此之外,测试还将ImageNet预训练模型包括进来,结果如下:

在这之中,就参数数量而言,性能最好的大型模型是RTDETR。

从上图中我们可以看到,在参数利用方面,使用传统卷积的YOLOv9甚至比使用深度卷积的YOLO MS更好。

在大模型的参数利用方面,它也大大超过了使用ImageNet预训练模型的RT-DETR。

更厉害的是,在深度模型中,YOLOv9显示了使用PGI的巨大优势。

通过准确地保留和提取将数据映射到目标所需的信息,YOLOv9只需要64%的参数,就能同时保持和RT DETR-X一样的准确性。

来自v7作者

众所周知,YOLO系列的作者几乎每次都不是同一个,且有的是个人有的是公司。

比如v4是Alexey Bochkovskiy和Chien-Yao Wang等人,v5是Ultralytics公司,v6是美团公司,v7又变成v4的个人作者。

这次,v9又是由谁开发呢?

答案是Chien-Yao Wang等人。

这位一作的名字不算陌生,v7、v4都有他。

他于2017年获得台湾省National Central University计算机科学与信息工程博士学位,现在就职于该省Academia Sinica的信息科学研究所。

One More Thing

知乎上几个月前就有这么一个问题:

想用yolov8做毕业设计,如果开题之后,yolov9出来了怎么办呢?

现在看来,这位网友的担心可是成真了(狗头)

不过实际不用慌,如大伙所说:

最新检测器的泛化性不一定比以前的检测器要好。你所选择的只是一个基准算法,最重要的还是有自己的创新~

传送门:https://arxiv.org/abs/2402.13616https://github.com/WongKinYiu/yolov9参考链接:https://twitter.com/skalskip92/status/1760717291593834648https://www.zhihu.com/question/618277378

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

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

相关文章

【Linux】--- Linux编译器-gcc/g++、调试器-gdb、项目自动化构建工具-make/Makefile 使用

目录 一、Linux编译器-gcc/g1.1 gcc/g 使用方法1.2 程序的翻译过程1.3 链接 -- 动静态链接特点及区别 二、Linux调试器-gdb2.1 背景2.2 使用方法 三、Linux项目自动化构建工具-make/Makefile3.1 背景3.2 原理3.3 项目清理 一、Linux编译器-gcc/g 1.1 gcc/g 使用方法 格式&…

JuiceSSH结合Cpolar实现公网远程SSH访问内网Linux系统

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …

安全防御第七次实验

需求:在FW7和FW8之间建立一条IPSEC通道保证10.0.2.0/24网段可以正常访问到192.168.1.0/24 一、NAT配置 FW4: FW6: 二、在FW4上做服务器映射 三、配置IPSEC FW5: FW6: 四、防火墙上的安全策略 FW4: FW5:…

Chrome安装Axure插件

打开原型目录/resources/chrome,重命名axure-chrome-extension.crx,修改后缀为rar,axure-chrome-extension.rar 解压到axure-chrome-extension目录打开Chrome,更多工具->扩展程序,打开开发者模式,选择加…

电机控制系列模块解析(第八篇)—— 高频注入法

一、基本原理 在电机控制领域,高频方波注入法常用于估计转子的位置和转速。其工作原理是每隔一定的时间间隔在电机输出电压上叠加一个电压脉冲。然后,在两相静止坐标系下或者同步旋转坐标系下对采样时刻的电压和电流进行相应的计算,以实现对…

专业设计者必备!2024年精选作品集模板,一键替换高品质样机,展现出色!

现在是金三银四求职季。你已经开始制作或更新作品集了吗?作品集是展示设计师设计才能、创新思维和项目经验的重要媒介。随着设计师经验的积累和技能的进步,一个高质量的作品集将不断更新升级。在这里,即时设计为您提供了100多种作品集模板资源…

Transformer中的 Add Norm

Transformer中的 Add & Norm flyfish Add 同一个意思 Residual connections,Skip Connections Norm 包括Post layer normalization和Pre layer normalization Post layer normalization:Transformer 论文中使用的方式,将 Layer norm…

神经网络softmax算法与卷积层

多类分类: 多类是分类算法中的一种,它区别于我们的0,1这样子的二进制分类,它会有多个分类的标签,让我们去取其中的一个。 softmax函数: softmax回归算法是我们的sigmoid回归的推广。 上图就是softmax运…

一文搞懂如何自己写一个Python库

你是否曾想过为自己的Python项目编写一个库,以便在不同项目中重复使用代码? 并且能在PyPI仓库中发布,并通过pip install 库名来安装使用 编写Python库可能看起来有些复杂,但实际上并非如此。本文将为你提供一份简明的指南&#x…

【虚拟换衣+论文+代码】2403.OOTDiffusion:高分辨率(1024x768)可控的虚拟试穿(已开源,暂不能训练)

项目地址:https://github.com/levihsu/OOTDiffusion 试用地址:https://ootd.ibot.cn/ 论文地址:2403.OOTDiffusion: 基于衣服融合的可控虚拟试穿潜在扩散 | readpaper arxiv: Outfitting Fusion based Latent Diffusion for Controllable Vir…

如何防御udp攻击

UDP Flood是互联网上最经典的DDoS(Distributed Denial of Service)攻击之一。攻击者在短时间内向目标设备发送大量的UDP报文,导致链路拥塞甚至网络瘫痪。一般的UDP报文由攻击工具伪造,通常在数据段具备相同的特征,另一…

社区店选址标准:如何选择适合你业务的理想位置

选址是实体店成功的关键因素之一,而社区店更是要紧密结合社区的特点来选择。 作为一名鲜奶吧开店5年的创业者,我将为大家分享一些实用的社区店选址标准。 1、社区类型: 首先要明确你的目标客户群体,然后选择与之匹配的社区类型…

SpringCloudAlibaba微服务之Nacos架构及基础概念梳理

SpringCloudAlibaba微服务之Nacos架构及基础概念梳理 文章目录 SpringCloudAlibaba微服务之Nacos架构及基础概念梳理1. 官网介绍1. 简介2. Naocs是什么3. Nacos 地图4. Nacos 生态图 2. Nacos 架构1. 基本架构及概念1. 服务 (Service)2. 服务注册中心 (Service Registry)3. 服务…

基于模拟退火算法(SA)的TSP(Python实现)

本篇文章是博主在最化优学习、人工智能等领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅解。文章分类在最优化算…

Kubernetes-2

Kubernetes学习第二天 k8s-21、Kubernetes的核心组件2、pod2.1、什么是pod 3、3种启动pod的方式3.1、命令行启动pod3.1.1、执行下面命令,背后发生了什么? 3.2、启动一个pod背后发生了什么3.3、使用yml文件3.3.1、标准的pod3.3.2、使用部署控制器启动pod3…

web服务,C/S框架,单设备登陆实现方案

背景: 原登陆接口,校验密码通过后,使用springsession记录会话信息,将信息存入在redis中 基于原逻辑进行多设备登陆开发,默认的时候多设备登陆开关开启,即按原来逻辑处理,只要密码登陆校验成功之后,都会将当前的会话信息存入redis中. 当多设备开关关闭时候,同一个账号同一时间只…

Linux运维:实现光盘开机自动挂载、配置本地yum源教程

Linux运维:实现光盘开机自动挂载、配置本地yum源教程 一、光盘开机自动挂载1、检查光驱设备2、创建挂载点3、编辑/etc/fstab文件4、测试挂载 二、配置本地yum源(挂载光盘或ISO文件)1、挂载ISO文件2、创建YUM仓库配置文件3、清理YUM缓存并测试 💖The Begi…

《TCP/IP详解 卷一》第13章 TCP连接管理

目录 13.1 引言 13.2 TCP连接的建立与终止 13.2.1 TCP半关闭 13.2.2 同时打开与关闭 13.2.3 初始序列号 13.2.4 例子 13.2.5 连接建立超时 13.2.6 连接与转换器 13.3 TCP 选项 13.3.1 最大段大小选项 13.3.2 选择确认选项 13.3.3 窗口缩放选项 13.3.4 时间戳选项与…

专业140+总430+电子科技大学858信号与系统考研经验成电电子信息与通信工程,电科大,真题,大纲,参考书。

今年考研成绩出来,初试专业课858信号与系统140,总分430,其余各门分数都比较平稳,总分好于自己估分,应群里很多同学要求,我总结一下自己的复习经验。首先我是一个大冤种,专业课资料学长给了一套&…

【工作实践-07】uniapp关于单位rpx坑

问题:在浏览器页面退出登录按钮上“退出登录”字样消失,而在手机端页面正常;通过查看浏览器页面的HTML代码,发现有“退出登录”这几个字,只不过由于样式问题,这几个字被挤到看不见了。 样式代码中有一行为&#xff1a…