Crowd-SAM:SAM作为拥挤场景中目标检测的智能标注器

摘要

目标检测是一项重要任务,广泛应用于各种场景。通常,它需要大量的标签进行训练,这相当耗时,尤其是在拥挤的场景中。最近,Segment Anything Model(SAM)作为一种强大的零样本分割器应运而生,为实例分割提供了一种新颖的方法。然而,在处理拥挤场景中经常出现遮挡的物体时,SAM及其变体的准确性和效率往往受到损害。在本文中,我们提出了Crowd-SAM,一个基于SAM的框架,旨在以少量可学习参数和最少标记图像为代价,增强SAM在拥挤场景中的性能。我们引入了一个高效的提示采样器(EPS)和一个部分-整体区分网络(PWD-Net),有助于掩码选择,并提高了拥挤场景中的准确性。尽管其设计简单,但Crowd-SAM在包括CrowdHuman和CityPersons在内的多个基准测试中,与最先进的完全监督目标检测方法不相上下。我们的代码可在https://github.com/FelixCaae/CrowdSAM上获得。

关键词:拥挤场景中的检测 ⋅ \cdot 少样本学习 ⋅ \cdot Segment Anything Model

1、引言

在自动驾驶和视频监控等领域中,拥挤场景下的目标检测是一项基础任务。主要焦点在于识别和定位行人和车辆等密集分布的常见目标,其中遮挡现象带来了重大挑战。近年来,包括两阶段方法[45,60]和基于查询的方法[8,22,62]在内,已经取得了巨大进展。然而,这些方法主要遵循监督学习的方式,并需要大量带标签的训练样本,这带来了相当高的标注成本,每个目标大约需要42.4秒[38]。拥挤场景的密度和复杂性进一步加剧了标注负担。

收集目标标注的高成本促使人们探索替代方案,如小样本学习[34,39,44]、弱监督学习[41,53]、半监督学习[29,30,42,49]和无监督学习[1,6,21,26,48]。其中表现最好的是半监督目标检测(SSOD),它利用带标签和未带标签的数据进行训练,并在常见的基准测试(如PASCAL VOC[15]和COCO[24])上取得了巨大成功。不幸的是,SSOD引入了额外的复杂性,如复杂的增强技术和在线伪标签。

近年来,基于提示的分割模型因其灵活性和可扩展性而越来越受到关注。特别是,Segment Anything Model(SAM)[20]展现了其高效且准确地预测由提示指定的区域掩码的高能力,这些提示可以是点、框、掩码或文本描述等多种形式。认识到其非凡的潜力,研究人员已付出诸多努力将其应用于各种视觉任务,如医学图像识别[31]、遥感分析[4, 12]、工业缺陷检测[52]等。

尽管在SAM之后取得了巨大进展[18,46,54],但将SAM应用于拥挤场景中的目标检测却鲜有研究。在本文中,我们基于两个动机研究了SAM在这种情况下的潜力。首先,SAM在一个非常大的数据集SA-1B上进行了预训练,该数据集包含了大多数常见目标,因此合理利用这些知识来促进大规模数据的标注和训练一个全新的检测器是合理的。其次,SAM在处理由聚集在一起的目标组成的复杂场景时,展现出了强大的分割能力,这对于从头开始训练的目标检测器来说是非常困难的。

在这里插入图片描述

为此,我们提出了Crowd-SAM,一种由SAM驱动的智能标注器,用于拥挤场景中的目标检测。如图1所示,我们引入了一种基于DINOv2的自促进方法,以减轻人工提示的成本。我们的方法采用配备了高效提示采样器(EPS)的密集网格,以适中的成本覆盖尽可能多的目标。为了在遮挡场景中精确区分多个输出中的掩码,我们设计了一个掩码选择模块,称为部分-整体判别网络(PWD-Net),该网络学习在交并比(IoU)分数中区分质量最高的输出。凭借其轻量级模型设计和快速训练计划,它在包括CrowdHuman[37]和CityPersons[58]在内的公共基准测试中表现出色。

我们的贡献可以概括如下:

  1. 我们提出了Crowd-SAM,一种自提示分割方法,用于标注包含聚集目标的图像,仅需少量示例即可产生准确结果。

  2. 我们为Crowd-SAM设计了两个新颖组件,即EPS和PWD-Net,它们有效地释放了SAM在拥挤场景中的能力。

  3. 我们在两个基准测试上进行了全面的实验,以证明Crowd-SAM的有效性和可推广性。

2、相关工作

目标检测。通用目标检测旨在识别和定位目标,主要分为两类:即一阶段检测器和二阶段检测器。一阶段检测器利用图像特征预测边界框和类别分数[23, 27, 35],而二阶段检测器则首先生成区域候选框,然后对其进行分类和细化[9, 10, 36]。最近,端到端目标检测器如DETR[2, 55, 63]通过在训练阶段采用一对一匹配来替代手工设计的模块(如非极大值抑制NMS),在多个领域展现出巨大潜力。

然而,将这些检测器直接应用于行人检测往往会导致性能下降,因为行人通常处于拥挤且遮挡的环境中。早期工作[32]提出将额外特征集成到行人检测器中,以探索低级视觉线索,而后续方法[5, 56]则尝试利用头部区域进行更好的表示学习。在[56]中,一个锚点与目标整体和头部部分相关联,通过联合训练实现更鲁棒的检测器。AdaptiveNMS[25]通过预测行人密度来调整NMS阈值。其他方法则侧重于损失函数的设计以改进训练过程。例如,RepLoss[45]鼓励对同一目标的预测一致性,同时排斥来自不同目标的预测。最近,Zheng等人[62]通过建模查询之间的关系,改进了基于DETR的检测器在拥挤场景中的表现,并取得了显著成效。尽管这些工作已将拥挤场景中的目标检测推向了新的阶段,但它们都依赖于大量标记样本进行训练,这非常耗时费力。这一局限性促使我们借助SAM开发标签高效的检测器和自动标注工具。

小样本目标检测(Few-Shot Object Detection,FSOD)。该任务旨在在有限的训练样本下检测新类别的目标。FSOD方法大致可分为基于元学习的方法[16,51]和基于微调的方法[34,39,44]。Meta-RCNN[51]通过孪生网络并行处理查询图像和支持图像。将查询图像中的感兴趣区域(Region of Interest,RoI)特征与类别原型融合,以有效迁移从支持集中学习的知识。TFA[44]提出了一种简单的两阶段微调方法,仅微调网络的最后几层。FSCE[39]在微调阶段引入了监督对比损失,以缓解分类错误问题。De-FRCN[34]停止来自区域候选网络(Region Proposal Network,RPN)的梯度,并缩放来自R-CNN[36]的梯度,随后使用原型校准块来优化分类得分。

分割万物模型(Segment Anything Models,SAM)。SAM[20]是一个用于分割任务的视觉基础模型,采用半监督学习范式在SA-1B数据集上进行训练。由于其接触到了庞大的训练样本库,SAM成为了一个高度通用的类别无关模型,能够有效处理世界上各种各样的对象。尽管SAM在解决分割任务时表现出色,但仍存在领域迁移、效率低下、类别无关设计等问题。HQ-SAM[18]通过学习一个轻量级适配器来提高其分割质量。Fast-SAM[50]和Mobile-SAM[54]则通过知识蒸馏来加快SAM的推理速度。RSprompt[4]通过生成适当的提示,使SAM能够为遥感图像生成语义上不同的分割结果。Med-SA[47]提出了一种空间深度转置方法,使2DSAM能够适应3D医学图像,并设计了一个超提示适配器以实现基于提示的条件适应。不幸的是,这些方法需要大量的标记数据才能进行有效适应,这使得它们在标注成本高昂的拥挤场景中不切实际。与它们不同,Per-SAM[57]和Matcher[28]通过提取无需训练的相似性先验,教会SAM仅通过一个或少数几个实例来识别特定对象。SAPNet[46]为实例分割构建了一个弱监督流程。尽管这些方法降低了数据要求,但它们仍然无法满足拥挤场景(如行人检测,尤其是存在遮挡的情况)的需求。

3、方法

3.1、预备知识

SAM[20]是一个强大且有前景的分割模型,由三个主要组件组成:(a)一个负责特征提取的图像编码器;(b)一个设计用于编码用户提供的几何提示的提示编码器;以及(c)一个轻量级的掩码解码器,该解码器根据给定的提示预测掩码。利用广泛的训练数据,SAM在各种基准测试中展示了令人印象深刻的零样本分割性能。特别是,SAM使用点和框作为提示来指定感兴趣的区域。

DINO[3]代表了一类以自监督方式学习的Vision Transformer(ViT)[7],专为通用应用而设计。在训练过程中,DINO采用了一种类似于BYOL[11]的自蒸馏策略,促进了鲁棒表示的学习。DINOv2[33]通过集成多个额外的预训练任务来加强DINO的基础,提高了其可扩展性和稳定性,特别是对于大型模型(如具有10亿参数的ViT-H)。得益于其增强功能,DINOv2在语义分割任务中表现出了强大的表示能力。

3.2、问题定义与总体框架

问题定义。如图1所示,我们的目标是在标记数据很少的情况下,检测拥挤场景中的对象(如行人)。我们将此问题表述为一类小样本检测任务。常见的小样本流程是将数据分为基础集和新集。不同的是,我们直接使用目标类的数据进行模型训练,因为基础模型已经在大规模数据上进行了训练。特别是,我们采用分割掩码作为中间结果,这些结果可以很容易地转换为边界框。在训练和评估过程中,仅提供边界框标注。
在这里插入图片描述

对SAM自动生成器的初步研究。提示数量会影响SAM的性能,我们针对拥挤场景分析了这一问题。在此情况下,我们使用SAM的自动生成器在CrowdHuman[37]上进行了几项初步研究,该自动生成器利用网格点搜索每个区域。表1传达了三个关键观察结果:(1)拥挤场景需要密集的网格;(2)点提示和类别无关提示的分布模糊性导致了许多假正例(FPs);(3)当网格尺寸较大时,解码时间是一个不可忽视的负担。因此,密集的提示和假正例的去除是在设计用于拥挤场景中检测/分割任务的基于SAM的方法时的关键方面。

在这里插入图片描述

总体框架。受上述研究的启发,我们为SAM[20]配备了几个适当的组件,以实现一个准确且高效的标注框架,如图2所示。为了准确定位成簇的对象,我们采用基础模型DINOv2[33]来预测语义热图,这是一项可以通过简单的二分类器完成的任务。为了区分输出掩码(由正确掩码、背景和部分级掩码的混合组成),我们设计了部分-整体区分网络(PWD-Net),该网络将SAM学习到的标记和DINOv2的语义丰富标记作为输入,以重新评估所有输出。最后,为了处理密集网格使用带来的冗余问题,我们提出了一种高效的提示采样器(EPS),以适中的成本解码掩码。
我们将在以下部分介绍我们方法的详细情况。

3.3、特定类别的提示生成

在拥挤场景中为每个对象(如行人)生成一个独特的点提示实际上是一个非平凡的问题。因此,我们退后一步,研究如何使用与单个对象相关联的多个提示来检测对象,并应用适当的后处理技术来去除重复项。为此,我们采用了一种基于热图的提示生成流程,该流程首先对区域进行分类,然后从正区域生成提示。
在这里插入图片描述

对于输入图像 I ∈ R H × W × 3 I \in \mathbb{R}^{H \times W \times 3} IRH×W×3,我们首先使用预训练的图像编码器 E D E_{D} ED 来提取富含语义的特征。为了更好地将这些预训练特征转移到对象分割任务中,我们在最终输出层之后添加一个多层感知机(MLP)块,从而获得适应后的特征 F D I N O ∈ R H s × W s × C F_{D I N O} \in \mathbb{R}^{\frac{H}{s} \times \frac{W}{s} \times C} FDINORsH×sW×C,其中 s s s 是DINOv2[33]的块大小, C C C 是输出通道数。然后,我们使用一个分割头 H e a d C L S Head_{C L S} HeadCLS F D I N O F_{D I N O} FDINO 进行逐像素分类,生成一个热图 H ^ ∈ [ 0 , 1 ] H s × W s \hat{\mathbb{H}} \in[0,1]^{\frac{H}{s} \times \frac{W}{s}} H^[0,1]sH×sW,该热图指示了对象的位置,即 H ^ = Head ⁡ C L S ( F D I N O ) \hat{\mathbb{H}}=\operatorname{Head}_{C L S}\left(F_{D I N O}\right) H^=HeadCLS(FDINO)

仅给定边界框标注 B ∈ [ 0 , 1 ] N B × 4 B \in[0,1]^{N_{B} \times 4} B[0,1]NB×4,其中 N B N_{B} NB 是目标数量,这个二值分割头可以通过框级别的监督进行优化。然而,粗糙的边界往往会在背景区域引起大量点的分散。为了缓解这个问题,我们使用SAM[20]来生成高质量的掩码级别伪标签,这在图4中与真实标签(GT)一起进行了说明。解码后的掩码随后被合并成一个单一的前景掩码 H ∈ { 0 , 1 } 256 × 256 \mathbb{H} \in\{0,1\}^{256 \times 256} H{0,1}256×256。我们使用Dice损失来训练适配器和分割头,以生成的伪掩码作为目标,如下所示:

L f g = dice ⁡ ( f ( H ^ ) , H ) \mathcal{L}_{f g}=\operatorname{dice}(f(\hat{\mathbb{H}}), \mathbb{H}) Lfg=dice(f(H^),H)

其中 f f f 是一个上采样函数,用于将 H \mathbb{H} H 调整到 256 × 256 256 \times 256 256×256 的大小。在推理过程中,我们为掩码二值化添加一个阈值 t t t,在我们的实验中简单地设置为0.5。二值化后的掩码被映射到点提示 P G P_{G} PG 上,这些点提示仅包含正区域中的点。

3.4、语义引导掩码预测

在3.3节中生成了候选区域后,我们的进一步目标是有效地解码密集提示并准确地区分生成的掩码。如图3所示,由于网格的密集性,每个实例都包含一组提示。假设在SAM中仅需要一个位置正确的提示来进行掩码预测,那么解码所有提示不仅会导致计算浪费,还会因为一些位置不佳的提示而产生更多的误报(FPs)。

高效提示采样器(EPS)。为了解决这一挑战,我们引入了EPS,它基于解码掩码的置信度动态地修剪提示。该方法在算法1中详细阐述。从生成的点提示列表 P G P_{G} PG开始,EPS在每次迭代中通过均匀随机采样从 P G P_{G} PG中抽取一批提示 P B P_{B} PB,然后将这些采样的提示 P B P_{B} PB添加到输出点列表 P S P_{S} PS中。随后,我们使用带有批处理提示 P B P_{B} PB的SAM生成器来生成掩码 M M M。此外,我们从PWD-Net中聚合判别置信度分数 S S S,这些分数用于通过分数阈值 T T T(即 M ′ = M [ S > T ] M^{\prime}=M[S>T] M=M[S>T])来选择有效的掩码 M ′ M^{\prime} M。PWD-Net的详细解释将在后续部分给出。有效的掩码表示被认为分割良好的区域,因此我们从提示列表 P G P_{G} PG中移除那些已被 M ′ M^{\prime} M中任何掩码 m m m覆盖的点。当 P G P_{G} PG为空时,迭代停止。此外,EPS还通过一个参数 K K K建立了一个停止准则,一旦总样本数达到这个限制,就终止采样过程。该参数在控制整体解码成本方面起着重要作用。在我们的实验中, K K K经验性地设置为500,以在效率和召回率之间取得平衡。
在这里插入图片描述

部分-整体区分网络(PWD-Net)。给定由SAM基于采样提示批次 P B P_{B} PB预测的原始掩码,我们设计了一个自动选择器来选择最合适的掩码。它预期在两个方面优化输出:(i)如果它们是正样本,则根据相关掩码的质量优化输出交并比(IoU)分数;(ii)抑制落在背景区域的样本的分数。

如图2所示,对于与 N N N个提示相对应的生成的掩码,我们利用SAM掩码解码器中的掩码标记(Mask Tokens)和IoU标记(IoU Tokens),以及自监督预训练模型DINOv2[33]提取的复杂特征。 M \mathcal{M} M U \mathcal{U} U分别在SAM掩码解码器中负责掩码解码和IoU预测。因此,我们假设它们包含形状感知信息,这有助于区分掩码。这些组件使我们能够在少量样本的情况下为每个特定提示计算一个判别置信度分数 S S S。最初,精细化IoU分数 S iou  S_{\text {iou }} Siou 计算如下:

S iou  = Head ⁡ par  ( Concat ⁡ ( Repeat ⁡ ( U ) , M ) ) + Head ⁡ IoU  ( U ) S_{\text {iou }}=\operatorname{Head}_{\text {par }}(\operatorname{Concat}(\operatorname{Repeat}(\mathcal{U}), \mathcal{M}))+\operatorname{Head}_{\text {IoU }}(\mathcal{U}) Siou =Headpar (Concat(Repeat(U),M))+HeadIoU (U)

其中, Head par \text{Head}_{\text {par}} Headpar 是一个并行IoU头部,由一个多层感知机(MLP)块组成; U ∈ R N × 1 × C \mathcal{U} \in \mathbb{R}^{N \times 1 \times C} URN×1×C M ∈ R N × 4 × C \mathcal{M} \in \mathbb{R}^{N \times 4 \times C} MRN×4×C 分别表示IoU标记和掩码标记。注意在方程(2)中, S iou  S_{\text {iou }} Siou  是来自两个独立头部(并行适配器头部 Head par \text{Head}_{\text {par}} Headpar 和原始 Head IoU \text{Head}_{\text {IoU}} HeadIoU)的输出的和。我们冻结了 Head IoU \text{Head}_{\text {IoU}} HeadIoU 的参数,以避免在少量样本学习中出现过拟合。此外,由于这两个标记 M \mathcal{M} M U \mathcal{U} U 的形状不同,我们将 U \mathcal{U} U 重复4次,并在通道维度上将这两个标记拼接起来。精细化分数 S iou  ∈ R N × 4 S_{\text {iou }} \in \mathbb{R}^{N \times 4} Siou RN×4 通过评估来自 M \mathcal{M} M U \mathcal{U} U 的纹理感知特征来封装生成掩码的质量。

进一步地,我们利用自监督预训练模型DINOv2中嵌入的语义特征以及掩码数据 M ^ \hat{M} M^,来计算判别分数 S c l s S_{c l s} Scls

S c l s = σ ( Head C L S ( O ) ) , O = Pool ( d ( Softmax ( M ^ ) ) ∘ F D I N O ) S_{c l s}=\sigma\left(\text{Head}_{C L S}(\mathcal{O})\right), \quad \mathcal{O}=\text{Pool}\left(d(\text{Softmax}(\hat{M})) \circ F_{D I N O}\right) Scls=σ(HeadCLS(O)),O=Pool(d(Softmax(M^))FDINO)

在这里, O ∈ R N × C \mathcal{O} \in \mathbb{R}^{N \times C} ORN×C 表示提取的语义标记, M ^ ∈ R N × H × W × 4 \hat{M} \in \mathbb{R}^{N \times H \times W \times 4} M^RN×H×W×4 F D I N O ∈ R N × h × w × C F_{D I N O} \in \mathbb{R}^{N \times h \times w \times C} FDINORN×h×w×C 分别表示由SAM 31生成的掩码和由DINOv2提取的特征。我们将 d d d表示为一个下采样函数,该函数将掩码大小调整为 h × w h \times w h×w,以与 F D I N O F_{D I N O} FDINO保持一致。Pool是一个全局池化函数,它在x轴和y轴上执行平均池化,而 ∘ \circ 表示哈达玛积。判别分数 S c l s ∈ R N × 4 S_{c l s} \in \mathbb{R}^{N \times 4} SclsRN×4预测掩码是否属于前景或背景。 Head C L S \text{Head}_{C L S} HeadCLS与第3.3节中介绍的二元分类器共享相同的参数。最后,我们通过简单地将两个分数相乘来计算判别联合分数,并估计掩码的质量: S = S iou  ⋅ S cls  S=S_{\text {iou }} \cdot S_{\text {cls }} S=Siou Scls 

在训练过程中,将从真实掩码中采样的提示作为输入。对于前景内的提示,判别置信分数旨在准确预测生成掩码和真实掩码的交并比(IoU)。相反,对于背景内的提示,分数理想情况下为0。因此,该方面的损失函数制定如下:
s target  i = { IoU ⁡ ( m i , m G T i ) , m G T i ∈ M G T b g , 0 , m G T i ∈ M G T f g , L iou  = MSE ⁡ ( S , S target  ) . \begin{array}{l} s_{\text {target }}^{i}=\left\{\begin{array}{ll} \operatorname{IoU}\left(m^{i}, m_{G T}^{i}\right), & m_{G T}^{i} \in M_{G T}^{b g}, \\ 0, & m_{G T}^{i} \in M_{G T}^{f g}, \end{array}\right. \\ \mathcal{L}_{\text {iou }}=\operatorname{MSE}\left(S, S_{\text {target }}\right) . \end{array} starget i={IoU(mi,mGTi),0,mGTiMGTbg,mGTiMGTfg,Liou =MSE(S,Starget ).
其中, s target  i s_{\text {target }}^{i} starget i表示由第 i i i个提示生成的掩码 m i m^{i} mi的目标分数, S target  = { s target  i } i = 1 N S_{\text {target }}=\left\{s_{\text {target }}^{i}\right\}_{i=1}^{N} Starget ={starget i}i=1N M = { m i } i = 1 N M=\left\{m^{i}\right\}_{i=1}^{N} M={mi}i=1N M G T = { m G T i } i = 1 N = M G T b g ∪ M G T f g M_{G T}=\left\{m_{G T}^{i}\right\}_{i=1}^{N}=M_{G T}^{b g} \cup M_{G T}^{f g} MGT={mGTi}i=1N=MGTbgMGTfg。这里, M G T b g M_{G T}^{b g} MGTbg M G T f g M_{G T}^{f g} MGTfg分别表示背景真实掩码集和前景真实掩码集。

3.5、训练和推理

整个框架的总训练损失结合了方程(1)和方程(5):

L = L fg  + L iou  \mathcal{L}=\mathcal{L}_{\text {fg }}+\mathcal{L}_{\text {iou }} L=Lfg +Liou 

在推理阶段,我们从4个掩码中选择置信度分数 S S S最高的掩码作为PWD-Net的输出,我们将其表示为 M ∈ R N × H × W M \in \mathbb{R}^{N \times H \times W} MRN×H×W S o ∈ R N S_{o} \in \mathbb{R}^{N} SoRN。我们采用窗口裁剪策略以提高对小目标的性能,如[20]所述。该策略将整个图像切分成重叠的裁剪块,并分别处理每个裁剪块。最终结果由每个裁剪块的输出合并而成,并在此处应用非极大值抑制(NMS)来移除重复的提案。

4、实验

数据集。我们遵循[62]的做法,采用CrowdHuman[37]作为基准数据集来进行主要实验和消融研究。CrowdHuman[37]从互联网上收集和标注了包含拥挤人群的图像。它分别包含15,000、4,370和5,000张用于训练、验证和测试的图像。我们还在CityPersons[58]数据集上评估了我们的方法,以应对真实的城市场景。此外,我们还利用了OCC-Human[61]数据集,该数据集特别以遮挡人群而著称。对于这些行人数据集,我们使用可见标注(仅包括物体的可见区域)进行训练和评估。为了验证Crowd-SAM的可扩展性,我们进一步通过添加一个多类分类器来设计一个Crowd-SAM的多类版本。我们使用COCO[24]训练验证集的 0.1 % 0.1\% 0.1%用于训练,COCO验证集用于验证。此外,我们还在COCO的一个包含遮挡物体的子集上验证了我们的方法,即COCO-OCC[17],该子集是通过选择物体具有高重叠率的图像来提取的。
在这里插入图片描述

实现细节。我们在所有实验中使用SAM (ViT-L) [20]和DINOv2 (ViTL) [33]作为基础模型。在微调阶段,我们冻结了它们所有的参数以避免过拟合。我们没有使用真实的真实标签(GT),而是使用SAM生成的伪掩码作为 S target  S_{\text {target }} Starget 来监督方程(5)中PWD-Net的学习。如图4©所示,这些生成的伪标签质量很高。我们从伪掩码中随机选择点作为正训练样本,从背景中选择点作为负训练样本。在训练过程中,我们使用Adam优化器[19],学习率为 1 0 − 5 10^{-5} 105,权重衰减为 1 0 − 4 10^{-4} 104 β 1 = 0.9 \beta_{1}=0.9 β1=0.9 β 2 = 0.99 \beta_{2}=0.99 β2=0.99。我们以批量大小为1的方式训练我们的模块2000次迭代,这可以在单个GTX 3090 Ti GPU上在几分钟内完成。更多细节请参见附录。

评估指标。我们遵循[62]的做法,使用IoU阈值为0.5的平均精度(AP)、 M R − 2 \mathrm{MR}^{-2} MR2和召回率作为评估指标。一般来说,更高的AP、召回率和更低的 M R − 2 \mathrm{MR}^{-2} MR2值表示更好的性能。

4.1、行人检测实验结果

为了公平比较,我们使用 2 × 2 \times 2×训练计划重新实现了竞争对手方法[34,43,55,59,62],在CrowdHuman[37]和CityPersons[58]数据集上使用可见标注。

主要结果。我们将Crowd-SAM与包括全监督目标检测器[43,55,59,62]、少量样本目标检测器[34]和基于SAM的方法[20,28]在内的最相关方法进行了比较。请注意,我们使用可见标注,这与使用完整框标注得到的结果不同。

如表2所示,仅使用10张标记图像,Crowd-SAM就实现了与全监督目标检测器相当的性能,后者由DINO 55提供,最佳AP为 86.7 % 86.7\% 86.7%。特别是,Crowd-SAM比先进的无锚检测器FCOS 43高出 2.1 % A P 2.1\% \mathrm{AP} 2.1%AP。这些结果表明,通过使用适当的适应技术,SAM可以在像CrowdHuman这样的复杂行人检测数据集上达到非常有竞争力的性能。另一方面,Crowd-SAM在少样本检测设置下实现了最先进的性能,并显著优于所有少样本目标检测器。DeFRCN[34]是一种配备有ResNet-101 14的成熟少样本目标检测器,其报告的AP为 46.4 % 46.4\% 46.4%。值得注意的是,我们的方法比它高出 32 % 32\% 32%,这表明在少样本检测设置下的优越性。Crowd-SAM与De-FRCN的定性比较如图4所示。对于基于SAM的方法,我们的Crowd-SAM在召回率上大幅领先SAM基线,分别为 6 % 6\% 6%(使用多裁剪)和 18.3 % 18.3\% 18.3%(不使用多裁剪)。此外,Crowd-SAM还优于其他方法,如Matcher[28]。
在这里插入图片描述

OccHuman和CityPersons上的结果。为了研究Crowd-SAM在遮挡场景中的性能,我们将其与先进的同类方法Pose2Seg[61]进行了比较,结果如表3所示。值得注意的是,Pose2Seg是一个全监督检测器,而Crowd-SAM是一个少样本检测器。从结果中可以看出,Crowd-SAM在AP上领先Pose2Seg 9.2 % 9.2\% 9.2%,这证明了其在遮挡场景中的鲁棒性。此外,我们还将我们的方法应用到一个不那么拥挤但更真实的城市数据集CityPersons[58]上,如表4所示。Crowd-SAM在AP上比TFA 44高出 2.7 % 2.7\% 2.7%,比FSCE[39]高出 1.1 % A P 1.1\% \mathrm{AP} 1.1%AP,比De-FRCN[34]高出 7.8 % A P 7.8\% \mathrm{AP} 7.8%AP。总之,与先进的少样本目标检测器相比,我们的方法仍然具有竞争力,尽管它并不是专为稀疏场景设计的。
在这里插入图片描述

这些结果表明,Crowd-SAM在所有拥挤、遮挡和城市场景中都充分发挥了视觉基础模型(即SAM和DINO)的力量。

4.2、多类目标检测实验结果

为了进一步探索在更普遍设置下的可扩展性,我们设计了一个多类Crowd-SAM。多类版本的Crowd-SAM略有不同,即将二分类器替换为多分类器。然后,我们在广泛采用的通用目标检测基准COCO[24]和COCO-OCC[17](COCO的一个子集,主要由高遮挡比图像组成)上验证了多类Crowd-SAM。

我们将我们的方法与两种监督检测器进行了比较,即Faster R-CNN[36]和BCNet[17],并在表5中报告了结果。可以看出,我们的CrowdSAM在两个数据集上的性能与监督检测器相当,并且在比较COCO和COCO-OCC时,仅下降了 1.4 A P % 1.4 \mathrm{AP}\% 1.4AP%。这一小幅下降表明我们的方法对遮挡具有鲁棒性。

在这里插入图片描述

4.3、消融实验

模块消融实验。我们对Crowd-SAM的关键组件进行了消融实验,包括前景定位、EPS和PWD-Net,以验证它们的有效性。在表6中,当移除前景定位时,AP显著下降了 7.4 % 7.4\% 7.4%,召回率下降了 8.5 % 8.5\% 8.5%,这表明限制前景区域的重要性。对于EPS,一旦移除,AP下降了 0.6 % 0.6\% 0.6%。我们假设EPS不仅加速了密集提示的采样过程,还有助于关注图像中难以理解的部分,这些部分传达了模糊的语义信息。我们还在表7中将EPS与其他一些批量迭代器进行了比较。此外,我们发现PWD-Net是必不可少的,当移除它时,AP急剧下降到 17.0 % 17.0\% 17.0%。最后,我们指出多裁剪是一个强大的技巧,可以提高性能,对最终性能贡献了 7.0 % A P 7.0\% \mathrm{AP} 7.0%AP。总的来说,这些结果表明所有组件都是必不可少的。
在这里插入图片描述

EPS消融实验。我们通过将EPS与几个变体进行比较,对其进行了全面研究。我们仅对每个图像进行一次前向传播,以避免多裁剪引起的额外延迟。我们使用一个默认采样器,它遍历所有训练样本,以及一个具有停止阈值 K K K的随机迭代器作为对照。如表7所示,对于所有三个采样器,AP和召回率都随着网格大小的增加而增加。然而,当网格大小达到128时,默认采样器会出现内存不足错误,导致无法在此设置中使用。对于随机采样器,其性能受到 K K K的限制,网格大小大于64时仅带来有限的改进,例如 0.1 % A P 0.1\% \mathrm{AP} 0.1%AP。相反,我们的EPS受益于更大的网格大小,并取得了更好的结果。

在这里插入图片描述

PWD-Net消融实验。我们将PWD-Net与用全零占位符替换某些标记的变体进行了比较。我们还考虑了两种设计,即直接调整IoU头或学习一个并行的IoU头。如表8所示,所有三个标记,即掩码标记 M \mathcal{M} M、IoU标记 U \mathcal{U} U和语义标记 O \mathcal{O} O,都对最终结果有贡献。特别是,一旦移除 M \mathcal{M} M,AP就会下降 40.0 % 40.0\% 40.0%,这是一个灾难性的下降。这种下降表明,掩码标记包含了形状感知特征,这对于部分-整体区分任务至关重要。值得注意的是,当我们调整预训练的IoU头时,AP下降了 2.8 % 2.8\% 2.8%,这表明它容易对少量标记的图像过拟合。通过冻结SAM的IoU头,PWD-Net可以从大量分割数据中学习的形状感知知识中获益更多。

5、结论

本文提出了一种基于SAM的框架Crowd-SAM,用于拥挤场景中的目标检测和分割,旨在简化标注过程。对于每张图像,Crowd-SAM生成密集的提示以实现高召回率,并使用EPS来修剪冗余的提示。为了在遮挡情况下实现准确的检测,Crowd-SAM采用了PWD-Net,它利用几个信息丰富的标记来选择最适合的掩码。结合所提出的模块,Crowd-SAM在CrowdHuman上实现了 78.4 % 78.4\% 78.4%的AP,与全监督检测器相当,验证了拥挤场景中的目标检测可以从像SAM这样的基础模型中受益,同时保持数据效率。

需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》,课程链接 https://edu.csdn.net/course/detail/29865【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来!  代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《YOLOv4目标检测实战:训练自己的数据集》《YOLOv4-tiny目标检测实战:训练自己的数据集》《YOLOv4目标检测实战:人脸口罩佩戴检测》《YOLOv4目标检测实战:国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI智韵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值