弱监督论文阅读:P2BNet算法笔记

news2024/11/20 3:31:09

标题:Point-to-Box Network for Accurate Object Detection via Single Point Supervision
会议:ECCV2022
论文地址:https://link.springer.com/10.1007/978-3-031-20077-9_4
官方代码:http://www.github.com/ucas-vg/P2BNet
作者单位:中国科学院大学、俄勒冈大学、伊利诺伊大学香槟分校、北方电子设备研究所、Picsart AI Research(PAIR)

文章目录

  • Abstract
  • 1 Introduction
  • 2 Related Work
    • 2.1 Box-Supervised Object Detection
    • 2.2 Image-Supervised Object Detection
    • 2.3 Point-Supervised Object Detection
  • 3 Point-to-Box Network
    • 3.1 Coarse Pseudo Box Prediction
    • 3.2 Pseudo Box Refinement
  • 4 Experiments
    • 4.1 Experiment Settings
    • 4.2 Performance Comparisons
    • 4.3 Ablation Study
  • 5 Conclusion

Abstract

近年来,使用单点监督的目标检测受到了越来越多的关注。然而,点监督目标检测(point supervised object detection,PSOD)与边界框监督检测的性能差距仍然很大。在本文中,我们将如此大的性能差距归因于未能生成对多实例学习(MIL)至关重要的高质量建议包(proposal bag)。为了解决这个问题,我们给现成建议(off-the-shelf proposal,OTSP)方法引入了一种轻量级的替代,并由此创建了点到框网络(Point-to-Box Network,P2BNet),它可以通过以一种锚框式的(anchor-like)方式生成建议来构建目标间(inter-objects)平衡的建议包。P2BNet通过充分挖掘精确的位置信息,进一步构建实例级的包(instance-level bag),避免了多个目标的混合。最后,以级联的方式使用由粗到精的策略来改善建议与真值(GT)之间的IoU。受益于这些策略,P2BNet能够生成高质量的实例级包来用于目标检测。P2BNet在MS COCO数据集上相对于之前最好的PSOD方法平均精度(AP)提升了超过50%。这也证明了在点监督和边界框监督检测器之间弥补性能差距的巨大潜力。

1 Introduction

通过精确的边界框标注训练得到的目标检测器在学术界和工业界都得到了很好的评价。然而,收集高质量的边界框标注需要大量的人力努力。为了解决这个问题,弱监督目标检测(WSOD)使用低成本的图像级标注替代边界框标注。然而,由于缺乏重要的位置信息以及稠密目标难以区分,WSOD方法在复杂场景中表现不佳。另一方面,点监督目标检测(PSOD)可以提供关于目标的有识别力的位置信息,并且比通过边界框监督的方法成本要低得多。
在这里插入图片描述
近年来,point-based标注被广泛用于目标检测、目标定位、实例分割、动作定位等任务中。然而,点监督检测的方法和边界框监督的检测器之间的性能差距仍然很大。虽然边界框提供的位置信息比点更丰富是可以理解的,但我们认为这并不是唯一的原因。我们认为大多数PSOD方法并没有充分利用point-based标注的潜力。之前的工作使用现成建议(OTSP)方法(例如Selective Search、MCG和Edge Box等)来获得构建包的建议。尽管这些OTSP-based方法在弱监督检测器中有广泛的适应力,但它们在图1中存在以下问题:①包里有太多的背景建议。OTSP方法生成的与前景目标没有任何交集的建议框太多。②每个目标的正建议(positive proposals)是不平衡的。图2a显示了在COCO-17训练集上每个目标通过MCG产生的正建议,明显是不平衡的。③包里的大多数建议具有表明低质量建议的非常低的IoU(图2b)。此外,由于之前的PSOD方法仅构建图像级的包,无法在MIL训练过程中利用点标注,导致了同一包中不同目标的混合。这些问题都限制了构建的包的整体质量,从而导致模型的性能较差。
在这里插入图片描述
在本文中,我们提出P2BNet作为OTSP方法的替代,用于生成高质量的目标建议。P2BNet为每个目标生成的建议数量是平衡的,并且覆盖了不同的尺度和纵横比。此外,建议包是实例级而不是图像级的。这维护了给定建议包中的目标的特有性(),在MIL训练期间非常有用。为了进一步提高包的质量,在P2BNet中以级联的方式设计了由粗到精的过程。细化阶段包括两部分,即粗糙伪框预测(coarse pseudo-box prediction,CBP)和精确伪框细化(precise pseudo-box refinement,PBR)。CBP阶段预测目标的粗糙尺度(宽度和高度),而PBR阶段则迭代地微调尺度和位置。我们的P2BNet生成了高质量的、平衡的建议包,并保证了点标注在所有阶段(MIL训练前、中、后)中的贡献。在COCO上的详细实验表明,我们模型的有效性和鲁棒性大大优于以前的point-based检测器。我们的主要贡献如下:
− - 一种生成式的OTSP-free网络P2BNet被设计用来预测伪框。它生成目标间平衡的实例级包,有利于更好地优化MIL训练。此外,P2BNet比OTSP-base方法时间效率(time-efficient)高得多。
− - 提出了在P2BNet中使用CBP和PBR阶段的由粗到精的方式,以获得更高质量的建议包和更好的预测。
− - 我们提出的具有P2BNet的P2BNet-FR框架在单个准中心点(quasi-center point)监督下的检测性能将先前最好的PSOD方法的平均精度(AP)在COCO上提高了50%以上(相对),弥补了与边界框监督检测器之间的差距,在AP 50 _{50} 50上取得了可比的性能。

2 Related Work

在这一部分,我们简要讨论框监督、图像级监督和点级监督目标检测的研究现状。

2.1 Box-Supervised Object Detection

边界框监督目标检测是一种传统的目标检测范式,提供网络一个具体的类别和框信息。YOLO、SSD、RetinaNet等基于滑动窗口的单阶段检测器通过设置anchor来预测分类和边界框回归。两阶段检测器通过OTSP方法(如Fast R-CNN中的选择性搜索)或深度网络(如Faster R-CNN中的RPN)来预测建议框,并对过滤后的建议框进行稀疏分类和边界框回归。Transformer-based检测器(DETR、Deformable-DETR、和Swin-Transformer)出现,利用全局信息得到更好的表示。Sparse R-CNN将Transformer和CNN的优点结合到一个稀疏检测器中。一些文献研究了航空场景中的定向目标检测。然而,框级标注需要较高的成本。

2.2 Image-Supervised Object Detection

图像监督目标检测是WSOD中的传统领域。传统的图像监督的WSOD方法可分为MIL-based和CAM-based两种方式。
在MIL-based方法中,如果一个包至少包含一个正实例,则该包被正标记;否则为负标记。MIL的目标是从一个正包中选择正实例。WSDDN将MIL引入到WSOD中,提出了一个具有代表性的双流(two-stream)弱监督深度检测网络,其可以对正建议进行分类。OICR把迭代的方式引入到WSOD中,试图找到整体部分而不是有识别力的部分。PCL开发了建议簇学习(proposal cluster learning),将建议簇作为监督来指示目标最有可能出现的粗糙位置。随后,SLV引入空间似然投票来代替最高分数建议,进一步寻找目标的整个上下文。本文在点标注周围生成锚框式的(anchor-like)建议来作为一个包,并使用实例级的MIL来训练分类器。它改变了固定的预生成的建议(如OICR、PCL和UWSOD)以达到由粗到精的目的。
在CAM-based方法中,主要思想是生成类激活图(class activation map,CAM),利用阈值来选择高分数区域,并找到最大通用域(general domain)的最小外接矩形。WCCN使用三阶段的级联结构。第一阶段产生类激活图并获得初始建议,第二阶段是用于细化目标定位的分割网络,最后一个阶段是输出结果的MIL阶段。Acol利用对抗互补学习引入两个并行分类器进行目标定位,以缓解有识别力的区域。

2.3 Point-Supervised Object Detection

点级标注是一个相当新的创新。标注单个点的平均时间约为1.87s/幅,接近图像级标注(1.5s/幅),远低于边界框(34.5s/幅)。这个统计量是在VOC上进行的,它可以类比到COCO。Zhang等人引入中心点击(center-click)标注来代替框监督,用两次中心点击的误差来估计尺度。UFO 2 ^2 2设计了一个兼容标签、点、涂鸦、框标注等多种监督形式的网络。然而,这些框架都是基于OTSP方法,并不是专门为点标注而设计的。因此,在COCO数据集等复杂场景下性能有限且表现不佳。我们引入了一个新的不需要OTSP方法的具有P2BNet的框架。

3 Point-to-Box Network

P2BNet-FR框架由Point-to-Box Network(P2BNet)和Faster R-CNN(FR)组成。P2BNet使用点标注预测伪框来训练检测器。我们对Faster R-CNN使用标准的设置,没有任何点缀。因此,我们在本节详细介绍所提出的P2BNet。
P2BNet的结构如图3所示,包括粗糙伪框预测(CBP)阶段和伪框细化(PBR)阶段。CBP阶段预测目标的粗糙尺度(宽度和高度),而PBR阶段则迭代地微调尺度和位置。P2BNet的整体损失函数是这两个阶段的损失之和,即:
L p 2 b = L c b p + ∑ t = 1 T L p b r ( t ) (1) \mathcal{L}_{p2b}=\mathcal{L}_{cbp}+\sum_{t=1}^T\mathcal{L}_{pbr}^{(t)}\tag{1} Lp2b=Lcbp+t=1TLpbr(t)(1)其中,PBR包括 T T T次迭代,而 L p b r ( t ) \mathcal{L}_{pbr}^{(t)} Lpbr(t)是第 t t t次迭代的损失。
在这里插入图片描述

3.1 Coarse Pseudo Box Prediction

在CBP阶段,首先为每个目标以锚框的方式(anchor-style)生成不同宽度和高度的建议框,以标注的点作为框的中心。然后,提取采样的建议的特征来训练MIL分类器,以选择目标最合适的建议。最后,利用top- k k k合并策略来估计粗糙伪框。
CBP采样: 在标注点的周围固定采样。以点标注 p = ( p x , p y ) p=(p_x,p_y) p=(px,py)作为中心, s s s为大小, v v v用来调整纵横比,生成建议框 b = ( b x , b y , b w , b h ) b=(b_x,b_y,b_w,b_h) b=(bx,by,bw,bh),即 b = ( p x , p y , v ⋅ s , 1 v ⋅ s ) b=(p_x,p_y,v·s,\frac{1}{v}·s) b=(px,py,vs,v1s)。建议框采样的示意图如图4左所示。通过调整 s s s v v v,每个点标注 p j p_j pj生成一个不同尺度和纵横比的建议框包,记为 B j \mathcal{B}_j Bj j ∈ { 1 , 2 , . . . , M } j\in\{1,2,...,M\} j{1,2,...,M},其中 M M M是目标的数量)。所有的建议包被用来训练CBP模块中的MIL分类器,以点的类别标签作为监督。
有一个小问题是,过大的 s s s可能会导致大部分 b b b在图像之外,引入太多无意义的填充值。在这种情况下,我们对 b b b进行裁剪以保证其位于图像内部(见图4左),即:
b = ( p x , p y , m i n ( v ⋅ s , 2 ( p x − 0 ) , 2 ( W − p x ) ) , m i n ( 1 v ⋅ s , 2 ( p y − 0 ) , 2 ( H − p y ) ) ) (2) b=\left(p_x,p_y,min(v·s,2(p_x-0),2(W-p_x)),min(\frac{1}{v}·s,2(p_y-0),2(H-p_y))\right)\tag{2} b=(px,py,min(vs,2(px0),2(Wpx)),min(v1s,2(py0),2(Hpy)))(2)其中, W W W H H H表示图像尺寸。 ( p x − 0 ) (p_x-0) (px0) ( W − p x ) (W-p_x) (Wpx)分别是中心到图像左右边缘的距离。
在这里插入图片描述
CBP模块。 对于建议包 B j \mathcal{B}_j Bj,通过 7 × 7 7×7 7×7的RoIAlign和两个全连接(fc)层提取特征 F j ∈ R U × D \bold{F}_j\in\mathbb{R}^{U×D} FjRU×D,其中, U U U B j \mathcal{B}_j Bj中建议的数量, D D D是特征的维度。我们参考WSDDN,设计了双流结构作为MIL分类器,以寻找最佳的边界框区域来表示目标。具体来说,对 F j \bold{F}_j Fj应用分类分支 f c l s f_{cls} fcls得到 O j c l s ∈ R U × K \bold{O}_j^{cls}\in\mathbb{R}^{U×K} OjclsRU×K,然后它通过激活函数得到分类分数 S j c l s ∈ R U × K \bold{S}_j^{cls}\in\mathbb{R}^{U×K} SjclsRU×K,其中 K K K表示实例类别的数目。同样,通过实力选择分支 f i n s f_{ins} fins和激活函数得到实例分数 S j i n s ∈ R U × K \bold{S}_j^{ins}\in\mathbb{R}^{U×K} SjinsRU×K,即:
O j c l s = f c l s ( F j ) ,     [ S j c l s ] u k = e [ O j c l s ] u k / ∑ i = 1 K e [ O j c l s ] u i (3) \bold{O}_j^{cls}=f_{cls}(\bold{F}_j),~~~[\bold{S}_j^{cls}]_{uk}=e^{[\bold{O}_j^{cls}]_{uk}}/\sum_{i=1}^Ke^{[\bold{O}_j^{cls}]_{ui}}\tag{3} Ojcls=fcls(Fj),   [Sjcls]uk=e[Ojcls]uk/i=1Ke[Ojcls]ui(3) O j i n s = f c l s ( F j ) ,     [ S j i n s ] u k = e [ O j i n s ] u k / ∑ i = 1 U e [ O j i n s ] i k (4) \bold{O}_j^{ins}=f_{cls}(\bold{F}_j),~~~[\bold{S}_j^{ins}]_{uk}=e^{[\bold{O}_j^{ins}]_{uk}}/\sum_{i=1}^Ue^{[\bold{O}_j^{ins}]_{ik}}\tag{4} Ojins=fcls(Fj),   [Sjins]uk=e[Ojins]uk/i=1Ue[Ojins]ik(4)其中 [ ⋅ ] u k [·]_{uk} []uk表示矩阵中第 u u u行第 k k k列的值。通过计算分类分数与实例分数的Hadamard乘积得到建议得分 S j \bold{S}_j Sj,通过对 U U U个建议框的建议分数求和得到包分数 S ^ j \widehat{\bold{S}}_j S j,即:
S j = S j c l s ⊙ S j i n s ∈ R U × K ,     S ^ j = ∑ u = 1 U [ S j ] u ∈ R K (5) \bold{S}_j=\bold{S}_j^{cls}\odot\bold{S}_j^{ins}\in\mathbb{R}^{U×K},~~~\widehat{\bold{S}}_j=\sum_{u=1}^U[\bold{S}_j]_u\in\mathbb{R}^K\tag{5} Sj=SjclsSjinsRU×K,   S j=u=1U[Sj]uRK(5) S ^ j \widehat{\bold{S}}_j S j可以看做是分类分数 [ S j c l s ] u [\bold{S}_j^{cls}]_u [Sjcls]u与对应选择分数 [ S j i n s ] u [\bold{S}_j^{ins}]_u [Sjins]u的加权之和。
CBP损失。 CBP模块中的MIL损失(命名为 L m i l 1 \mathcal{L}_{mil1} Lmil1以区别PBR中的MIL损失)使用交叉熵损失的形式,定义为:
L c b p = α m i l 1 L m i l 1 = − α m i l 1 M ∑ j = 1 M ∑ k = 1 K [ c j ] k l o g ( [ S ^ j ] k ) + ( 1 − [ c j ] k ) l o g ( 1 − [ S ^ j ] k ) (6) \mathcal{L}_{cbp}=\alpha_{mil1}\mathcal{L}_{mil1}=-\frac{\alpha_{mil1}}{M}\sum_{j=1}^M\sum_{k=1}^K[\bold{c}_j]_k\mathrm{log}([\widehat{\bold{S}}_j]_k)+(1-[\bold{c}_j]_k)\mathrm{log}(1-[\widehat{\bold{S}}_j]_k)\tag{6} Lcbp=αmil1Lmil1=Mαmil1j=1Mk=1K[cj]klog([S j]k)+(1[cj]k)log(1[S j]k)(6)其中, c j ∈ { 0 , 1 } K \bold{c}_j\in\{0,1\}^K cj{0,1}K是独热(one-hot)类别标签, α m i l 1 \alpha_{mil1} αmil1为0.25。CBP损失是使每个建议正确地预测其所属的类别和实例。
最后,对每个目标的建议分数 S j \bold{S}_j Sj最高的top- k k k个框进行加权,得到粗糙伪框,用于后续的PBR采样。

3.2 Pseudo Box Refinement

PBR阶段旨在微调伪框的位置、宽度和高度,它可以以级联的方式迭代地执行来获得更好的性能。通过在小范围内调整上一阶段(或迭代)得到的伪框的高度和宽度,同时抖动其中心位置,来生成更细化的建议框作为模块训练的正样本。而且,由于正建议包是在局部区域产生的,因此可以在远离建议包的地方采样负样本以抑制背景。PBR模块也对预测分数最高的top- k k k个建议进行加权,得到细化后的伪框,作为P2BNet的最终输出。
PBR采样。 在估计的框周围自适应采样。如图4 右所示,对于上一阶段(或迭代)得到的每个粗糙伪框 b ∗ = ( b x ∗ , b y ∗ , b w ∗ , b h ∗ ) b^*=(b_ x^*,b_y^*,b_w^*,b_h^*) b=(bx,by,bw,bh),我们用 s s s v v v调整其尺度和纵横比,用 o x o_x ox o y o_y oy抖动其位置,得到更细化的建议 b = ( b x , b y , b w , b h ) b=(b_x,b_y,b_w,b_h) b=(bx,by,bw,bh)
b w = v ⋅ s ⋅ b w ∗ ,     b h = 1 v ⋅ s ⋅ b h ∗ (7) b_w=v·s·b_w^*,~~~b_h=\frac{1}{v}·s·b_h^*\tag{7} bw=vsbw,   bh=v1sbh(7) b x = b x ∗ + b w ⋅ o x ,     b y = b y ∗ + b h ⋅ o y (8) b_x=b_ x^*+b_w·o_x,~~~b_y=b_ y^*+b_h·o_y\tag{8} bx=bx+bwox,   by=by+bhoy(8)这些更细化的建议将作为正建议包 B j \mathcal{B}_j Bj来训练PBR模块。
此外,为了更好地抑制背景,在PBR采样中引入了负样本。我们随机采样许多建议框,它们与所有包中的所有建议都具有较小的IoU(默认设置为小于0.3),组成PBR模块的负样本集合 N \mathcal{N} N。通过伪框的分布对建议框进行采样,得到高质量的建议框以更好地优化(如图5所示)。
在这里插入图片描述
PBR模块。 PBR模块具有与CBP模块相似的结构。它与CBP共享主干网络和两个全连接层,并且也有一个分类分支 f c l s f_{cls} fcls和一个实例选择分支 f i n s f_{ins} fins。注意, f c l s f_{cls} fcls f i n s f_{ins} fins在不同阶段和迭代之间不共享参数。对于实例选择分支,我们采用与CBP模块相同的结构,利用公式4来预测建议包 B j \mathcal{B}_j Bj的实例分数 S j i n s \bold{S}_j^{ins} Sjins。不同的是,分类分支使用sigmoid激活函数 σ ( x ) \sigma(x) σ(x)来预测分类分数 S j c l s \bold{S}_j^{cls} Sjcls,即:
σ ( x ) = 1 / ( 1 + e − x ) ,     S j c l s = σ ( f c l s ( F j ) ) ∈ R U × K (9) \sigma(x)=1/(1+e^{-x}),~~~\bold{S}_j^{cls}=\sigma(f_{cls}(\bold{F}_j))\in\mathbb{R}^{U×K}\tag{9} σ(x)=1/(1+ex),   Sjcls=σ(fcls(Fj))RU×K(9)这种形式使其可以进行多标签分类(multi-label classification),可以区分来自不同目标的重叠的建议框。根据公式5的形式,使用当前阶段的 S j c l s \bold{S}_j^{cls} Sjcls S j i n s \bold{S}_j^{ins} Sjins计算包分数 S ^ j ∗ \widehat{\bold{S}}_j^* S j
对于负样本集合 N \mathcal{N} N,我们计算其分类分数为:
S n e g c l s = σ ( f c l s ( F n e g ) ) ∈ R ∣ N ∣ × K (10) \bold{S}_{neg}^{cls}=\sigma(f_{cls}(\bold{F}_{neg}))\in\mathbb{R}^{|\mathcal{N}|×K}\tag{10} Snegcls=σ(fcls(Fneg))RN×K(10)PBR损失。 PBR损失由正包的MIL损失 L m i l 2 \mathcal{L}_{mil2} Lmil2和负样本的负损失 L n e g \mathcal{L}_{neg} Lneg组成,即:
L p b r = α m i l 2 L m i l 2 + α n e g L n e g (11) \mathcal{L}_{pbr}=\alpha_{mil2}\mathcal{L}_{mil2}+\alpha_{neg}\mathcal{L}_{neg}\tag{11} Lpbr=αmil2Lmil2+αnegLneg(11)其中, α m i l 2 = 0.25 \alpha_{mil2}=0.25 αmil2=0.25 α n e g = 0.75 \alpha_{neg}=0.75 αneg=0.75是本文中的设置。
①MIL损失。 PBR阶段中的MIL损失 L m i l 2 \mathcal{L}_{mil2} Lmil2定义为:
F L ( ζ , τ ) = − ∑ k = 1 K [ τ ] k ( 1 − [ ζ ] k ) γ l o g ( [ ζ ] k ) + ( 1 − [ τ ] k ) ( [ ζ ] k ) γ l o g ( 1 − [ ζ ] k ) (12) \mathrm{FL}(\zeta,\tau)=-\sum_{k=1}^K[\tau]_k(1-[\zeta]_k)^\gamma\mathrm{log}([\zeta]_k)+(1-[\tau]_k)([\zeta]_k)^\gamma\mathrm{log}(1-[\zeta]_k)\tag{12} FL(ζ,τ)=k=1K[τ]k(1[ζ]k)γlog([ζ]k)+(1[τ]k)([ζ]k)γlog(1[ζ]k)(12) L m i l 2 = 1 M ∑ j = 1 M ⟨ c j T , S ^ j ∗ ⟩ ⋅ F L ( S ^ j , c j ) (13) \mathcal{L}_{mil2}=\frac{1}{M}\sum_{j=1}^M\langle\bold{c}_j^T,\widehat{\bold{S}}_j^*\rangle·\mathrm{FL}(\widehat{\bold{S}}_j,\bold{c}_j)\tag{13} Lmil2=M1j=1McjT,S jFL(S j,cj)(13)其中, F L ( ζ , τ ) \mathrm{FL}(\zeta,\tau) FL(ζ,τ)是focal loss, γ \gamma γ按照其原文设置为2。 S ^ j ∗ \widehat{\bold{S}}_j^* S j表示上一次PBR迭代的包分数(对于PBR的第一次迭代,使用CBP中的包分数)。 ⟨ c j T , S ^ j ∗ ⟩ \langle\bold{c}_j^T,\widehat{\bold{S}}_j^*\rangle cjT,S j表示两个向量的内积,意味着上一阶段或迭代在真值类别上预测的包分数。为了稳定训练,利用这个分数对每个目标的FL进行加权。
②负损失。 传统的MIL将属于其它类别的建议框视为负样本。为了进一步抑制背景,我们在PBR阶段采样更多的负样本,并引入负损失( γ \gamma γ也按照FL设定为2),即:
β = 1 M ∑ j = 1 M ⟨ c j T , S ^ j ∗ ⟩ ,     L n e g = − 1 ∣ N ∣ ∑ N ∑ k = 1 K β ⋅ ( [ S n e g c l s ] k ) γ l o g ( 1 − [ S n e g c l s ] k ) (14) \beta=\frac{1}{M}\sum_{j=1}^M\langle\bold{c}_j^T,\widehat{\bold{S}}_j^*\rangle,~~~\mathcal{L}_{neg}=-\frac{1}{|\mathcal{N}|}\sum_{\mathcal{N}}\sum_{k=1}^K\beta·([\bold{S}_{neg}^{cls}]_k)^\gamma\mathrm{log}(1-[\bold{S}_{neg}^{cls}]_k)\tag{14} β=M1j=1McjT,S j,   Lneg=N1Nk=1Kβ([Snegcls]k)γlog(1[Snegcls]k)(14)

4 Experiments

4.1 Experiment Settings

数据集和评价指标。 介绍了实验用的数据集和评价指标。mIoU p r e d _{pred} pred由训练集中所有目标的预测伪框与其对应的真值边界框之间的平均IoU计算得到。它可以直接评估P2BNet将标注的点转化为精确伪框的能力。
实现细节。 介绍了实验中的一些细节设置。在P2BNet中,我们使用多尺度(480、576、688、864、1000、1200)作为短边,在训练时调整图像尺寸,在推理时使用单尺度(1200)。我们选择默认设置的经典的Faster R-CNN FPN(主干是ResNet-50)作为检测器,训练和推理时使用单尺度(800)图像。
准中心点标注。 我们提出了一种对目标检测任务友好且成本较低的准中心(quasi-center,QC)点标注。在实际场景中,我们要求标注者以宽松的规则标注非高限制(non-high limit)中心区域的目标。由于实验中的数据集已经用边界框或掩码进行了标注,因此人工标注的点在中心区域服从高斯分布是合理的。我们利用Yu等人定义的具有中心椭圆约束的修正高斯分布(Rectified Gaussian Distribution,RG)。对于一个边界框 b = ( b x , b y , b w , b h ) b=(b_x,b_y,b_w,b_h) b=(bx,by,bw,bh),其中心椭圆可以定义为 E l l i p s e ( K ) Ellipse(\mathcal{K}) Ellipse(K),用 ( b x , b y ) (b_x,b_y) (bx,by)作为椭圆的中心, ( K ⋅ b w , K ⋅ b h ) (\mathcal{K}·b_w,\mathcal{K}·b_h) (Kbw,Kbh)作为椭圆的两个轴。此外,针对上述规则下大目标的绝对位置偏移过大的问题,我们限制两个坐标轴不超过96像素。如果目标的掩码 M a s k Mask Mask与中心椭圆 E l l i p s e ( K ) Ellipse(\mathcal{K}) Ellipse(K)重叠,则用 V V V表示相交的区域。如果没有相交的区域,那么 V V V表示整个 M a s k Mask Mask。当从边界框标注生成时,这些框被视为掩码。接下来, R G RG RG的定义为:
R G ( p ; μ , σ , K ) = { G a u s s ( p ; μ , σ ) ∫ V G a u s s ( p ; μ , σ ) d p , p ∈ V 0 , p ∉ V (15) RG(p;\mu,\sigma,\mathcal{K})=\left\{\begin{matrix} \frac{Gauss(p;\mu,\sigma)}{\int_VGauss(p;\mu,\sigma)dp},&p\in V\\ 0,&p\notin V \end{matrix}\right.\tag{15} RG(p;μ,σ,K)={VGauss(p;μ,σ)dpGauss(p;μ,σ),0,pVp/V(15)其中, μ \mu μ σ \sigma σ R G RG RG的均值和标准差。 K \mathcal{K} K决定了 E l l i p s e ( K ) Ellipse(\mathcal{K}) Ellipse(K)。本文选择 R G ( p ; 0 , 1 4 , 1 4 ) RG(p;0,\frac{1}{4},\frac{1}{4}) RG(p;0,41,41)生成QC点标注。

4.2 Performance Comparisons

在这里插入图片描述
在这里插入图片描述
和点监督、弱监督以及框监督方法的对比实验,具体的实验结论可以参照原文。

4.3 Ablation Study

除了表2b中的框合并策略部分和表3d中不同检测器部分( k = 4 k=4 k=4)外,top- k k k设置为 k = 7 k=7 k=7
在这里插入图片描述
在这里插入图片描述
P2BNet中的训练损失。 ①CBP损失。 作为对比,我们实施了 L p o s \mathcal{L}_{pos} Lpos,它将包中的所有建议框都视为正样本。我们发现它很难优化,并且性能很差,证明了我们提出的KaTeX parse error: Expected 'EOF', got '}' at position 17: …mathcal{L}_mil1}̲用于伪框预测的有效性。粗糙建议包可以覆盖高IoU的大部分目标,致使缺失率较低。但由于尺度和纵横比是粗糙的,中心位置需要调整,性能仍有细化的潜力。②PBR损失。 如果仅有 L m i l 2 \mathcal{L}_{mil2} Lmil2,性能会下降,主要原因是级联方式的误差累积focal loss的负样本不足。 S i g m o i d Sigmoid Sigmoid激活函数没有显式的负样本来抑制背景,因此引入负采样和负损失 L n e g \mathcal{L}_{neg} Lneg。性能分别提升,表明对其进行优化是必要且有效的。我们还对mIoU p r e d _{pred} pred进行了评估,讨论预测伪框的质量。在PBR阶段使用 L m i l 2 \mathcal{L}_{mil2} Lmil2 L n e g \mathcal{L}_{neg} Lneg,mIoU提升了,表明伪框的质量更好了。受Yu等人的启发,我们实施了 L p e s u d o L_{pesudo} Lpesudo,将CBP阶段的伪框视为正样本。然而, L p e s u d o L_{pesudo} Lpesudo限制了细化,性能下降了。在表3 c中,如果在PBR阶段去除建议框的抖动策略,性能也会下降。
PBR中的细化次数。 使用两次细化可以达到性能饱和,我们选择一次细化作为默认配置。
包的合并策略。 我们使用top- k k k分数平均权重作为合并策略。我们发现超参数 k k k轻微地敏感,可以很容易地推广到其它数据集,如表2b所示,并且只有top- 1 1 1或top- f e w few few的建议框在框合并中起主要作用。 k = 4 k=4 k=4时性能最好。在推理时,如果将包分数 S \bold{S} S替换为分类分数 S c l s \bold{S}^{cls} Scls进行合并,性能会下降。
平均召回率。 如表3a所示,我们的OTSP-free方法更善于发现目标。
不平衡采样的分析。 为了演示不平衡采样的影响,我们为每个目标采样不同数量的建议框,并在训练期间的每个epoch中保持它们不变。表3b中的性能下降表明了不平衡采样的负面影响。
不同的检测器。 如表3d所示,我们的框架在其它检测器上表现出了有竞争力的性能。

5 Conclusion

在本文中,我们深入分析了OTSP-based的PSOD框架中存在的不足,并进一步提出了一种新的不需要OTSP的网络P2BNet来获得目标间平衡且高质量的建议包。由粗到精的策略将伪框的预测分为CBP和PBR阶段。在CBP阶段,围绕标注的点进行固定采样,通过实例级MIL预测粗糙伪框。PBR阶段在估计框周围进行自适应采样,以级联的方式微调预测框。如上所述,P2BNet充分利用点信息来生成高质量的建议包,更有利于优化检测器(FR)。值得注意的是,概念上简单的P2BNet-FR框架在单个点标注上取得了SOTA的性能。

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

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

相关文章

2023年网络安全竞赛——Python渗透测试PortScan.py

端口扫描Python渗透测试:需求环境可私信博主获取 任务环境说明: 服务器场景:PYsystem0041服务器场景操作系统:未知服务器场景FTP用户名:anonymous 密码:空1. 从靶机服务器的FTP上下载PortScan.py,编辑Python程序PortScan.py,实现

操作系统核心知识点整理--内存篇

操作系统核心知识点整理--内存篇按段对内存进行管理内存分区内存分页为什么需要多级页表TLB解决了多级页表什么样的缺陷?TLB缓存命中率高的原理是什么?段页结合: 为什么需要虚拟内存?虚拟地址到物理地址的转换过程段页式管理下程序如何载入内存?页面置…

NCNN Conv量化详解1

1. NCNN的Conv量化计算流程 正常的fp32计算中,一个Conv的计算流程如下: 在NCNN Conv进行Int8计算时,计算流程如下: NCNN首先将输入(bottom_blob)和权重(weight_blob)量化成INT8,在INT8下计算卷积,然后反量化到fp32,再和未量化的bias相加,得到输出(top_blob) 输入和…

学了一年Java的我,想转嵌入式了

秋名山码民的主页 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 🙏作者水平有限,如发现错误,还请私信或者评论区留言! 目录前言为啥我想去转行?如果我现在选择转硬件,我…

【华为OD机试模拟题】用 C++ 实现 - 相同字符连续出现的最大次数(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

计算机网络——问答2023自用

1、高速缓冲存储器Cache的作用? 这种局部存储器介于CPU与主存储器DRAM之间,一般由高速SRAM构成,容量小但速度快,引入它是为了减小或消除CPU与内存之间的速度差异对系统性能带来的影响 (Cache可以保存CPU刚用过或循环使…

【react storybook】从零搭建react脚手架,并使用storybook发布组件库到npm,并生成可视化UI文档

storybook成品展示开发准备开发组件写MDX文档发布文档发布组件成品展示 可视化UI文档页面: 可视化UI文档地址: https://guozia007.gitee.io/storybook-ui/?path/docs/mdx-button--default-story组件库地址: https://www.npmjs.com/pac…

Vmware虚拟机无法联通主机解决方法二

昨天在遇到了VMware 虚拟机无法联通主机,导致我在CentOS-7 搭建的伪Hadoop3 服务,无法访问管理平台,使用将网络编辑器修改为“桥接”模式解决。今天在学习HBase 时,昨天的问题又重新了,我通过SSH 工具MobaXterm 都无法…

《第一行代码》 第八章:应用手机多媒体

一&#xff0c;使用通知 第一步&#xff0c;创建项目&#xff0c;书写布局 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical"android:layout_width"match_parent"android:layout_he…

【数据结构趣味多】Map和Set

1.概念及场景 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 在此之前&#xff0c;我还接触过直接查询O(N)和二分查询O(logN)&#xff0c;这两个查询有很多不足之出&#xff0c;直接查询的速率太低&#xff0c;而二分查…

如何压缩RAR格式文件?

RAR是我们日常生活工作中经常用到的压缩文件格式之一&#xff0c;那么RAR文件如何压缩呢&#xff1f; 不管压缩哪种格式的压缩文件&#xff0c;我们都需要用到压缩软件。针对RAR格式&#xff0c;我们可以选择最常见的WinRAR&#xff0c;当然如果有同样适用于RAR格式的压缩软件…

不写注释就是垃圾

最近Linux6.2出来了增加了很多新的东西&#xff0c;有看点的是&#xff0c;Linux确实要可以在Apple M1上面运行了&#xff0c;这应该是一个很大的新闻&#xff0c;如果有这么稳定的硬件支持&#xff0c;那对于Linux来说相当于又打下了一大片的江山。其中关于Linux6.2的特性罗列…

cesium: 显示闪烁的点(004)

第004个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置闪烁的点。主要是介绍entity>point 相关的属性设置 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共107行)相关API参考:专栏目标示例效果 配…

一个阿里P6的说不会接口自动化测试,他不会是自己评的吧...

序 近期和一个阿里的测试工程师交流了一波&#xff0c;他竟然说我不会接口自动化测试&#xff0c;我当场就不服了我说你P6自己评级的吧&#xff0c;今天就带大家好好盘一盘接口自动化&#xff0c;本着以和大家交流如何实现高效的接口测试为出发点&#xff0c;本文包含了我在接…

27. 移除元素 26. 删除有序数组中的重复项 88. 合并两个有序数组(双指针遍历)

目录[27. 移除元素-力扣](https://leetcode.cn/problems/remove-element/description/?languageTagsc)[26. 删除有序数组中的重复项](https://leetcode.cn/problems/remove-duplicates-from-sorted-array/)[88. 合并两个有序数组](https://leetcode.cn/problems/merge-sorted-…

Synchronized与锁升级

文章目录先从阿里及其他大厂面试题说起本章路线总纲Synchronized的性能变化synchronized锁种类及升级步骤JIT编译器对锁的优化小总结先从阿里及其他大厂面试题说起 谈谈你对synchronized的理解 synchronized锁升级你聊聊 本章路线总纲 说明&#xff1a; synchronized锁&a…

Java-排序链表问题

Java-排序链表问题题目题解方法&#xff1a;自顶向下归并排序算法题目 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 示例 2&#xff1a; 示例 3&#xff1a; 提示&#xff1a; *链表中节点的数目在范围 [0, 5 * 104]…

Linux 练习一(常用命令的练习)

文章目录一、Linux 用户管理及文件操作第一段练习记录&#xff1a;主要对用户进行删除添加设置密码等操作第二段练习记录&#xff1a;主要包括权限设置和查找命令第三段练习记录&#xff1a;关于文件的命令练习第四段练习记录&#xff1a;查找命令及查看内存命令的使用二、Linu…

ClickHouse高可用集群分片-副本实操(四)

目录 一、ClickHouse高可用之ReplicatedMergeTree引擎 二、 ClickHouse高可用架构准备-环境说明和ZK搭建 三、高可用集群架构-ClickHouse副本配置实操 四、ClickHouse高可用集群架构分片 4.1 ClickHouse高可用架构之两分片实操 4.2 ClickHouse高可用架构之两分片建表实操 一…

AXI协议

AXI 的英文全称是 Advanced eXtensible Interface&#xff0c;即高级可扩展接口&#xff0c;它是 ARM 公司所提出的AMBA&#xff08;Advanced Microcontroller Bus Architecture&#xff09;协议的一部分。AXI 协议就是描述了主设备和从设备之间的数据传输方式&#xff0c;在该…