信息整合注意力IIA,通过双方向注意力机制重构空间位置信息,动态增强目标关键特征并抑制噪声
在遥感图像语义分割等视觉任务中,编码器 - 解码器结构通过跳跃连接融合多尺度特征时,常面临两大挑战:一是编码器的局部细节特征与解码器的全局语义特征融合时,空间位置信息易丢失,导致目标定位不准;二是复杂场景中(如目标大小不均、背景噪声多),特征融合过程中易出现类别误分(如相似颜色的不同类别混淆)。传统注意力机制虽能增强关键特征,但多依赖高计算成本的全连接层或 Transformer 结构,难以在轻量级网络中平衡精度与效率。为此,信息整合注意力(IIA)被提出,旨在通过轻量级设计重构空间位置信息,增强编码器与解码器特征的有效融合,同时抑制噪声干扰。
1.IIA原理
IIA 的核心原理是基于特征的位置不变性,通过捕捉通道内的序列信息生成空间注意力权重,动态增强关键位置特征并抑制噪声。具体而言,它首先融合编码器与解码器的特征图,通过池化操作提取通道内的全局与局部统计信息(平均池化捕捉整体趋势,最大池化突出显著特征);再利用 1D 卷积处理这些序列信息,生成高度和宽度方向的注意力调制因子,使模型能自适应聚焦于目标区域(如边界、小目标),弱化背景噪声,最终实现更精准的空间位置信息重构与特征增强。
IIA 的结构主要包括以下步骤:
- 特征融合与重塑:将编码器输出特征图与解码器输出特征图按通道维度拼接,再重塑为聚焦高度和宽度方向的两个特征图,分别对应不同的空间维度信息处理45。
- 序列信息提取:对重塑后的特征图分别进行平均池化和最大池化操作,提取高度和宽度方向的序列特征,捕捉通道内的全局趋势和显著特征3。
- 注意力调制因子生成:将池化结果拼接后,通过 1D 卷积(核大小为 7)压缩通道并捕捉序列依赖关系,经批归一化和 Sigmoid 激活函数,生成高度和宽度方向的注意力调制因子67。
- 特征增强输出:将注意力调制因子与原始融合特征图进行元素乘法操作,并与原始特征图进行残差相加,得到增强后的特征图,实现空间位置信息的重构和关键特征的强化7。
2. IIA在不同领域论文中的描述
IIA 在目标检测中的优点
IIA 在目标检测中能有效提升特征融合的精准性与抗干扰性。其通过高度和宽度双方向的注意力调制,可针对性增强目标区域(如小目标、密集目标)的位置特征,弱化复杂背景(如纹理干扰、光照变化)的噪声影响,帮助模型更精准定位目标边界与中心;同时,轻量级设计(1D 卷积替代全连接层)避免了计算负担,使检测网络在保持实时性的同时,提升对难样本(如遮挡目标、低对比度目标)的识别率,平衡检测精度与速度。
IIA 在分割中的优点
YOLO 以实时性为核心优势,IIA 的轻量级设计(低参数与低 FLOPs)不会显著降低其推理速度;同时,IIA 对目标位置特征的增强的能力,能提升 YOLO 在密集场景或小目标检测中的精度,尤其适合复杂环境下的快速目标定位。
3. YOLO与IIA的结合
YOLO 以实时性为核心优势,IIA 的轻量级设计(低参数与低 FLOPs)不会显著降低其推理速度;同时,IIA 对目标位置特征的增强的能力,能提升 YOLO 在密集场景或小目标检测中的精度,尤其适合复杂环境下的快速目标定位。
4. IIA代码部分
信息整合注意力IIA,通过双方向注意力机制重构空间位置信息,动态增强目标关键特征并抑制噪声_哔哩哔哩_bilibili
YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili
代码获取:https://github.com/tgf123/YOLOv8_improve
5. IIA到YOLOv11中
第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。
第二:在task.py中导入包
第三:在task.py中的模型配置部分下面代码
第四:将模型配置文件复制到YOLOV11.YAMY文件中
第五:运行代码
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
import torch
if __name__=="__main__":# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型model = YOLO("/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/models/11/yolo11_IIA.yaml")\# .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt') # build from YAML and transfer weightsresults = model.train(data="/home/shengtuo/tangfan/YOLO11/ultralytics/cfg/datasets/VOC_my.yaml",epochs=300,imgsz=640,batch=4,# cache = False,# single_cls = False, # 是否是单类别检测# workers = 0,# resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',amp = False)