YOLO改进系列之注意力机制(GatherExcite模型介绍)

news/2024/7/9 23:53:40 标签: YOLO, 目标检测, pytorch, 注意力机制, YOLOv5

模型结构

尽管在卷积神经网络(CNN)中使用自底向上的局部运算符可以很好地匹配自然图像的某些统计信息,但它也可能阻止此类模型捕获上下文的远程特征交互。Hu等人提出了一种简单,轻量级的方法,以在CNN中更好地利用上下文。通过引入一对运算符来做到这一点:Gather可以有效地在很大的空间范围内聚合特征响应,而Excite可以将合并的信息重新分布到局部特征。GatherExcite构造了一个轻量级函数来收集大范围邻域上的特征响应,并使用所得到的上下文信息来调制邻域元素的原始响应。具体地说,其定义了Gather算子和Excite算子,前者聚集给定空间范围上的神经元响应,后者接受聚集和原始输入,以产生与原始输入维度相同的新张量。GE算符对如图1所示。
在这里插入图片描述

实现代码

GatherExcite的实现代码如下所示:
在这里插入图片描述

YOLOv5_8">YOLOv5模型改进

本文在YOLOv5目标检测算法的Backbone和Head部分分别加入GatherExcite来增强目标提取能力,以下分别是在Backbone以及Head中改进的模型结构和参数(以YOLOv5s为例)。
在Backbone部分
在这里插入图片描述
在这里插入图片描述

在Head部分

在这里插入图片描述
在这里插入图片描述

总结

为了高效利用CNN中的特征上下文,GatherExcite被提出,大量实验证明该方法在多个数据集和模型体系结构中的有效性。此外,GatherExcite可进一步应用于YOLOv7、YOLOv8等模型中,欢迎大家关注本博主的微信公众号 BestSongC,后续更多的资源如模型改进、可视化界面等都会在此发布。另外,本博主最近也在MS COCO数据集上跑了一些YOLOv5的改进模型,实验表明改进后的模型能在MS COCO 2017验证集上分别涨点1-3%,感兴趣的朋友关注后回复YOLOv5改进。


http://www.niftyadmin.cn/n/5201434.html

相关文章

Shell判断:模式匹配:case(二)

简单的JumpServer 1、需求:工作中,我们需要管理N多个服务器。那么访问服务器就是一件繁琐的事情。通过shell编程,编写跳板程序。当我们需要访问服务器时,看一眼服务器列表名,按一下数字,就登录成功了。 2、…

年薪30w项目经理都在用的6个项目管理软件

大家好,我是老原。又到了每月一次的好用工具推荐,不少粉丝都在搓手等待了。 要知道,实时掌握项目进度、把关项目质量、应对项目风险、协调资源…如果能好用的工具高效提升你的工作效率,对于领导来说,绝对是加分项。 …

Python不会调试不够丝滑?那事你不会logging---剖析!

前言: 一直都是手动debug进行调试,F8都按烂了;最近用logging进行提前布置,发现这样更能让代码走得丝滑,同时也能尽早发现问题! 基本概念: Logger - 日志记录接口 Handler - 确定日志记录发送到不同的地方(文件、控制台等) Level - 定义了日…

设计循环队列(c语言)

前言 在上一篇文章中我们了解了关于循环队列的基本特性: 1、当rear front时,表示队列为空 2、当rear 1 front时,表示队列已满 当我们需要实现循环队列时,通常会选择使用链表或数组来存储队列中的元素。而使用数组来实现循环队…

深入理解Java虚拟机-GC

深入理解Java虚拟机-GC 当需要排查各种内存溢出、内存泄漏时,当垃圾回收成为系统到达更高并发量的瓶颈时,我们必须对内存动态分配和内存回收技术这样的“自动化”技术采用必要的监控和调节。 Java堆和方法区:一个接口的多个实现类需要的内存…

HBase之BlockCache

目录 BlockCacheLruBlockCacheBucketCacheCompressed BlockCache注意点 BlockCache 用于缓存从hdfs读的数据,有两种不同的实现,LruBlockCache(利用堆内存)和BucketCache(利用非堆内存) LruBlockCache 使用LRU算法 Single access级:首次从…

申银万国期货通过ZStack Cube信创超融合一体机打造金融信创平台

信创是数字中国建设的重要组成部分,也是数字经济发展的关键推动力量。作为云基础软件企业,云轴科技ZStack产品矩阵全面覆盖数据中心云基础设施,ZStack信创云首批通过可信云《一云多芯IaaS平台能力要求》先进级,是其中唯一兼容四种…

Java 1.0 到 Java 17历程

Java 自 1995 年发布以来,经历了多个版本的更新,每个版本都引入了新的特性和改进。以下是从 Java 1.0 到 Java 17(截至我所掌握的最新信息)的主要新特性概览: Java 1.0 (1996) 初始版本,包含了Java的基础…