计算机系统应用教程网站

网站首页 > 技术文章 正文

TinyDet: 轻量级通用小目标物体检测器

btikc 2024-12-15 11:31:14 技术文章 24 ℃ 0 评论

导读

小目标检测性能尤为出色,TinyDet-S和TinyDet-M的AP值是ThunderNet的两倍。

摘要

小目标检测要求检测头在图像特征图上扫描大量位置,这对计算和能量效率型轻量级通用检测器来说极其困难。为了在有限的计算资源下准确检测小目标,我们提出了一种计算复杂度极低的两阶段轻量级检测框架,并将其命名为TinyDet。该框架支持高分辨率特征图用于密集锚定,以便更好地覆盖小目标,提出了稀疏连接卷积以减少计算量,增强了骨干网络中的早期阶段特征,并解决了特征错位问题以实现准确的小目标检测。在COCO基准测试中,我们的TinyDet-M在仅991 MFLOPs的情况下实现了30.3 AP和13.5 APs,这是首个AP超过30且低于1 GFLOPs的检测器;此外,TinyDet-S和TinyDet-L在不同的计算限制下也取得了令人满意的表现。


1 介绍

目标检测在计算机视觉中起着重要作用,并逐渐成为许多应用(如自动驾驶、遥感和视频监控)的技术基础。然而,先进检测模型的推理过程需要大量的计算资源,这使得它们难以应用于计算资源受限的移动或边缘设备。为了广泛地应用人工智能(AI),计算和能耗效率高的“Tiny AI”模型变得越来越受欢迎。在本文中,我们设计了一个轻量级通用目标检测框架,称为TinyDet,用于高效且准确地检测目标,尤其是小目标,并且具有较低的计算成本。

近年来,许多创新且有代表性的轻量级检测模型被提出,以更好地平衡计算成本与精度。为了降低计算成本,这些模型通常会大幅度缩小输入图像的尺寸并在较小的特征图上执行目标检测。例如,Pelee采用304×304的输入,其用于检测的最大特征图尺寸为19×19。ThunderNet则采用320×320的输入,并且仅使用一个20×20分辨率的特征图来进行检测。相比之下,像Faster R-CNN这样使用特征金字塔网络(FPN)的大模型,则采用800×1333的输入,其最大的特征图尺寸可达200×333。利用较小输入图像和较小特征图进行目标检测有助于减少计算成本。然而,小特征图缺乏细节信息且位置分辨率较差。之前的轻量级检测器对小目标的检测能力非常有限,为了提高效率而牺牲了小目标的检测性能。

小目标检测能力对于基于目标检测的应用至关重要,并且是评估目标检测模型的关键因素。正如COCO数据集所示,大约41%的目标是小目标(面积<322)[25]。在本文中,我们致力于提升轻量级通用检测网络中的小目标检测性能。基于设计轻量级网络的良好实践,我们提出了TinyDet,这是一种两阶段检测器,使用高分辨率HR特征图进行密集锚点定位。高分辨率特征图显著提升了小目标检测的能力,但也带来了更多的计算成本。为了解决分辨率与计算成本之间的矛盾,我们引入了一种稀疏连接卷积SCConv,提出了TinyFPN和TinyRPN,以保持高分辨率的同时实现低计算成本。我们改进了骨干网络以获得更好的小目标检测性能。小目标检测更依赖于浅层特征中的详细信息。通过将更多计算分配到早期阶段,我们保留了更多的细节信息。此外,我们观察到轻量级检测器中存在严重的特征错位现象。这种错位逐层累积并传递到检测部分,影响了RPN和RCNN头部回归的精度。小目标对这种位置错位更加敏感。通过消除错位,小目标的检测性能得到了显著提升。

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

  • 在轻量级检测网络中,首次实现了用于密集锚点定位的高分辨率检测特征图(即80×80),这对于检测小目标至关重要。
  • 我们提出了带有稀疏连接卷积的TinyFPN和TinyRPN,以便使用高分辨率检测特征图进行高效的物体检测。
  • 通过增强TinyDet骨干网络的早期阶段并解决特征错位问题,我们进一步提高了小目标的检测结果。
  • 如图1所示,在COCO测试集test-dev2017上,我们的TinyDet模型表现出强大的性能和极低的计算预算。TinyDet-M仅用991 MFLOPs就达到了30.3 mAP,这是轻量级检测器中的最新成果。值得注意的是,小目标检测性能尤为出色,TinyDet-S和TinyDet-M的AP值是ThunderNet的两倍。

2 相关工作

轻量级目标检测 近年来,通用目标检测的轻量级模型发展迅速。首先,轻量级分类网络设计方法的进步直接推动了轻量级目标检测的发展。通常情况下,轻量级分类网络被直接用作检测器的骨干网络来提取特征,例如手工设计的MobileNetV2被用于SSDLite中,而通过神经架构搜索得到的EfficientNet则被用于EfficientDet中。但是,检测任务和分类任务需要不同的骨干网络。为了更好地匹配检测任务的特点,在许多轻量级检测器中,提出了基于现有分类网络的专业化骨干网络。其次,成熟的目标检测流程也为轻量级检测器的研究奠定了坚实的基础。大多数轻量级检测器遵循紧凑的一阶段架构。PeleeNet仅使用传统卷积而不采用流行的移动卷积。RefineDetLite针对仅使用CPU的设备进行了专门设计。EfficientDet提出了一种加权双向特征金字塔网络,以实现简单快速的特征融合,并构建了一个在广泛资源约束下的可扩展检测架构。尽管两阶段检测器由于其复杂的流程通常被认为在推理阶段耗时较长,但一些研究证明,如果第二阶段足够轻量化,两阶段检测器也可以像一阶段检测器一样高效。两阶段方法在检测小目标方面表现得更好。因此,我们在设计检测器时考虑了效率和准确性,并采用了两阶段范式。

小目标检测 在计算机视觉、遥感、自动驾驶等领域中,从视频和图像中检测小目标具有重要意义。Liu等人通过缩小大目标的尺寸来创建更多小目标训练样本。D-SSD、C-SSD、F-SSD和 ION专注于构建适用于小目标检测的上下文特征。Hu等人使用粗糙的图像金字塔并通过双倍上采样的输入图像来检测小人脸。一些研究,利用生成对抗网络(GAN)来生成超分辨率特征以进行小目标检测。更大的输入分辨率和超分辨率方法带来了更高的计算成本,不适合轻量级检测器的设计。我们的工作与高分辨率网络(HRNet) 略有关联,HRNet 在整个网络中保持高分辨率表示以完成位置敏感的视觉识别任务。我们发现没有论文专门针对轻量级通用检测器中的小目标检测。本文旨在保证较低计算开销的同时实现准确的小目标检测。

稀疏卷积 减少深度卷积神经网络中的冗余是在设计轻量级检测网络时的一个重要探索方向。许多先前的工作致力于通过使卷积连接更加稀疏来减少这种冗余。Liu等人采用稀疏分解以获得稀疏卷积网络并降低计算复杂度。深度可分离卷积是一种因子化卷积,被广泛用于减少计算量和模型大小,并使用组卷积来进行高效模型设计。我们的工作以一种新颖的形式结合了深度卷积和组卷积,以构建极其轻量级的FPN(特征金字塔网络)和RPN(区域提议网络)。

3 方法

在本节中,我们详细介绍TinyDet的设计,并说明如何利用具有低浮点运算次数(FLOPs)的通用检测器实现准确的小物体检测。我们遵循两阶段检测范式,该范式对小物体检测更为友好。检测器包含四个部分:增强的主干网络、TinyFPN、TinyRPN 和 R-CNN 头。为了清晰起见,本节仅提供TinyDet-M的细节,并将TinyDet-S和TinyDet-L的细节留在附录中。

3.1 主干网络


3.1.1 详细信息增强

主干网络中的高分辨率早期阶段特征图包含丰富的详细信息,这对于识别和定位小物体至关重要。现有的轻量级主干网络通常快速下采样特征图,在高分辨率阶段保留较少的层和通道。这种设置虽然成功地最小化了计算预算,但也牺牲了许多详细信息。

为了提高小物体检测的性能,我们提出了一种基于高性能网络MobileNetV3的详细信息增强主干网络。表 1 展示了详细的网络配置。与其它广泛使用的轻量级主干网络相比,我们将更多的计算分配给了更高分辨率的早期阶段。通过这种设计,提取并保留了更多用于检测小物体的详细信息。


3.1.2 解决特征对齐问题

带有步长为2的卷积广泛用于减少特征图的分辨率。而在检测任务中,即使是输入分辨率也是常见做法。因为奇数输入像素会破坏不同金字塔层级之间的比例关系,使得输入与输出之间的坐标映射变得复杂。然而,在偶数输入分辨率上使用步长卷积可能会导致特征错位。如图 2(a) 所示,考虑一个步长为2的卷积层并且输入分辨率为偶数,在卷积计算过程中,忽略了一个填充像素,导致空间不对称以及 0.5 像素的特征错位。由多个步长卷积引起的特征错位在整个网络中逐层累积,在更高级别上变得更加显著。对于具有高输入分辨率的大模型来说,这种错位是可以忽略的,但对于低分辨率的轻量级检测器来说则非常显著。它严重降低了性能。RoI池化/对齐操作会对每个物体提议提取错位的特征。小物体检测需要更精确的定位,并且受此影响更大。

为了减轻TinyDet中的特征错位问题,我们在每次步长卷积之前采用平均池化层。如图 2(b) 所示,平均池化操作将偶数像素转换为奇数像素,并避免了步长卷积中的不对称性,从而修正了错位。在优化网络时,相邻的卷积层和平均池化层可以融合为单一层,以提高推理效率。

特征错位的理论计算 我们提供了关于由步长卷积引起的特征错位的理论计算。对于步长为2的卷积,假设核大小为 k,填充大小为 (k-2)/2,输入特征图相对于输入图像的步长为 s。如图 2(a) 所示,忽略了一个填充像素,导致特征中心偏移了 0.5 个像素。当映射到输入图像时,错位为 s/2像素。特征错位会影响后续层,并逐层累积。在TinyDet中,骨干网络中有6个步长卷积层,分别引起 0.5、1、2、4、8 和 16 像素的错位。在FPN和RPN中,累积的错位可达 31.5 像素。对于具有较小输入尺寸的轻量级检测器,这种错位非常明显。考虑到输入分辨率为 320 × 320,错位比例高达 31.5 / 320 ≈ 9.8%,这会导致特征与其空间位置之间严重的不匹配。

有效感受野的可视化 为了更好地展示特征错位的效果,我们采用有效感受野(ERF)图来可视化特征图的错位情况。如图 3(a) 所示,我们可以观察到ERF明显偏离了对应锚框的几何中心。在RPN中的像素级预测和R-CNN中的基于区域的特征提取都将基于错位的特征。通过应用平均池化层,这种错位被消除(见图 3(b))。下图展示了应用平均池化层前后的有效感受野(ERF)偏差可视化效果,清晰地显示了在应用平均池化之前锚框中心的偏差,以及应用后特征的对齐情况。

3.2 TinyFPN 和 TinyRPN

3.2.1 高分辨率检测特征图

由于计算成本的限制,之前的轻量级检测器通常采用低分辨率的特征图进行检测(SSDLite中为 38 × 38,Pelee中为 19 × 19,ThunderNet中为 20 × 20)。然而,小尺寸的特征图具有较低的空间分辨率。低分辨率的特征图无法为位于任意位置的目标(尤其是小物体)提供空间匹配的特征。在本文中,我们在高分辨率特征图上实现目标检测。我们从主干网络中获取五张步长分别为 4、8、16、32 和 64 的特征图用于检测。值得注意的是,步长为 4 的特征图的分辨率为 80 × 80,这是轻量级检测器中使用的最高分辨率的特征图。关于高分辨率设置的重要性分析可以在第 3.3 节找到。

3.2.2 用于计算减少的稀疏连接卷积

由于高分辨率的设计,检测部分的计算预算变得极其高。尽管深度可分离卷积在之前的轻量级检测器中被广泛用于减少计算成本,但在我们的高分辨率设置中发现这还不够。因此,我们利用了一种专为FPN和RPN中的效率和高分辨率设计的稀疏连接卷积SCConv。如图 4 所示,SCConv 结合了深度卷积和逐点组卷积。与标准的深度可分离卷积相比,SCConv 进一步减少了通道之间的连接。第 4.3 节的实验表明,这种更稀疏的设置对检测性能影响很小,并且大大减少了计算成本。

基于 SCConv,我们提出了 TinyFPN 和 TinyRPN。在 TinyFPN 中(见图 4),SCConv 应用于特征融合之后,替代了常规的 3 × 3 卷积。对于高分辨率金字塔层级中的 SCConv,我们设置了更大的组数,即更稀疏的连接,以减少计算成本。TinyRPN(见图 4)包含一个 SCConv 和两个并行的 1 × 1 卷积,分别用于分类和回归。TinyRPN 的参数在整个金字塔层级中共享。关于 SCConv 组设置的消融研究可以在第 4.3 节找到。

3.3 高分辨率特征图用于密集锚定

平移变化是目标检测中的一个挑战。检测器应对平移不敏感,并能处理位于任意位置的目标。引入锚框(anchor)减轻了目标检测中的平移变化问题。大量的锚框均匀地覆盖整个图像,每个锚框仅负责预测出现在某个区域内的目标,该区域称为响应区域。在训练过程中,根据目标的交并比(IoU)和分配策略将目标分配给锚框。然而,当锚框不够密集时,在锚框分配过程中会出现两个问题,具体如下:

  • 响应区域固定:当分配的 IoU 阈值固定时,响应区域也是固定的。如图 5(a) 所示,当锚框不够密集时,响应区域无法覆盖整个图像。我们将未覆盖的区域称为忽视区域。位于忽视区域中的目标,特别是小目标,在训练过程中永远不会被分配到任何锚框。因此,在推理阶段,这些目标由于缺乏锚框而不太可能被检测到。
  • 降低 IoU 阈值:如果我们降低分配的 IoU 阈值,响应区域会扩大,忽视区域会缩小甚至消失。但是,扩大的响应区域使得检测器难以获得准确的结果。每个锚框需要处理更多的目标以及更多的形状和位置变化,如图 5(b) 所示。


综上所述,锚框密度应该足够高以覆盖可能的目标。因此,在 TinyDet 中,我们保持高分辨率的特征图用于密集锚定。为了理解密集锚定如何影响检测性能,特别是在小目标上的表现,我们将 TinyDet 与 ThunderNet进行比较。在图 6 中,我们可视化了最小锚框的分布。在 ThunderNet 中,相邻锚框之间的距离为 16 像素。很难在空间上匹配小目标。而在 TinyDet 中,这一距离仅为 4 像素。密集排列的锚框更好地覆盖了小目标。

定量分析,我们提出了“真实标签错配率”(GTMR)来评估分配过程。GTMR 被定义为未被分配到任何锚框的真实标签目标占所有目标的比例。它反映了在特定分配策略下锚框与目标之间的匹配质量。如表 2 所示,ThunderNet 的 GTMR 高达 18.1%,远高于 Faster R-CNN。尽管 TinyDet 和 ThunderNet 同样轻量化,但 TinyDet 的 GTMR 显著较低,为 8.4%。值得注意的是,ThunderNet 对小目标的 GTMR 极高;而在我们的 TinyDet 中,由于采用了高分辨率特征图和密集排列的锚框,小目标的 GTMR 比 ThunderNet 低得多。小目标可以更好地在空间上与锚框匹配。

4. 实验

本节首先描述实验细节,然后将我们的 TinyDet 模型与其他最先进(SOTA)方法进行比较。我们进一步进行了详细的消融研究,以证明所提出方法的有效性。

4.1 实验细节

我们在 COCO 数据集上进行了实验。使用 train2017 分割进行训练,并在 test-dev2017 上报告主要结果。val2017 分割用于详细的消融研究。我们遵循标准的 COCO 检测指标,报告不同 IoU(即 AP50、AP75 和总体 AP)下的平均精度(AP),以及检测不同尺度(即 APs、APm 和 APl)的对象的 AP。

我们基于 PyTorch 框架和 MMDetection工具箱实现了 TinyDet。模型在 4 张 GPU 上使用批大小 128 进行了 240 个周期的训练(每张 GPU 32 张图像)。使用动量为 0.9 和权重衰减为 1e-5 的 SGD 优化器。在前 500 次迭代中线性增加学习率从 0 到 0.35,然后使用余弦退火调度将其衰减至 1e-5。在训练/推理阶段的第二阶段分别使用了 2000/200 个提议。我们采用了 SSD中介绍的数据增强策略。参考 ThunderNet,我们使用在线难例挖掘(OHEM)、SoftNMS 和跨 GPU 批量归一化 。

在提出的 TinyRPN 头中,五个金字塔级别的锚点分别具有 12.82、25.62、51.22、102.42 和 204.82 的尺寸。每个级别都使用多种长宽比 {1:2, 1:1, 2:1} 的锚点。至于 R-CNN 头,我们采用位置敏感的 RoI 对齐来有效地提取框特征。

4.2 与其他 SOTA 轻量级通用检测器的比较

我们在 COCO test-dev2017 数据集上将 TinyDet 与其他 SOTA 轻量级检测器进行了比较(见表 3)。在比较的方法中,ThunderNet和 EfficientDet被认为是最新的 SOTA 轻量级检测器。结果显示,我们的模型在计算成本较少的情况下明显优于它们:TinyDetS 在相似的 FLOPs 下超越 ThunderNet-SNet146 达到 2.4% AP;TinyDet-M 在 76% 的 FLOPs 下超越 ThunderNet-SNet535 达到 2.3% AP;而 TinyDet-L 在相似的 FLOPs 下超越 EfficientDet-D0 达到 3.1% AP。此外,TinyDet 的性能计算比优于自动搜索的轻量级检测器(例如 NAS-FPNLite)和流行的 YOLO 系列。

我们的 TinyDet 模型在检测小物体方面表现出色。在相似的计算成本(即 FLOPs)下,TinyDet-M 达到了 13.5 APs,比 ThunderNet-SNet535 的 6.5 APs 提升超过 100%;TinyDet-S 达到 9.6 APs,也比 ThunderNet-SNet146 的 4.6 APs 提升超过 100%。TinyDet-L 达到与 YOLOv3相同的 18.3 APs,但其计算成本仅为 YOLOv3 的 1/30。一些可视化结果如图 7 所示。

4.3 消融研究

4.3.1 主干网络增强的消融研究

正如第 3.1.1 节所述,我们增强了基于 MobileNetV3 的主干网络中的详细信息,这对于提高高分辨率的特征表示至关重要。我们提供了三个 MobileNetV3 的变体:MobileNetV3-B、-C 和 -BC,以展示增强后主干网络的有效性。与原始 MobileNetV3 相比,MobileNetV3-B 在步长为 4 的阶段增加了 2 个额外的块,而 MobileNetV3-C 在早期阶段包含多 50% 的通道数。MobileNetV3-BC 是 MobileNetV3-B 和 MobileNetV3-C 的结合,是我们为 TinyDet 提出的主干网络(配置见表 1)。表 4 显示了不同配置的对比。为了公平比较,我们调整了 TinyFPN 和 TinyRPN 的组数以保持总计算预算相似(约 1 GFLOPs)。我们的 MobileNetV3-BC 表现优于 MobileNetV3 及其他变体。增加层数和通道数分别提高了 AP 1.1% 和 1.4%。当两者同时采用时,AP 提升了 1.9%。此外,APs(+2.6)的提升比 APm(+1.3)和 APl(+1.3)更为显著。随着更多计算资源分配给早期阶段,详细信息得到增强,更有利于小物体检测。

我们也比较了 MobileNetV3-BC 与其他代表性轻量级主干网络(见表 4)。为了公平比较,我们去除了 SE 模块。MobileNetV3-BC 的表现优于手动设计的主干网络(SNet535 和 MobileNetV2)和自动搜索的主干网络(FBNet和 Proxyless)。

4.3.2 TinyFPN 和 TinyRPN 中 SCConv 的消融研究

为了使 FPN 和 RPN 更加轻量化,我们将深度卷积和逐点组卷积结合成稀疏连接卷积(SCConv)。如表 5 所示,相比于 FPN 和 RPN 中的传统卷积或深度可分离卷积,SCConv 大幅减少了计算成本并取得了相当的结果。这些结果证实 TinyFPN 和 TinyRPN 中的 SCConv 对检测性能的影响很小。对于轻量级检测器的设计而言,在检测头中采用 SCConv 是一种有效的减少计算成本同时保持高性能检测的方法。

我们还评估了 TinyFPN 和 TinyRPN 中 SCConv 不同组数量设置的效果。结果如表 6 所示。通过比较行(c)和(e),我们发现为不同的金字塔层级设置不同的组数量比设置相同的组数量更好。一个好的做法是在 FPN 中对底部金字塔使用更多的组而在顶部金字塔使用较少的组(见表 6(e))。

4.3.3 特征对齐的消融研究

我们在表 7 中评估了特征错位(如第 3.1.2 节所述)如何影响检测性能。通过使用简单的平均池化更好地对齐骨干特征,我们在平均精度(AP)上获得了 0.5% 的提升。需要注意的是,在小目标上的平均精度(APs)提升(+1.4%)高于中等目标(APm)(+0.6%)或大目标(APl)(+0.8%)。这是因为小目标对特征错位更加敏感,并且从这种修正中受益更多。

4.4 局限性

本研究存在一定的局限性。目前我们无法公平地与其他检测器的速度进行比较。原因有两点。首先,检测器的速度高度依赖于推理 SDK(例如,Apple 的 CoreML 和 Google 的 TensorFlowLite)。对于 ThunderNet,它使用了一个第三方高性能推理 SDK,该 SDK 并未公开。这使得在相同硬件条件下进行公平的速度比较变得不可行。其次,大多数推理 SDK 主要针对计算密集型模型进行了优化,而较少关注内存带宽。然而,TinyDet 计算效率高,需要带宽导向的优化。这种不一致性导致 TinyDet 在速度方面表现欠佳。目前我们提供了 TinyDet 在两种类型的 ARM CPU 上单线程且未经任何优化情况下的推理延迟(见表 8)。

FLOPs 是一个广泛接受的通用指标,尤其是在神经架构搜索(NAS)领域。FLOps 可以在理论上进行计算,与特定硬件实现无关。根据屋顶线理论,FLOPs 确定了速度的上限。考虑到较低的计算需求,通过特定优化,TinyDet 可以实现优秀的推理速度。

5. 结论

本文旨在解决计算受限(即 ≤ 1 GFLOPs)环境下检测通用(即 80 类物体)的小目标(即 ≤ (32 × 32)/(480 × 640) ≈ 0.33% 输入图像面积)的问题。所提出的技术,如高分辨率检测特征图、TinyFPN/RPN、早期增强骨干网络以及基于平均池化的特征对齐,都致力于解决这一问题。我们取得了卓越的结果——在 COCO 小目标检测任务上,相对于之前最先进的轻量级通用检测器,我们的 AP 提升超过 100%。未来,我们计划在 ASIC 和边缘设备上实现并优化 TinyDet。

—END—

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

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表