当前位置: 首页 > news >正文

YOLOv11改进:SE注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,与其他一些注意力机制相比,不仅准确度更高,而且模型更加轻量化。)

如果实验环境尚未搭建成功,可以参考这篇文章 ->【YOLOv11超详细环境搭建以及模型训练(GPU版本)】

文章链接为:YOLOv11超详细环境搭建以及模型训练(GPU版本)-CSDN博客

---------------------------------------------------------------------------​

1.基本原理简介

Abstract:The central building block of convolutional neural networks (CNNs) is the convolution operator, which enables networks to construct informative features by fusing both spatial and channel-wise information within local receptive fields at each layer. A broad range of prior research has investigated the spatial component of this relationship, seeking to strengthen the representational power of a CNN by enhancing the quality of spatial encodings throughout its feature hierarchy. In this work, we focus instead on the channel relationship and propose a novel architectural unit, which we term the “Squeeze-and-Excitation” (SE) block, that adaptively recalibrates channel-wise feature responses by explicitly modelling interdependencies between channels. We show that these blocks can be stacked together to form SENet architectures that generalise extremely effectively across different datasets. We further demonstrate that SE blocks bring significant improvements in performance for existing state-of-the-art CNNs at slight additional computational cost. Squeeze-and-Excitation Networks formed the foundation of our ILSVRC 2017 classification submission which won first place and reduced the top-5 error to 2.251%, surpassing the winning entry of 2016 by a relative improvement of ∼25%.

摘要:卷积神经网络(CNNs)的核心构建模块是卷积算子,它使网络能够通过在每一层的局部感受野内融合空间信息和通道信息来构建信息丰富的特征。大量先前的研究已经调查了这种关系的空间组成部分,旨在通过增强整个特征层次结构中空间编码的质量来增强CNN的表征能力。在这项工作中,我们转而关注通道关系,并提出了一种新颖的架构单元,我们将其称为“挤压激励”(SE)块,它通过明确建模通道之间的相互依赖关系,自适应地重新校准通道特征响应。我们展示了这些块可以堆叠在一起形成SENets架构,能够极其有效地泛化到不同的数据集上。我们进一步证明了SE块在现有的最先进CNN中带来了显著的性能提升,而计算成本增加略微。挤压激励网络奠定了我们的ILSVRC 2017分类提交的基础,赢得了第一名,并将前5错误率降低到2.251%,相对改进约为25%,超过了2016年的获胜作品。

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

代码地址:https://github.com/hujie-frank/SENet

主要原理与思想

Squeeze-and-Excitation Networks(简称SE网络)是一种旨在提高卷积神经网络(CNN)性能的神经网络架构模块。它由Jie Hu等人在2018年提出,主要思想是通过在每个卷积层后引入一种“注意力机制”,使网络能够自适应地调整每个通道(channel)的权重,从而增强对有用特征的关注,抑制无用或冗余特征。

1.通道注意力机制:

在传统的卷积神经网络中,不同通道的特征图往往被视为同等重要,而SE网络引入了一种机制,允许网络根据输入图像自适应地调整每个通道的重要性。这意味着网络可以为更相关的通道分配更高的权重,从而增强这些通道的输出特征。

2.Squeeze操作:

对于每一个通道,通过全局平均池化(Global Average Pooling)将每个通道的空间特征压缩(squeeze)为一个标量。这一步骤可以捕捉全局的空间信息。

3.Excitation操作:

接下来,网络通过一个全连接层,使用非线性激活函数(如ReLU和Sigmoid)对这些标量进行建模。这一步骤的目的是生成一个针对每个通道的权重,这些权重会用于后续的特征重标定(recalibration)。

4.特征重标定(Feature Recalibration):

最后,网络将这些权重与原始的特征图进行按通道的加权乘法(逐通道乘法)。这意味着每个通道的特征图会根据它的权重进行缩放,增强了对关键特征的关注。

主要贡献

提高了网络的表达能力:通过引入SE模块,网络能够更好地区分有用和无用的特征,提高了网络的表达能力和分类精度。轻量级且通用性强:SE模块非常轻量,并且可以无缝集成到现有的各种卷积网络架构中,如ResNet、Inception等,几乎不增加计算量和参数量,但显著提高了网络性能。

实验效果

在ImageNet等多个图像分类任务中,加入SE模块的网络显著提升了分类精度,并且表现出良好的泛化能力。总体而言,Squeeze-and-Excitation Networks通过引入通道注意力机制,显著增强了卷积神经网络对重要特征的关注能力,是深度学习领域一个非常重要的创新。

2.将SE模块加入到YOLOv11中

注意:SE 模块是一种即插即用的模块,可以在许多位置添加。不同的数据集可能需要在不同的位置添加 SE 模块,其效果也会有所不同。建议在不同位置进行多次实验以便比较效果。以下是我选择添加SE模块的位置,供大家参考,但不一定要完全按照这种方式添加。

在YOLOv11的主干网络(Backbone)中添加SE模块

2.1 步骤一

在【ultralytics/nn/modules】目录下新建一个se.py的文件,添加SE模块代码。代码获取链接:https://mbd.pub/o/bread/mbd-Z5WXmJ9x

最后在【ultralytics/nn/moduels/_init_.py】文件里面导入SE模块。

2.2 步骤二

打开【ultralytics/nn/tasks.py】文件,在文件的开头导入SE模块。

然后找到parse_model这个方法(可以通过搜索parse_model)。

最后在parse_model方法中找到for语句(for i, (f, n, m, args) in enumerate(d["backbone"] + d["head"])),在for语句中再添加一个elif语句,将SE模块添加进去。

elif m in {SE}:args = [ch[f],  ch[f]]

添加的位置截图如下:

2.3 步骤三

修改模型。在【ultralytics/cfg/models/11】目录下新建一个yolov11-se.yaml网络结构配置文件。将SE模块添加到YOLOv11结构中(这里我将SE模块添加到主干网络的倒数第三层)。 代码获取链接:https://mbd.pub/o/bread/mbd-Z5WXmJ9x

2.4 训练过程

为了方便训练,可以在项目目录下新建一个名为train.py的文件,这样以后只需执行train.py就可以开始训练模型了。 代码获取链接:https://mbd.pub/o/bread/mbd-Z5WXmJ9x

(如果train.py文件已经存在,只需要修改其中模型和数据集的配置文件路径即可。我这里给出的train.py文件中只是列举了常用的超参数,如果需要修改其他的超参数,可以进入【ultralytics/cfg/default.yaml】文件修改即可。)

成功运行的网络结构截图如下:

开始训练模型的部分截图如下:

训练结果保存在【runs/detect】目录下。

3.完整的项目文件下载路径

我们提供完整的项目文件,你也可以直接下载到本地,然后打开项目,修改数据集配置文件【NEU-DET.yaml】的数据集路径即可训练模型。 

完整项目代码获取链接:https://mbd.pub/o/bread/mbd-Z5WXmJ9x

相关文章:

YOLOv11改进:SE注意力机制【注意力系列篇】(附详细的修改步骤,以及代码,与其他一些注意力机制相比,不仅准确度更高,而且模型更加轻量化。)

如果实验环境尚未搭建成功,可以参考这篇文章 ->【YOLOv11超详细环境搭建以及模型训练(GPU版本)】 文章链接为:YOLOv11超详细环境搭建以及模型训练(GPU版本)-CSDN博客 -------------------------------…...

STM32 基于HAL库和STM32cubeIDE的应用教程 (二)--GPIO的使用

如果有什么不懂的地方欢迎私聊博主,欢迎小白,博主必一一解答。 在 STM32 中,GPIO(通用输入输出)是与外部硬件接口进行交互的主要方式之一。STM32 HAL 库提供了简洁的接口来配置和控制 GPIO 引脚。下面是使用 STM32 HA…...

【毫米波雷达(七)】自动驾驶汽车中的精准定位——RTK定位技术

一、什么是RTK? RTK,英文全名叫做Real-time kinematic,也就是实时动态。这是一个简称,全称其实应该是RTK(Real-time kinematic,实时动态)载波相位差分技术。 二、RTK的组装 如上图所示&#x…...

Transformer和BERT的区别

Transformer和BERT的区别比较表: 两者的位置编码: 为什么要对位置进行编码? Attention提取特征的时候,可以获取全局每个词对之间的关系,但是并没有显式保留时序信息,或者说位置信息。就算打乱序列中token…...

linux 加载uPD720201固件

硬件 jetson orin nano jetpack 35.5.0 uPD720201是瑞萨推出的怕pcie扩展usb3.0芯片,支持flash主动加载与在系统被动加载 本文介绍如何做到没接flash情况下由系统加载固件 在uPD720201没接spi flash时候nano启动会报XhciDxe错误而自动重启,首先需要在ue…...

C语言中的信号量semaphore详解

在C语言中,**信号量(Semaphore)**是一种常用的同步机制,用于控制多个线程或进程对共享资源的访问。信号量可以实现类似于锁的效果,但更为灵活,适用于并发编程场景。 1. 什么是信号量 信号量可以看作是一个…...

0087__DirectX11 With Windows SDK--02 顶点/像素着色器的创建、顶点缓冲区

DirectX11 With Windows SDK--02 顶点/像素着色器的创建、顶点缓冲区-CSDN博客...

Windows换机华为擎云(银河麒麟V10+麒麟9000C CPU)后,使用selenium的程序怎么办(20241030)

原本的 seleniumChrome 已无法正常工作。chromedriver 报错:不支持 Linux/aarch64。 1、尝试Firefox、edge驱动。Firefox有一个geckodriver版本与Firefox版本的对照表,我看了一下,感觉他们是始终跟进新技术的。银河麒麟的很多库都是几年前的…...

linux 下 signal() 函数的用法,信号类型在哪里定义的?

--------------------------------------------------- author: hjjdebug date: 2024年 11月 07日 星期四 14:47:33 CST description: linux 下 signal() 函数的用法 --------------------------------------------------- signal 是linux 下最基础的进程通讯机制…...

享元模式及其运用场景:结合工厂模式和单例模式优化内存使用

介绍 享元模式(Flyweight Pattern)是一种结构型设计模式,它通过共享对象来减少内存使用,尤其是对于大量相似对象的场景。享元模式通常与工厂模式和单例模式结合使用,从而有效地控制和复用对象的创建。在享元模式中&am…...

【物联网技术】ESP8266 WIFI模块在STA模式下实现UDP与电脑/手机网络助手通信——UDP数据透传

前言:完成ESP8266 WIFI模块在STA模式下实现UDP与电脑/手机网络助手通信——实现UDP数据透传 STA模式,通俗来说就是模块/单片机去连接路由器/热点来通信。 UDP协议,是传输层协议,UDP没有服务器和客户端的说法。 本实验需要注意,wifi模块/单片机与电脑/手机需要连接在同一个…...

【SQL Server】华中农业大学空间数据库实验报告 实验一 数据库

实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法,认识界面,了解其两个基本操作系统文件,并能熟练区分与应用交互式与T-SQL式两种方法在SQL Server中如何进行操作;学习有关数据库的基本操作,包括&#xff1a…...

操作系统页面置换算法Java实现(LFU,OPT,LRU,LFU,CLOCK)

FIFO先进先出算法 java import java.util.LinkedList; import java.util.Queue; public class Main { //先进先出的思想 是 用一个队列去模拟数据 如果当前不存在就是发生缺页中断了 就需要添加 如果已经满了 将队头的元素出队 即可 //先进先出 就是一个数组 frameCount publi…...

Request和Response

前言 这一节主要讲的是Request和Response还有一些实例 1. 介绍 就是这两个参数 WebServlet("/demo7") public class ServletDemo7 extends HttpServlet {Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletExcepti…...

【青牛科技】GC8549替代LV8549/ONSEMI在摇头机、舞台灯、打印机和白色家电等产品上的应用分析

引言 在现代电子产品中,控制芯片的性能直接影响到设备的功能和用户体验。摇头机、舞台灯、打印机和白色家电等领域对控制精度、功耗和成本等方面的要求日益提高。LV8549/ONSEMI等国际品牌的芯片曾是这些产品的主要选择,但随着国内半导体技术的进步&…...

(十二)JavaWeb后端开发——MySQL数据库

目录 1.数据库概述 2.MyQSL 3.数据库设计 DDL 4.MySQL常见数据类型 5.DML 1.数据库概述 数据库:DataBase(DB),是存储和管理数据的仓库 数据库管理系统:DataBase ManagementSystem(DBMS),操纵和管理数据库的大型软件 SQL&a…...

pnpm管理多工作区依赖

pnpm是一个支持多包仓库的一个包管理工具,那么怎么可以在项目根目录下执行pnpm install的时候,也能同步让所有的工作区都能够通安装依赖呢? 方式一,在执行pnpm install指令的时候,添加recursive参数: pnpm install --recursive 方式二,在项目的根目录下通过pnpm的配置文件p…...

如何在本地Linux服务器搭建WordPress网站结合内网穿透随时随地可访问

文章目录 前言1. 安装WordPress2. 创建WordPress数据库3. 安装相对URL插件4. 安装内网穿透发布网站4.1 命令行方式:4.2. 配置wordpress公网地址 5. 配置WordPress固定公网地址 前言 本文主要介绍如何在Linux Ubuntu系统上使用WordPress搭建一个本地网站&#xff0c…...

二、应用层,《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》

文章目录 零、前言一、应用层协议原理1.1 网络应用的体系结构1.1.1 客户-服务器(C/S)体系结构1.1.2 对等体(P2P)体系结构1.1.3 C/S 和 P2P体系结构的混合体 1.2 进程通信1.2.1 问题1:对进程进行编址(addressing)&#…...

面粉直供系统|基于java和小程序的食品面粉直供系统设计与实现(源码+数据库+文档)

面粉直供系统 目录 基于java和小程序的食品面粉直供系统设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师&#x…...

【STM32入门教程】将`printf`重定向到USART串口(以USB转串口为例)

【STM32入门教程】将printf重定向到USART串口(以USB转串口为例) 在STM32开发中,printf是一个非常方便的调试工具。但默认情况下,printf会输出到标准输出设备(如屏幕),而在嵌入式系统中&#xff…...

2026届最火的六大AI辅助论文网站实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能技术飞速发展着,智能内容生成也就是AIGC,正一步步渗透到学术…...

从零到告警:用Prometheus+SNMP监控华为交换机,并配置Grafana看板与告警规则

从零构建华为交换机智能监控体系:PrometheusSNMP实战指南 当机房里的华为交换机突然宕机时,运维团队往往要面对业务部门的连环追问。传统的人工巡检方式就像用体温计量火山喷发——既滞后又无力。本文将手把手带您搭建从数据采集到告警响应的完整监控闭环…...

py之paho mqtt客户端代码示例(亲测可用)

from paho.mqtt import client as mqtt_clientdef on_connect(client, userdata, flags, reasonCode, properties):"""连接成功回调reasonCode: 0 表示成功,其他值表示失败"""print...

法律检索效率暴跌83%?Perplexity法律文献搜索的3大隐藏功能,律所内部培训刚流出

更多请点击: https://kaifayun.com 第一章:法律检索效率暴跌83%?Perplexity法律文献搜索的3大隐藏功能,律所内部培训刚流出 当某红圈所合伙人发现团队平均单案法律检索耗时从2.1小时飙升至11.4小时,真相竟是——传统关…...

NGSIM数据集:如何成为自动驾驶算法开发的‘黄金标准’测试集?

NGSIM数据集:自动驾驶算法开发的黄金标准与实战指南 在自动驾驶技术快速迭代的今天,算法验证的可靠性直接决定了系统落地的安全性。而NGSIM数据集凭借其0.1秒级高精度采样和真实人类驾驶行为记录,已成为行业公认的算法测试基准。不同于合成数…...

Arm Ethos-U65 NPU性能监控单元(PMU)架构与应用解析

1. Arm Ethos-U65 NPU性能监控单元架构解析 性能监控单元(PMU)是现代处理器架构中不可或缺的调试与分析模块,尤其在AI加速器领域更是性能调优的关键工具。Arm Ethos-U65 NPU作为面向嵌入式设备的神经网络处理器,其PMU设计充分考虑…...

从社交网络到疾病传播:ER随机图模型在实际场景中的仿真应用指南

从社交网络到疾病传播:ER随机图模型在实际场景中的仿真应用指南 在流行病学研究中,一个关键问题是如何预测疾病在人群中的传播速度和范围。想象一下,你是一名公共卫生官员,需要评估某种新型流感在小镇上的潜在传播风险。传统方法可…...

B站视频下载神器:如何优雅地将Bilibili内容保存到本地

B站视频下载神器:如何优雅地将Bilibili内容保存到本地 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/b…...

工业自动化实战:Modbus转Profinet网关配置与机器人PLC通信集成

1. 项目概述与核心需求解析最近在做一个产线自动化升级的项目,客户现场有一套六轴关节机器人,控制器是国产的ES-R6系列,需要和产线主控的西门子S7-1200 PLC进行实时数据交互。机器人负责上下料和精密装配,PLC则统筹整条线的启停、…...