YOLOv9来了:实时目标检测新SOTA,完胜各种轻量或大型模型! yolov9 yolov5多目标检测
admin
2024-02-23 15:07:53
0

丰色 发自 凹非寺
量子位 | 公众号 QbitAI

距离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.13616
https://github.com/WongKinYiu/yolov9
参考链接:
https://twitter.com/skalskip92/status/1760717291593834648
https://www.zhihu.com/question/618277378

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...