YOLO26 改进 - 注意力机制 | IIA信息整合注意力(Information Integration Attention ):精准保留空间位置信息,平衡精度与计算成本 | TGRS2025

前言

本文提出信息整合注意力(IIA)机制,并将其集成到YOLO26中用于遥感图像语义分割。传统CNN难捕捉全局信息,Transformer计算复杂,现有基于Mamba的方法未充分考虑局部信息。IIA利用图像特征空间位置不变性,先融合编解码器特征,再从高度和宽度方向提取序列信息,生成注意力权重因子动态调制特征。其通过通道级拼接、双方向拆分与池化、轻量级1D卷积和残差融合等操作,平衡了精度与计算成本。实验表明,集成IIA的YOLO26在数据集上提高了精度,且运行高效。

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

专栏链接: YOLO26改进专栏

介绍

摘要

在遥感图像语义分割领域,基于卷积神经网络(CNNs)和Transformer的方法已得到广泛研究。然而,由于CNN的局部特征提取特性,其难以捕捉全局上下文信息,而Transformer则受限于二次计算的复杂性。近年来,基于Mamba的状态空间模型引发了大量关注。但现有的基于Mamba的方法在遥感图像分割任务中,未能充分考虑局部信息的重要性。本文构建了一种编解码风格的网络UMFormer,用于遥感图像的语义分割。具体而言,UMFormer采用ResNet18作为编码器,旨在进行初步的图像特征提取。随后,对自注意力机制进行优化,以在多尺度条件下提取不同大小目标的全局信息。为了融合编解码器的特征图信息,构建了另一种注意力结构,用于重建空间信息并捕捉相对位置关系。最后,设计了一个基于Mamba的解码器,以有效对全局和局部信息进行建模。同时,设计了一种利用特征相似性的特征融合机制,目的是将局部信息嵌入到全局信息中。在无人机影像数据集(UAVid)、Vaihingen和Potsdam数据集上进行的大量实验表明,所提出的UMFormer在保持高效运行速度的同时,还提高了精度。相关代码将在以下网址免费公开:https://github.com/takeyoutime/UMFormer

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

信息整合注意力(Information Integration Attention, IIA)是一种为解决编码器-解码器架构中特征融合痛点设计的轻量级注意力机制,核心创新围绕“精准保留空间位置信息、高效抑制噪声干扰、平衡精度与计算成本”展开。

一、核心逻辑:基于“空间位置不变性”的双方向动态调制

IIA的核心创新逻辑源于对“图像特征空间位置不变性”的利用——即同一目标在图像中的相对位置关系(如“车辆在道路上”“窗户在建筑立面”)具有稳定性,可通过捕捉这种关系强化有效特征、过滤噪声。其本质是**“先融合信息→再分方向提取关键序列→最后动态加权增强”** 的三阶段递进式处理,具体逻辑链如下:

  1. 基础信息融合:先将编码器的局部特征与解码器的全局特征拼接,形成“多尺度信息池”,确保不丢失原始特征细节;
  2. 双方向序列提取:针对特征图的“高度”和“宽度”两个空间维度,分别提取序列信息(类比人类观察图像时“先看上下范围、再看左右范围”),全面捕捉空间位置关联;
  3. 动态权重调制:为两个方向的序列信息生成“注意力权重因子”,对目标区域赋予高权重(强化关键特征)、对噪声区域赋予低权重(抑制干扰),最后通过残差融合保留基础信息,输出增强后的特征。

二、关键操作创新:四大环节实现“轻量+精准”的平衡

IIA通过四步核心操作落地上述逻辑,每一步均包含针对性创新,既保证效果又控制计算成本:

1. 特征融合环节:通道级拼接,保留多尺度信息完整性

2. 特征重塑与信息提取环节:双方向拆分+池化组合,精准捕捉空间关系

这是IIA最核心的创新环节之一,通过“拆分维度+双池化”解决传统注意力“全局笼统处理”的缺陷:

3. 注意力调制因子生成环节:轻量级1D卷积,控制计算成本

4. 特征增强与输出环节:残差融合,平衡增强与信息保留

核心代码

classIIA(nn.Module):def__init__(self,channel):super(IIA,self).__init__()self.attention=AttentionWeight(channel)defforward(self,x):# b, w, c, hx_h=x.permute(0,3,1,2).contiguous()x_h=self.attention(x_h).permute(0,2,3,1)# b, h, c, wx_w=x.permute(0,2,1,3).contiguous()x_w=self.attention(x_w).permute(0,2,1,3)# b, c, h, w# x_c = self.attention(x)# return x + 1 / 2 * (x_h + x_w) # 89.8 92.5 81.9returnx+x_h+x_w

YOLO26引入代码

在根目录下的ultralytics/nn/目录,新建一个attention目录,然后新建一个以IIA.py为文件名的py文件, 把代码拷贝进去。

importtorchimporttorch.nnasnnclassAttentionWeight(nn.Module):def__init__(self,channel,kernel_size=7):super(AttentionWeight,self).__init__()padding=(kernel_size-1)//2self.conv1=nn.Conv2d(2,1,kernel_size=1)self.conv2=nn.Conv1d(channel,channel,kernel_size,padding=padding,groups=channel,bias=False)self.bn=nn.BatchNorm1d(channel)self.sigmoid=nn.Sigmoid()defforward(self,x):b,w,c,h=x.size()x_weight=torch.cat((torch.max(x,1)[0].unsqueeze(1),torch.mean(x,1).unsqueeze(1)),dim=1)x_weight=self.conv1(x_weight).view(b,c,h)x_weight=self.sigmoid(self.bn(self.conv2(x_weight)))x_weight=x_weight.view(b,1,c,h)returnx*x_weightclassIIA(nn.Module):def__init__(self,channel):super(IIA,self).__init__()self.attention=AttentionWeight(channel)defforward(self,x):# b, w, c, hx_h=x.permute(0,3,1,2).contiguous()x_h=self.attention(x_h).permute(0,2,3,1)# b, h, c, wx_w=x.permute(0,2,1,3).contiguous()x_w=self.attention(x_w).permute(0,2,1,3)# b, c, h, w# x_c = self.attention(x)# return x + 1 / 2 * (x_h + x_w) # 89.8 92.5 81.9returnx+x_h+x_w

注册

ultralytics/nn/tasks.py中进行如下操作:

步骤1:

fromultralytics.nn.attention.IIAimportIIA

步骤2

修改def parse_model(d, ch, verbose=True):

elifmisIIA:args=[ch[f],*args]

配置yolo26-IIA.yaml

ultralytics/cfg/models/26/yolo26-IIA.yaml

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license# Ultralytics YOLO26 object detection model with P3/8 - P5/32 outputs# Model docs: https://docs.ultralytics.com/models/yolo26# Task docs: https://docs.ultralytics.com/tasks/detect# Parametersnc:80# number of classesend2end:True# whether to use end-to-end modereg_max:1# DFL binsscales:# model compound scaling constants, i.e. 'model=yolo26n.yaml' will call yolo26.yaml with scale 'n'# [depth, width, max_channels]n:[0.50,0.25,1024]# summary: 260 layers, 2,572,280 parameters, 2,572,280 gradients, 6.1 GFLOPss:[0.50,0.50,1024]# summary: 260 layers, 10,009,784 parameters, 10,009,784 gradients, 22.8 GFLOPsm:[0.50,1.00,512]# summary: 280 layers, 21,896,248 parameters, 21,896,248 gradients, 75.4 GFLOPsl:[1.00,1.00,512]# summary: 392 layers, 26,299,704 parameters, 26,299,704 gradients, 93.8 GFLOPsx:[1.00,1.50,512]# summary: 392 layers, 58,993,368 parameters, 58,993,368 gradients, 209.5 GFLOPs# YOLO26n backbonebackbone:# [from, repeats, module, args]-[-1,1,Conv,[64,3,2]]# 0-P1/2-[-1,1,Conv,[128,3,2]]# 1-P2/4-[-1,2,C3k2,[256,False,0.25]]-[-1,1,Conv,[256,3,2]]# 3-P3/8-[-1,2,C3k2,[512,False,0.25]]-[-1,1,Conv,[512,3,2]]# 5-P4/16-[-1,2,C3k2,[512,True]]-[-1,1,Conv,[1024,3,2]]# 7-P5/32-[-1,2,C3k2,[1024,True]]-[-1,1,SPPF,[1024,5,3,True]]# 9-[-1,2,C2PSA,[1024]]# 10# YOLO26n headhead:-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,6],1,Concat,[1]]# cat backbone P4-[-1,2,C3k2,[512,True]]# 13-[-1,1,nn.Upsample,[None,2,"nearest"]]-[[-1,4],1,Concat,[1]]# cat backbone P3-[-1,2,C3k2,[256,True]]# 16 (P3/8-small)-[-1,1,IIA,[]]#17-[-1,1,Conv,[256,3,2]]-[[-1,13],1,Concat,[1]]# cat head P4-[-1,2,C3k2,[512,True]]# 19 (P4/16-medium)-[-1,1,IIA,[]]# 21-[-1,1,Conv,[512,3,2]]-[[-1,10],1,Concat,[1]]# cat head P5-[-1,1,C3k2,[1024,True,0.5,True]]# 22 (P5/32-large)-[-1,1,IIA,[]]# 25-[[17,21,25],1,Detect,[nc]]# Detect(P3, P4, P5)

实验

脚本

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

结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1175087.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java计算机毕设之基于springboot的城市化自修室预约签到管理系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

0.传感器及常用模块总结

一、基础传感器(单一物理量检测)磁敏传感器核心型号:干簧管、霍尔传感器(49E、A3144)、霍尔磁力模块应用:接近检测、转速计数、磁性开关光相关传感器光敏传感器:光敏电阻(LDR&#x…

聚焦AI原生应用领域的自然语言理解前沿

聚焦AI原生应用领域的自然语言理解前沿关键词:AI原生应用、自然语言理解、前沿技术、语言模型、应用场景摘要:本文聚焦于AI原生应用领域中自然语言理解的前沿内容。首先介绍了自然语言理解在AI发展中的重要背景,接着详细解释了相关核心概念&a…

计算机Java毕设实战-基于springboot的城市图书馆自修室管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

导师推荐10个AI论文平台,本科生搞定毕业论文!

导师推荐10个AI论文平台,本科生搞定毕业论文! AI 工具助力论文写作,高效又省心 对于大多数本科生而言,毕业论文是大学阶段最具挑战性的任务之一。从选题到开题、撰写再到查重降重,每一个环节都可能让人感到压力山大。而…

基于STM32的智能宠物喂食系统设计与实现

基于STM32的智能宠物喂食系统设计与实现摘要本论文设计并实现了一种基于STM32F103C8T6单片机的智能宠物喂食系统。该系统集成了多参数环境监测、精准食物称重、智能投喂控制与远程监控等功能,可实时监测宠物环境温湿度,精确测量食物重量,根据…

解码WIFI模块与IoT云平台

WIFI模块原理与应用 引言 随着物联网技术快速发展,越来越多的智能设备需要通过无线方式接入互联网。在众多无线通信方案中,WIFI模组(ESP8266/ESP32系列)因其成熟的生态和广泛的应用,成为实现远程控制、数据采集等…

TDengine C# 语言连接器入门指南

本指南汇总官网文档中 C# 初学者应该掌握的基础知识,覆盖安装、连接方式、基本读写、异常处理与数据类型映射。示例代码基于 .NET 6.0。 1. 准备环境 确保 TDengine TSDB 服务端可访问。原生连接使用 serverPort(默认 6030)。WebSocket 连接…

YUV缓冲区

“YUV 缓冲区”是指在图像或视频处理中用于存储 YUV 格式像素数据的一段内存区域。YUV 是一种广泛用于视频采集、编码、传输和显示的颜色编码系统,与常见的 RGB 不同,它将亮度(Luma, Y)和色度(Chroma, U/V)分离开…

Java毕设项目推荐-基于Springboot和Vue的城市化自修室管理系统springboot的城市化自修室管理系统【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

java常用容器源码手撕实现

java常用容器源码手撕(持续更新) ArrayList: 动态数组,扩容,迭代器 package tech.insight;import java.util.Iterator; import java.util.NoSuchElementException; import java.util.Objects;/*** author gongxuanzhan…

大数据学习(1)

我完成了大数据学习的一部分,包括提示工程之类的,对于豆包和deepseek网页版为啥回复答案如此相似有了答案,并跟着教程完成了一个简陋的智能体,(虽说我觉得它现在只是一个智障体),它能够进行读写文件,还有从网上…

【小记】解决校园网中不同单播互通子网间 LocalSend 的发现问题

这回来折腾一下怎么在多播隔离、单播允许的局域网(比如校园网)子网之间实现 LocalSend 客户端的互相发现。各位好久不见~下半年又是忙论文又是忙项目的,实在是没什么时间更新笔记了。趁着今天有点空闲,咱来写写最近…

Java毕设项目推荐-基于springboot的学车超能驾校线上学习管理系统学车预约、考试信息、考试预约、考试成绩、课时充值的设计与实现【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

【计算机毕业设计案例】基于springboot的学车驾校线上学习理论学习考试管理系统的设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

Springboot基于双减政策的家校互动管理系统8e613(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能:家长,教师,学生信息,班级,班务活动,班级公告,校园资讯,计划安排,延时服务,参与服务,学生成绩,家长反馈,家长警告,教师警告,资讯类型,学校基础信息开题报告内容SpringBoot基于“双减”政策的家校互动管理系统开题报告一、研究背景与意义研究…

Java毕设选题推荐:基于springboot+vue的智慧城市化自修室管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

Springboot校园二手交易平台x9zo8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能:商品分类,出售专区,用户,求购专区开题报告内容SpringBoot校园二手交易平台开题报告一、选题背景与意义(一)选题背景在大学校园里,学生群体因学业周期更替、兴趣爱好变化、生活需求调整等因素&#xff0c…

【计算机毕业设计案例】基于springboot的城市化自修室座位预约管理系统(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

PCM缓冲区

“PCM 缓冲区”通常是指在数字音频处理中用于临时存储 脉冲编码调制(Pulse Code Modulation, PCM)数据的一段内存区域。 PCM 是最常见、最基础的未压缩数字音频格式,广泛应用于音频播放、录音、通信和音视频编解码等…