ESOD:在高分辨率图上进行小目标检测的高效方法

导读

在本文中,我们提出了重用检测器主干网络来进行特征级别的目标搜索和区域切割的方法,这可以避免冗余的特征提取并降低计算成本。结合一个稀疏检测头,我们能够对高分辨率输入(例如1080P或更高)上的小物体进行检测,从而实现更高的性能。

a68f6d57abbaa0dcd6b04ed22900ff27.png

摘要

扩大输入图像是促进小物体检测的一种直接且有效的方法。然而,简单的图像放大在计算和GPU内存方面都代价高昂。实际上,小物体通常稀疏分布并且局部聚类。因此,大量的特征提取计算被浪费在图像的非目标背景区域。最近的研究试图通过额外的网络挑出包含目标的区域并执行传统的物体检测,但这新引入的计算限制了它们最终的性能。在本文中,我们提出了重用检测器主干网络来进行特征级别的目标搜索和区域切割的方法,这可以避免冗余的特征提取并降低计算成本。结合一个稀疏检测头,我们能够对高分辨率输入(例如1080P或更高)上的小物体进行检测,从而实现更高的性能。由此产生的高效小物体检测(Efficient Small Object Detection, ESOD)方法是一个通用框架,既可应用于基于CNN的检测器,也可应用于基于ViT的检测器,以节省计算和GPU内存成本。广泛的实验表明了我们方法的有效性和高效性。特别是在代表性的VisDrone、UAVDT和TinyPerson数据集上,我们的方法始终大幅超越现有的最佳检测器(例如,在平均精度上提高了8%)。代码很快将向公众开放。

1 介绍

随着卷积神经网络(CNNs)和Vision Transformers, ViTs的最新进展,一般物体检测已经在包括MS COCO和Pascal VOC 在内的公共基准测试中取得了令人鼓舞的表现。它已经成为诸如自动驾驶和安全监控等广泛应用的基础。然而,检测小物体(例如,小于32×32像素)仍然是一个具有挑战性的任务,这阻碍了无人飞行器(UAVs)和全景相机等专业平台上的视觉分析。

为了弥补检测小物体与正常尺度物体之间的性能差距,研究人员在数据增强、特征聚合、模型进化等方面做出了大量努力。然而,由于小物体占据的像素质量差,缺乏足够的视觉信息来突出特征表示,这些改进仍然有限。一种简单而有效的解决方案是提高输入图像的分辨率,以绕过小物体的尺寸问题。但是,简单的分辨率提升不可避免地会导致计算量和GPU内存激增,这对现实世界中小物体的快速检测不利。

事实上,由分辨率提升带来的大部分计算都花费在了背景区域。这种冗余计算在实践中尤其常见。以VisDrone数据集为例,目标在无人机拍摄的图像中稀疏分布,而小物体往往集中在特定区域,如图1所示。平均每张图像包含54个目标,但这些目标总共只占用了8.1%的像素。我们将每张图像均匀分割成8×8的区块,进一步探讨目标密度分布。统计数据显示,超过70%的区块不含任何物体。因此,首先过滤掉空区域应该是更节省计算的方式,而不是不分青红皂白地处理整个大图像。

3a0c56e65696471b88eeae90dd6922f1.png

为了有效地消除背景,本文首先在基础检测器的早期阶段插入一个ObjSeeker模块,以寻找可能包含感兴趣目标的区域。然后,AdaSlicer自适应地将特征图切分成固定大小的小块,丢弃大量的非目标特征块,并将剩余部分送入后续模块进行最终的目标预测。在此过程中,SparseHead应用稀疏卷积到剩余的块上,以进一步减少浪费在背景上的计算。由此产生的通用框架ESOD,如图2所示,提升了现代神经网络在高分辨率图像上高效检测小物体的能力。

1e1256dce1cf5a82a4f6b0ba0988d4c6.png

这一想法受到了最近的Grounded-SAM1的启发,该模型采用“分而治之”的方式使用Segment Anything Model (SAM) 分割显著目标,然后通过Grounding-DINO 赋予语义标签。我们提出的ESOD粗略地寻找类别无关的目标,然后确定它们的类别标签和更精细的位置。这样做可以显著节省高分辨率图像中背景区域的巨大计算成本。

确实,这种先过滤后检测的范式最近已被研究人员研究过,他们通常采用额外的独立网络生成目标性掩码,并将原始图像切成小块供传统检测器使用。然而,由于对原始图像和切割后的图像块进行了重复的特征提取,新引入的计算不可忽略。因此,他们的初步目标寻找应用于降采样的图像以节省计算,而像素质量较差的小物体则被进一步过滤。相比之下,我们的ESOD在特征层面上进行目标寻找和图像切割,以避免重复的特征提取。这样,我们能够在保持计算和时间效率的同时检测原始高分辨率(例如,1080P)甚至更大的图像中的小物体。因此,小物体的稀缺像素信息得到了最大程度的保留。结果,我们的ESOD在包括VisDrone、UAVDT和TinyPerson在内的三个代表性数据集上实现了新的最先进表现,持续提升了效能和效率。

值得注意的是,ESOD是对CNNs和Vision Transformers的即插即用优化方法。AdaSlicer可以轻松扩展以生成注意力掩码,避免背景区域视觉标记的计算呈平方级增长。

我们的贡献可以总结如下:

  1. 我们统计上指出实际中存在的小物体稀疏聚集的事实,并进行特征层面的目标寻找,采用自适应块切割以避免冗余的特征提取,节省计算成本。此外,采用了稀疏检测头部来重用估计的目标性掩码以进一步节省计算。

  2. 我们提出了一种通用框架ESOD,该框架可以适应CNN和ViT架构,以便在检测高分辨率图像时节省计算和GPU内存。

  3. 在代表性的VisDrone、UAVDT和TinyPerson数据集上,我们的方法以可比的计算成本和推理速度大幅超越最先进的检测器(例如,在平均精度上提高了8%)。

2 相关工作

A. 小物体检测

受到通用物体检测成功的启发,许多工作采用“分而治之”的理念来解决小物体检测(Small Object Detection, SOD)中尺寸变化的问题。SNIP构建了一个图像金字塔,在每个尺度上只有适当中等大小的物体被视为真实情况。SNIPER从原始图像中裁剪出几个具有固定大小的块,避免了显式构造用于多尺度训练的图像金字塔。然而,耗时的多尺度测试是必需的。HRDNet利用主干金字塔来利用图像金字塔,其中重型主干处理小图像反之亦然,然后采用多尺度FPN来融合提取的特征。

此外,数据增强是一种有效的方法来提高小物体检测的性能。简单的复制粘贴是实例分割和物体检测中一种强大的数据增强方法,用于解决各种不平衡问题。Yu等人提出了SM和SM+ 作为预训练策略,通过调整大型源数据集(如MS COCO [7])和小型目标数据集之间的物体尺寸分布来提高迁移学习的有效性。Stitcher [42]在训练期间手动缩小常规图像以生成小物体,并选择性地将收集的图像提供给优化检测器,使其能够处理更多的小物体。

与上述工作相比,输入图像放大虽然更为有效,但缺乏效率。我们的工作专注于探索一种在放大图像时节省计算并加速检测的方法。

B. 过滤后检测范式

当以高分辨率图像作为输入时,通常的做法是从原始图像中筛选出几个区域,然后执行检测。均匀切片图像并放大输入区域是一种简单但有效的方法来检测小物体。为了避免在空区域上进行计算,ClusDet使用额外的CPNet来定位聚集的物体并丢弃空区域。通过独立估计密度图,DMNet利用滑动窗口和连通组件算法生成聚类建议,而CDMNet则应用形态闭合操作和连通区域。同时,UFPMP-Det使用粗略检测器生成子区域,并将它们合并到一个统一的图像中进行多代理检测。Focus&Detect利用高斯混合模型来估计焦点区域。

上述方法引入了单独的网络来生成聚类区域,将原始图像裁剪成块,并将它们输入另一个网络进行更精细的物体检测。然而,在这两个网络中存在大量的冗余特征提取,这反而损害了检测效率。相比之下,我们的方法在特征层面执行区域搜索,并在一个网络中将其与物体检测统一起来,不需要更多的冗余计算。

C. 稀疏卷积

稀疏CNN最近作为一种有前途的解决方案出现,通过为卷积生成像素级样本掩码来加速推理。Perforated-CNN使用不同的确定性采样方法生成掩码。DynamicConv使用一个小的门控网络来预测像素掩码,SSNet提出了一种随机采样和插值网络。特别是,稀疏卷积已被应用于检测头。QueryDet构建了一个级联稀疏查询结构,以加快高分辨率特征图上的微小物体检测,CEASC通过捕获全局特征自适应地调整掩码比例,以平衡效率和准确性。

由于上述方法通常采用Gumbel-Softmax或焦点损失focal loss来训练稀疏掩码,因此引入了额外的计算成本。相反,本文提出了一种无成本的方法来生成稀疏掩码,以加速检测过程。

3 方法

本节描述了我们提出的ESOD框架,用于高效地在高分辨率图像上检测小物体。首先,我们在第三部分A节重新审视通用物体检测器,并将神经网络分解为三个部分(即,主干、颈部和头部)。然后,在接下来的部分中,我们将展示每个部分针对小物体检测的专门进化。

A. 重新审视物体检测器

在传统的物体检测器中,给定一个输入图像,令 表示由主干网络 F提取的第 l层特征金字塔。接着,检测头H利用特征金字塔P产生n个物体预测:,其中 表示中心坐标,(w, h)指的是物体尺寸,而c表示类别。

无论是基于CNN的还是基于ViT的网络,主干可以分为两个部分(即,主干前部和颈部):。主干前部提取初步特征,而颈部(例如,类似于FPN的结构或Transformer模块)进一步生成特征金字塔。图像I上的整体物体检测可以公式化为:

f65c33e706e0b33ba44e293c8386eaa8.png

为了加快检测过程,一种常见的做法是使用额外的网络预先过滤包含物体的区域,丢弃背景,并在切片的图像块上重新执行物体检测。然而,如图3所示,额外网络引入的计算量是难以承受的。相比之下,本文重用检测器本身的特征来进行高效的物体搜索(第三部分B节),自适应地将相应的特征图切分为小块(第三部分C节),并在特征金字塔上利用稀疏检测头以进一步节省计算(第三部分D节)。我们提出的ESOD框架的整体架构如图4所示。

09139881b1bb73d84d52e9823ada6819.png

453c5d9bbc7debeedad76711600fa7eb.png

B. 高效物体搜索器

加速小物体检测的关键因素是如何以较低的成本高效地定位可能含有物体的区域。以往的工作通过引入另一个独立的网络来估计密度图或回归聚类区域来实现这一目标。然而,初步物体搜索和最终物体检测过程中特征提取的冗余计算不可忽视。这阻碍了它们在更大图像上更好地检测小物体。

为了解决这个问题,我们提出重用传统检测器中的特征来寻找潜在物体。具体来说,在检测器的主干前部(例如,8倍下采样)之后插入了一个ObjSeeker模块来估计类别无关的物体性掩码:

87d1c41d46365d3530896a6edaf930e4.png

ObjSeeker (O) 仅包括一个深度可分离卷积(DWConv)块(带有BN和ReLU非线性层)和一个标准的1×1卷积(Conv)层。DWConv的核大小设置为13以扩大感受野,而Conv的最终输出通道数为1。如图3所示,引入的额外计算量(即,1.2 GFLOPs)与整个检测过程相比是微不足道的。

实际上,寻找潜在物体的一个直观方法是直接使用区域建议网络或聚类建议网络。然而,由于特征容量有限,边界框回归可能不适用于网络浅层阶段的小物体搜索。因此,研究人员利用密度图来估计物体分布。但是,普通的密度图可能会损害初步搜索过程,因为我们的核心目标是寻找前景(包含完整物体)而不是统计人群(只有物体中心)。

因此,我们的ObjSeeker生成类别无关的物体性掩码,用于从背景中识别前景,而不是像聚类坐标或物体数量(密度)那样的高度语义预测。这一想法受到了最近的Grounded-SAM的启发,该方法采用“分而治之”的方式分割显著物体,然后赋予语义标签。ObjSeeker粗略地寻找类别无关的物体,后续模块则确定它们的类别标签和更精确的位置。

为了学习ObjSeeker模块,开发了一种混合伪标签策略,将边界框注释转换为物体性掩码标签。给定边界框,常用的方法是利用高斯核生成掩码标签 :

8657e106125ce996059f7ed3b8c46721.png

其中边界框中心变为,边界变为。这里的阈值经验性地设定为0.5,用于前景背景的识别。然而,如图5所示,高斯掩码无法捕捉到目标的确切形状,这促使我们采取探索性的一步,利用流行的Segment Anything Model (SAM)。具体来说,我们使用SAM生成高精度的伪掩码,以补充形状先验。尽管SAM具有出色的显著物体分割能力,但它仍然难以识别小物体,这一点在图5中有所强调。因此,本文提出了一个混合掩码策略来生成伪标签:

aa9f44333adace7b3f5493d2138a5bc0.png

其中表示哈达玛乘积(Hadamard product)。沿用SAM的做法,采用了焦点损失focal loss和dice loss来优化ObjSeeker,最小化公式(2)和公式(4)之间的差异。默认情况下,损失比设置为20:1。

5a580a5c705c75bb2fcb2d8c5044a107.png

C. 自适应特征切片器 (Adaptive Feature Slicer)

在从ObjSeeker获得类别无关的物体性掩码 (\hat{M}) 后,AdaSlicer 能够根据掩码自适应地将初步特征图F切分成小块,并丢弃那些没有包含物体的大面积背景块。为了实现这个目标,一个简单的解决方案[27]是均匀地将特征图F切分成块,并根据物体性掩码抛弃未激活的块。

然而,如图6所示,这种简单的切片策略有两个主要缺点。首先,物体容易被切割到不同的块中。虽然网络的感受野可以超出特征块来检测完整的物体,但大物体仍有可能被截断。其次,这样的切片策略实际上是低效的,因为大量的背景仍然存在于被切分的块中。

48db15c172285c2b98946b2a339d987a.png

实际上,用最少数量的切片块包围所有可能的物体是一个NP难问题。我们首先在算法1中介绍了一种贪婪策略,然后在算法2中提出了一种简化的替代方案以加速处理过程。

正如算法1和图6(b)所描述的那样,我们分两步自适应地对特征图 (F) 进行切片:首先以最大的物体为中心初始化一个块盒,然后调整块盒以覆盖尽可能多的物体。给定预测的物体性掩码,可以通过3×3的最大池化操作高效地定位物体中心(局部最大值),并粗略估计物体大小,方法是使用9×9的平均池化操作(通过计数激活像素)。在迭代过程中,首先以固定尺寸 初始化一个块盒,该块盒以具有最大尺寸 的为中心。块盒的左上角和右下角坐标 变为。

c93490858e9a6a43ca12dc132c3cb7af.png

接下来,在块盒内统计激活位置(指示物体的存在)。然后通过调整左上角 的偏移量 来移除初始化块盒中的空白区域,其中 和。最后,从 (C) 和 (S) 中移除当前块盒覆盖的物体,并循环直到没有剩余物体(即 )。

然而,算法1中介绍的切片策略迭代选择前景,这可能会在没有GPU加速的情况下损害整体推理延迟。因此,我们在算法2中提出了一个简化的替代方案,以并行方式切片。它也以初始化后调整的方式自适应地切分特征图,但块候选是从预处理的均匀切片开始,并在一个回合中调整。具体来说,在找到激活区域 (A) 和潜在的物体中心 后,我们将至少包含一个物体中心 的块盒作为块候选,并丢弃其他块盒。在这种情况下,图6(a)充当了算法2中的初始化步骤。然后,我们计算并应用每个块候选的偏移量(如前所述),并通过移除重叠的块(例如,图6(a)中的两个块盒可以调整到图6(c)中的同一位置)来避免冗余计算。尽管简化策略的表现可能不是最优的(例如,大物体可能出现截断),但它消除了循环,因此可以通过GPU进一步加速。

5bbf62ddc1397dc8449ee8d09f6d175d.png

无论采用算法1还是算法2,我们的AdaSlicer (A) 都将特征图 (F) 规范化为 (N_P) 特征块:

73339d867dc1c83ce783e492cceccd40.png

如图4所示,只有包含物体的特征块被传递到检测器的后续颈部进行进一步的特征聚合。大量的背景区域被丢弃,无意义的计算得以节省。在基于ViT的检测器中,块尺寸变为1x1,此时特征块变成单个图像token。上述算法1甚至不再需要。为了节省在Transformer模块(特别是自注意力模块)中浪费在背景区域上的大量计算,可以直接保留激活token 并丢弃其余部分。这样可以显著减少检测器颈部的计算和GPU内存消耗。

D. 稀疏检测头 (Sparse Detection Head)

在传统的物体检测器中,证明了在聚合的高分辨率特征图上使用的解耦检测头对于检测小物体至关重要。然而,计算成本仍然是一个问题,尤其是在资源受限的平台上。

最近,稀疏卷积通过仅在特征图中稀疏采样的网格上执行卷积显示出一种有希望的解决方案。然而,先前的工作通过可学习的掩码获取稀疏位置,引入了额外的参数和计算,优化难度也随之增加。

相反,我们的稀疏头直接在可能的物体中心上应用稀疏卷积(这些中心点从由ObjSeeker估计的物体性掩码中获得),用于在聚合的特征块中进行物体检测:

bbd62ad7964d3b8b63a72b65432ca13e.png

这一过程如图7所示。检测头上的计算以几乎无成本的方式大幅节省。

96b682621dfd56d8b4eaa52914167421.png

结合ObjSeeker、AdaSlicer和SparseHead,我们提出的ESOD框架能够在高分辨率输入上高效地检测小物体,从而提高性能。ObjSeeker与检测器网络一起优化,而AdaSlicer和SparseHead是无需训练的组件,因为它们不引入新的可学习参数。特别地,在初步热身步骤中,我们使用真实的物体性掩码进行特征切片以确保训练稳定性,在后续步骤中,则使用ObjSeeker预测的物体性掩码进行后续程序。

4 实验

A. 数据集

为了验证所提出的ESOD的有效性并减少偏差,我们在三个流行且具有代表性的数据集上进行了一系列实验:VisDrone、UAVDT和 TinyPerson。

VisDrone. VisDrone中的视频和图像由多种无人机平台在十四个城市的不同场景下拍摄。VisDrone-DET数据集包含10,209张静态图像(其中6,471张用于训练,548张用于验证,3,190张用于测试),共有10个物体类别。图像尺寸范围从960×540到2,000×1,500。当将图像均匀分割为8×8的区块时,如图1所示,超过70%的区块不含任何物体,表明分布较为稀疏。我们采用验证集来进行评估。

UAVDT. 在城市区域的多个地点通过无人机平台获取的UAVDT数据集包含50个视频序列,需检测3种类别。该数据集中有30个视频(共23,258帧)用于训练,20个视频(共15,069帧)用于测试,分辨率为1,024×540。平均而言,每张图像中有18个目标,仅占4.9%的像素,大约84%的区块为空。

TinyPerson. TinyPerson数据集的所有图像均从互联网收集,主要集中在海边的人群,目标的绝对和相对尺寸都很小(例如,小于20×20像素)。该数据集包含1,610张图像(794张用于训练,816张用于测试),主要尺寸为1,920×1,080。平均每张图像包含25个目标,这些目标仅占据0.87%的像素。这些目标在图像中的分布更加稀疏,区块的空置率甚至高达89%。

B. 评估协议

为了评估检测器的性能,采用了平均精度(AP)作为主要指标。AP50指的是在所有类别中,当交并比(IoU)阈值为0.5时,精确率-召回率曲线下的面积平均值;而AP则是通过计算IoU阈值从0.5到0.95之间,步长为0.05时的精确率平均值得出的。APs借鉴了COCO标准,用于测量小于32×32像素的小目标的AP。具体来说,对于TinyPerson数据集,APt50和APs50分别计算的是2×2像素至20×20像素之间的微小目标的AP50,以及20×20像素至32×32像素之间的较小目标的AP50。

为了验证我们提出的ESOD方法的有效性,我们使用流行的fvcore库2计算了浮点运算次数(FLOPs)。我们报告了验证集上每个输入图像的平均FLOPs作为衡量计算复杂度的代理指标。此外,我们在配备Nvidia V100 GPU的环境下,以批量大小为1的方式测试了所有检测器(包括使用其官方代码对比的模型)的速度,以确保比较的一致性,并在接下来的部分中报告FPS(每秒帧数)。

特别是,由于我们的方法专注于粗略寻找目标以进行特征切片,并定位它们的中心以实现稀疏检测,因此在第四章E节中开发了两个特定的度量标准用于消融研究,即目标边界框的最佳可能召回率和目标中心的最佳可能召回率:

a7da3d0170eb9528b6802c9ad2d4cda7.png

其中,测量的是目标区域超过50%被任意区块包围的比例,而计算的是目标中心位于预测的目标性掩码上的局部最大值集合C中的比例。

C. 实现细节

我们基于标准PyTorch实现了我们的方法,所有模型均在两块Nvidia V100 GPU上训练。为了构建基线,我们为新型YOLOv5配备了分离检测头以提升性能。结合提出的ObjSeeker、AdaSlicer和SparseHead,开发了我们的ESOD。所有检测器均采用默认设置(例如,SGD优化器,权重衰减为0.0005,初始学习率为0.01,采用余弦退火调度)训练了50个周期。批处理大小为8。除非另有说明,我们使用中等尺寸的主干网络构建检测器,对于VisDrone、UAVDT和TinyPerson数据集,输入尺寸较大的边分别设置为1,536、1,280和2,048。

D. 主要结果

与最先进方法的比较。我们在表I和表II中三个数据集上将我们的方法与最先进的竞争对手进行了比较。我们的ESOD在准确性和效率方面都大幅超越了对手。

66d49d1b5ec389973e54032a75f30302.png

1f1420758cdc6ba0be0267d4f670bb3b.png

特别地,与采用图像级过滤再检测范式的检测器(包括ClusDet、DMNet和CDMNet)相比,我们的ESOD在VisDrone和UAVDT数据集上表现更优,如表I所示。这表明,我们的特征级目标搜索和补丁切片更加高效,因为避免了大量的冗余特征提取。因此,ESOD能够在保持可接受的计算成本的同时提高输入分辨率(例如,扩大1.25倍,记为†),以获得更好的检测性能。与仅利用稀疏检测头加速的最近最先进方法如QueryDet和CEASC相比,我们的方法通过ObjSeeker和AdaSlicer在特征提取和聚合过程中显著节省了背景区域的计算量。图8进一步显示,即使面对不同的输入分辨率,与CEASC相比,我们的方法也能稳定减少约2/3的GFLOPs。因此,ESOD能够以维持计算成本(例如,68.6对64.1的GFLOPs)为代价,扩大输入图像以获得更佳的性能(例如,在UAVDT上的AP50为47.6对30.9)。我们也注意到,尽管UFPMP-Det在AP50上以几乎可以忽略的0.1优势超越了我们的方法,但其效率却从28.6 FPS急剧下降到了8.5 FPS。主要原因在于UFPMP-Det使用了一个独立的Faster-RCNN模型进行图像级粗略区域检测,并采用了另一个RetinaNet模型进行最终的目标检测,存在大量的冗余计算,且这两个检测器无法以端到端的方式工作,损害了计算复杂度和整体延迟。

94db59d772c764ff2015daeb37d27991.png

此外,表II表明,对于小目标检测而言,重网络和复杂的策略(如Cascade RCNN)并不是必需的。简单的分辨率提升仍然是提高性能的有效方式,我们的ESOD可以显著节省计算并加快推理速度。

跨架构各种检测器的适应性。为了评估我们方法的通用性和多样性,我们将ESOD扩展到了多种流行的目标检测器,涵盖了传统的卷积神经网络(CNN)到最近的视觉变换器(ViT),如表III所示。

20a8af63cfa7733dbdb90b4d680ffe49.png

对于基于CNN的目标检测器,我们以广泛使用的RetinaNet模型开始研究。具体来说,我们首先在P3-P7层上训练带有检测头的标准RetinaNet,并在同一输入分辨率为1,536的情况下测试QueryDet,以进行公平的比较。结果显示,虽然QueryDet通过引入新的检测头和高分辨率的P2层提升了0.4 AP,但由于额外的计算,总体GFLOPs成本和推理速度几乎没有变化(CEASE观察到了类似的现象)。相比之下,我们的ESOD能够将计算量从340.6降至172.9 GFLOPs,并加速至1.6倍,因为我们没有引入重型头部,并通过ObjSeeker和AdaSlicer进一步减少了特征提取阶段无用的计算。当简单地将输入分辨率扩大1.25倍至1,920(记为†)时,我们的ESOD以更低的计算成本大幅领先于QueryDet。

然后,我们进一步研究了更多先进的模型,包括YOLOv5、RTMDet和YOLOv8。根据表III,我们的ESOD可以很好地适应不同的基础检测器。在相同的输入分辨率下,ESOD显著降低了计算成本并加速了推理过程,随着输入分辨率的增大,我们的ESOD在检测性能上实现了持续的提升(例如,APs增加了1.5-2.3),同时推理吞吐量更高(+1 FPS)。当基础模型变得更强大时(例如,从RetinaNet到YOLOv8),我们的ESOD在目标检测的效率和效果方面带来了持续的改进,表明了我们的方法未来可以与更先进的检测器相结合的能力。

对于基于ViT的检测器,我们首先通过将YOLO基准中的CSP块替换为包含多头自注意力(MHSA)层和前馈网络(FFN)层的Transformer块来构建一个标准检测器。然而,尽管ViT表现出色,但随着输入尺寸的增大,计算和GPU内存成本呈平方增长(主要是由于MHSA层)。在高分辨率图像上检测小目标时,训练成本通常难以承受(例如,输入尺寸为1,920×1,920时,需要161GB的GPU内存,如图9所示)。因此,具有ViT架构的基础模型只能在960×960的分辨率下训练,导致较差的检测性能,如表III所示。相比之下,图9展示了我们的ESOD可以显著降低GPU内存成本(例如,在1,920×1,920的分辨率下只需19GB),从而使得在更高分辨率下训练和测试检测器以获得更好的性能成为可能(例如,APs为29.0对23.5)。事实上,图9暗示随着输入尺寸的增长,ESOD所需的GPU内存几乎是线性增加的,主要是因为无论输入分辨率如何变化,图像中的目标数量是恒定的。如第III-C节所述,ESOD仅在潜在目标区域执行自注意力机制,计算和GPU内存仅在初步特征提取过程中有所增长。因此,我们的方法使得在高分辨率图像上的训练和推理变得可行。

56544d4ec663dc92b547eb21be547a77.png

此外,我们将ESOD适配到感知更多信息的GPViT主干,以进一步探讨基于ViT的检测器的改进。实验结果展示在表III中。相应地,当采用相同的输入分辨率时,我们的方法可以显著减少60%的计算量,并将推理速度提升2.8倍,而简单的输入放大操作建立了一个新的小目标检测性能标准(例如,APs达到31.3)。然而,推理成本逐渐变得难以承受(例如,低于10 FPS),这高度依赖于工程优化和硬件资源。同时,在相同输入尺寸下,ESOD对基于ViT的检测器造成了相对更多的性能下降,这主要是因为特征级切片策略旨在避免背景区域的无用计算,但损害了ViT模型中注意力模块的全局建模能力。我们将无损适配ViT模型留作未来的工作。

E. 消融研究

在本小节中,我们在VisDrone数据集上进行了广泛的消融研究,以验证ESOD主要组件——即ObjSeeker、AdaSlicer和SparseHead——在先进的YOLOv5基准之上的优越性。

所有提出的模块都是有效的。为了验证我们提出的模块,我们首先按照第四章C节的描述构建了基准模型。然后,我们将输入尺寸简单地扩大1.25倍(从1536扩大到1920,标记为HigherResolution(HR)),检测性能立即得到了提升(例如,AP提高了2.4),如表IV所示。这与我们简单的分辨率放大是检测小目标的有效方法这一动机是一致的,但随之而来的是计算成本的增加(例如,412.2对264.9 GFLOPs)。给定由ObjSeeker预测的目标性掩码,均匀切分特征图并丢弃背景补丁(标记为Uni FeatSlicer(FS))可以减少大约40%的计算量并将推理速度从22.8 FPS提高到29.2 FPS。然而,由于许多目标被切分的补丁截断,检测性能显著下降(例如,AP下降了3.2),这一点在第三章C节中讨论过。相比之下,我们提出的AdaSlicer(标记为Ada FS)可以在几乎不损失检测精度的情况下减少计算量,图12提供了更多的可视化结果。SparseHead通过在检测头上应用稀疏卷积进一步节省了超过50 GFLOPs的计算量。然而,尽管AdaSlicer减少了计算量,但由于算法1中不可并行的操作,整体推理速度下降。因此,我们评估了简化后的算法2作为替代方案(标记为Sim FS),表IV显示了由于GPU并行化带来的显著加速(29.9对27.7 FPS)。然而,目标检测的平均精度有不可忽视的下降(例如,AP下降了0.3),主要是因为大目标的截断增加,这一点在第三章C节中讨论过。因此,我们建议在适当的工程优化后采用算法1,否则算法2是提高整体推理效率的一个备选方案。

461dbf3b000bb9f2f1d84c1cc934a458.png

先验知识有助于初步的目标寻找。在我们的方法开始时,目标寻找是通过类别无关的目标性掩码估计来进行的,生成混合伪掩码用于训练。具体来说,我们通过边界框注释构造高斯分布来生成伪掩码,然后使用SAM预测来调整高斯分布的形状。目的是通过广义的SAM模型将先验知识(目标形状)引入学习过程。实际上,如表V所示,高斯掩码足以进行初步的目标寻找(即,BPRbox的99.1%和BPRctr的98.2%),而SAM预测导致了BPRbox和BPRctr以及最终小目标检测性能的下降(即,AP为27.9对28.3)。这主要是因为SAM在分割小目标时遇到困难,这一点在第三章B节中讨论过。然而,将高斯掩码与SAM预测结合起来带来了更好的检测精度(例如,AP提高了0.3%)。我们认为这是由于SAM提供的形状知识(超出边界框注释)促进了网络的初步特征提取,从而略微提高了最终性能。

轻量级模块足以用于目标寻找。在ObjSeeker模块中,我们仅仅使用深度可分离卷积块(DWConv)来预测目标性掩码。主要目标是尽可能多地找到目标。根据表VI,大核DWConv由于更大的感受野,在目标性估计性能上优于标准卷积块(例如,BPRbox和BPRctr提高了约0.5%)。并且DWConv在减少计算量和延迟的情况下达到了与SPP和ASPP相当的最佳可能召回率。尽管DCN在预测的目标性掩码上带来了更高的召回率(即Rmask),但BPRbox和BPRctr并没有显著提高。然而,3.54毫秒的延迟是不可接受的。因此,我们认为轻量级的DWConv块足以用于目标寻找。

2c1f5ccd587bc78614cb6ef22a3ab41e.png

补丁大小是在效能和效率之间的权衡。根据表VII,如果我们以原始特征图的1/4大小切分特征补丁,计算量会同时增加44%,而FPS则从28.6降至23.2,因为切分的补丁中存在更多的背景区域。然而,检测性能并未获得显著提升(例如,AP仅提高了0.1)。相反,当补丁大小变为特征图的1/16时,虽然计算量减少了,但检测精度也下降了,这表明小补丁大小会导致目标的更多截断。因此,在当前的VisDrone数据集中,1/8是一个决定补丁大小的合适系数。而对于像TinyPerson这样的数据集,其中目标更小且分布稀疏,1/16可能是更合适的选择。总的来说,补丁大小是在效能和效率之间的权衡,取决于特定的数据集。

计算成本随保留补丁的增加而线性增长。在之前的实验中,我们只报告了验证集中每个输入图像的平均GFLOPs和FPS作为衡量代理。由于我们方法的计算成本可能因不同图像和数据集而异(取决于图像中的目标大小和密度),我们进一步采用了一种桶化策略来测量保留补丁比例(通过我们的ObjSeeker确定)在0%到100%范围内的图像的GFLOPs和延迟。如图10所示,随着保留补丁的增加,成本几乎线性增长,这与我们的实证结果一致,即我们的方法在TinyPerson数据集上比VisDrone数据集上节省了更多的计算量,因为前者具有更少的前景目标/补丁。人们可以根据目标应用场景中的目标分布预测我们的ESOD如何有利于小目标检测。

6b82e176ae638ec5f76d43ead350f942.png

我们的方法有效地扩展到更大的网络。我们的ESOD主要使用中等尺寸的主干网络构建,以实现更好的性能,但这并不意味着ESOD不适合其他网络尺寸。实际上,图11展示了我们的方法在所有主干系列(即小型、中型、大型和超大型)中都大幅度优于基准。这意味着我们的ESOD可以根据计算资源实施不同尺寸的网络。例如,可以在边缘设备上使用小型主干网络,而在GPU服务器上使用大型主干网络。

af0ed8db3d1f714e62e115d05b99b293.png

F. 可视化

为了定性地展示我们ESOD的有效性,一些代表性的例子被展示在图12中,包括预测的目标性掩码、切分的补丁和最终的检测结果。这些结果显示,稀疏聚类的小目标被粗略但有效地识别,而大量的背景区域被丢弃。在切分的补丁中,小目标被成功检测到。

值得注意的是,即使某些大目标在视觉上被补丁截断,最终的预测仍然是完整的(参见右上方的例子)。事实上,正如在第三章C节中所讨论的那样,经过初步特征提取过程后,网络的感受野可以超越特征补丁,并且我们的AdaSlicer确定了以大目标中心为中心的补丁。这样,这些目标的大部分都被包含在切分的补丁内,使得检测完整。因此,我们的ESOD能够在加速小目标检测的同时保持相对较大的目标被检测到。

5 结论

在本文中,我们统计指出,在实践中,大量的小目标在高分辨率图像中稀疏分布并局部聚集。相比于细微的特征微调,图像放大更为有效。我们致力于节省计算和时间成本,以便于放大输入图像以进行小目标检测。具体而言,我们通过ObjSeeker和AdaSlicer在特征层面执行初步的目标寻找和自适应补丁切分,避免了冗余的特征提取。结合稀疏卷积,SparseHead重用了预测的目标性掩码进行稀疏检测。由此产生的方法,即ESOD,能够减少大量浪费在背景区域特征提取和目标检测上的计算和GPU内存。此外,我们的ESOD是一个通用框架,适用于基于CNN和ViT的网络。在VisDrone、UAVDT和TinyPerson数据集上的实验表明,我们的ESOD大幅降低了计算成本,并显著优于现有的最新竞争对手。

9eedb50f4947c66c1d638dfe8957bc57.png

—END—

论文链接:https://arxiv.org/pdf/2407.16424

807bec46627c8bc36bc0dd5b02642504.jpeg

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值