即插即用模块(3) -LSK 特征提取

paper:LSKNet: A Foundation Lightweight Backbone for Remote Sensing

Code:https://github.com/zcablii/LSKNet

大型选择性内核块 (LSK Block)

功能

通过动态调整感受野,自适应提取遥感图像中目标的上下文信息,增强目标与环境关联的建模能力,适用于外观相似但环境差异显著的场景。

实现流程

  1. 大型内核卷积分解

    :对输入 ( X X X ) 应用深度可分离卷积,生成多尺度特征图序列 ( U U U )。

  2. 通道混合

    :将 ( U U U ) 拼接,通过 1x1 卷积生成特征图 ( e e e )。

  3. 空间内核选择

    :对 ( e ) 进行平均池化和最大池化,生成描述符 ( A_{avg} ) 和 ( A_{max} )。

    拼接后通过卷积生成空间注意力图 ( SA )。

    应用 sigmoid 生成选择掩码 ( S A i SA_i SAi ),加权融合生成注意力特征 ( S )。

  4. 元素级乘法

    :将 ( X ) 与 ( S ) 相乘,生成输出 ( Y )。

优势

  • 动态调整感受野,适应不同目标的上下文需求。
  • 深度可分离卷积降低计算复杂度。
  • 增强目标与环境的特征关联,提升识别精度。

Large Selective Kernel Block结构图:

2、代码实现

python 复制代码
import torch
import torch.nn as nn


class LSKblock(nn.Module):
    def __init__(self, dim):
        super().__init__()
        self.conv0 = nn.Conv2d(dim, dim, 5, padding=2, groups=dim)
        self.conv_spatial = nn.Conv2d(dim, dim, 7, stride=1, padding=9, groups=dim, dilation=3)
        self.conv1 = nn.Conv2d(dim, dim // 2, 1)
        self.conv2 = nn.Conv2d(dim, dim // 2, 1)
        self.conv_squeeze = nn.Conv2d(2, 2, 7, padding=3)
        self.conv = nn.Conv2d(dim // 2, dim, 1)

    def forward(self, x):
        attn1 = self.conv0(x)
        attn2 = self.conv_spatial(attn1)

        attn1 = self.conv1(attn1)
        attn2 = self.conv2(attn2)

        attn = torch.cat([attn1, attn2], dim=1)
        avg_attn = torch.mean(attn, dim=1, keepdim=True)
        max_attn, _ = torch.max(attn, dim=1, keepdim=True)
        agg = torch.cat([avg_attn, max_attn], dim=1)
        sig = self.conv_squeeze(agg).sigmoid()
        attn = attn1 * sig[:, 0, :, :].unsqueeze(1) + attn2 * sig[:, 1, :, :].unsqueeze(1)
        attn = self.conv(attn)
        return x * attn


if __name__ == '__main__':
    x = torch.randn(4, 64, 128, 128).cuda()
    model = LSKblock(64).cuda()
    out = model(x)
    print(out.shape)
).cuda()
    model = LSKblock(64).cuda()
    out = model(x)
    print(out.shape)
相关推荐
云和数据.ChenGuang5 小时前
Python 重写(Override)深度解析:从 MRO 到 super() 的完整机制
java·开发语言·人工智能·python·langchain·1024程序员节
西西木科技丨Shopify开发机构6 小时前
CalDigit TS4案例:AI产品图的Shopify整站接入与验收
人工智能·shopify·独立站
2601_965448876 小时前
AI视频制作:做系列节气民俗视频音色不统一,AI 音色克隆省事的方法
人工智能·机器学习·音视频
美狐美颜SDK开放平台6 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
HRaitest6 小时前
秋招技术岗招聘提效:三类 AI 招聘方案的技术底层与选型逻辑
大数据·人工智能·求职招聘·ai-native
天远数科7 小时前
零信任架构实战:基于天远企业股权变更构建自动化商业银行对公授信存续期股权异动与资产抽逃预警网关
运维·人工智能·架构·自动化
车软学堂7 小时前
从测试转开发,到底要补什么
网络·人工智能·python·功能测试·单片机·车载系统·自动化
海盗12347 小时前
AI 新闻日报 10-28:Atria Dawn 完整版开源、Cursor Agent SDK 转正、Genie 4 实时世界模型
人工智能·机器人·开源·人工智能aigc
志尊宝8 小时前
AI原生前端开发(035):AI时代的工程化最佳实践总结
人工智能·ai-native
冬奇Lab8 小时前
一天一个开源项目(第251篇):Claude SEO —— 装进 Claude Code 的 SEO 审计团队,26 个子技能 + 19 个专家 Agent 并行体检网站
人工智能·开源