(即插即用模块-特征处理部分) 四十五、(2024 TGRS) SFF 浅层特征融合模块

在这里插入图片描述

paper:A Multilevel Multimodal Fusion Transformer for Remote Sensing Semantic Segmentation

Code:https://github.com/sstary/SSRS


1、Shallow-level Feature Fusion

弥补传统融合方法的不足:现有的多模态融合方法通常只关注深层特征融合,忽略了浅层特征中包含的丰富细节信息。解决不同模态数据的异质性:不同模态数据之间存在统计特性和噪声水平的差异,直接融合可能会导致信息丢失或混淆。降低对 DSM 数据的依赖:DSM 数据虽然可以提供重要的高度信息,但其获取成本较高。SFF 模块可以降低对 DSM 数据的依赖,即使在缺少 DSM 数据的情况下,也能取得较好的分割效果。而这篇论文提出一种 浅层特征融合模块(Shallow-level Feature Fusion Module),SFF 模块通过融合浅层特征,可以更好地保留物体细节,例如形状、边界、颜色和纹理等,从而提高分割精度。

SFF 模块的核心思想是利用卷积神经网络 (CNN) 的局部感知能力,分别提取不同模态数据的浅层特征,并进行融合。具体来说,SFF 模块包含两个分支,分别处理可见光图像 (VIS) 和 DSM 数据:

SFF 模块的实现过程如下:

  1. 特征提取:使用 CNN 分别提取 VIS 和 DSM 数据的浅层特征。
  2. Squeeze-and-Excitation (SE) 模块:使用 SE 模块对聚合后的特征进行通道注意力建模,增强重要特征并抑制不相关特征。
  3. 特征融合:将两个分支的特征进行加权求和,得到最终的浅层特征表示。

Shallow-level Feature Fusion 结构图:
在这里插入图片描述


2、代码实现

import torch
import torch.nn as nn


""" 官方github里没找到代码,但结构不复杂,复现了一下 """
class SELayer(nn.Module):
    def __init__(self, channel, reduction=16):
        super(SELayer, self).__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.fc = nn.Sequential(
            nn.Linear(channel, channel // reduction, bias=False),
            nn.ReLU(inplace=True),
            nn.Linear(channel // reduction, channel, bias=False),
            nn.Sigmoid()
        )

    def forward(self, x):
        b, c, _, _ = x.size()
        y = self.avg_pool(x).view(b, c)
        y = self.fc(y).view(b, c, 1, 1)
        return x * y.expand_as(x)


class SFF(nn.Module):
    def __init__(self, in_channels):
        super(SFF, self).__init__()
        self.se = SELayer(in_channels)

    def forward(self, dms, vis):
        dms = self.se(dms)
        vis = self.se(vis)
        return dms + vis


if __name__ == '__main__':
    x = torch.randn(4, 16, 128, 128).cuda()
    y = torch.randn(4, 16, 128, 128).cuda()
    model = SFF(16).cuda()
    out = model(x,y)
    print(out.shape)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

御宇w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值