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

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

在这里插入图片描述

paper:LSKNet: A Foundation Lightweight Backbone for Remote Sensing
Code:https://github.com/zcablii/LSKNet

  1. 大型选择性内核块 (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、代码实现

import torch
import torch.nn as nnclass 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 * attnif __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)

相关文章:

  • Spring--统一数据返回格式与统一异常处理
  • 将 MySQL 8 主从复制延迟优化到极致
  • 如何在iStoreOS DHCP中排除特定IP地址
  • zkPass案例实战之合约篇
  • 【论文#目标检测】Attention Is All You Need
  • 【泊松过程和指数分布】
  • 力扣DAY63-67 | 热100 | 二分:搜索插入位置、搜索二维矩阵、排序数组查找元素、搜索旋转排序数组、搜索最小值
  • OpenCV 图形API(52)颜色空间转换-----将 NV12 格式的图像数据转换为 RGB 格式的图像
  • 计算机视觉基础
  • 提高Spring Boot开发效率的实践
  • MsQuick编译和使用
  • c++概念——模板的进阶讲解
  • django软件开发招聘数据分析与可视化系统设计与实现(源码+lw+部署文档+讲解),源码可白嫖!
  • 香港科技大学广州|金融科技学域博士招生宣讲会—南开大学专场
  • ThinkPHP快速使用手册
  • VUE的创建
  • 【C语言】文本操作函数fgetc、fputc、fgets、fputs、fprintf、fscanf、fread、fwrite
  • 【Linux应用】RADXA ZERO 3快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互
  • JavaEE学习笔记(第二课)
  • linux磁盘挂载
  • 68岁民营科技企业家、中国环保产业协会原副会长宋七棣逝世
  • 人民日报整版聚焦第十个“中国航天日”:星辰大海,再启新程
  • 继微软之后,亚马逊也放缓人工智能数据中心计划
  • 今年一季度,上海对东盟进出口总值同比增长7.1%
  • 阿塞拜疆总统阿利耶夫将访华
  • 日本乒乓名将丹羽孝希因赌博被禁赛6个月,曾获奥运男团银牌