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

YOLOv11 改进 - 注意力机制 GAM全局注意力机制:通道与空间注意力协同抑制背景干扰,强化目标关键特征

前言

本文介绍了全局注意力机制(Global Attention Mechanism)及其在YOLOv11中的结合应用。该机制旨在增强深度神经网络在计算机视觉任务中的性能,通过保留通道和空间信息来增强跨维度交互。它结合3D置换与多层感知器实现通道注意力,同时包含卷积空间注意力子模块,减少信息损失并放大全局维度交互特征。通过元素级乘法,通道和空间注意力图与输入特征图交互。

文章目录: YOLOv11改进大全:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

专栏链接: YOLOv11改进专栏

@

目录
  • 前言
  • 介绍
    • 摘要
  • 文章链接
  • 基本原理
  • 核心代码
  • 实验
    • 脚本
    • 结果

介绍

image-20240706222521786

摘要

为提升计算机视觉任务的性能表现,现有研究已探索了多种注意力机制,然而当前方法普遍忽视了同时保留通道与空间维度信息对于增强跨维度交互的重要性。针对此问题,本研究提出了一种全局注意力机制,通过有效减少信息损失并强化全局交互表征来优化深度神经网络性能。具体而言,我们引入了基于多层感知器的三维排列结构用于通道注意力建模,同时整合了卷积空间注意力子模块。在CIFAR-100和ImageNet-1K图像分类任务的系统性评估中,实验结果表明所提出的方法在ResNet架构及轻量级MobileNet网络上均稳定优于多种最新注意力机制,验证了该全局注意力机制在提升模型性能方面的有效性和优越性。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

全局注意力机制(Global Attention Mechanism)是一种用于增强深度神经网络性能的技术,特别是在计算机视觉任务中。该机制的技术原理在于通过保留通道和空间方面的信息,以增强跨维度的交互作用。相较于以往方法,全局注意力机制着重于在处理通道和空间信息时保持全局交互的重要性。

该机制采用了一种全新的方法来处理通道和空间信息,以提高深度神经网络的性能。具体而言,全局注意力机制结合了3D置换与多层感知器用于通道注意力,同时还包括一个卷积空间注意力子模块。这些组件共同作用,旨在减少信息损失并放大全局维度交互特征。

在技术实现上,全局注意力机制通过对输入特征图进行处理,得到中间状态和输出状态。其中,通道注意力图和空间注意力图分别用于捕获通道和空间维度的重要特征。通过元素级乘法操作,这些注意力图与输入特征图进行交互,从而实现全局跨维度的信息交互。

image-20240706222616745

核心代码

import torch
import torch.nn as nnclass GAM(nn.Module):def __init__(self, in_channels, out_channels, rate=4):super().__init__()in_channels = int(in_channels)out_channels = int(out_channels)inchannel_rate = int(in_channels/rate)self.linear1 = nn.Linear(in_channels, inchannel_rate)self.relu = nn.ReLU(inplace=True)self.linear2 = nn.Linear(inchannel_rate, in_channels)self.conv1=nn.Conv2d(in_channels, inchannel_rate,kernel_size=7,padding=3,padding_mode='replicate')self.conv2=nn.Conv2d(inchannel_rate, out_channels,kernel_size=7,padding=3,padding_mode='replicate')self.norm1 = nn.BatchNorm2d(inchannel_rate)self.norm2 = nn.BatchNorm2d(out_channels)self.sigmoid = nn.Sigmoid()def forward(self,x):b, c, h, w = x.shape# B,C,H,W ==> B,H*W,Cx_permute = x.permute(0, 2, 3, 1).view(b, -1, c)# B,H*W,C ==> B,H,W,Cx_att_permute = self.linear2(self.relu(self.linear1(x_permute))).view(b, h, w, c)# B,H,W,C ==> B,C,H,Wx_channel_att = x_att_permute.permute(0, 3, 1, 2)x = x * x_channel_attx_spatial_att = self.relu(self.norm1(self.conv1(x)))x_spatial_att = self.sigmoid(self.norm2(self.conv2(x_spatial_att)))out = x * x_spatial_attreturn outif __name__ == '__main__':img = torch.rand(1,64,32,48)b, c, h, w = img.shapenet = GAM(in_channels=c, out_channels=c)output = net(img)print(output.shape)

实验

脚本

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLOif __name__ == '__main__':
#     修改为自己的配置文件地址model = YOLO('/root/ultralytics-main/ultralytics/cfg/models/11/yolov11-GAM.yaml')
#     修改为自己的数据集地址model.train(data='/root/ultralytics-main/ultralytics/cfg/datasets/coco8.yaml',cache=False,imgsz=640,epochs=10,single_cls=False,  # 是否是单类别检测batch=8,close_mosaic=10,workers=0,optimizer='SGD',amp=True,project='runs/train',name='GAM',)

结果

image-20241020213108567

http://www.jsqmd.com/news/798449/

相关文章:

  • javascript中的caller和Error.stack
  • 工厂货物智能入库全流程自动化:基于实在Agent与ISSUT技术的2026工业自动化实战指南
  • Fluent Launch界面深度解析:从串行到并行的性能跃迁之路
  • 别再手动编译了!用Buildroot 2024.02为树莓派4B一键构建定制Linux系统(附完整配置流程)
  • Windows任务栏透明美化终极指南:TranslucentTB快速配置完整教程
  • 设计程序核算职场各类福利发放数据,对比福利成本与员工积极性变化,测算最优福利发放标准,控制企业人力开发同时提升员工幸福感。
  • MCDF顶层验证环境复用策略与实现
  • 雀魂Mod Plus终极指南:免费解锁全角色皮肤的最简单方法
  • CMake-GUI可视化编译OpenCV 3:给命令行恐惧症患者的Ubuntu图形化安装指南
  • YOLOv11 改进 - 注意力机制 Focused Linear Attention 聚焦线性注意力:增强特征聚焦与多样性,优化多尺度目标检测
  • 用Python和OpenCV搞定车道曲率计算:从像素到真实世界的保姆级转换指南
  • 从渔船到货轮:一文看懂AIS B类与A类设备的区别及数据解析要点
  • 【Mac效率】告别窗口切换烦恼:用AfloatX解锁AlwaysOnTop、置底与透明度的窗口管理新姿势
  • 如何用HsMod插件让炉石传说游戏体验提升300%:终极完整指南
  • Navicat和DBeaver连接Oracle 19c保姆级教程:从配置文件修改到用户授权,一次搞定
  • Zotero插件市场:让插件管理变得前所未有的简单
  • 终极指南:如何免费批量下载网易云音乐FLAC无损音质歌曲
  • OOXML 文档格式剖析:哈希、ZIP结构与识别
  • 探索FanControl:Windows平台专业风扇控制软件完全指南
  • 打工人高效工具!OpenClaw 汉化版部署全程教学
  • 从LC谐振到SAW滤波器:浅谈手机里的射频前端是怎么‘过滤’信号的
  • TensorPool:AI-Native RAN的3D异构计算引擎设计与优化
  • 【2024最新】Midjourney Encaustic风格Prompt公式库(含17组已验证英文提示模板+中文翻译对照表)
  • 避开这些坑,你的Z7板子DDR才能稳如老狗:PCB Layout信号完整性实战解析
  • 怪物猎人世界终极叠加层工具:HunterPie 5分钟快速上手指南
  • MySQL安装报错libssl.so.10找不到?一份给Linux新手的依赖问题排查与解决指南
  • GENIVI DLT Viewer不只是看日志:手把手教你定制插件,打造专属车载诊断工具链
  • 对于软硬件结合的技术而言,有些经验永远无法通过单纯的仿真获得
  • FreeRTOS移植避坑指南:RISC-V平台下源码目录的‘瘦身’与配置要点解析
  • Wi-Fi 6(802.11ax)开发笔记:深入HE变体与BSR Control字段,实现高效上行调度