遥感论文 | Scientific Reports | 一种显著提升遥感影像小目标检测的网络!

news2024/9/24 15:28:05

  • 论文题目:MwdpNet: towards improving the recognition accuracy of tiny targets in high-resolution remote sensing image
  • 论文网址:https://www.nature.com/articles/s41598-023-41021-8

摘要

提出MwdpNet,以提高对高分辨率遥感(HRS)图像中微小目标的识别准确性。提出了一种新颖的多级加权深度感知网络,4个方面

  • 提出了一种多级特征加权融合策略,充分利用浅层特征信息来提高检测性能,特别是对于微小目标。
  • 为了充分描述图像的高级语义信息,实现更好的分类性能,我们设计了一个深度感知模块(DPModule)。
  • 提出了通道注意引导模块(CAGM),用于获取每个尺度的注意特征图,增强微小目标的召回率并更有效地生成候选区域。
  • 我们创建了四个微小目标数据集,并对其进行了比较实验。

结果表明,我们提出的MwdpNet在这四个数据集上的平均精度(mAP)分别达到了87.0%、89.2%、78.3%和76.0%,优于九种主流目标检测算法。我们提出的方法为在HRS图像上检测微小目标提供了一种有效的手段和策略。

背景

在高分辨率遥感(HRS)图像中进行目标检测目前是遥感图像智能解译领域的一个重要研究方向。在HRS图像中准确识别微小目标是遥感图像目标检测的主要任务。然而,在HRS图像中,微小目标仅占据少数像素,具有模糊的特征,并且容易受到背景干扰的影响。这些因素使得现有的网络检测模型难以提取足够的语义信息用于这些目标,导致检测和识别性能差,存在显著的局限性。因此,在HRS图像中检测微小目标仍然是一个重大挑战。

方法

模型总体框架

  • backbone在原有DarkNet53基础上进行了改进,借用了Res2Net33的结构,用分组残差替换了原始的残差结构。(改动见Figure1的f到g)

模块1:Multi‑level feature weighted fusion

  • 首先,图像被送入骨干增强网络,输出不同层级的特征图C = {C1,C2,C3,C4}。
  • C1通过BN和ReLU处理,得到具有恒定大小通道的M1特征图。然后,通过1×1卷积减少C2的通道数,并通过BN、ReLU和双线性插值进行上采样,得到具有不同维度的M2。
  • 上述步骤重复进行,得到M3、M4特征图。

所提出策略的主要思想是加权基础融合特征图的不同维度通道,从而选择融合特征图的重要特征信息。这使得语义特征和早期特征的融合更为有效,并允许充分增强浅层卷积层的语义信息。

模块2:Deeper Perception Module

DPModule主要包括两个步骤。

  • (1) 附近尺度平均:将前一节中获得的浅层增强特征和相邻的卷积层集成在一起,变成一个特征向量,并通过主成分分析进行降维。
  • (2) 浅层增强特征向量和深层特征向量的融合:降维后的浅层增强特征向量和深层特征向量从上到下级联,形成一个新的密集特征向量。

模块3:Channel Attention Guided module

CAGM专注于位置信息,并旨在增强高分辨率遥感(HRS)图像中多层次特征的表示能力。CAGM模块的设计如图所示。

Loss

**损失函数优化:**由于在微小目标和背景之间难以分类困难样本,模型可能面临正负样本不平衡的问题。因此,有必要考虑不同样本对损失的贡献比例,并在损失函数中给予微小目标样本更多的权重。在本文中,损失函数定义为:

其中:pt表示一个样本属于真实标签的概率

数据集

  • 数据集1:基于DOTA数据集,我们选择了小型车辆、小船和飞机作为微小目标。我们手动选择了总共1022张包含小型车辆和飞机类别的图像,其中小型车辆的尺寸范围从24.7×24.7到40.9×40.9,飞机的尺寸范围从37.1×37.1到51.2×51.2。
  • 数据集2:基于VEDAI数据集,我们将包括汽车、露营车、卡车和卡车在内的最小尺寸的车辆合并为一类,并选择尺寸范围从11.5×11.5到18.7×18.7的目标。
  • 数据集3:基于VEDAI数据集,我们评估了9个目标类别(小船、汽车、露营车、飞机、航天飞机、拖拉机、卡车、货车和其他类别)的检测性能。显示的目标尺寸范围从13.5×13.5到24.9×24.9。
  • 数据集4:基于NWPU VHR-10数据集,我们手动选择了包含飞机、小船、坦克和车辆的526张图像。显示的目标尺寸范围从42.28×42.28到48.32×48.32,创建了一个微小目标数据集。每个数据集的详细信息见表1。

实验

  • 评价指标采用常见目标检测指标,如下所示

实验一:

  • 通过输入两种尺寸的图像来评估MwdpNet的性能,其中"m"表示1000×1000的图像,"l"表示2000×2000的图像(例如,SSDm:将1000×1000的图像输入到SSD中)。比较的算法包括单级检测算法(SSD17、RSSD19、FFESSD20、MDSSD37)。SSD使用的骨干网络是VGG16,而RSSD、FFESSD和MDSSD使用ResNet-101。结果如表2所示。

实验二:

  • 基于丰富的经验,作者发现YOLO系列算法在VEDAI数据集上表现良好,因此将我们的模型与它们进行了比较。我们使用两种不同的输入尺寸(512×512和1024×1024)以及单级检测算法(YOLOV421、YOLOV522、YOLOV6-M23)进行了比较性实验。YOLOV4、YOLOV5和YOLOV6-M使用的骨干网络是Darknet-53。结果如表3所示。

实验三:

  • 为了全面评估我们网络的有效性,我们在实验1和实验2中将其与两级检测算法进行了比较,而不是与单级算法。两级算法在识别微小目标方面更为出色,因此我们在数据集3上进行了此实验。实验3的输入图像尺寸设置为1024×1024。比较的算法包括Faster-RCNN15、OHEM38、ION39和R-FCN31。Faster-RCNN、OHEM和ION使用的骨干网络是VGG16,而R-FCN使用的是ResNet-101。结果如表4所示。

实验四:

  • 实验四在数据集4上进行。比较的算法包括RSSD、FFESSD、MDSSD、YOLOV5和YOLOV6-M等单级检测算法,以及Faster-RCNN、OHEM、ION和R-FCN等两级检测算法。结果如表5所示,其中APs、APm

模型复杂度对比

模型消融实验

对比有无DP和**CAGM(图中的CM)**的效果

评价指标随着训练epoch的对比图

特征图可视化热力图

小结

本文提出了一种新颖而有效的 MwdpNet 框架,用于检测高分辨率遥感图像中的微小目标。

  • 设计了一种多层次特征加权融合策略。
  • 引入了深度感知模块(DPModule)和通道注意引导模块(CAGM)到 MwdpNet 中,

可以借鉴两个模块中的思路,提高特征提取的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1315442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MeterSphere files 任意文件读取漏洞复现 (CVE-2023-25573)

0x01 产品简介 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能,全面兼容 JMeter、Selenium 等主流开源标准。 0x02 漏洞概述 MeterSphere /api/jmeter/download/files 路径文件存在文件读取漏洞,攻击者可通过该漏洞读取系统重要…

一点技术细节

匈牙利算法: 14-4: 匈牙利算法 Hungarian Algorithm_哔哩哔哩_bilibili 课件:https://github.com/wangshusen/AdvancedAlgorithms.git SWin transformer: Swin Transformer论文精读【论文精读】_哔哩哔哩_bilibili patch:灰色 窗口&…

c语言单向链表

看如下代码,这是一个完整的可运行的c源文件,要注意的点: c语言程序运行不一定需要头文件NULL其实是 (void*)0,把指针赋值成(void*)0,就是防止程序员不想该指针被引用的时候被引用,引用地址为0的值程序会引起系统中断&…

JNA实现JAVA调用C/C++动态库

1.JNA JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna)。JNA提供一组Java工具类用于在运行期动态访问系统本地库(native library:如Window的dll)而…

【C++11特性篇】盘点C++11中三种简化声明的方式【auto】【decltype】【nullptr】(3)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.auto&范围for二.decltyp…

flume:Ncat: Connection refused.

一:nc -lk 44444 和 nc localhost 44444区别 nc -lk 44444 和 nc localhost 44444 是使用 nc 命令进行网络通信时的两种不同方式。 1. nc -lk 44444: - 这个命令表示在本地监听指定端口(44444)并接受传入的连接。 - -l 选项…

使用Redis构建简单的社交网站

文章目录 第1关:创建用户与动态第2关:处理用户关系第3关:状态与信息流 第1关:创建用户与动态 编程要求 在Begin-End区域编写 create_user(login_name, real_name) 函数,实现创建新用户的功能,具体参数与要…

添加E1000网卡进行测试,只有VMXNET3性能的四分之一

正文共:1444 字 14 图,预估阅读时间:2 分钟 我们前面介绍了VMware ESXi 6.7中的适配器类型性能(VMWare ESXi中,不同的虚拟网卡性能竟然能相差三倍!),当时的配置项主要为E1000e和VMXN…

格式化Echarts的X轴显示,设置显示间隔

业务需求:x轴间隔4个显示,并且末尾显示23时 x轴为写死的0时-23时,使用Array.from data: Array.from({ length: 24 }).map((_, i) > ${i}时) 需要在axisLabel 里使用 interval: 0, // 强制显示所有刻度标签,然后通过 formatter …

Java集合(六)Hashtable、ConcurrentHashMap

文章目录 Hashtable一、Hashtable介绍1.1 Hashtable是什么1.2 Hashtable特点1.3 Hashtable常见方法 二、Hashtable源码分析2.1 节点2.2 构造方法2.3 获取元素2.4 存入元素2.5 判断是否包含某个key/value2.6 替换元素2.7 删除元素2.8 获取value集合2.9 哈希2.10 扩容 Concurrent…

ADUM1200ARZ数字隔离器:重新定义技术标准

ADUM1200ARZ数字隔离器成为技术进步领域的关键组件。其创新设计和多方面功能重新定义了数字隔离技术的格局,提供了满足不同工业需求的众多功能。让我们通过本文直观的了解ADUM1200ARZ的功能与技术标准。 窄体且符合ROHS:设定新基准 该数字隔离器采用窄体…

HNU-数据库系统-实验2-数据库安全性/完整性定义与检查

数据库系统 课程实验2数据库安全性/完整性定义与检查 计科210X 甘晴void 202108010XXX 目录 文章目录 数据库系统 课程实验2<br>数据库安全性/完整性定义与检查实验目的实验环境实验内容2.1数据库安全性2.1.1 自主存取控制实验1&#xff09;实验内容与要求2&#xff0…

verilog语法进阶-分布式ram原语

概述 官方提供的原语 RAM16X1S_1 #(.INIT(16h0000) // Initial contents of RAM) RAM16X1S_1_inst (.O(O), // RAM output.A0(A0), // RAM address[0] input.A1(A1), // RAM address[1] input.A2(A2), // RAM address[2] input.A3(A3), // RAM address[3…

数据结构-迷宫问题

文章目录 1、题目描述2、题目分析3、代码实现 1、题目描述 题目链接&#xff1a;迷宫问题 、 注意不能斜着走&#xff01; 2、题目分析 &#xff08;1&#xff09;0为可以走&#xff0c;1不能走且只有唯一一条通路 &#xff08;2&#xff09;我们可以通过判断上下左右来确定…

基于ssm电子资源管理系统源码和论文

idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 环境&#xff1a; jdk8 tomcat8.5 基于ssm电子资源管理系统源码和论文758 摘要 随着互联网技术的高速发展&#xff0c;人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门…

微信公众号怎样使用文章模版?怎样建立文章模版 公众号模版示例 如何使用

打开我们的微信公众平台并登陆&#xff0c;找到我们的管理->素材管理 如图所示 2 在新建图文素材的右边有三个点&#xff0c;我们把鼠标移动到此处并点击 我们会看到新建分享图文和管理图文模版 选中并点击管理图文模版 如图所示 3 我们会看到如下界面 如图所示 4 …

【C++入门到精通】 线程库 | thread类 C++11 [ C++入门 ]

阅读导航 引言一、thread类的简单介绍二、线程函数详细介绍1. start() 函数&#xff08;1&#xff09;头文件&#xff08;2&#xff09;函数原型 2. join() 函数&#xff08;1&#xff09;头文件&#xff08;2&#xff09;函数原型 3. detach() 函数&#xff08;1&#xff09;头…

列表优先于数组

在Java中&#xff0c;列表&#xff08;List&#xff09;通常优于数组&#xff0c;因为列表提供了更灵活的操作和动态调整大小的能力。下面是一个例子&#xff0c;展示了为什么在某些情况下使用列表比数组更好&#xff1a; import java.util.ArrayList; import java.util.List;…

交友网站的设计与实现(源码+数据库+论文+开题报告+说明文档)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下&#xff0c;你想解决的问…

1125矩阵乘法(C语言)

一&#xff1a;题目 二&#xff1a;思路分析 1.对于学习过线性代数的人来说&#xff0c;对应公式十分熟悉&#xff0c;而对于没接触过线性代数的人来说&#xff0c;我们地一步要做的是从题目所给的公式中找规律 2.这个题目&#xff0c;给了我们三个变量n&#xff0c;m&#xf…