论文阅读 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.

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

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

相关文章

NeRF室内重建对比:Nerfstudio vs. Luma AI vs. Instant-NGP

十年前,Matterport 改变了房地产业,让房地产买家可以进行数字旅游。 买家可以在房产内从一个点移动到另一个点并环顾四周。 与 2D 照片库相比,这是一个巨大的改进。 然而,买家仍然被房产内的一系列问题所困扰。 推荐:用…

rk3399移植linux kernel

rk3399移植linux kernel 0.前言一、移植ubuntu根文件系统二、移植linux1.支持NFS(可选)2.配置uevent helper3.支持etx4文件系统(默认已支持)4.配置DRM驱动5.有线网卡驱动6.无线网卡驱动 三、设备树四、内核镜像文件制作五、烧录六、总结 参考文章: 1.RK3399移植u-bo…

TypeScript 中【class类】与 【 接口 Interfaces】的联合搭配使用解读

导读: 前面章节,我们讲到过 接口(Interface)可以用于对「对象的形状(Shape)」进行描述。 本章节主要介绍接口的另一个用途,对类的一部分行为进行抽象。 类配合实现接口 实现(impleme…

如何用正确的姿势监听Android屏幕旋转

作者:37手游移动客户端团队 背景 关于个人,前段时间由于业务太忙,所以一直没有来得及思考并且沉淀点东西;同时组内一个个都在业务上能有自己的思考和总结,在这样的氛围下,不由自主的驱使周末开始写点东西&…

QT生成Debug和Release发布版后,运行exe缺少dll问题

在QT Creator生成debug和release的exe执行文件后,运行时,报错缺少*.dll.解决办法1: 在系统环境变量中添加D:\Qt\Qt5.13.2\Tools\mingw730_64\bin后,即可运行。 当使用此方法时,将exe拷贝到其他电脑中运行时&#xff0c…

软件性能测试有哪些测试指标?性能测试报告对软件产品起到的作用

在软件开发过程中,性能测试是一个至关重要的环节,主要关注软件系统在不同负载条件下的表现,以评估其稳定性、可扩展性和响应能力。它可以帮助开发人员评估软件系统的质量和性能。 一、软件性能测试的测试指标 性能测试的测试指标直接影响着…

【代码解读】RRNet: A Hybrid Detector for Object Detection in Drone-captured Images

文章目录 1. train.py2. DistributedWrapper类2.1 init函数2.2 train函数2.3 dist_training_process函数 3. RRNetOperator类3.1 init函数3.1.1 make_dataloader函数 3.2 training_process函数3.2.1 criterion函数 4. RRNet类(网络模型类)4.1 init函数4.…

计算机视觉--距离变换算法的实战应用

前言: Hello大家好,我是Dream。 计算机视觉CV是人工智能一个非常重要的领域。 在本次的距离变换任务中,我们将使用D4距离度量方法来对图像进行处理。通过这次实验,我们可以更好地理解距离度量在计算机视觉中的应用。希望大家对计算…

IPC之一:使用匿名管道进行父子进程间通信的例子

IPC 是 Linux 编程中一个重要的概念,IPC 有多种方式,本文主要介绍匿名管道(又称管道、半双工管道),尽管很多人在编程中使用过管道,但一些特殊的用法还是鲜有文章涉及,本文给出了多个具体的实例,每个实例均附…

CentOS 7 构建 LVS-DR 群集 nginx负载均衡

1、基于 CentOS 7 构建 LVS-DR 群集。 DS(Director Server):DIP 192.168.231.132 & VIP 192.168.231.200 [root132 ~]# nmcli c show NAME UUID TYPE DEVICE ens33 c89f4a1a-d61b-4f24-a260…

AIGC:【LLM(四)】——LangChain+ChatGLM:本地知识库问答方案

文章目录 一.文件加载与分割二.文本向量化与存储1.文本向量化(embedding)2.存储到向量数据库 三.问句向量化四.相似文档检索五.prompt构建六.答案生成 LangChainChatGLM项目(https://github.com/chatchat-space/langchain-ChatGLM)实现原理如下图所示 (与基于文档的问答 大同小…

Python连接Hive实例教程

一 Python连接hive环境实例 经在网络查询相关的教程,发现有好多的例子,发现连接底层用的的驱动基本都是pyhive和pyhs2两种第三方库的来连接的 hive,下面将简介windows 10 python 3.10 连接hive的驱动程序方式,开发工具:pycharm …

架构实践方法

一、识别复杂度 将主要的复杂度问题列出来,然后根据业务、技术、团队等综合情况进行排序,优先解决当前面临的最主要的复杂度问题。对于按照复杂度优先级解决的方式,存在一个普遍的担忧:如果按照优先级来解决复杂度,可…

List list=new ArrayList()抛出的ArrayIndexOutOfBoundsException异常

1.应用场景,今天生产日志监控到一组new ArrayList() 进行add 异常,具体日志如下: eptionHandler.handler(178): TXXYBUSSINESS|执行异常 java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out…

银河麒麟QT连接DM8数据库

1. 安装达梦8 官网下载, 按照官方文档进行安装即可. 2. 安装unixodbc 1> 下载odbc安装包 unixODBC-2.3.7pre.tar.gz 2> 解压 tar -xvf unixODBC-2.3.7pre.tar.gz3> 编译 ./configure -prefix /usr/local make && make install4> 查找配置 odbcinst -j5…

【从零学习python 】04. Python编程基础:变量、数据类型与标识符

文章目录 变量以及数据类型一、变量的定义二、变量的类型三、查看数据类型 标识符和关键字标识符命名规则命名规范 关键字进阶案例 变量以及数据类型 一、变量的定义 对于重复使用,并且经常需要修改的数据,可以定义为变量,来提高编程效率。…

代码随想录算法训练营第51天|动态规划part09|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

代码随想录算法训练营第51天|动态规划part09|198.打家劫舍、213.打家劫舍II、337.打家劫舍III 198.打家劫舍 198.打家劫舍 思路: 仔细一想,当前房屋偷与不偷取决于 前一个房屋和前两个房屋是否被偷了。 所以这里就更感觉到&a…

鉴源论坛·观模丨形式化方法的工业应用:轨交领域

作者 | 王依玲 上海控安可信软件创新研究院系统建模组 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 引言:前面几期文章介绍了形式化方法的发展历史和具体技术,并从整体的角度介绍了形式化方法的工程化。本…

SpringBoot 的事务及使用

一、事务的常识 1、事务四特性(ACID) A 原子性:事务是最小单元,不可再分隔的一个整体。C 一致性:事务中的方法要么同时成功,要么都不成功,要不都失败。I 隔离性:多个事务操作数据库中同一个记录或多个记录时,对事务进…

TikTok推出PrivacyGo,品牌可与平台共享部分用户数据

1.TikTok宣布允许用户关闭内容自动显示功能 TikTok近日宣布修改运营方式,即允许用户关闭内容自动显示功能,以遵守将于8月底生效的欧盟新规定(欧盟数字服务法案DSA),该法案对平台提出了新的要求,以更好地保…