目标检测论文阅读:Sparse R-CNN算法笔记

SparseR-CNN是一种新型的纯稀疏目标检测方法,它摒弃了传统目标检测中密集的候选目标和手工设计的锚框,转而使用可学习的稀疏建议进行目标识别。这种方法减少了计算复杂性,直接输出预测结果,无需非极大值抑制后处理。在COCO数据集上,SparseR-CNN展现出与成熟检测器相当的性能,同时提供了对稠密先验惯例的重新思考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题:Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
会议:CVPR2021
论文地址:https://ieeexplore.ieee.org/document/9577670/

Abstract

我们提出Sparse R-CNN,一种用于图像目标检测的纯稀疏方法。现有的目标检测工作严重依赖于稠密的目标候选,例如在大小为 H × W H×W H×W的图像特征图的所有网格上预先定义 k k k个锚框。然而,在我们的方法中,一个固定的稀疏学习目标建议集,总长度为 N N N,提供给目标识别头执行分类和定位。Sparse R-CNN通过将 H W k HWk HWk(成千上万)个手工设计的目标候选剔除到 N N N(例如100)个可学习的提议,完全避免了所有与目标候选设计和多对一标签分配相关的工作。更重要的是,最终的预测结果是直接输出的,无需进行非极大值抑制后处理。在具有挑战性的COCO数据集上,Sparse R-CNN表现出与成熟的检测器基线相当的准确度、运行时间和训练收敛性能,例如,在标准3×训练计划中达到45.0AP,使用ResNet-50 FPN模型以22fps运行。我们希望我们的工作能够激发对目标检测器中稠密先验惯例的重新思考。

1. Introduction

目标检测旨在定位图像中的一组目标并识别其类别。稠密先验一直是检测器成功的基石。在经典的计算机视觉中,滑动窗口范式是几十年来领先的检测方法,其中,一个分类器用于稠密的图像网格。现代主流的单阶段检测器在稠密的特征图网格上预先定义标记,如图1a所示的锚框,或参考点,并预测目标的相对缩放和偏移到边界框,以及相应的类别。虽然两阶段pipeline工作在稀疏的建议框集合上,但它们的建议生成算法建立在稠密的候选集上,如图1b所示。
在这里插入图片描述
这些成熟的方法在概念上是直观的,提供了鲁棒的性能以及快速的训练和推理时间。在取得巨大成功的同时,需要指出的是,稠密先验检测器也存在一些局限性:①这样的pipeline通常会产生冗余和近似重复的结果,从而使得非极大值抑制(NMS)后处理成为必要的组成部分。②训练中多对一的标签分配问题使得网络对启发式分配规则敏感。③最终的性能在很大程度上受到锚框的尺寸/长宽比/数量、参考点密度以及建议生成算法的影响。
尽管稠密的惯例在目标检测器中被广泛认可,但一个自然的问题是:是否有可能设计一个稀疏检测器?最近,DETR提出将目标检测重新建模为一个直接的稀疏集预测问题,其输入仅为100个学习的目标查询。最终的预测集直接输出,无需任何手工设计的后处理。尽管DETR的框架简单有效,但它需要每个目标查询与全局图像上下文交互。这种稠密性不仅会减慢其训练收敛速度,而且会阻碍其建立完全稀疏的目标检测pipeline。
我们认为稀疏性应该表现在两个方面:稀疏边界框和稀疏特征。稀疏边界框指的是少量的起始边界框(例如100个)足以预测图像中的所有目标。而稀疏特征则表示每个边界框的特征不需要与整幅图像的所有其它特征进行交互。从这个角度来看,DETR不是一个纯稀疏方法,因为每个目标查询都必须与全图像上的稠密特征进行交互。
在本文中,我们提出了Sparse R-CNN,一种纯稀疏方法,没有在所有(稠密)图像网格上枚举目标位置候选,也没有与全局(稠密)图像特征交互的目标查询。如图1c所示,目标候选由一组固定的、以4维坐标表示的可学习边界框小集合给出。例如COCO数据集,总共需要100个边界框和400个参数,而不是区域建议网络(RPN)中成千上万个候选目标预测。这些稀疏候选被RoIPool或RoIAlign用作提取感兴趣区域(RoI)特征的建议框。
可学习的建议框是图像中潜在目标位置的统计值。然而,4维坐标仅仅是目标的粗糙表示,缺乏大量的姿态和形状等细节信息。这里我们引入另一个关键的概念项:建议特征,它是一个高维的(例如256)潜在向量。与粗糙的边界框相比,它被期望于对丰富的实例特征进行编码。特别地,建议特征为其独有的目标识别头生成一系列定制的参数。我们称这个操作为动态实例交互头(Dynamic Instance Interactive Head),因为它与最近的动态方案有相似之处。与此前文献共享的2-fc层相比,我们的头更加灵活,并且在精度上保持了显著的领先。我们的实验表明,基于唯一建议特征而不是固定参数的头模型的建立实际上是Sparse R-CNN成功的关键。建议边界框和建议特征都是随机初始化的,与整个网络中的其它参数一起优化。
在我们的Sparse R-CNN中,最引人注目的特性是其在整个期间的sparse-in sparse-out范式。初始输入为建议边界框和建议特征的稀疏集合,以及一对一的动态实例交互。pipeline中既不存在稠密候选目标,也不存在与全局(稠密)特征的交互。这种纯稀疏性使得Sparse R-CNN成为R-CNN家族中一个全新的成员。
在具有挑战性的COCO数据集上,Sparse R-CNN展示了与成熟的检测器相当的准确度、运行时间和训练收敛性能,比如在标准3×训练计划中达到45.0AP,使用ResNet-50 FPN模型以22fps运行。据我们所知,提出的Sparse R-CNN是第一个证明了相当稀疏的设计仍然是合格的工作。我们希望我们的工作能够启发重新思考稠密先验在目标检测中的必要性,并探索下一代目标检测器。

2. Related Work

稠密的方法。 介绍了一些单阶段和anchor-free的稠密方法。以上方法都是建立在稠密候选的基础上,对每个候选直接进行分类和回归。这些候选在训练时根据预先定义的原则被分配到真值框中,例如锚框是否与其对应的真值有更高的交并比(IoU)阈值,或者参考点是否落在其中一个目标边界框中。此外,还需要进行NMS后处理,以去除推理时的冗余预测。
稠密到稀疏的方法。 介绍了一些两阶段方法。这种范式可以看作是稠密检测器的扩展。它首先从稠密的区域候选中获得前景建议框的稀疏集合,然后细化每个建议的位置并预测其具体类别。其中,区域建议算法在第一阶段起着重要的作用。与稠密的pipeline类似,同样需要NMS后处理和手工制作的标签分配。在成千上万的候选中,只有少量的前景建议,因此这些检测器可以归结为稠密到稀疏的方法。
最近,DETR被提出,直接输出预测,不需要任何手工制作的组件,取得了很好的性能。DETR利用一组稀疏的目标查询,与全局(稠密)图像特征进行交互,在这种视角下,它可以被看作是另一种稠密到稀疏的形式。
稀疏的方法。 稀疏目标检测有可能消除设计稠密候选的精力,但通常已经落后于上述稠密检测器的精度。G-CNN可以看作是这类算法的先驱。它从图像上的多尺度规则网格开始,迭代地更新边界框以覆盖和分类目标。这种手工设计的规则先验显然是次优的,无法达到最好的性能。相反,我们的Sparse R-CNN使用可学习的建议并取得了更好的性能。同时期的工作,Deformable-DETR限制每个目标查询只关注参考点周围的一小部分关键采样点,而不是特征图中的所有点。我们希望稀疏的方法可以作为坚实的基线,并有助于未来在目标检测领域的研究。

3. Sparse R-CNN

Sparse R-CNN框架的核心思想是用一个小的(例如100)建议边界框集合来取替区域建议网络(RPN)中成千上万的候选。pipeline如图3所示。
在这里插入图片描述
Sparse R-CNN是由一个主干网络、一个动态实例交互头和两个任务特定的预测层组成的简单统一的网络。一共有3个输入:一幅图像、一个建议边界框集合和一个建议特征集合。后两者是可学习的,可以与网络中的其它参数一起优化。
主干。 采用基于ResNet结构的特征金字塔网络(FPN)作为主干网络,从输入图像中生成多尺度特征图。我们构造从 P 2 P_2 P2层到 P 5 P_5 P5层的金字塔,其中, l l l表示金字塔的层数, P l P_l Pl的分辨率比输入低 2 l 2^l 2l。所有金字塔层都有 C = 256 C=256 C=256个通道。事实上,Sparse R-CNN有潜力从更复杂的设计中获益,以进一步提高其性能,如堆叠编码层(stacked encoder layers)和可变形卷积网络(deformable convolution network),最近的工作Deformable-DETR就是在此基础上构建的。然而,我们将设置与Faster R-CNN对齐,以显示我们方法的简单有效。
可学习的建议边界框。 使用一个固定的小的可学习建议边界框( N × 4 N×4 N×4)集合作为区域建议,而不是来自区域建议网络(RPN)的预测。这些建议边界框由从0到1的4维参数表示,表示标准化的中心点坐标、高度和宽度。建议边界框的参数将在训练过程中通过反向传播算法进行更新。得益于可学习的性质,我们在实验中发现初始化的影响很小,从而使得框架更加灵活。
从概念上讲,这些学习到的建议边界框是训练集中潜在目标位置的统计值,可以看作是对图像中最可能包含目标的区域的初始猜测,而不论输入是什么。然而,来自RPN的建议与当前图像十分相关,提供粗糙的目标位置。我们重新思考,第一阶段的定位是奢侈的,在后面的阶段存在去细化边界框的位置。相反,一个合理的统计值已经可以成为合格的候选。从这个角度来看,Sparse R-CNN可以归类为目标检测器范式从完全稠密的到稠密到稀疏的再到完全稀疏的扩展,如图1所示。
可学习的建议特征。 虽然4维建议边界框是描述目标的一种简洁明确的表达方式,但它提供目标的粗糙定位,丢失了大量的细节信息,如目标的姿态和形状。这里我们引入了另一个概念:建议特征(N×d),它是一个高维的(例如256)潜在向量,被期望于对丰富的实例特征进行编码。建议特征的数量与建议边界框相同,接下来我们将讨论如何使用它。
动态实例交互头。 给定 N N N个建议边界框,Sparse R-CNN首先利用RoIAlign操作为每个边界框提取特征。然后,将每个边界框特征用我们的预测头生成最终的预测。受动态算法的启发,我们提出动态实例交互头。每个RoI特征被输入到自己的独有头中进行目标定位和分类,其中每个头都取决于特定的建议特征。
在这里插入图片描述
图4展示了动态实例交互。在我们的设计中,建议特征和建议边界框是一一对应的。对于 N N N个建议边界框,使用 N N N个建议特征。每个RoI特征 f i ( S × S , C ) f_i(S×S,C) fi(S×S,C)将与对应的建议特征 p i ( C ) p_i(C) pi(C)进行交互,过滤掉无效的bins,输出最终的目标特征 ( C ) (C) (C)。为了轻量设计,我们使用两个连续的1×1卷积和ReLU激活函数来实现交互过程。这两个卷积的参数由相应的建议特征生成。
只要支持并行操作以提高效率,交互头的实现细节并不重要。最终的回归预测通过3层感知机计算,分类预测通过线性投影层计算。
我们还采用迭代结构和自注意力模块来进一步提高性能。对于迭代结构,新生成的目标边界框和目标特征将作为迭代过程中下一阶段的建议边界框和建议特征。得益于稀疏性和轻量动态头,它只引入了微不足道的计算开销。在动态实例交互之前,对目标特征集合使用自注意力模块来推理目标之间的关系。我们注意到此前文献也利用了自注意力模块。然而,它除了目标特征外,还需要几何属性和复杂的秩特征。我们的模块更加简单,只将目标特征作为输入。
集合预测损失。 Sparse R-CNN在固定大小的分类和边界框坐标预测集合上使用集合预测损失。基于集合的损失在预测和真值目标之间产生一个最优的二分匹配。匹配损失定义如下:
L = λ c l s ⋅ L c l s + λ L 1 ⋅ L L 1 + λ g i o u ⋅ L g i o u \mathcal{L}=\lambda_{cls}·\mathcal{L}_{cls}+\lambda_{L_1}·\mathcal{L}_{L_1}+\lambda_{giou}·\mathcal{L}_{giou} L=λclsLcls+λL1LL1+λgiouLgiou其中, L c l s \mathcal{L}_{cls} Lcls是预测分类和真值类别标签之间的Focal Loss, L L 1 \mathcal{L}_{L_1} LL1 L g i o u \mathcal{L}_{giou} Lgiou分别是预测建议框和真值框的归一化中心坐标、高度和宽度之间的L1 Loss和Generalized IoU Loss。 λ c l s \lambda_{cls} λcls λ L 1 \lambda_{L_1} λL1 λ g i o u \lambda_{giou} λgiou分别是各个项的系数。训练损失与匹配损失相同,但只在匹配的对上进行。最终的损失是以训练批次内目标数量归一化后的所有对的和。
R-CNN家族由于多对一匹配而一直困扰着标签分配问题。这里我们提供了直接绕过多对一匹配并引入基于集合损失的一对一匹配的新的可能性。这是探索端到端的目标检测的一种尝试。

4. Experiments

介绍了数据集、训练细节和推理细节。其中, λ c l s = 2 \lambda_{cls}=2 λcls=2 λ L 1 = 5 \lambda_{L_1}=5 λL1=5 λ g i o u = 2 \lambda_{giou}=2 λgiou=2。建议边界框、建议特征和迭代的默认数量分别为100、100和6。为了稳定训练,在迭代结构的每个阶段,除了初始建议边界框外,梯度都被阻塞在建议边界框。推理阶段,给定一幅输入图像,Sparse R-CNN直接预测与其分数联合的100个边界框。这个分数表示边界框包含目标的概率。对于评估,我们直接使用这100个边界框,不做任何后处理。

4.1. Main Result

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对比实验。注意到具有100个建议的模型运行在23FPS,而300个建议时仅减少到22FPS,这得益于动态实例交互头的轻量设计。具体的实验结论可以参照原文。

4.2. Module Analysis

在这里插入图片描述
可学习的建议边界框。 直接用稀疏的可学习建议边界框替换RPN。性能下降很大,即使堆叠更多的全连接层,也没有明显的改善。
在这里插入图片描述
迭代结构。 迭代更新边界框是提高性能的直观思路。然而,简单的级联结构并没有太大区别,如表4所示。分析其原因是,与Cascade R-CNN中主要位于目标周围的精细建议边界框框相比,这里候选更加粗糙,难以优化。我们观察到,在整个迭代过程中,一个建议边界框的目的目标通常是一致的。因此,可以重复使用上一阶段的目标特征,为下一阶段起到较强的提示作用,例如目标特征编码目标的姿态、位置等丰富的信息。为此,我们将上一阶段的目标特征concatenate到当前阶段。这种微小的特征重用改动,在原有的级联结构基础上获得了巨大增益。
在这里插入图片描述
动态头。 动态头以与前面讨论的迭代结构不同的方式,使用前一阶段的目标特征。上一阶段的目标特征不是简单地concatenate,而是先经过自注意力模块处理,然后作为建议特征实现当前阶段的实例交互。自注意力模块用于目标特征集合,用于推理目标之间的关系。表5可以看出自注意力和动态实例交互的收益。
建议边界框的初始化。 稠密检测器在很大程度上依赖于目标候选的设计,而Sparse R-CNN中的目标候选是可学习的,因此避免了所有与设计手工制作的锚框相关的工作。然而我们可能会担心,在Sparse R-CNN中,建议边界框的初始化起着关键作用。这里我们研究不同方法初始化建议边界框的效果。

  • “Center”表示所有建议边界框开始时都位于图像中心,高度和宽度设置为图像大小的0.1。
  • “Image”表示将所有建议边界框初始化为整个图像大小。
  • “Grid”表示建议边界框在图像中被初始化为规则网格,这正是G-CNN中的初始边界框。
  • “Random”表示建议边界框的中心、高度和宽度按照高斯分布随机初始化。

在这里插入图片描述
从表6可以看出,Sparse R-CNN的最终性能对建议边界框的初始化具有较强的鲁棒性。
在这里插入图片描述
建议的数量。 建议数量对稠密和稀疏检测器的影响都很大。原始的Faster R-CNN使用300个建议。后来增加到2000个,获得了更好的性能。我们在表7中研究了建议数量对Sparse R-CNN的影响。建议数量从100增加到500导致了持续的提升,表明我们的框架很容易在各种情况下使用。然而,500个建议需要更多的训练时间,所以我们选择100和300作为主要的配置。
在这里插入图片描述
迭代结构中的阶段数。 迭代结构是一种广泛使用的提高目标检测性能的技术,特别是对于Sparse R-CNN。表8显示了迭代结构中阶段数的影响。如果没有迭代结构,性能仅为21.7AP。考虑到第一阶段的输入建议是对可能的目标位置的猜测,因此这一结果并不令人意外。逐渐增加阶段数,在6阶段时性能达到饱和。我们选择6阶段作为默认配置。
在这里插入图片描述
动态头vs.多头注意力。 如第3节所述,动态头利用建议特征对RoI特征进行筛选,最终输出目标特征。我们发现多头注意力模块为实例交互提供了另一种可能的实现方式。我们在表9中进行了对比实验,其性能落后了6.6AP。与线性多头注意力相比,我们的动态头更加灵活,其参数取决于其独有的建议特征,并且更容易引入非线性能力。
在这里插入图片描述
建议特征vs.目标查询。 DETR中提出的目标查询与建议特征有类似的设计。这里进行比较。目标查询是学习位置编码,指导解码器与图像特征图和空间位置编码的和进行交互。仅使用图像特征图会导致明显的下降。然而,我们的建议特征可以看作是一个特征过滤器,与位置无关。比较结果如表10所示,去除空间位置编码后,DETR下降了7.8AP。相反,位置编码在稀疏Sparse R-CNN中没有增益。

4.3. The Proposal Boxes Behavior

在这里插入图片描述
图5展示了一个收敛模型学习到的建议边界框。这些边界框随机分布在图像上,覆盖整个图像区域。这保证了在候选稀疏情况下的召回性能。进一步,级联头的每个阶段逐渐细化边界框位置并去除重复的边界框,从而导致高精度的性能。图5还表明,Sparse R-CNN在稀少场景和聚集场景下都表现出了鲁棒的性能。对于稀少场景中的目标,其重复边界框在几个阶段内被移除。聚集场景需要更多的阶段来细化,但最终每个目标都被精确和唯一地检测出来。

5. Conclusion

我们提出了一种用于图像目标检测的纯稀疏方法:Sparse R-CNN。提供一个固定的稀疏学习目标建议集合,通过动态头进行分类和定位。最终的预测结果直接输出,无需进行非极大值抑制后处理。Sparse R-CNN证明了其准确度、运行时间和训练收敛性能与成熟的检测器相当。我们希望我们的工作能够启发重新思考稠密先验的惯例,并探索下一代目标检测器。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frankenstein@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值