Cascaded Zoom-in Detector for High ResolutionAerial Images

news2024/11/13 14:52:30
代码地址 https://github.com/akhilpm/dronedetectron2

摘要

密集裁剪是一种广泛使用的方法来改进这种小物体检测,其中以高分辨率提取和处理拥挤的小物体区域。然而,这通常是通过添加其他可学习的组件来实现的,从而使标准检测过程中的训练和推理变得复杂。本文中,我们提出了一种高效的级联放大(CZ )检测器,该检测器将检测器本身重新用于密度引导的训练和推理。在训练过程中,密度裁剪物被定位,标记为一个新的类,并用于增强训练数据集。在推理过程中,密度裁剪物首先与基类对象一起被检测,然后被输入用于第二阶段的推理。这种方法很容易集成到任何检测器中,并且不会对标准检测过程产生显著变化,就像航空图像检测中流行的均匀裁剪方法一样。
总结
密集裁剪可以用来改进小物体检测,但是这通常是通过添加其他可学习的组件来实现的。但是,我们提 出了一种高效的级联放大( CZ )检测器,该检测器将检测器本身重新用于密度引导的训练和推理。

1、介绍

航空图像是高分辨率拍摄的,这些物体稀疏地分布在拥挤的物体区域,通常由许多小物体组成。高分辨率图像和微小物体给航空图像中的物体检测带来了一些挑战,包括由于重新缩放和特征下采样导致的信息丢失、对边界框偏移的低容忍度以及噪声特征表示[5 8] 等。由于计算成本和大的内存占用,很难将高分辨率航空图像直接输入到检测器,因此通常会将其调整为标准分辨率范围(见图第2 a )段)。
(a) 将图像缩放到探测器的尺寸下 。这种重新缩放,再加上 ConvNetx 中的特征下采样,通常会导致与小对象相关的特征表示因噪声背景激活而减少或损坏。关于边界框偏移的容差,边界框中的小偏移可能会导致并集上的交集(IoU )大幅下降,从而增加假阳性检测 [5] 。( 但是这种缩放不好,会导致小对象的 特征丢失
为了利用更高的分辨率,并减轻信息损失,一种流行的方法是将输入图像裁剪成均匀的补丁,然后通过上采样对这些补丁进行高分辨率的对象检测(见图2 b ))( b) 图像被分割成均匀、可能重叠的补丁, 每个补丁都有检测器处理
尽管这些均匀的补丁有助于提高精度,但 这种方法不考虑图像中对象的分布,因此实现的尺度归一化不 是最佳的 [17 37] 。由于航空图像中的物体通常出现在图像稀疏分布的区域中,因此需要执行基于密度的裁剪,然后处理这些拥挤物体区域的高分辨率版本以获得更好的比例平衡。
为了提取这些密度裁剪,现有的方法利用了额外的可学习模块(见图 2 c )),( c) 外部可学习模块将 图像裁剪成密集的对象区域(也就是说只裁剪图像中的密集区域) 每种裁剪都会按照探测器的分辨率 重新缩放和处理
如密度图 [17] 、聚类建议网络 [37] 、全局局部检测管道 [8] 等。这通常会在管道中产生额外的可学习组件,通常需要多个阶段的训练。即使使用单级端到端方法,所获得的裁剪在一开始也是有噪声的,并且仅在训练的后期阶段用于辅助小目标检测[37] 。此外,随着学习的发展,裁剪也在进化,因此该模型没有得到关于什么是“ 密度裁剪 的一致指示。
在这篇论文中, 我们试图通过提出一种高效的级联放大( CZ )检测方法来弥合研究和实践之间的差距, 该方法可以在标准检测器的训练中利用密度裁剪,提供均匀种植的简单性,同时提供密度裁剪的好处 (见图2 d ) (d) 我们提出的 CZ 检测器被重新用于检测密度作物和基类对象,从而消除了对外部模块的需求(对于密度裁剪区域,我们不用额外的可学习模块了,只用自己的 detector 来对密度裁剪区域进 detector )。在 第二阶段的推理 中, 每个裁剪区域都被重新缩放并以检测器的分辨率进行处理。蓝色 箭头表示原始图像的路径,红色箭头表示密度作物的路径。(感觉像是双通道的物体检测器,一条路径 对原始图像进行,一条路径对从原始图片中裁剪到的密集区域进行检测)
我们只是 简单地利用现有的探测器本身来发现密度作物 作物 作为一个新的类别添加到探测器中 。 作物被标记为使用作物标记算法的预处理步骤,因此检测器接收到作物组成的一致标志。在推理过程中,虽然其他方法需要复杂的后处理来过滤有噪声的作物,但我们可以简单地根据检测器中 作物 类的 置信度 来执行它。图1 说明了我们的方法的训练和测试。
图示 : 我们提出的级联放大检测器概述。在训练期间(顶部),提取密度作物,并在原始图像上标记为新类(红框)。训练集用重新缩放的密度作物和这些作物中相应的地面实况框来扩充。 在推理的第一阶段(底部),在整个图像上检测基类对象和密度裁剪(红框)。在第二阶段,密度作物被重新缩放到共同的较大尺寸,并执行第二推断。最后,将对密度作物的检测与对整个图像的检测相结合首先,使用我们的作物标记算法,从每个训练图像中提取密度作物作为预处理步骤 。这些 密度裁剪被添 加为要在相应图像中检测的新类别。 然后,我们 用密度作物的更高分辨率版本和作物内物体的相应地面 实况( GT )框来扩充训练集。然后,像往常一样训练探测器。 与标准检测器训练相比,这种训练过程的开销几乎可以忽略不计,并且与基于均匀作物的训练类似。推理分两个阶段进行 。在第一阶段,从每个输入图像中检测基类对象和密度裁剪。并对这些作物的上采样版本执行另一个基于推理的推理。最后,将来自第一阶段和第二阶段的检测融合以获得输出检测。与标准的目标检测器学习相比,训练时需要的 额外工作是作物标记,这可以作为预处理步骤来执行(也就是说在预处理时标记好密度作物) 在进行 预测时,所需的额外工作是再进行一次推理 。由于这两个过程都不需要对普通物体检测管道进行任何重大修改,类似于均匀裁剪,我们的方法可以很容易地用于加速小物体检测。
总结
首先,从每个输入图像中检测基类对象和密度裁剪。然后,基于高质量密度作物的置信度分数来选择它们,并对这些作物的上采样版本执行另一个基于推理的推理。最后,将第一阶段和第二阶段的检测结果进行融合,得到输出检测结果。
贡献
针对高分辨率航空图片,提出了一种基于密度裁剪的高效级联放大( CZ )对象检测器,其中给定的检测器被重新用于提取密度裁剪(因此不使用额外的模块)以及基类对象。在训练时,这种方法依赖于密度作为标记的简单预处理步骤,而在测试时,需要额外的推理步骤来处理预测的密度作物。

2、相关工作

由于小物体在高分辨率图像中稀疏位置的密集分布,密度裁剪是航空图像检测中的一种流行策略 [8 9 ,17, 37] 。但这通常是通过额外的可学习成分和多阶段训练来实现的,因此,这种方法比均匀种植更复杂。我们也使用密度种植策略,但将检测器本身重新用于提取作物,因此不需要额外的可学习组件。因此,我们相信我们的方法具有均匀裁剪策略的实用简单性,但保留了密度引导检测的优点。

3、提出的方法

介绍如何变换任何探测器,使其能够利用密集作物有效处理许多小物体的高分辨率图像。 我们提出的级 联放大( CZ )对象检测器允许重新调整检测器的用途,以提取密度作物和基类对象 。让我们考虑保持其高分辨率的原始图像、下采样图像和裁剪图像,下采样图像是包含与原始图像相同的视图但缩小到检测器输入分辨率的图像,裁剪图像是放大到检测器分辨率的图像的选定区域。我们流水线的第一个组成部 分是密度裁剪标记算法 ,该 算法将拥挤的对象区域标记为 密度作物 并且通过将这些区域的放大版本相 加来扩充训练数据 。然后, 密度裁剪也被添加到原始图像中,作为要检测的新类别 。因此,增强训练集将包括包含拥挤小物体的区域的高分辨率版本,从而允许检测器以高分辨率看到这些小物体。一旦训练 了模型,推理就包括在原始图像上检测基类和 密度作物 类, 然后 在放大后对预测的密度作物进行第二 次检测。最后,将原始图像的检测和密度裁剪相结合,产生输出检测
总结
先用密度裁剪标记算法,将拥挤的对象区域标记为 密度作物 。并且通过将这些区域的放大版本相加来扩充训练数据,密度裁剪的区域也被添加到原始图像中,作为要检测的新类别。
在放大后对密度作物进行第二次检测,最后将原始图像的检测和密度裁剪相结合,产生输出检测。

3.1 密度作物训练

为了在我们的方法中使用标准检测器,我们需要在训练注释中添加一个称为 密度裁剪 的新类 。通过这种方式,我们的方法是检测器不可知的(因为我们不改变检测器的内部结构,所以我们只需向目标类列表中添加一个额外的类),并且不需要检测器本身以外的任何额外组件。密集裁剪类应该标记图像中包含许多小对象的部分,并将它们包含在边界框中。这将允许训练和推理通过以更高的分辨率分析这些部分来关注这些部分。可以考虑不同的方法来定义密度作物。我们用来定义密度作物的质量约束是:
(i) 它们应该包含一组小目标对象
(ii) 它们在推理时很容易定位
(iii) 它们在数量上是最优的,以降低计算成本
算法 1 描述了我们用于 ground truth 注释中发现和标记密度作物的过程。总之,我们对 GT 框进行迭代合并,以发现密度作物。所有GT B通过将框的最小和最大坐标扩展为\sigma像素来缩放(缩放(\beta , \sigma))。然后,我们将O中缩放框(pairwise_IoU(D))之间的成对交集并集(IoU)计算为|D| \times |D|矩阵。通过在成对IoU矩阵中对阈值\theta以上 的所有重叠值分配 1 ,连接在 C 中被标
然后,我们在C中选择具有最大连接数的行m^*(说明涉及的密集框最多)、通过找到连接到m^*的所有裁剪成员的最小和最大坐标来计算封闭框(enclosing_box(Cm*)。
新获得的
裁剪框被添加到裁剪列表中,行Cm*被设置为 0 。随后,从列表 D 中移除大于最大阈值 \pi的裁剪 该迭代合并过程被执行 N 次。这里使用的裁剪尺寸阈值 \pi是裁剪 面积与图像面积的比率。
作物的质量对我们的方法很重要。事实上,正是迭代合并带来了更好质量的作物。根据缩放因子的值,天真的缩放和合并以找到基于成对IoU 的最大封闭框会导致坏的作物太多或太多的小作物(其中的对象较少)。迭代合并产生了高质量的作物 ,包围了符合质量约束的小对象组。我们还证明了该算法的超参数可以很容易地设置。注意,通过预先标记密度作物,我们在整个训练期间为检测器提供了构成“ 密度作物” 的一致信号,这与其他方法不同,在其他方法中,密度作物也在训练过程中进化 [9 17 37] 。这与[39]中的观察结果一致,即可以在训练期间给出一致的基本事实标签的简单启发式方法优于不断进化的基于复杂预测的基本事实标记。
利用新获得的裁剪标签,我们还可以用额外的图像裁剪来增强训练集 。使用最大训练分辨率 W×H 来缩小原始图像及其注释B 。注意, 预期检测器不会在缩小的图像中检测到许多小物体。但是,给定图像的密集裁剪d \in D的放 大版本将使那些小物体以更高的分辨率落在裁剪内 。作物标记可以作为预处理步 骤执行。密度作物的放大版本增强只是一个数据增强过程。因此,我们的方法不会对标准检测器的训练 管道进行任何更改,除了增加新的类别 密度作物

3.2多阶段推理

由于检测器被训练来识别密度作物,因此在推断时,我们可以从其预测本身获得密度作物 。图 1 底部详细解释了我们的推理过程。它由两个阶段组成。在第一阶段,它预测输入图片上的基类和密度裁剪,然后 我们根据它们的置信度分数来选择高质量的密度作物 。在第二阶段, 放大的密度作物再次通过同一个检 测器,对密度作物进行小物体检测。 最后,我们 将作物上的检测重新投影到原始图像,并将它们与原始 图像上的检测连接起来。设c \in C是由其在原始图像中的边界框坐标(c_{x1} , c_{y1} , c_{x2} , c_{y2})定义的大小为(I_c ^W , I_c ^H)的放大裁剪图像。给定缩放因子(S_c ^W, S_c ^H) = (\frac{c_{x2} - c_{x1}}{I_c ^ w},\frac{c_{y2} - c_{y1}}{I_c ^ H}),重投影 pi 按比例缩小并将其裁剪 c 中的检测
(x_{1,i} , y_{1,i} , x_{2,i} ,y_{2,i}) \in B^c移位为:
然后应用非最大抑制( NMS )来去除重复检测。
虽然其他方法需要复杂的后处理来过滤有噪声的作物 [37] ,但我们可以简单地使用密度作物的置信度得分来进行同样的处理(我们可以应用密度作物的置信度得分来去除重复检测 )。推理的第一阶段是任何检测器中的标准推理过程。利用检测器给出的置信度分数可以容易地执行对噪声作物的滤波。推理的第二阶段使用相同的检测器,但使用不同的输入(按比例放大的密度作物)。因此,我们只是再次重复检测器的标准推理程序。所有这些操作都可以很容易地封装在任何检测器的推理过程之上,从而在推理时

4、实验

python train_net.py --num-gpus 1 --config-file "D:\Project\DroneDetectron2-main\configs\Base
RCNN-FPN.yaml" OUTPUT_DIR outputs_FPN_VisDrone
也保持了统一裁剪方法的简单性。

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

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

相关文章

SpringBoot-04 | spring-boot-starter-logging原理原理

SpringBoot-04 | spring-boot-starter-logging原理原理 第一步:springboot加载factories文件第二步:构造监听器第三步:注册监听器到Spring中第四步:开始加载日志框架第五步:加载日志框架logback-spring.xml第六步&…

python矢量算法-三角形变化寻找对应点

1.算法需求描述 现有随机生成的两个三角形A与B,在三角形A中存在Pa,使用算法计算出三角形B中对应的点Pb 2.python代码 import numpy as np # 计算三角形A的面积 def area_triangle(vertices): return 0.5 * np.abs(np.dot(vertices[0] - vertices[…

人机交互三原则,网络7层和对应的设备、公钥私钥

人机交互三原则 heo Mandel提出了人机交互的三个黄金原则,它们强调了相似的设计目标,分别是: 简单总结为:控负持面–>空腹吃面 1,用户控制 2,减轻负担 3,保持界面一致 置用户于控制之下&a…

3新 IT 技术深刻变革,驱动实体经济进入智能化时代

技术进步和创新是实体经济转型升级的内生 源动力,是企业数字化转型的核心工具,有 助于“降本增效提质”目标的达成。自 20 世 纪 90 年代至今,我国快速完成信息化的大规 模建设,典型数字化技术已发展成熟并充分 融合进企业日…

ARMday7

VID_20240322_203313 1.思维导图 2.main.c #include"key_inc.h" //封装延时函数 void delay(int ms) {int i,j;for(i0;i<ms;i){for(j0;j<2000;j){}} } int main() {//按键中断的初始化key1_it_config();key2_it_config();key3_it_config();while(1){printf(&q…

Go语言学习04~05 函数和面向对象编程

Go语言学习04-函数 函数是一等公民 <font color"Blue">与其他主要编程语言的差异</font> 可以有多个返回值所有参数都是值传递: slice, map, channel 会有传引用的错觉函数可以作为变量的值函数可以作为参数和返回值 学习函数式编程 可变参数 func s…

Java代码基础算法练习-递归求数-2024.03.22

任务描述&#xff1a; 利用递归函数调用方式&#xff0c;将所输入的5个字符&#xff0c;以相反顺序打印出来。 任务要求&#xff1a; 代码示例&#xff1a; package march0317_0331;import java.util.Scanner;/*** m240322类&#xff0c;提供了一个反转输入字符串前5个字符的…

MySQL数据库概念及MySQL的安装

文章目录 MySQL数据库一、数据库基本概念1、数据2、数据表3、数据库4、数据库管理系统&#xff08;DBMS&#xff09;4.1 数据库的建立和维护功能4.2 数据库的定义功能4.3 数据库的操纵功能4.4 数据库的运行管理功能4.5 数据库的通信功能&#xff08;数据库与外界对接&#xff0…

下载 macOS 系统安装程序的方法

阅读信息&#xff1a; 版本&#xff1a;0.4.20231021 难度&#xff1a;1/10 到 4/10 阅读时间&#xff1a;5 分钟 适合操作系统&#xff1a;10.13, 10.14, 10.15, 11.x, 12.x&#xff0c;13.x, 14 更新2023-10-21 添加Mist的介绍支持版本的更新&#xff0c;13.x&#xff0…

博途PLC 模拟量批量转换FC(PEEK指令应用)

单通道模拟转换FC S_ITR请参考下面文章链接: https://rxxw-control.blog.csdn.net/article/details/121347697https://rxxw-control.blog.csdn.net/article/details/121347697模拟量输出FC S_RTI https://rxxw-control.blog.csdn.net/article/details/121394943

python+requests接口自动化测试实战

环境说明&#xff1a; 1.WIN 7, 64位 2.Python3.4.3 &#xff08;pip-8.1.2&#xff09; 3.Requests —>pip install requests 4.Unittest —>unittest 框架是python自带的单元测试框架&#xff0c;python2.1及其以后的版本已将unittest作为一个标准块放入python开发包中…

java目标和(力扣Leetcode106)

目标和 力扣原题 问题描述 给定一个正整数数组 nums 和一个整数 target&#xff0c;向数组中的每个整数前添加 ‘’ 或 ‘-’&#xff0c;然后串联起所有整数&#xff0c;可以构造一个表达式。返回可以通过上述方法构造的、运算结果等于 target 的不同表达式的数目。 示例 …

Linux:执行命令的命令eval与Bash解析命令的方式

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 eval命令用于接收参数&#xff0c;并将这些参数作为一行命令执行&#xff0c;这也许会使人困惑&#xff0c;为什么我不能直接执行命令而需要使用eval命令间接执行呢&…

海内外媒体发稿助力中国品牌扬帆“出海”

在“走出去”国家战略的指引下&#xff0c;借着加入世贸的东风&#xff0c;越来越多中国企业扬帆出海&#xff0c;在学习中融入&#xff0c;在融入中超越&#xff0c;在波折中发展&#xff0c;在发展中共赢。《财富》&#xff15;&#xff10;&#xff10;强企业排行榜上&#…

网工内推 | 数通工程师,IE认证优先,五险一金,绩效奖

01 星网信通 招聘岗位&#xff1a;数通产品经理 职责描述&#xff1a; 1、售前技术支持&#xff1a;技术交流、产品选型报价、方案制作等工作&#xff1b; 2、招投标支持&#xff1a;项目招标参数撰写、标书质疑、应标文件技术部分撰写及资质文件归纳准备、现场讲标及技术澄清…

鸿蒙开发案例:【图像加载缓存库ImageKnife】

专门为OpenHarmony打造的一款图像加载缓存库&#xff0c;致力于更高效、更轻便、更简单。 简介 OpenHarmony的自研版本&#xff1a; 支持内存缓存&#xff0c;使用LRUCache算法&#xff0c;对图片数据进行内存缓存。支持磁盘缓存&#xff0c;对于下载图片会保存一份至磁盘当…

第十四届蓝桥杯JavaB组省赛真题 - 阶乘求和

/ 10^9考虑前九位&#xff0c;% 10^9保留后9位 解题思路: 求获取结果的后九位数字&#xff0c;需要对10^9取余&#xff0c;因为202320232023这个数字的阶乘太大&#xff0c;必须要减少计算量&#xff0c;因为当一个整数乘以10^9后对其取余&#xff0c;那么结果都为0。 所以我…

掌握C语言结构体,开启编程新世界

✨✨欢迎&#x1f44d;&#x1f44d;点赞☕️☕️收藏✍✍评论 个人主页&#xff1a;秋邱博客 所属栏目&#xff1a;C语言 &#xff08;感谢您的光临&#xff0c;您的光临蓬荜生辉&#xff09; 前言 前面我们也涉及到了结构体的讲解&#xff0c;但是只是粗略的讲了一下。 接下…

网络编程:包头分析

一、以太网头 以太网中封装了源mac地址以及目的mac地址&#xff0c;还有ip类型&#xff0c;以太网又称为mac头 0X0800 只接收发往本机的mac的ipv4类型的数据帧 0X0806 只接收发往本机的ARP类型的数据帧 0x8035 只接受发往本机的RARP类型的数据帧 0X0003 接收发往本机的MAC所…

田路分离数据的

因为农机大部分时间是在田地工作&#xff0c;所以大多数农机轨迹样本存在数据分布不平衡的问题&#xff0c;既田地数据多&#xff0c;道路数据少。因为用于分类的大多数机器学习算法都是围绕每个类别的样本数量均相等的假设来设计的。这导致模型的预测性能较差&#xff0c;特别…