























本文提出信息整合注意力(IIA)机制,并将其集成到YOLO26中用于遥感图像语义分割。传统CNN和Transformer方法分别存在难以捕捉全局信息和计算复杂的问题,现有基于Mamba的方法也未充分考虑局部信息。IIA机制利用图像特征空间位置不变性,通过基础信息融合、双方向序列提取和动态权重调制三个核心步骤,以及通道级拼接、双方向拆分与池化、轻量级1D卷积和残差融合四个关键操作,实现了轻量与精准的平衡。我们将IIA集成到YOLO26的C3k2模块中。实验表明,改进后的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的核心创新逻辑源于对“图像特征空间位置不变性”的利用——即同一目标在图像中的相对位置关系(如“车辆在道路上”“窗户在建筑立面”)具有稳定性,可通过捕捉这种关系强化有效特征、过滤噪声。其本质是“先融合信息→再分方向提取关键序列→最后动态加权增强” 的三阶段递进式处理,具体逻辑链如下:
IIA通过四步核心操作落地上述逻辑,每一步均包含针对性创新,既保证效果又控制计算成本:
这是IIA最核心的创新环节之一,通过“拆分维度+双池化”解决传统注意力“全局笼统处理”的缺陷:
步骤1:双方向特征重塑
将融合特征图拆分为两个独立的“方向特征”:
步骤2:双池化提取序列信息
对每个方向的特征图,沿“非目标维度”(高度方向特征沿宽度维度池化、宽度方向特征沿高度维度池化)同时执行平均池化和最大池化:
class IIA(nn.Module):
def __init__(self, channel):
super(IIA, self).__init__()
self.attention = AttentionWeight(channel)
def forward(self, x):
# b, w, c, h
x_h = x.permute(0, 3, 1, 2).contiguous()
x_h = self.attention(x_h).permute(0, 2, 3, 1)
# b, h, c, w
x_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.9
return x + x_h + x_w
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
# 修改为自己的配置文件地址
model = YOLO('./ultralytics/cfg/models/26/yolo26-C3k2_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',
optimizer='SGD',
amp=False,
project='runs/train',
name='yolo26-C3k2_IIA',
)

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。