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

【目标检测论文阅读笔记】Detection of plane in remote sensing images using super-resolution

Abstract

        由于大量的小目标、实例级噪声和云遮挡等因素,遥感图像的目标检测精度低,漏检率或误检率高。本文提出了一种新的基于SRGAN和YOLOV3的目标检测模型,称为SR-YOLO解决了SRGAN网络 对超参数的敏感性和模态崩溃问题。同时,YOLOv3中的FPN网络被PANet取代,缩短了最底层和最高层之间的距离SR-YOLO模型通过增强路径丰富各层特征,具有较强的鲁棒性和较高的检测能力。在ucas-高分辨率空中目标检测数据集上的实验结果表明,SR-YOLO取得了优异的性能。与YOLOv3相比,SR-YOLO的平均准确率(AP)由92.35%提高到96.13%,对数平均缺失率(MR-2)由22%降低到14%,召回率由91.36%提高到95.12%。


1 Introduction

        遥感图像目标检测广泛应用于民用和军事领域,如指导水果采摘、交通管理、环境分析、军事测绘、军事目标侦察等与实地调查相比,遥感影像的精度更高。因为它可以实时捕获地面信息,并获得详细的信息可以准确识别遥感图像中的飞机、船舶、汽车等物体,在军事作战和交通管理等方面具有重要意义提出了一种将 提高的图像分辨率 与 目标检测 相结合的方法,以改善一些低分辨率图像的检测任务。[3],正则化参数S2R2将超分辨率技术应用于低分辨率人脸识别。[4]采用 平移不变性 和 全局方法进行特征提取。消除低分辨率图像中的伪影和不连续,并对人脸图像进行超分辨率重构,提高检测精度。此外,在一些检测任务中,通过 去模糊图像[5-8] 或 去噪[9]来提高模型检测的准确性这些方法在传统图像处理技术的基础上提高了分辨率,但由于自身的局限性,仍然受到大量小目标、实例级噪声和云遮挡的影响,难以应用于遥感图像目标检测

        本文研究了一种超分辨率方法,该方法利用深度学习中端到端训练的力量,将低级和高级视觉目标结合起来,产生我们所谓的“You only see once with Super-resolution”(SR-YOLO)。超分辨率图像包含更多可区分的特征,可以提高目标检测的准确性。作为提高目标检测对低分辨率输入的鲁棒性的一种手段,这种方法提供的结果比其他目标检测方法要好得多,并且可能适用于广泛的遥感卫星图像处理工具和高级任务。与以往的研究相比,本文采用先进的SRGAN超分辨率和第三版You Look Only one (YOLOv3)目标检测,将两者结合应用于遥感卫星图像中的飞机检测,并改进其网络结构,更好地应用于遥感图像的检测。SR-YOLO首先解决了SRGAN的超参数敏感性和模式崩溃问题,然后通过PANet[10]丰富了小目标的语义信息。最后,利用超分辨率技术驱动探测器进行目标检测解决了遥感小目标检测难的问题

        本文分为两部分进行改进:1) 改进SRGAN网络残差网络替换生成网络的归一化层,并加入惩罚机制 重构鉴别器和生成器的损失函数。我们的SRGAN网络训练过程更稳定,获得了更全面的特征空间,生成的图像更细粒度。2) 改进YOLOV3网络。首先,根据我们使用的数据集,我们重新定义了一组新的适合飞机检测的边界框。最后,采用路径聚合网络(PANet)代替特征金字塔网络(FPN)[11]作为颈部网络引入亚采样,将各级特征汇聚池化在一起,缩短上下距离,并利用增强路径丰富各级特征

        本文将分五章介绍我们提出的方法。第一章介绍了本文的研究背景、存在的问题和解决方案,并介绍了论文的结构和大纲。第二章介绍了超分辨率和目标检测的相关工作。第三章详细介绍了我们的方法。第四章介绍了实验过程,包括与其他算法的比较以及基于UCAS-AOD基准数据集的实验结果分析。第五章总结了本文的贡献和不足。


2 Related work

        目前,已经有相当多的研究通过图像重建来提高低分辨率图像的检测精度。相比之下,受超分辨率重建和目标检测任务的约束,提高遥感图像检测精度的研究相对较少。我们从两个方向来回顾这项工作。

2.1图像超分辨

        各种超分辨率网络,包括超分辨率生成对抗网络(SRGAN)、增强的深度超分辨率(EDSR)、深度反投影网络(DBPN)、超分辨率DenseNets 和 深度拉普拉斯金字塔网络(DLPN)已经被提出[12-16]。这些超分辨率网络具有显著的图像放大效果,大大提高了视觉感知能力。这些网络更适合具有复杂背景的图像。例如,[17]使用低分辨率图像通过DBPN进行超分辨率重建,然后发送到SSD检测网络,以提高复杂背景图像检测的准确性。随着更高效的卷积神经网络(CNN)的引入,超分辨率技术也得到了迅速发展。超分辨率卷积神经网络(SRCNN)[18]首先使用 双三次插值 将低分辨率图像放大到物体大小,然后通过三层卷积网络对非线性映射进行拟合,最后输出高分辨率图像结果。SRCNN的网络结构非常简单,只使用了三个卷积层。一些研究通过引入残差网络来改进SRCNN[19,20]。[21]引入了递归层,但是使用手工制作的层进行数据增强仍然有局限性。DRRN[22] 受到 [21,23] 的启发,采用更深层次的网络结构来获得性能提升。EDSR去除了SRResNet (Super-Resolution ResNet)[12]的冗余模块,从而可以增加模型的大小,从而提高结果的质量。虽然扩散-卷积神经网络(Diffusion-Convolutional Neural Networks, DCNN)的深度特征可以保留高频图像的真实纹理,但消除模糊和伪影仍然是一个难题,[24]引入感知损失,[25]引入 against 对抗损失,已经解决了这一问题SRGAN使用 感知损失 和 对抗损失 来提高生成图像的真实感 和 精细的纹理细节。然而,SRGAN具有超参数敏感性和模态崩溃,导致训练过程不稳定。目前,很少有超分辨率技术与遥感图像相结合 来解决 遥感图像中的目标检测问题


2.2 遥感图像目标检测

        目标检测分为两阶段和一阶段两类。两阶段检测算法将目标检测问题分为两个阶段:生成 Region Proposals 和 对候选框区域进行分类和细化 [27-30]。 单阶段检测算法基于不需要生成Region Proposals阶段的回归方法;不需要复杂的框架 就可以 直接获取 对象的类别概率和位置坐标值[31-34]。一般两阶段算法的检测精度较高,速度较慢,适用于对精度要求较高的场景。 单阶段算法检测精度低,速度快,可以实现实时检测[35]

        为了提高遥感图像中目标的检测精度,[36]提出了一种基于无监督分数的边界框回归(USB-BBR)算法,并结合非极大值抑制算法对检测目标区域的边界框进行优化。针对遥感图像大尺度、大场景中的小目标,[37]提出了Tiny-Net物体检测方法,该方法由主干TinyNet、中间全局注意力块、最终分类器和检测器组成。为了检测遥感图像中的特定物体,该模型[38]训练了多个检测器,每个检测器都专门用于特定大小的建筑物。此外,该模型通过同时训练 道路提取任务 和 建筑物检测任务 来隐式利用上下文信息。 [39]提出了一种新的深度网络——可旋转区域残差网络(R3-Net),用于检测航拍图像和视频中的多目标车辆。

        为了提高遥感图像飞机检测的效率和准确性,[40] 提出了一种基于耦合 CNN 的飞机检测弱监督学习框架。 [41] 提出了一种端到端的半监督目标检测方法,与之前更复杂的多阶段方法相比。端到端训练在课程中逐渐提高伪标签质量,越来越准确的伪标签反过来有利于目标检测训练。 [42] 提出了一种混合可变加权堆叠自动编码器(HVW-SAE),用于学习软传感器建模的质量相关特征。通过对更多质量相关变量进行优先重构的约束,可以确保学习到的特征包含更多用于质量预测的信息。 [43] 提出了一种新颖且灵活的骨干框架,即 CBNetV2,以在预训练微调范式下使用现有的开源预训练骨干构建高性能检测器。 [44] 提出了一种新颖的动态头部框架来统一目标检测头部和注意力。所提出的方法在没有任何计算开销的情况下显著提高了目标检测头的表示能力。 [45] 提出了用于遥感图像分类的光谱空间加权核流形嵌入分布对齐(SSWK-MEDA)。该方法应用一种新颖的空间信息滤波器,有效利用邻近样本像素之间的相似性,避免非样本像素的影响,利用流形空间中特征的几何结构,解决迁移学习场景下遥感数据特征失真的问题.。


3 提出的方法

        本文提出了一种新的检测模型SR-YOLO。我们探索了超分辨率 SRGAN 和 YOLOv3 检测网络的更好组合。所以,首先要解决SRGAN网络训练过程不稳定的问题,提高生成图像的质量。其次,YOLOv3 检测小目标的能力很重要。因此,本节将分为两部分介绍我们的改进,即SRGAN网络改进和YOLOv3网络改进。

3.1 SRGAN网络改进

生成网络微调:

        首先将SRGAN生成网络中的BN层替换为残差网络。 [13, 46] 证明,在面向 PSNR 的任务中,移除 BN 层可以提高性能 并降低计算复杂度。同时,去除BN层可以增强网络训练的稳定性,增强网络的泛化能力。将每层的BN层替换为3×3的卷积核卷积 和 PReLU激活层后,增加了网络的深度和复杂度,充分利用了每次卷积后的特征,提高了生成网络的边缘特征处理。


重建损失函数:

        [47]分析了GAN训练不稳定的原因,即GAN网络中的JS散度在分布p和q不重叠的情况下无法平滑地brighten照亮分布之间的距离,使得这个位置无法产生有效的梯度信息,从而导致模式崩溃。我们借鉴[47]思想,重构判别生成网络损失函数,训练过程更加稳定,加快损失收敛速度。


3.1.1 生成网络微调。

        我们使用网络插值的方法来保持感知质量 并 消除 GAN 中的伪影和噪声,具体来说,我们首先训练一个面向 PSNR 的网络 GPSNR,然后通过微调获得一个基于 GAN 的网络 GGAN。我们对这两个网络的所有对应参数进行插值,得到一个插值模型 GINTERP,参数如式 1 所示:

其中,θGPSNR 和 θGGAN分别是GINTERP、GPSNR和GGAN的参数,α∈[0,1]是插值参数。实验表明,当α为0.2时,PNSR达到理想水平。

        我们改进了生成网络中的残差块。原始生成网络的残差块,如图1残差块所示,采用3×3的卷积核进行卷积和BN层,然后选择PReLU函数激活。最后再次进行3×3的卷积核卷积和归一化。在原始残差块中加入极少量的参数,使特征信息更加丰富。

        将两次卷积过程得到的特征向量与原始特征向量相结合,保证了特征信息的完整性。 16 个原始残差块堆叠在生成网络中或总共 16×2 BN 层。在超分辨率任务中,通常要求输出图像和原图在颜色、对比度、亮度等方面保持一致,只需改变图像的分辨率和一些细节即可。但是SRGAN生成器中的BN拉伸了图像的对比度,BN处理后图像的颜色分布也被归一化,破坏了图像原有的对比度信息,影响了输出图像的质量。当训练集的统计数据与测试集不同时,BN 层往往会产生不良伪影并限制模型的泛化能力。 [44, 45] 证明,在面向 PSNR 的任务中,去除 BN 层可以提高性能并降低计算复杂度。同时,去除 BN 层可以增强网络训练的稳定性和网络的泛化能力。因此,如图1中我们的残差块所示,我们将原来残差块的BN层替换为3×3卷积和PReLU激活层,增加了网络的深度和复杂度,充分利用了之后的特征每次卷积,以及对生成网络的边缘特征处理的改进。

        在我们生成的网络中,如图 2 所示,我们的 16 个残差块通过 9×9 卷积层连接起来,以获得完整的底层特征空间。然后,使用两倍的上采样和 PReLU 激活。最后连接一个9×9的卷积层来恢复高分辨率的遥感数据。

相关文章:

【目标检测论文阅读笔记】Detection of plane in remote sensing images using super-resolution

Abstract 由于大量的小目标、实例级噪声和云遮挡等因素,遥感图像的目标检测精度低,漏检率或误检率高。本文提出了一种新的基于SRGAN和YOLOV3的目标检测模型,称为SR-YOLO。解决了SRGAN网络 对超参数的敏感性和模态崩溃问题。同时,Y…...

外卖app开发流程全解析

外卖app开发是现代餐饮业的一个必备部分。在这个数字化时代,人们更愿意使用手机应用程序来订购食品。因此,为了满足客户需求,餐饮企业需要开发自己的外卖app。 第一步:确定目标受众 在开始外卖app的开发之前,需要确定…...

BUUCTF jarvisoj_level0

小白垃圾做题笔记而已,不建议阅读。。。 这道题感觉主要就是64位程序ebp8 题目中给出了shellcode 我们直接将返回地址覆盖就好。 在main函数中调用了vulnerable_function()函数。 vulnerable函数是一个漏洞函数:(存在缓溢出),我们只需要将…...

网络安全之入侵检测

目录 网络安全之入侵检测 入侵检测经典理论 经典检测模型 入侵检测作用与原理 意义 异常检测模型(Anomaly Detection) 误用检测模型(Misuse Detection) 经典特征案例 ​编辑自定义签名 ​编辑 签名检查过程 检测生命周期…...

元数据管理

1、业务元数据 描述 ”数据”背后的业务含义主题定义:每段 ETL、表背后的归属业务主题。业务描述:每段代码实现的具体业务逻辑。标准指标:类似于 BI 中的语义层、数仓中的一致性事实;将分析中的指标进行规范化。标准维度&#xf…...

C# WebService的开发以及客户端调用

目录 1、WebService简介 1.1 什么是XML? 1.2 什么是Soap? 1.3 什么是WSDL? 2、WebService与WebApi的区别与优缺点 2.1 WebService与WebApi的区别: 2.2 WebService的优缺点: 2.3 WebApi的优缺点: 3…...

有符号数和无符号数左移和右移

主要是有符号数的左移。 有的说不管符号位,直接左移,所以可以一会正数一会复数 https://bbs.csdn.net/topics/391075092 有的说符号位不动,其他来左移 不明白了。。。。 https://blog.csdn.net/hnjzsyjyj/article/details/119721014 https://…...

Netty小白入门教程

一、概述 1.1 概念 Netty是一个异步的基于事件驱动(即多路复用技术)的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端。 1.2 地位 Netty在Java网络应用框架中的地位就好比,Spring框架在JavaEE开发中的地位。 以下的框架都使用了Nett…...

【逻辑位移和算数位移】

<< 运算符 && >> 运算符 正数位移 当 x>>n 中 x 为正数时&#xff0c;会将x的所有位右移x位&#xff0c;同时左边高位补0 显而易见&#xff0c;运算结束后&#xff0c;值为1 。 可知右移n位&#xff0c;结果就是 x / 2^n&#xff1a;7 / 2 ^2 1;…...

Blender3.5 边的操作

目录 1. 边操作1.1 边的细分 Subdivide1.2 边的滑移 Edge Slide1.3 边的删除1.4 边的溶解 Dissolve1.5 边线倒角 Bevel1.6 循环边 Loop Edges1.7 并排边 Ring Edges1.8 桥接循环边 1. 边操作 1.1 边的细分 Subdivide 在边选择模式&#xff0c;选中一条边&#xff0c;右键&…...

Java与Python、Node.js在人工智能和区块链应用程序开发中的比较

背景 Java、Python和Node.js都是常用的编程语言,它们在不同领域都有广泛的应用。在人工智能和区块链应用程序开发中,这三种语言都具有各自的优势和劣势。 Java的优势 Java在企业级应用中应用广泛,这得益于其跨平台性、安全性和稳定性等特点。在人工智能和区块链应用程序开…...

【计算机是怎么跑起来的】基础:计算机三大原则

【计算机是怎么跑起来的】基础&#xff1a;计算机三大原则 计算机的三个根本性基础1.计算机是执行输入&#xff0c;运算&#xff0c;输出的机器输入&#xff0c;运算&#xff0c;输出 2. 软件是指令和数据的集合指令数据 3. 计算机的处理方式有时与人们的思维习惯不同对计算机来…...

NXP公司LPC21XX+PID实现稳定温度控制

本例使用的是LPC21XX系列芯片提供的PWM功能实现稳定的温度控制。首先我们获得当前环境温度之后&#xff0c;再用设定的温度与当前温度相减&#xff0c;通过PID算法计算出当前输出脉宽&#xff0c;并将其输出到L298N模块中&#xff0c;使加热丝发热&#xff0c;形成闭环&#xf…...

【CE实战-生化危机4重置版】实现角色瞬移、飞翔

▒ 目录 ▒ 🛫 导读需求开发环境1️⃣ CE扫描内存,定位坐标地址(加密后的地址)2️⃣ 硬件写入断点,定位真实坐标地址内存写入断点,定位到访问地址分析代码...

强烈建议互联网人转战实体和农业,去了就是降维打击!实体太缺人才了,老板也不缺钱!...

大环境不好&#xff0c;互联网人该何去何从&#xff1f; 一位网友提出了一个新思路&#xff1a;强烈建议互联网同学转战实体、农业这些行业。实体真的太缺人才了&#xff0c;目前大部分实体都留下70后、80后在继续奋斗。其实实体老板很多都不缺钱&#xff0c;经过多年积累&…...

如何将 github pages 迁移到 vercel 上托管

如何将 github pages 迁移到 vercel 上托管 前言 早期网站使用 github pages,后来迁移到 coding,最近又放到腾讯云网站静态托管,无论是 coding 的 cos 存储桶,还是静态网站托管 他们都是收费的,那有没有免费的托管商呢,既不影响网站的访问速度还免费,于是,找了一下,还真有,ve…...

2023五一数学建模竞赛(五一赛)选题建议

提示&#xff1a;DS C君认为的难度&#xff1a;C<A<B&#xff0c;开放度&#xff1a;B<A<C 。 A题&#xff1a;无人机定点投放问题 这道题是传统的物理类题目&#xff0c;基本每次建模竞赛都会有。由于这道题目并未给明数据&#xff0c;所以数据获取和搜集资料是…...

Packet Tracer - 配置 RIPv2

Packet Tracer - 配置 RIPv2 目标 第 1 部分&#xff1a;配置 RIPv2 第 2 部分&#xff1a;验证配置 拓扑图 背景信息 尽管在现代网络中极少使用 RIP&#xff0c;但是作为了解基本网络路由的基础则十分有用。 在本活动中&#xff0c;您将使用适当的网络语句和被动接口配置…...

Android类似微信聊天页面教程(Kotlin)四——数据本地化

前提条件 安装并配置好Android Studio Android Studio Electric Eel | 2022.1.1 Patch 2 Build #AI-221.6008.13.2211.9619390, built on February 17, 2023 Runtime version: 11.0.150-b2043.56-9505619 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 11 …...

C/C++基础知识

专栏&#xff1a;C/C 个人主页&#xff1a; C/C基础知识 前言C关键字(C98)命名空间命名空间的定义正常的命名空间的定义如何使用命名空间 命名空间可以嵌套同一个工程中允许存在多个相同名称的命名空间&#xff0c;编译器最后会合成同一个命名空间中(一个工程中的.h文件和test.…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...

在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例

目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码&#xff1a;冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...

aardio 自动识别验证码输入

技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”&#xff0c;于是尝试整合图像识别与网页自动化技术&#xff0c;完成了这套模拟登录流程。核心思路是&#xff1a;截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...