news 2026/2/3 12:06:02

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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',)

结果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 0:01:37

15.ACS725 电流检测

分享一颗电流传感器IC芯片,ACS725芯片,这颗芯片是汽车级的,工作温度在-40到150度,很多电流采集的场合可以使用。ACS725提供了一种小封装,低成本的表贴封装,而且目前在国内也有可以替换的一些IC出现&#xf…

作者头像 李华
网站建设 2026/1/23 2:35:32

【课程设计/毕业设计】基于springboot的学车驾校线上学习课程安排管理系统的设计与实现【附源码、数据库、万字文档】

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

作者头像 李华
网站建设 2026/1/30 14:02:12

Java毕设选题推荐:基于Java+springboot的驾校课程线上学习管理系统的设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

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

作者头像 李华
网站建设 2026/2/3 2:02:13

基于Java+SpringBoot+Vue的大学生房屋租赁系统【附源码+文档+部署视频+讲解】Python,Django,php,Flask,node.js,SSM,JSP,微信小程序,大数据技术

博主介绍 👨 程序员一枚,全网粉丝 30W,累计助力 5000 学子完成优秀毕设,专注大学生项目实战开发、技术讲解与毕业论文撰写修改,全栈领域优质创作者!博客之星、掘金 / 华为云 / 阿里云 / InfoQ 等多平台优质…

作者头像 李华
网站建设 2026/2/3 11:09:57

10 分钟使用 OrchardCore 快速构建 .NET 内容管理系统(CMS)

目录 前言 项目介绍 项目特点 支持数据库 项目源代码 创建 Orchard Core CMS 网站 CMS 网站后台管理页面 菜单栏编辑 内容管理 主题切换 角色权限管理 创建网站用户 图片管理 其他功能 项目源码地址 优秀项目和框架精选 前言 今天我们来使用 OrchardCore 来快…

作者头像 李华
网站建设 2026/2/2 0:40:35

Tuniac(无损音乐播放器)

链接:https://pan.quark.cn/s/a897e5b919d2Tuniac是免费的无损音乐播放器软件,这是itunes风格的音乐播放器,支持很多音乐格式,包括flac, mp3, aac/m4a/mp4/3gp, opus, ogg&#xff0…

作者头像 李华