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

论文阅读 RRNet: A Hybrid Detector for Object Detection in Drone-captured Images

文章目录

    • RRNet: A Hybrid Detector for Object Detection in Drone-captured Images
      • Abstract
      • 1. Introduction
      • 2. Related work
      • 3. AdaResampling
      • 4. Re-Regression Net
        • 4.1. Coarse detector
        • 4.2. Re-Regression
      • 5. Experiments
        • 5.1. Data augmentation
        • 5.2. Network details
        • 5.3. Training details
        • 5.4. Inference details
        • 5.5. Performance
      • 6. Ablation study
      • 7. Conclusion

RRNet: A Hybrid Detector for Object Detection in Drone-captured Images

Abstract

我们提出了一种名为RRNet的混合检测器,用于在城市场景无人机(UAVs)和无人机拍摄的图像中进行目标检测。在这种具有挑战性的任务中,目标通常呈现出各种不同的大小,并且非常密集。因此,我们将anchor free检测器与re-regression模块相结合。通过摒弃prior anchors,我们的模型不再需要对边界框大小进行回归,从而在密集场景中实现了更好的多尺度目标检测性能。基于无锚点的检测器首先生成coarse boxes,然后在粗略的预测结果上应用re-regression module,以产生精确的边界框。此外,我们还引入了自适应 resampling augmentation strategy来地增强数据。我们的实验表明,RRNet在VisDrone2018数据集上显著优于所有最先进的检测器。

1. Introduction

无人机(UAVs)在学术界和实际应用中得到了广泛采用。因此,我们需要理解和分析由它们捕获的图像数据。在深度学习时代,基于深度神经网络(DNNs)的目标检测器显著提高了目标检测的性能。然而,正常自然图像和无人机拍摄图像之间存在许多显著差异,这些差异使得目标检测成为一项具有挑战性的任务。首先,这些图像中的目标尺度各异。如图1a所示,远处的目标非常小,而近处的目标很大。此外,在城市中存在大量密集的场景(例如图1b),这导致目标之间有很多遮挡,使得目标检测更加困难。
在这里插入图片描述

当前基于深度学习的目标检测器分为两类。第一类是两阶段检测器。它们使用region proposal网络来确定先前的锚点是目标还是背景。 prior anchors是几个手动定义的潜在边界框。然后,它们使用两个head networks将潜在锚点分类到一组类别,并估计锚点与真实边界框之间的偏移量。另一类称为单阶段检测器。与两阶段检测器不同,单阶段检测器舍弃了region proposal网络。它们直接使用两个检测器来预测先前锚点的类别和偏移量。这两种类型的检测器的prior anchors是在低分辨率图像网格上生成的。每个prior anchors只能根据IoU(交并比)分配一个对象边界框。然而,对于由无人机捕获的图像,固定形状的锚点几乎无法处理各种尺度的目标。最近,提出了另一种类型的检测器,即无锚点检测器。它们将边界框的预测简化为 key point和 size estimation。这对于检测具有不同尺度的目标提供了更好的方式。然而,目标大小之间的巨大差异(例如从101到103)使得回归变得困难。

在本论文中,我们提出了一种名为RRNet的混合检测器。无论对象的尺度如何,对象的中心点始终存在。因此,我们使用两个检测器来预测每个对象的中心点、宽度和高度,而不是使用锚点框。然后,我们将这些中心点和尺寸转换为 coarse bounding boxes。最后,我们将深度特征图和粗略的边界框输入到一个Re-Regression模块中。Re-Regression模块可以调整粗略的边界框并生成最终准确的边界框。

此外,已有的证据表明,良好的数据增强甚至可以在不改变网络架构的情况下推动深度模型达到最先进的性能。因此,我们提出了一种数据增强策略,称为自适应重采样(AdaResampling)。这个策略可以在图像上logically增强对象。

我们的实验表明,所提出的模型在VisDrone2018数据集上明显优于现有的最先进检测器。从原理上讲,我们的RRNet是一个无锚点检测器和两阶段检测器的混合模型。我们认为Re-Regression模块对于取得好的结果至关重要。

总结起来,本论文的主要贡献如下:

  • 我们提出了一种新颖的混合目标检测器,由一个coarse detector和一个re-regression模块组成,用于在无人机拍摄的图像中进行目标检测。
  • 我们提出了一种自适应增强策略,称为AdaResampling,用于对目标进行逻辑增强。
  • 我们的检测器在ICCV VisDrone2019目标检测挑战赛中取得了AP50、AR10和AR100的最佳结果。

2. Related work

略过

3. AdaResampling

在这一部分,我们介绍了一种自适应增强方法,称为AdaResampling。受到Kisantal等人的启发,所提出的增强的主要思想是重新采样confusing objects,并将它们多次贴在图像上。

图2a是从COCO数据集中采样的图像。在这种类型的图像上随机贴上裁剪过的目标不会破坏图像的逻辑性。然而,如图2b所示,简单的复制粘贴增强可能会生成一个非常荒谬的图像。我们注意到存在两种不匹配。第一种是背景不匹配。例如,用1标记的车辆飞在天空中。背景不匹配可能导致模型产生更多的误检边界框。原因是分类器依赖于目标特征和上下文特征。分类器可以学习背景的先验知识,以辅助自身进行分类。第二种是尺度不匹配。如果我们将一个大的目标复制到远处的背景中,该目标(例如图2b中的2)将比周围的其他目标大得多。通常,周围的其他目标可以为当前目标的尺寸回归提供有用的知识。尺度不匹配会破坏这种知识。
在这里插入图片描述
为了消除这两种不匹配,我们提出了一种自适应增强策略,称为AdaResampling。图3展示了AdaResampling的流程。

在这里插入图片描述

首先,我们将无人机拍摄的图像输入预训练的语义分割网络,以获取prior的道路地图。由于无人机拍摄图像与用于训练分割网络的数据集之间存在差异,分割网络可能会产生噪声结果。我们不要求高召回率,而是要求道路区域的高精度。因此,我们使用eroding algorithm和3×3中值滤波器尽可能地去除伪造的道路区域。然后,我们根据道路地图从有效的位置采样,以放置增强的目标。接下来,裁剪的目标通过一个变换函数进行尺寸调整。高度与宽度的比例是恒定的。缩放后的高度可以通过一个简单的线性函数计算:
在这里插入图片描述
其中 h(l)、h(s)、y(l) 和 y(s) 分别表示最大和最小目标的高度和 y 坐标。我们仅使用最大和最小的 k pedestrian来计算 a。y 是所选有效位置的 y 坐标。最后,缩放后的目标可以放置在所选的位置。我们定义一个密集系数 d 来控制resampled 目标的数量。resampled 的目标数量 n 可以通过以下公式计算
在这里插入图片描述
Nr 是prior road pixels的数量。图3的右侧是通过我们的AdaResampling增强的训练图像。我们可以看到车辆只能放置在道路上,并且增强的目标的尺度是合适的。

4. Re-Regression Net

我们对VisDrone2018数据集进行了一些统计数据的收集。结果如图4所示。
在这里插入图片描述

图4a显示了所有边界框的高度和宽度。目标的尺寸范围从101到103像素不等。很难定义一个合适的prior anchors集合来覆盖这么大的间隔。此外,图4b显示了所有边界框的对角线长度。大多数目标的尺寸小于50×50像素。我们认为基于关键点的检测器更适合小目标检测。因此,我们提出了RRNet。图5的上半部分显示了RRNet的架构。我们首先将图像输入到一些卷积块中,以获取初始特征图。然后,两个HourGlass块(HGBlock)提取了具有更多语义信息的robust feature maps。我们将这些特征输入到两个独立的检测器中。heatmap detector产生了一个与目标中心点相关的概率热图。此外,另一个检测器将为所有中心点提供尺寸估计。
在这里插入图片描述

4.1. Coarse detector

如图5所示,粗略检测器由一个尺寸估计块和一个类别预测块组成。尺寸估计部分用于直接预测每个目标的高度和宽度。类别预测网络的操作非常类似于语义分割网络。我们为每个像素预测category-sensitive的中心点,并最终应用sigmoid激活函数,以获得每个类别的独立概率。

4.2. Re-Regression

我们将热图和尺寸预测转换为粗略的边界框。最后,我们应用re-regress模块来对这些粗略检测框进行优化,生成精细的边界框。

Re-Regression模块允许我们的模型优化粗略的边界框。我们将由HGBlock 2生成的特征图和粗略的边界框输入到Re-Regression模块中。Re-Regression模块类似于Faster-RCNN头部,但不包括分类网络。首先,我们使用非极大值抑制(NMS)算法来过滤重复的边界框。然后,我们使用ROIalign来对齐特征,并使用两个卷积层来预测偏移值。最后,我们将偏移值应用于粗略的边界框,得到最终的预测。

5. Experiments

我们使用VisDrone2018数据集来评估我们的模型。我们报告了mAP、AP50、AP75和AR1∼500等指标。

5.1. Data augmentation

与大多数深度神经网络类似,我们的基本数据增强包括水平翻转和随机裁剪。在训练阶段,我们的裁剪尺寸为512×512。我们使用提出的AdaResampling方法对行人、步行者、自行车、三轮车、雨篷三轮车和机动车进行增强。密集系数d被设置为0.00005。在AdaResampling中使用的预训练分割网络是在Cityscapes数据集上预训练的Deeplabv3 网络。

5.2. Network details

表2展示了我们RRNet的详细设置。输入卷积和HGBlocks(HourGlass块)遵循HourGlass网络的官方设置。在对粗略边界框进行重新回归之前,我们首先根据它们的分类置信度选择前1500个边界框。然后,我们使用非最大值抑制(NMS)算法,设置IoU阈值为0.7,以过滤重复的边界框。ROI Align的大小设置为3。

在这里插入图片描述

5.3. Training details

在我们的实验中,我们采用Adam作为优化器。每个mini-batch在每个GPU上有4个图像,我们在4个GPU上进行训练,总共进行100,000次迭代,初始学习率为2.5e-4,在第60,000次和第80,000次迭代时学习率减小10倍。分类的损失函数是焦点损失(focal loss),回归使用平滑L1损失。整体的训练目标函数是:
在这里插入图片描述
L(d)是粗略检测器的损失函数,L®是Re-Regression模块的损失函数。L(d)和α的设置遵循CenterNet的方式。与Faster RCNN 类似,L(d)size是应用于偏移向量的操作:
在这里插入图片描述

5.4. Inference details

在推理阶段,我们舍弃第一个检测器,仅对第二个检测器进行粗略边界框的预测。然后,我们对得分最高的1500个粗略检测框应用Re-Regression模块,接着使用(soft non-maximum suppression)来进行后处理。

5.5. Performance

我们在表格1中展示了RRNet与现有最先进目标检测器的比较结果。可以看出,RRNet在所有最先进的基准模型中表现更好。我们还列出了DPNet-ensemble和ACM-OD的性能,它们是该挑战赛的第一和第三名。我们的RRNet在AP50和AR方面取得了最高的成绩。值得注意的是,我们的RRNet的所有AR都明显高于其他模型。这些结果表明一个结论,即我们的网络可以检测更多的难例。

此外,在表格1中还有一些有趣的结果。基于关键点的检测器(例如CornerNet 、RRNet)的性能优于所有基于锚点的检测器。

在这里插入图片描述

6. Ablation study

略过

7. Conclusion

In this paper, we proposed an adaptive resampling augmentation and a hybrid object detector, the RRNet, for object detection on images captured by UAVs or drones. It presents excellent performance on very small objects in a dense scene. Our experiments demonstrated that RRNet outperforms the state-of-the-art. We achieve the highest performance of AP50, AR10, and AR100 in the ICCV VisDrone2019 Object Detection in Images Challenge.

相关文章:

论文阅读 RRNet: A Hybrid Detector for Object Detection in Drone-captured Images

文章目录 RRNet: A Hybrid Detector for Object Detection in Drone-captured ImagesAbstract1. Introduction2. Related work3. AdaResampling4. Re-Regression Net4.1. Coarse detector4.2. Re-Regression 5. Experiments5.1. Data augmentation5.2. Network details5.3. Tra…...

js执行机制

JavaScript 的执行机制是基于单线程的事件循环模型。这意味着 JavaScript 代码会按照顺序一行一行地执行,同时只能执行一个任务。让我们更详细地了解 JavaScript 的执行机制: 调用栈(Call Stack): JavaScript 使用调用…...

关于策略模式的注入问题

上面抄别人的 当在实现策略方法时,报null,排查后发现是接口实现有多个,需要添加别名 注入时添加Qeualifier,指定名称,如下图;如图上修改, 测试类中不用new具体行为策略了,注入别名即…...

通用Mapper的四个常见注解

四个常见注解 1、Table 作用:建立实体类和数据库表之间的对应关系。 默认规则:实体类类名首字母小写作为表名,如 Employee -> employee 表 用法:在 Table 注解的 name 属性中指定目标数据库的表名; 案例&#…...

二进制安装K8S(单Master集群架构)

目录 一:操作系统初始化配置 1、项目拓扑图 2、服务器 3、初始化操作 二: 部署 etcd 集群 1、etcd 介绍 2、准备签发证书环境 3、master01 节点上操作 (1)生成Etcd证书 (2)创建用于存放 etcd 配置文…...

基于java汽车销售分析与管理系统设计与实现

摘 要 计算机现在已成为人们办公和生活不可或缺的组成部分,在工作范畴计算机成熟运用大大提升了工作人员的工作效率,化繁为简,加速社会经济发展。在生活上,人们可以通过计算机互联网更快的了解到全球时事要闻、听到最新潮流音乐、…...

Glass指纹识别工具,多线程Web指纹识别工具-Chunsou

Glass指纹识别工具,多线程Web指纹识别工具-Chunsou。 Glass指纹识别工具 Glass一款针对资产列表的快速指纹识别工具,通过调用Fofa/ZoomEye/Shodan/360等api接口快速查询资产信息并识别重点资产的指纹,也可针对IP/IP段或资产列表进行快速的指…...

BIO,NIO,AIO总结

文章目录 1. BIO (Blocking I/O)1.1 传统 BIO1.2 伪异步 IO1.3 代码示例 1.4 总结2. NIO (New I/O)2.1 NIO 简介2.2 NIO的特性/NIO与IO区别1)Non-blocking IO(非阻塞IO)2)Buffer(缓冲区)3)Channel (通道)4)Selector (选择器) 2.3 NIO 读数据和写数据方式…...

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统

[腾讯云Cloud Studio实战训练营]基于Cloud Studio完成图书管理系统 ⭐前言🌜Cloud Studio产品介绍1.登录2.创建工作空间3.工作空间界面简介4.环境的使用 ⭐实验实操🌜Cloud Studio实现图书管理系统1.实验目的 2. 实验过程2.实验环境3.源码讲解3.1添加数据…...

(二)Node.js 基础模块

(二)Node.js 基础模块 1. fs文件系统模块1.1 什么是fs文件系统模块1.2 读取指定文件中的内容1. fs.readFile()的语法格式2. fs.readFile()的示例代码 1.3 向指定的文件中写入内容1. fs.writeFile()的语法格式2. fs.writeFile()的实例代码 1.4 __dirname …...

AUC及其拓展GAUC

AUC及其拓展GAUC auc的定义 auc用来评估一个分类器的排序质量,它的物理含义:给定一堆正负样本,随机取一个正样本,一个负样本,学习器将正样本排在负样本前面的概率 auc的计算 具体计算方法:给定m个正样本…...

【CSS】CSS 选择器

CSS 选择器 1.基础选择器 1.1 元素选择器 语法:标签名{...} 元素选择器会选中对应标签名的HTML元素,例如:p{...},div{...},span{...}等 1.2 类选择器 语法:.类名{...} 类选择器会选中class属性为指定…...

2023-08-07力扣今日四题-好题

链接: 剑指 Offer 03. 数组中重复的数字 题意: 如题 解: 看到一个很牛的时间复杂度O(n)的原地算法:由于数组长度n,数组内只有0到n-1,那么,我们用对应-n到-1表示nums[index]出现过一次&…...

Packet Tracer - IPv4 和 IPv6 编址故障排除

Packet Tracer - IPv4 和 IPv6 编址故障排除 地址分配表 设备 接口 IPv4 地址 子网掩码 默认网关 IPv6 地址/前缀 R1 G0/0 10.10.1.1 255.255.255.0 N/A G0/1 192.168.0.1 255.255.255.0 N/A 2001:DB8:1:1::1/64 N/A G0/2 2001:DB8:1:2::1/64 N/A S0/0/0 …...

PHP国外在线教育系统源码 在线课程系统源码 直播课程系统源码提供在线课程,现场课程,测验

Proacademy是在线教育一体化的解决方案,用于创建类似于Udemy、Skillshare、Coursera这种在线教育市场。 这个平台提供在线课程,现场课程,测验等等,并有一个基于实际业务需要的高级认证插件,程序基于Laravel强大的安全框…...

Abaqus 中最常用的子程序有哪些 硕迪科技

在ABAQUS中,用户定义的子程序是一种重要的构件,可以将其插入到Abaqus分析中以增强该软件的功能和灵活性。这些子程序允许用户在分析过程中添加自定义材料模型、边界条件、初始化、加载等特定操作,以便更精准地模拟分析中的现象和现象。ABAQUS…...

容器——3.Collection 子接口之 Set

文章目录 3.1. comparable 和 Comparator 的区别3.1.1. Comparator 定制排序3.1.2. 重写 compareTo 方法实现按年龄来排序 3.2. 无序性和不可重复性的含义是什么3.3. 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同 3.1. comparable 和 Comparator 的区别 comparable 接口…...

将整数,结构体,结构体数组,链表写到文件

在之前的学习中,忘文件中写的内容都是字符串或字符,本节学习如何写入其他各种类型的数据。 回看write和read函数的形式: ssize_t write(int fd, const void *buf, size_t count); ssize_t read(int fd, void *buf, size_t count); 其中&a…...

UNIX基础知识:UNIX体系结构、登录、文件和目录、输入和输出、程序和进程、出错处理、用户标识、信号、时间值、系统调用和库函数

引言: 所有的操作系统都为运行在其上的程序提供服务,比如:执行新程序、打开文件、读写文件、分配存储区、获得系统当前时间等等 1. UNIX体系结构 从严格意义上来说,操作系统可被定义为一种软件,它控制计算机硬件资源&…...

IDEA2021.3.1-优化设置IDEA2021.3.1-优化设置、快捷方式改为eclipse、快捷键等

IDEA2021.3.1-优化设置IDEA2021.3.1-优化设置、快捷方式改为eclipse、快捷键等 一、主题设置二、鼠标悬浮提示三、显示方法分隔符四、代码提示忽略大小写五、自动导包六、取消单行显示tabs七、设置字体八、配置类文档注释信息模板九、设置文件编码9.1、所有地方设置为UTF-89.2、…...

使用C#的窗体显示与隐藏动画效果方案 - 开源研究系列文章

今天继续研究C#的WinForm的显示动画效果。 上次我们实现了无边框窗体的显示动画效果(见博文:基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章 ),这次介绍的是未在任务栏托盘中窗体的显示隐藏动画效果的实现代码。 1、 项目目录&#xff1b…...

09_Vue3中的 toRef 和 toRefs

toRdf 作用:创建一个 ref 对象,其 value 值指向另一个对象中的某个属性。语法: const name toRef(person,name) 应用:要将响应式对象中的某个属性单独提供给外部使用时。扩展:toRef 与 toRefs 功能一致&#xff0…...

JAVA获取视频音频时长 文件大小 MultipartFileUtil和file转换

java 获取视频时长_java获取视频时长_似夜晓星辰的博客-CSDN博客 <dependency><groupId>ws.schild</groupId><artifactId>jave-all-deps</artifactId><version>2.5.1</version></dependency>Slf4j public class VideoTimeUtil…...

刷题笔记 day9

1658 将 x 减到 0 的最小操作数 解析&#xff1a;1. 当数组的两端的数都大于x时&#xff0c;直接返回 -1。 2. 当数组所有数之和小于 x 时 &#xff0c;直接返回 -1。 3. 数组中可以将 x 消除为0&#xff0c;那么可以从左边减小为 0 &#xff1b;可以从右边减小为 0 &#xff1…...

小白解密ChatGPT大模型训练;Meta开源生成式AI工具AudioCraft

&#x1f989; AI新闻 &#x1f680; Meta开源生成式AI工具AudioCraft&#xff0c;帮助用户创作音乐和音频 摘要&#xff1a;美国公司Meta开源了一款名为AudioCraft的生成式AI工具&#xff0c;可以通过文本提示生成音乐和音频。该工具包含三个核心组件&#xff1a;MusicGen用…...

1 swagger简单案例

1.1 加入依赖 <!--swagger图形化接口--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version> </dependency><dependency><groupId>io.spri…...

Flutter写一个android底部导航栏框架

废话不多说&#xff0c;上代码&#xff1a; import package:flutter/material.dart;void main() {runApp(MyApp()); }class MyApp extends StatelessWidget {overrideWidget build(BuildContext context) {return MaterialApp(title: Bottom Navigation Bar,theme: ThemeData(…...

关于自动化测试用例失败重试的一些思考

自动化测试用例失败重跑有助于提高自动化用例的稳定性&#xff0c;那我们来看一下&#xff0c;python和java生态里都有哪些具体做法&#xff1f; 怎么做 如果是在python生态里&#xff0c;用pytest做测试驱动&#xff0c;那么可以通过pytest的插件pytest-rerunfailures来实现…...

JS逆向之顶像滑块

本教程仅限于学术探讨&#xff0c;也没有专门针对某个网站而编写&#xff0c;禁止用于非法用途、商业活动、恶意滥用技术等&#xff0c;否则后果自负。观看则同意此约定。如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01; 目录 一、接口请求流程 二、C1包 三、ac 四…...

【css】textarea-通过resize:none 禁止拖动设置大小

使用 resize 属性可防止调整 textareas 的大小&#xff08;禁用右下角的“抓取器”&#xff09;&#xff1a; 没有设置resize:none 代码&#xff1a; <!DOCTYPE html> <html> <head> <style> textarea {width: 100%;height: 150px;padding: 12px 20p…...