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

【即插即用涨点模块】LSK大选择性核:自适应地捕捉遥感图像目标,实现暴力涨点【附源码+注释】

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称项目名称
1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】
3.【手势识别系统开发】4.【人脸面部活体检测系统开发】
5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】
7.【YOLOv8多目标识别与自动标注软件开发】8.【基于深度学习的行人跌倒检测系统】
9.【基于深度学习的PCB板缺陷检测系统】10.【基于深度学习的生活垃圾分类目标检测系统】
11.【基于深度学习的安全帽目标检测系统】12.【基于深度学习的120种犬类检测与识别系统】
13.【基于深度学习的路面坑洞检测系统】14.【基于深度学习的火焰烟雾检测系统】
15.【基于深度学习的钢材表面缺陷检测系统】16.【基于深度学习的舰船目标分类检测系统】
17.【基于深度学习的西红柿成熟度检测系统】18.【基于深度学习的血细胞检测与计数系统】
19.【基于深度学习的吸烟/抽烟行为检测系统】20.【基于深度学习的水稻害虫检测与识别系统】
21.【基于深度学习的高精度车辆行人检测与计数系统】22.【基于深度学习的路面标志线检测与识别系统】
23.【基于深度学习的智能小麦害虫检测识别系统】24.【基于深度学习的智能玉米害虫检测识别系统】
25.【基于深度学习的200种鸟类智能检测与识别系统】26.【基于深度学习的45种交通标志智能检测与识别系统】
27.【基于深度学习的人脸面部表情识别系统】28.【基于深度学习的苹果叶片病害智能诊断系统】
29.【基于深度学习的智能肺炎诊断系统】30.【基于深度学习的葡萄簇目标检测系统】
31.【基于深度学习的100种中草药智能识别系统】32.【基于深度学习的102种花卉智能识别系统】
33.【基于深度学习的100种蝴蝶智能识别系统】34.【基于深度学习的水稻叶片病害智能诊断系统】
35.【基于与ByteTrack的车辆行人多目标检测与追踪系统】36.【基于深度学习的智能草莓病害检测与分割系统】
37.【基于深度学习的复杂场景下船舶目标检测系统】38.【基于深度学习的农作物幼苗与杂草检测系统】
39.【基于深度学习的智能道路裂缝检测与分析系统】40.【基于深度学习的葡萄病害智能诊断与防治系统】
41.【基于深度学习的遥感地理空间物体检测系统】42.【基于深度学习的无人机视角地面物体检测系统】
43.【基于深度学习的木薯病害智能诊断与防治系统】44.【基于深度学习的野外火焰烟雾检测系统】
45.【基于深度学习的脑肿瘤智能检测系统】46.【基于深度学习的玉米叶片病害智能诊断与防治系统】
47.【基于深度学习的橙子病害智能诊断与防治系统】48.【基于深度学习的车辆检测追踪与流量计数系统】
49.【基于深度学习的行人检测追踪与双向流量计数系统】50.【基于深度学习的反光衣检测与预警系统】
51.【基于深度学习的危险区域人员闯入检测与报警系统】52.【基于深度学习的高密度人脸智能检测与统计系统】
53.【基于深度学习的CT扫描图像肾结石智能检测系统】54.【基于深度学习的水果智能检测系统】
55.【基于深度学习的水果质量好坏智能检测系统】56.【基于深度学习的蔬菜目标检测与识别系统】
57.【基于深度学习的非机动车驾驶员头盔检测系统】58.【太基于深度学习的阳能电池板检测与分析系统】
59.【基于深度学习的工业螺栓螺母检测】60.【基于深度学习的金属焊缝缺陷检测系统】
61.【基于深度学习的链条缺陷检测与识别系统】62.【基于深度学习的交通信号灯检测识别】
63.【基于深度学习的草莓成熟度检测与识别系统】64.【基于深度学习的水下海生物检测识别系统】
65.【基于深度学习的道路交通事故检测识别系统】66.【基于深度学习的安检X光危险品检测与识别系统】
67.【基于深度学习的农作物类别检测与识别系统】68.【基于深度学习的危险驾驶行为检测识别系统】
69.【基于深度学习的维修工具检测识别系统】70.【基于深度学习的维修工具检测识别系统】
71.【基于深度学习的建筑墙面损伤检测系统】72.【基于深度学习的煤矿传送带异物检测系统】
73.【基于深度学习的老鼠智能检测系统】74.【基于深度学习的水面垃圾智能检测识别系统】
75.【基于深度学习的遥感视角船只智能检测系统】76.【基于深度学习的胃肠道息肉智能检测分割与诊断系统】
77.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统】78.【基于深度学习的心脏超声图像间隔壁检测分割与分析系统】
79.【基于深度学习的果园苹果检测与计数系统】80.【基于深度学习的半导体芯片缺陷检测系统】
81.【基于深度学习的糖尿病视网膜病变检测与诊断系统】82.【基于深度学习的运动鞋品牌检测与识别系统】
83.【基于深度学习的苹果叶片病害检测识别系统】84.【基于深度学习的医学X光骨折检测与语音提示系统】
85.【基于深度学习的遥感视角农田检测与分割系统】86.【基于深度学习的运动品牌LOGO检测与识别系统】
87.【基于深度学习的电瓶车进电梯检测与语音提示系统】88.【基于深度学习的遥感视角地面房屋建筑检测分割与分析系统】
89.【基于深度学习的医学CT图像肺结节智能检测与语音提示系统】90.【基于深度学习的舌苔舌象检测识别与诊断系统】
91.【基于深度学习的蛀牙智能检测与语音提示系统】92.【基于深度学习的皮肤癌智能检测与语音提示系统】

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~

《------正文------》

目录

  • 摘要
  • 方法
  • 创新点
  • LSK模块作用
  • 实验结果
  • 总结
  • LSK源码+注释

在这里插入图片描述

代码地址:https://github.com/zcablii/LSKNet
论文地址:https://arxiv.org/abs/2403.11735

摘要

近年来,遥感目标检测的研究主要集中在改进定向边界框的表示上,但忽视了遥感场景中存在的独特先验知识。这些先验知识非常有用,因为微小的遥感物体在缺乏足够长距离上下文的情况下可能会被错误地检测到,而不同类型物体所需的长距离上下文可能会有所不同。本文考虑了这些先验知识,提出了大选择性核网络(LSKNet)。LSKNet可以动态调整其大空间感受野,以更好地建模遥感场景中各种物体的上下文信息。据我们所知,这是首次在遥感目标检测领域探索大核和选择性核机制。LSKNet在标准基准测试中取得了新的最先进成绩,即HRSC2016(98.46% mAP)、DOTA-v1.0(81.85% mAP)和FAIR1M-v1.0(47.87% mAP)。基于类似技术,我们在2022年大湾区国际算法竞赛中获得了第二名。

方法

在这里插入图片描述

LSKNet的核心思想是通过动态调整特征提取主干的感受野,以更有效地处理不同物体的上下文信息。具体来说,LSKNet通过空间选择性机制对一系列大深度卷积核处理的特征进行加权,然后在空间上合并这些特征。这些卷积核的权重根据输入动态确定,使得模型能够自适应地使用不同的大核,并根据需要为每个目标调整空间感受野。

LSKNet的架构基于最近流行的结构,每个LSKNet块由两个残差子块组成:大核选择(LK Selection)子块前馈网络(FFN)子块。LSK模块嵌入在LK Selection子块中,由一系列大核卷积和空间核选择机制组成。

创新点

  1. 大核卷积的分解:LSKNet通过将大核卷积分解为一系列深度卷积,每个卷积核的大小和膨胀率逐渐增加,从而快速扩展感受野。这种设计不仅显式地生成了具有不同大感受野的特征,还比直接使用单个大核卷积更高效。

  2. 空间核选择机制:LSKNet引入了一种空间选择机制,能够动态地从不同尺度的大卷积核中选择特征图。这种机制通过平均池化和最大池化提取空间关系,并使用卷积层生成空间注意力图,最终通过加权和融合不同核的特征。

  3. 自适应感受野调整:LSKNet能够根据输入图像的内容自适应地调整感受野,从而更好地捕捉不同物体的上下文信息。这种设计使得模型在处理遥感图像时能够更准确地识别和定位目标。

LSK模块作用

在这里插入图片描述

LSK模块是LSKNet的核心组件,其主要作用是通过大核卷积和空间选择机制动态调整模型的感受野,以更好地捕捉遥感图像中不同物体的上下文信息。具体来说,LSK模块通过以下步骤实现这一目标:

  1. 大核卷积分解:将大核卷积分解为一系列深度卷积,每个卷积核的大小和膨胀率逐渐增加,从而快速扩展感受野。

  2. 特征提取与混合:对每个分解后的卷积核应用1x1卷积层,进行通道混合,生成多尺度特征。

  3. 空间选择机制:通过平均池化和最大池化提取空间关系,并使用卷积层生成空间注意力图,动态选择不同核的特征。

  4. 特征融合:将不同核的特征加权融合,生成最终的注意力特征,并与输入特征进行元素级乘积,输出最终的特征。

实验结果

在这里插入图片描述

LSKNet在多个遥感目标检测数据集上进行了实验,取得了显著的性能提升:

  1. HRSC2016数据集:LSKNet-S在PASCAL VOC 2007和VOC 2012指标下分别取得了90.65%和98.46%的mAP,超越了所有其他方法。

  2. DOTA-v1.0数据集:LSKNet-T和LSKNet-S分别取得了81.37%和81.64%的mAP,达到了最先进的性能。

  3. FAIR1M-v1.0数据集:LSKNet-T和LSKNet-S分别取得了46.93%和47.87%的mAP,显著超越了其他模型。
    在这里插入图片描述

此外,LSKNet在2022年大湾区国际算法竞赛中获得了第二名,进一步验证了其在实际应用中的有效性。

总结

本文提出了大选择性核网络(LSKNet),用于遥感目标检测任务。LSKNet通过动态调整大空间感受野,能够有效建模不同物体类型的上下文信息。实验结果表明,LSKNet在多个遥感目标检测基准测试中取得了最先进的性能,验证了其设计的有效性。LSKNet的创新点在于大核卷积的分解和空间选择机制,使得模型能够自适应地捕捉遥感图像中的上下文信息,从而提高了目标检测的准确性。

LSK源码+注释

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)

        # 通过1x1卷积降维
        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)
        # 使用sigmoid函数获取注意力权重
        sig = self.conv_squeeze(agg).sigmoid()
        # 应用注意力机制到不同的特征分支
        attn = attn1 * sig[:, 0, :, :].unsqueeze(1) + attn2 * sig[:, 1, :, :].unsqueeze(1)
        # 融合注意力调制后的特征
        attn = self.conv(attn)
        # 将注意力加权的特征与原始输入相乘,实现特征重标定
        return x * attn


# 输入 N C H W,  输出 N C H W
if __name__ == '__main__':
    block = LSKblock(64).cuda()
    input = torch.rand(3, 64, 32, 32).cuda()
    output = block(input)
    print(input.size(), output.size())

在这里插入图片描述

好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

相关文章:

  • Android Compose 线性布局(Row、Column)源码深度剖析(十)
  • 【C#】WinForm自定义控件及窗体
  • Shell正则表达式
  • Java锁等待唤醒机制
  • 【Linux】交叉编译2
  • 前端Wind CSS面试题及参考答案
  • 【数据分享】2014-2024年我国各城市逐年空气质量指数(AQI)数据
  • 设计心得——如何实现接口
  • 红宝书第十一讲:超易懂版「ES6类与继承」零基础教程:用现实例子+图解实现
  • 【transformer理论+实战(三)】必要的 Pytorch 知识
  • 在uml中,为什么用泛化而不用继承这个词语?
  • Python模块与包
  • 一、MySQL8的my.ini文件
  • linux ptrace 图文详解(三) PTRACE_ATTACH 跟踪程序
  • C语言入门教程100讲(8)算术运算符
  • Redis缓存与数据库 数据一致性保障
  • 2:认识数据库
  • 在 .NET 9.0 Web API 中实现 Scalar 接口文档及JWT集成
  • CIFAR10 数据集自定义处理方法
  • Spring Boot 整合 OpenFeign 教程
  • 王毅谈中拉论坛第四届部长级会议重要共识
  • 美国三大指数全线高开:纳指涨逾4%,大型科技股、中概股大涨
  • 大外交|中美联合声明拉升全球股市,专家:中美相向而行为世界提供确定性
  • 中方发布会:中美经贸高层会谈氛围是坦诚的、深入的、具有建设性的
  • 技术派|巴基斯坦导弹:让印度保持克制的“定海神针”?
  • 重视体重管理,筑牢健康基石