论文阅读 The Power of Tiling for Small Object Detection

news2024/11/15 8:18:22

The Power of Tiling for Small Object Detection

Abstract

基于深度神经网络的技术在目标检测和分类方面表现出色。但这些网络在适应移动平台时可能会降低准确性,因为图像分辨率的增加使问题变得更加困难。在低功耗移动设备上实现实时小物体检测一直是监控应用的基本问题之一。在本研究中,我们解决了在高分辨率微型空中飞行器(MAV)图像中检测行人和车辆的问题。为此,我们利用PeleeNet,据我们所知,这是在移动GPU上效率最高的网络模型,以SSD网络的骨干和earlier layer中的38x38特征图。在展示了现有目标检测器在MAV场景下的低准确性后,我们引入了一种基于分块(tiling)的方法,该方法在训练和推断阶段均适用。所提出的技术在目标检测中限制了detail loss,同时以固定尺寸的输入送入网络。通过在Nvidia Jetson TX1和TX2上使用VisDrone2018数据集进行的深入实验,我们展示了所提出方法带来的改进。

1. Introduction

近年来,目标检测在不同应用领域得到了广泛研究,包括人脸检测、视频对象共分割、视频监控、自动驾驶汽车。卷积神经网络(CNNs)是目标检测技术背后的核心工具。在这个领域,深度学习架构的突破性和快速的应用产生了高度准确的目标检测方法,如R-CNN、Fast R-CNN 、Faster R-CNN 、RetinaNet ,这些方法后来被扩展成更快速且仍然准确的版本,如SSD 、YOLO 以及各种变体。这些方法通常在众所周知的数据集上进行训练和评估,如ImageNet 、Pascal VOC12 、COCO 。

需要注意的是,这些常见的数据集主要包括低分辨率图像(256x256),其中包含有大面积像素的大型物体。因此,这些训练好的模型对于这些类型的输入数据提供了非常成功的检测性能。然而,它们在高分辨率图像中的小物体检测任务上的准确性显著较低,这些图像是由高端摄像机生成的。摄像机和机器人技术在许多方面开创了监控应用,包括无人机、4K摄像机,并且实现了符合(D)etection、(O)bservation、(R)ecognition和(I)dentification(DORI)标准的long-range目标检测。DORI标准为不同任务的对象定义了最小像素高度。例如需要将图像高度10%的物体用于检测(在高清视频中为108像素),而在进行识别时,这个百分比增加到了20%。尽管在某些情况下符合DORI标准,相对较小的像素覆盖率和降采样影响了基于CNN的目标检测方法的能力。此外,由于内存需求和计算限制,这些技术无法处理高分辨率图像。

实时小物体检测问题主要应用于微型飞行器(MAV),其中大小、重量和功耗(SWaP)是使用高性能处理器的限制因素。MAV在一定高度观察地面,场景中的物体(行人、汽车、自行车等)的像素区域相对较小。此外,这些飞行器需要实时处理,以便在常见的监控应用中实现检测和跟踪的即时飞行控制。

在本研究中,我们提出了一种在高分辨率图像上进行小物体检测的高效解决方案,同时保持低复杂度和内存占用。为此,我们专注于微型飞行器上的行人和车辆检测,这涉及到前面讨论的问题。这些问题的解决方案依赖于三个阶段:第一步,训练数据集通过使用在原始高分辨率图像中裁剪的子集图块进行增强,同时将目标边界框相应地映射。这些 crops 将小物体映射到较大的相对区域,并在训练阶段的CNN结构的early layers中prevent misses。第二步关注CNN的部署,在这里,目标图像被分割为重叠的图块,并在每个图块上独立执行目标检测。每个图块中的object proposals被合并,以在输入图像的原始分辨率下进行最终检测。为了在满足实时要求的同时利用图块的优势,我们利用了一个高效的框架Pelee,该框架最初应用于大小为304x304的图像。第三步我们修改了Pelee中的特征分辨率,以解决小物体的问题。所有实验都在移动GPU NVIDIA Jetson TX1和TX2模块上进行。

2. Related Work

略过

3. Problem Description

对于移动设备(尤其是MAV和搭载电池的车辆)上实时部署目标检测框架的约束限制了可用网络的数量。前面提到的基于区域的方法对于及时操作不方便,而基于回归的技术则是为了在设备上进行 onboard processing 而设计的。在表1中,展示了在COCO数据集上的准确性以及在Nvidia TX2上的计算时间(每秒帧数(FPS)),其中包括各种基于回归的技术及其适用于移动设备的版本。根据表格,最近推出的Pelee不仅比所有移动检测框架(SSD+MobileNet和YOLOv3-tiny )更快,而且在与尺寸大10倍且计算能力较慢4倍的模型(如YOLOv2)相比的情况下,也提供了可比较的准确性。据我们所知,Pelee不仅是各种最先进技术中目前最佳的替代方案,还为额外的计算提供了足够的空间。
在这里插入图片描述
尽管Pelee在移动GPU上实现了实时性能,但由于SSD的特性,它在高分辨率图像中仍然受到检测小目标的困扰,如图1所示。在图中,展示了VisDrone2018 Video数据集中一些图像的Pelee检测(304x304)的典型结果。特别是对于较小的目标,表现出的目标检测性能较差,尤其是在黄色A-B-C-D所示的区域。
在这里插入图片描述
VisDrone2018 VID数据集在训练集中有100多万个边界框注释,在验证集中有11个不同类别标签(行人、人、自行车、汽车、货车、卡车、三轮车、雨篷三轮车、公共汽车、摩托车、其他)的140k个注释,非常适合我们的场景。我们将VisDrone2018中的类别分为两大类,即行人和车辆,以便进行更清晰简化的任务。在训练集中,人类和车辆类别的像素高度和宽度直方图如图2所示(将图像缩放为1920x1080)。很明显,一半的注释对应于像素高度和宽度小于50像素的对象。这个值是根据标准中讨论的阈值的一半。在VisDrone2018数据集中,小目标占了大多数,只有一半的目标满足监控阈值,而只有20%的目标满足10%图像高度的检测阈值。这在基于MAV的监视中是一个常见情况。在这里插入图片描述

4. Proposed Approach

为了解决小目标检测问题,我们提出了一种tiling方法,该方法在训练和推断阶段都应用如图3所示。在图中,展示了一个典型的3x2 tiling,根据图像分辨率和目标物体纵横比,可以应用任意的tiling。将输入图像划分为重叠的tiling,使得相对于输入网络的图像,小目标的像素区域增大。这适用于任何类型的网络,另一方面,我们选择Pelee 来通过快速执行获得显著的准确率提高。
在这里插入图片描述

4.1. Pelee Architecture

整个PeleeNet网络由Stem Block、七个特征提取器阶段和ResBlock组成。首先,前四个特征提取器阶段由Dense Block组成,以前馈的方式将每一层连接到其他每一层。在训练过程中,输入帧被降采样到304x304分辨率。然后,降采样后的图像被送入Stem Block,以提高特征表达性能而不会增加太多的计算成本。在特征提取阶段,网络在5个尺度的特征图中(19x19、10x10、5x5、3x3和1x1)学习视觉特征示,具有不同的纵横比,然后在产生目标类别和边界框位置预测之前,将其传递到残差块(ResBlock)中。

我们的目标检测系统基于SSD 的源代码,使用Pytorch 进行训练。用于特征提取的VGG-16网络被Pelee替代。批大小设置为32。动量值为0.9,权重衰减为5e-4,γ值为0.5。初始学习率设置为0.001,然后在分别进行10K、20K、30K、40K和70K次迭代后降低10倍。训练在第120K次迭代时终止。

4.2. Tiles in network training

为了减轻小目标问题,我们降低了训练过程中因为采用图像降采样而产生的影响。通过重叠的tiles,将图像分割成较小的图像,其中tiles的大小根据训练框架中使用的图像大小进行选择。如图3所示,较低分辨率的图像(MxN)通过重叠的tiles从原始图像中裁剪出来。需要注意的是,在裁剪之前将输入图像分辨率设置为1920x1080,以固定tiles的大小。每个tiles对应于一个新的图像,其中ground truth物体的位置按照原样排列,而不改变物体的大小。通过这种方式,与完整画面相比,裁剪图像中的相对物体大小增加了。裁剪后的(MxN)图像和完整画面被用作网络训练的输入数据。需要注意的是,为了检测场景中的大物体,完整画面也被输入到网络训练中。

tiles之间的重叠区域用于保留沿tiles边界的物体,并防止由于图像分割而导致的任何遗漏。在本研究中,我们选择了连续tiles之间的25%交叠区域;子采样图像的分辨率N(宽度和高度)根据tiles数量(T)和图像大小(S)确定为:
在这里插入图片描述
在表2中给出了对VisDrone2018数据集的裁剪图像分辨率、边界框数量和图像数量的tiling效果。由于重叠比率将网格大小增加到5x3会导致注释边界框数量增加2.5倍。将Pelee的图像分辨率与tile分辨率进行比较(304x304),降采样率大大降低,以保持小目标在网络可检测范围内。随着tile的增加,较大的物体可能无法适应tile和交叉区域,失去较大目标注释的风险也会增加。因此,在某一点上,tile的增加开始减少注释数量。图2中给出了tile扩展对目标尺寸分布的影响,蓝色表示扩展后的直方图。在提取直方图时,tile内的对象注释相对于将裁剪图像映射到完整分辨率(1920x1080)的尺度进行了放大。因此,正如在图2中观察到的,tile方法将较小的对象视为较大的对象。
在这里插入图片描述

4.3. Tiles during inference

与图3中给出的相同结构在目标检测期间也得到了利用。首先,输入帧被调整为1920x1080的大小,并且通过根据计算能力确定的tiles数量来裁剪输入帧生成tiles图像。由于计算性能问题,推断期间的tiles网格可以与训练阶段中的网格不同。每个tiles都被独立处理,就像原始帧一样,结果的检测框和类别概率被收集为初始结果。在这一点上,由于tiles和全帧之间的重叠,初始结果中会有重复的对象检测。根据边界框和类别分数的交集合并初始结果。如果重复检测的交集超过25%,则分数较高的一个被接受为更好的选择,另一个从检测列表中删除。在合并步骤中,与整个帧相比,tiles内的小对象通常会获得更高的分数,而对于大小与tiles区域相当的较大对象来说,情况相反。因此,小型和大型对象都会得到谨慎处理。

tiles的数量线性增加了整体检测框架的复杂性。因此,这种方法适用于轻量级和高效的网络,以满足在不增加内存使用的情况下进行实时推断。另一方面,相对于原始高分辨率帧,实际上原始图像中的相对对象尺寸可能非常小,因此小对象检测的准确性显然可以提高。即使只有少量的tiles,也可以显著提高小对象检测的性能,这在实验部分中有所呈现。

4.4. Pelee Framework Modifications

tiling方法引入了与网格数成线性关系的附加计算。为了解决小目标问题,还可以增加特征提取层的数量,以在不过多增加计算时间的情况下检测小目标。在原始的SSD结构中,使用了38x38、19x19、10x10、5x5、3x3和1x1的特征向量。带有Mobilenet的SSD没有使用38x38的特征向量,以在速度和准确性之间取得平衡。他们在预测时使用另一个2x2的特征图。这样,他们使用了一个较小的网络,以在牺牲小目标检测准确性的同时获得速度优势。原始的Pelee架构也放弃了38特征图,以平衡速度和准确性的权衡,但不像MobileNet那样使用2个特征图。在我们的框架中,我们使用38特征图对Pelee网络进行训练,以提高小目标的检测准确性。

5. Experiments && 6. Conclusion

略过

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

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

相关文章

计网第四章(网络层)(四)

目录 一、IP数据报的发送和转发过程 发送: 1.直接交付和间接交付 如果判断源主机和目的主机是否在同一个网络中? 2.默认网关: 转发: 路由表: 一、IP数据报的发送和转发过程 发送: 由主机发送IP数据…

统信OS国产操作系统身份证读卡器社保卡读卡web网页开发使用操作流程

用于DONSEE系列身份证阅读器谷歌Chrome火狐Firefox插件,支持的型号有:EST-100、EST-100GS、EST-100G、EST-100U、EST-200G、EST-J13X等。 本方案无缝支持最新版本谷歌Chrome火狐Firefox等网页浏览器,支持H5、Vue、React、Node.js、Electron、…

Java“牵手”天猫商品销量API接口数据,天猫API接口申请指南

天猫平台商品销量接口是开放平台提供的一种API接口,通过调用API接口,开发者可以获取天猫商品的标题、价格、库存、月销量、总销量、库存、详情描述、图片等详细信息 。 获取商品销量接口API是一种用于获取电商平台上商品销量数据的接口,通过…

mysql 命令行 执行sql文件

方法1 source source file.sql; file.sql : 绝对路径或 相对路径。 方法2 mysql -u xxx -p < file.sql 方法3 MySQLImport 工具 mysqlimport [options] database file_name 其中&#xff0c;database为要导入数据的数据库名&#xff0c;file_name为要导入的SQL文件名。还可以…

框架分析(5)-Django

框架分析&#xff08;5&#xff09;-Django 专栏介绍Django核心概念以及组件讲解模型&#xff08;Model&#xff09;视图&#xff08;View&#xff09;模板&#xff08;Template&#xff09;路由&#xff08;URLconf&#xff09;表单&#xff08;Form&#xff09;后台管理&…

【动态规划】1137. 第 N 个泰波那契数

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 文章目录 0. 题目解析1.算法原理1.1 状态表示1.2 状态转移方程1.3初始化1.4 填表顺序1.5 返回值 2.算法代码 &#x1f427; 本篇是整个动态规划的…

RT-Thread 时钟管理

时钟节拍 任何操作系统都需要提供一个时钟节拍&#xff0c;以供系统处理所有和时间有关的事件&#xff0c;如线程的延时、时间片的轮转调度以及定时器超时等。 RTT中&#xff0c;时钟节拍的长度可以根据RT_TICK_PER_SECOND的定义来调整。rtconfig.h配置文件中定义&#xff1a…

软件测试用例经典方法 |一文了解软件测试规范

软件测试规范是测试工作的依据和准则&#xff0c;在进行软件测试时&#xff0c;应在相关国标文件的要求和指导下完成测试工作&#xff0c;这样可以从根本上保证软件测试工作的质量&#xff0c;进而提升软件产品的质量。 一个完整的软件测试规范应该包括对规范本身的详细说明&a…

Python(.pyc)反编译:pycdc工具安装与使用

本文将介绍如何将python的.pyc文件反编译成源码&#xff0c;以便我们对源码的学习与改进。pycdc工具安装 下载地址&#xff1a; 1、Github地址&#xff1a;https://github.com/zrax/pycdc &#xff0c;下载后需要使用CMake进行编译。 2、已下载好及编译好的地址&#xff1a;ht…

Java多线程(十二)

目录 一、多线程环境使用哈希表 1.1 HashTable 1.2 ConcurrentHashTable 二、ConcurrentHashMap和Hashtable、HashMap 的区别 一、多线程环境使用哈希表 HashMap 本身就是线程不安全的&#xff0c;所以在多线程的环境下可以使用&#xff1a;HashTable、 ConcurrentHashMap 1.…

Mysql中explain执行计划信息中字段详解

Mysql中explain执行计划信息中字段详解 1. 获取执行计划2. 字段含义2.1 id2.2 select_type2.3 table2.4 partitions2.5 type2.6 possible_keys2.7 key2.8 ley_len2.9 ref2.10 rows2.11 extra 1. 获取执行计划 explain select * from t1; --或 desc select * from t1;2. 字段含…

Pandas数据分析教程-数据清洗-扩展数据类型

pandas-02-数据清洗&预处理 扩展数据类型1. 传统数据类型缺点2. 扩展的数据类型3. 如何转换类型文中用S代指Series,用Df代指DataFrame 数据清洗是处理大型复杂情况数据必不可少的步骤,这里总结一些数据清洗的常用方法:包括缺失值、重复值、异常值处理,数据类型统计,分…

23款奔驰GLE450轿跑升级原厂外观暗夜套件,战斗感满满的

升级的方案基本都是替换原来车身部位的镀铬件&#xff0c;可能会有人问&#xff1a;“难道直接用改色膜贴黑不好吗&#xff1f;”如果是贴膜的话&#xff0c;第一个是颜色没有那么纯正&#xff0c;这些镀铬件贴黑的技术难度先抛开不说&#xff0c;即使贴上去了&#xff0c;那过…

Mac电脑系统应该用什么软件进行优化清理?

作为一枚资深的Windows系统使用者&#xff0c;小编刚刚转向Mac系统的怀抱时&#xff0c;各种不适应&#xff0c;Windows系统中普遍使用的360清理软件目前暂时没有Mac版本的&#xff0c;这就让小编很是头疼了&#xff0c;大家的Mac都是用的什么清理软件呢&#xff1f; 经过一番…

Notion团队协作魔法:如何玩转数字工作空间?

Notion简介 Notion已经成为现代团队协作的首选工具之一。它不仅仅是一个笔记应用&#xff0c;更是一个强大的团队协作平台&#xff0c;能够满足多种工作场景的需求。 Notion的核心功能 Notion提供了丰富的功能&#xff0c;如文档、数据库、看板、日历等&#xff0c;满足团队的…

USB接口发展历程大全

1996年&#xff0c;由英特尔、微软、ibm等多家公司联合设计的usb标准问世&#xff0c;键盘、鼠标、智能手机以及打印机等等大多使用usb标准来实现供电和数据传输。 usb接口从诞生之初就是为了实现通用这个目的。在usb诞生之前&#xff0c;键盘、鼠标多使用ps二接口&#xff0c…

Doris异常处理

1、decimal 字段异常 修改为 2、连接超时 Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure The last packet successfully received from the server was 1,068 milliseconds ago. The last packet sent successfully to the ser…

kali开启SSH服务(简单无比)

1.切换到管理员用户&#xff1a; su root 提示输入root密码 2.启动SSH服务 命令为&#xff1a; /etc/init.d/ssh start 或者 systemctl start ssh 3.查看SSH服务状态是否正常运行&#xff0c;命令为&#xff1a; /etc/init.d/ssh status 图片仅供参考&#xff1a;

一文了解BFD技术:实现故障快速检测!

一、概诉 BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制&#xff0c;有以下两大优点&#xff1a; 1.对相邻转发引擎之间的通道提供轻负荷、快速故障检测。 2.用单一的机制对任何介质、任何协议层进行实时检测。 BFD是一个简单的“Hello”协议。两个…

如何开发一款实景无人智能自动直播平台?抖音

随着科技的迅速发展和互联网的普及&#xff0c;实景无人智能直播平台逐渐成为了各行各业的热门应用。通过结合无人机、人工智能和直播技术&#xff0c;景无人智能直播平台为用户提供了全新的观看和体验方式。本文将深入探讨实景无人智能直播平台的搭建流程&#xff0c;剖析其中…