YOLOv9|加入2023Gold YOLO中的GD机制!遥遥领先!

2024-03-16 10:04

本文主要是介绍YOLOv9|加入2023Gold YOLO中的GD机制!遥遥领先!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


专栏介绍:YOLOv9改进系列 | 包含深度学习最新创新,助力高效涨点!!!


一、Gold YOLO摘要

        在过去的几年里,YOLO系列模型已经成为实时目标检测领域的领先方法。许多研究通过修改体系结构、增加数据和设计新的损失,将基线提高到了更高的水平。然而,我们发现以前的模型仍然存在信息融合问题,尽管特征金字塔网络(FPN)和路径聚合网络(PANet)已经缓解了这一问题。因此,本研究提供了一种先进的聚集和分布机制(GD)机制,该机制通过卷积和自注意操作来实现。这个新设计的模型名为Gold YOLO,它增强了多尺度特征融合能力,并在所有模型尺度上实现了延迟和准确性之间的理想平衡。


二、Gold YOLO模块详解

 2.1 模块简介

       Gold yolo的主要思想: 使用GD(gather-and-distribute)机制代替现有的通过不停间接迭代融合不同level的信息的机制​​​​​​​。

        GD由3种模块组成:FAM(Feature Alignment Module,特征对齐模块)、IFM(Information Fusion Module,信息融合模块)、Inject(Information Injection Module,信息注入模块)。其中FAM与IFM用于特征收集,Inject用于分发。

        low-GD主要用于融合模型浅层的特征信息,取代原Neck中的FPN结构,输入为B2,B3,B4,B5的特征张量。输入的特征张量首先通过Low-FAM进行空间尺度对齐并拼接在一起,之后送入IFM模块。分别经过Conv、RepVGGBlock、Conv进行特征提取融合,最后Split,送入Inject模块。

        high-GD主要用于融合模型深层的特征信息,取代原Neck中的FPN结构,输入为P3,P4,P5的特征张量。输入的特征张量首先通过High-FAM进行空间尺度对齐并拼接在一起,之后送入IFM模块。分别经过多头注意力机制和前向网络进行特征提取融合,最后Split,送入Inject模块。

        Inject模块输入有两个,一个是x_local,一个是x_global,也就是GD中处理完的特征张量。通过图中的Conv与空间的缩放操作与x_local进行特征融合,融合方式主要为点积和相加。


三、 GD模块使用教程

3.1 GD模块的代码


3.2 在YOLO v9中的添加教程


3.3 运行配置文件

这部分文章暂不开源!

⭐现在入手仅$ 59.9,早入早发论文!⭐

联系QQ: 2668825911 ,欢迎交流!

本项目持续更新,不付费订阅也可关注等每周更新,每周开源1-2篇。


这篇关于YOLOv9|加入2023Gold YOLO中的GD机制!遥遥领先!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/815121

相关文章

Window Server2016加入AD域的方法步骤

《WindowServer2016加入AD域的方法步骤》:本文主要介绍WindowServer2016加入AD域的方法步骤,包括配置DNS、检测ping通、更改计算机域、输入账号密码、重启服务... 目录一、 准备条件二、配置ServerB加入ServerA的AD域(test.ly)三、查看加入AD域后的变

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

MySQL中的锁和MVCC机制解读

《MySQL中的锁和MVCC机制解读》MySQL事务、锁和MVCC机制是确保数据库操作原子性、一致性和隔离性的关键,事务必须遵循ACID原则,锁的类型包括表级锁、行级锁和意向锁,MVCC通过非锁定读和... 目录mysql的锁和MVCC机制事务的概念与ACID特性锁的类型及其工作机制锁的粒度与性能影响多版本

Spring使用@Retryable实现自动重试机制

《Spring使用@Retryable实现自动重试机制》在微服务架构中,服务之间的调用可能会因为一些暂时性的错误而失败,例如网络波动、数据库连接超时或第三方服务不可用等,在本文中,我们将介绍如何在Sp... 目录引言1. 什么是 @Retryable?2. 如何在 Spring 中使用 @Retryable

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL