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

(即插即用模块-特征处理部分) 四十一、(2024) MSAA 多尺度注意力聚合模块

在这里插入图片描述

文章目录

  • 1、Multi-Scale Attention Aggregation Module
  • 2、代码实现

paper:CM-UNet: Hybrid CNN-Mamba UNet for Remote Sensing Image Semantic Segmentation

Code:https://github.com/XiaoBuL/CM-UNet


1、Multi-Scale Attention Aggregation Module

传统跳连接的局限性: UNet 等模型中常用的跳连接方式,将低层特征图直接加到高层特征图上,无法有效融合不同尺度的信息,限制了分割效果的提升。提取多尺度信息的重要性: 遥感图像分割需要考虑不同尺度的信息,例如大尺度信息可以提供全局场景理解,小尺度信息可以捕捉细节特征。所以,这篇论文提出一种 多尺度注意力聚合模块(Multi-Scale Attention Aggregation Module),MSAA 模块旨在通过聚合不同尺度的特征,从而更好地捕捉多尺度上下文信息。

实现过程:

  1. 特征融合: 将编码器不同阶段的特征图进行融合,形成新的特征图 ˆF。
  2. 空间路径:使用 1x1 卷积将特征图的通道数减少,降低维度。然后对不同核大小的卷积结果进行求和,例如 3x3, 5x5, 7x7 卷积,以融合不同尺度的特征。最后使用平均池化和最大池化对空间特征进行聚合,并通过 7x7 卷积和 sigmoid 激活函数进行非线性变换。
  3. 通道路径: 将特征图的空间维度压缩为 1x1,并进行全局平均池化,提取全局信息。 使用 1x1 卷积和 ReLU 激活函数生成通道注意力图,并扩大其尺寸以匹配输入特征图的维度。
  4. 特征整合: 将空间路径和通道路径的结果进行元素级相加,得到最终的输出特征图。

优势:

  • 有效地融合多尺度信息: MSAA 模块可以有效地融合不同尺度的特征,从而更好地捕捉多尺度上下文信息,提升分割精度。
  • 增强分割细节: MSAA 模块可以增强分割细节,例如建筑物边缘、道路等,从而提高分割结果的清晰度。

Multi-Scale Attention Aggregation 结构图:
在这里插入图片描述


2、代码实现

import torch
import torch.nn as nnclass ChannelAttentionModule(nn.Module):def __init__(self, in_channels, reduction=4):super(ChannelAttentionModule, self).__init__()self.avg_pool = nn.AdaptiveAvgPool2d(1)self.max_pool = nn.AdaptiveMaxPool2d(1)self.fc = nn.Sequential(nn.Conv2d(in_channels, in_channels // reduction, 1, bias=False),nn.ReLU(inplace=True),nn.Conv2d(in_channels // reduction, in_channels, 1, bias=False))self.sigmoid = nn.Sigmoid()def forward(self, x):avg_out = self.fc(self.avg_pool(x))max_out = self.fc(self.max_pool(x))out = avg_out + max_outreturn self.sigmoid(out)class SpatialAttentionModule(nn.Module):def __init__(self, kernel_size=7):super(SpatialAttentionModule, self).__init__()self.conv1 = nn.Conv2d(2, 1, kernel_size, padding=kernel_size // 2, bias=False)self.sigmoid = nn.Sigmoid()def forward(self, x):avg_out = torch.mean(x, dim=1, keepdim=True)max_out, _ = torch.max(x, dim=1, keepdim=True)x = torch.cat([avg_out, max_out], dim=1)x = self.conv1(x)return self.sigmoid(x)class MSAA(nn.Module):def __init__(self, in_channels, out_channels, factor=4.0):super(MSAA, self).__init__()dim = int(out_channels // factor)self.down = nn.Conv2d(in_channels, dim, kernel_size=1, stride=1)self.conv_3x3 = nn.Conv2d(dim, dim, kernel_size=3, stride=1, padding=1)self.conv_5x5 = nn.Conv2d(dim, dim, kernel_size=5, stride=1, padding=2)self.conv_7x7 = nn.Conv2d(dim, dim, kernel_size=7, stride=1, padding=3)self.spatial_attention = SpatialAttentionModule()self.channel_attention = ChannelAttentionModule(dim)self.up = nn.Conv2d(dim, out_channels, kernel_size=1, stride=1)def forward(self, x1, x2, x4):# # x2 是从低到高,x4是从高到低的设计,x2传递语义信息,x4传递边缘问题特征补充# x_1_2_fusion = self.fusion_1x2(x1, x2)# x_1_4_fusion = self.fusion_1x4(x1, x4)# x_fused = x_1_2_fusion + x_1_4_fusionx_fused = torch.cat([x1, x2, x4], dim=1)x_fused = self.down(x_fused)x_fused_c = x_fused * self.channel_attention(x_fused)x_3x3 = self.conv_3x3(x_fused)x_5x5 = self.conv_5x5(x_fused)x_7x7 = self.conv_7x7(x_fused)x_fused_s = x_3x3 + x_5x5 + x_7x7x_fused_s = x_fused_s * self.spatial_attention(x_fused_s)x_out = self.up(x_fused_s + x_fused_c)return x_outif __name__ == '__main__':x = torch.randn(4, 64, 128, 128).cuda()y = torch.randn(4, 64, 128, 128).cuda()z = torch.randn(4, 64, 128, 128).cuda()model = MSAA(192, 64).cuda()out = model(x, y, z)print(out.shape)

相关文章:

  • 为什么Spring中@Bean注解默认创建单例Bean
  • 计算机网络笔记(六)——1.6计算机网络的性能
  • 长连接、短连接与WebSocket的基本知识
  • crictl 遇到报错 /run/containerd/containerd.sock: connect: permission denied
  • 推荐系统(二十四):Embedding层的参数是如何在模型训练过程中学习的?
  • 分糖果——牛客
  • Ragflow、Dify、FastGPT、COZE核心差异对比与Ragflow的深度文档理解能力​​和​​全流程优化设计
  • 文件系统常见函数
  • 2022 年 9 月青少年软编等考 C 语言七级真题解析
  • 根据定义给出json_schema:
  • 【Python】每隔一段时间自动清除网站上cookies的方法
  • 使用 Streamlit 打造一个简单的照片墙应用
  • 极狐GitLab 的压缩和合并是什么?
  • sglang部署DeepSeek-R1-Distill-Qwen-7B
  • fpga系列 HDL:跨时钟域同步 脉冲展宽同步 Pulse Synchronization
  • 四神-华夏大地的守护神
  • 今天开始着手准备PAT(乙级)
  • 第一节:核心概念高频题-Vue3响应式原理与Vue2的区别
  • MYSQL之表的操作
  • 在面试中被问到spring是什么?
  • 亚马逊拟为商品标注“关税成本”,特朗普致电贝索斯讨说法
  • 铺就长三角南北“交通动脉”,乍嘉苏改高速扩建项目首桩入位
  • 医学统计专家童新元逝世,终年61岁
  • 新开发银行如何开启第二个“金色十年”?
  • 万科:一季度营收近380亿元,销售回款率超100%
  • 东风着陆场做好各项搜救准备,迎接神舟十九号航天员天外归来