GA-RPN 翻译

Region Proposal by Guided Anchoring

摘要

region anchors是现代对象检测技术的基石。SOTA检测器主要依赖于dense anchoring方案,其中anchor以预定义的一组scale和aspect ratio在空间区域上均匀采样。在本文中,我们重新审视了这个基础阶段。我们的研究表明,可以更有效和高效地做到这一点。具体来说,我们提出了一个替代方案,命名为 Guided Anchoring,它利用语义特征来引导anchoring。该方法同时预测感兴趣对象中心可能存在的位置以及不同位置的scale和aspect ratio。在预测anchor形状的基础上,我们使用特征自适应模块来缓解特征不一致。我们还研究了使用高质量的proposals来提高检测性能。anchoring方案可以无缝地集成到proposals方法和检测器中。使用Guided Anchoring,与RPN baseline相比,我们在MS COCO上的召回率提高了9.1%,anchor减少了90%。我们还在 Fast R-CNN、Faster R-CNN 和 RetinaNet 中采用了 Guided Anchoring,分别将检测 mAP 提高了 2.2%、2.7% 和 1.2%。代码将在https://github.com/open-mmlab/mmdetection上提供。

1. 引言

anchor是预测proposals(对于 two-stage 检测器)或最终bounding boxes(对于single-stage检测器)的回归参考和分类候选。现代目标检测pipelines通常从一大组密集分布的anchor开始。以流行的目标检测框架Faster RCNN[27]为例,它首先从密集的anchor集合中生成region proposals,然后将它们分类为特定的类,并通过bounding box回归来细化它们的位置。

合理的anchor设计有两条大体的规则:对齐和一致性。首先,为了使用卷积特征作为anchor的表征,anchor中心需要与feature map像素很好地对齐。其次,感受野和语义范围应该与feature map不同位置上anchor的比例和形状一致。sliding window是一种简单且被广泛采用的遵循规则的anchoring方案。对于大多数检测方法,anchor都是由这样一个统一的方案定义的,其中feature map中的每个位置都与具有预定义scale和aspect ratio的k个anchor相关联。

anchor-based检测pipelines在benchmarks[6,20,7,5]和real-world系统中都被证明是有效的。然而,上述的统一的anchoring方案不一定是生成anchor的最佳方式。该方案可能导致两个困难:(1)必须为不同的问题预先定义一组固定aspect ratio的anchor。错误的设计可能会影响检测器的速度和精度。(2)为了保持足够高的proposals召回率,需要大量的anchor,而这些anchor大多对应的是与感兴趣对象无关的错误候选。同时,大量的anchor会导致很大的计算开销,特别是当pipelines在proposals阶段涉及heavy classifier时。

在这项工作中,我们提出了一种更有效的方法来准备anchor,目的是缓解手工挑选的先验的问题。我们的方法的动机是观察到对象在图像上分布不均匀。对象的比例还与图像内容、其位置和场景的几何形状密切相关。根据这一直觉,我们的方法分两步生成稀疏的anchors:首先识别可能包含对象的子区域,然后确定不同位置的形状。

可学习的anchor形状是有前景的,但它打破了上述一致性规则,因此对学习anchor表征以进行准确分类和回归提出了新的挑战。anchor的scales and aspect ratios现在是可变的而不是固定的,因此不同的feature map像素必须学习适合相应anchor的合适表征。为了解决这个问题,我们引入了一个有效的模块来适应基于anchor几何的特征。

基于上述的guided anchoring和特征自适应方案,我们构造了Guided Anchoring Region Proposal Net-
work (GA-RPN)。由于采用了动态预测anchor,与采用密集anchor方案的RPN baseline相比,该方法的召回率提高了9.1%,而anchor数量减少了90%。我们预测scale和aspect ratio,而不是基于预定义的列表将它们固定,我们的方案可以更有效地处理高大或宽大的对象。除了region proposals,guided anchoring方案可以很容易地集成到任何依赖anchoring的检测器中。使用我们的方案可以实现性能提升。例如,GA-Fast-RCNN、GA-Faster-RCNN和GA-RetinaNet在COCO数据集上的整体mAP比在使用sliding window anchoring的baseline上分别提高了2.2%、2.7%和1.2%。此外,我们探索了高质量proposals的使用,并提出了使用GA-RPN proposals的微调方案,它可以提高任何训练好的模型的性能,例如,它将完全收敛的Faster R-CNN模型从37.4%提高到39.6%,仅用了3个 epochs。

这项工作的主要贡献在于几个方面。(1)我们提出了一种新的anchoring方案,它能够预测非均匀和任意形状的anchor,而不是密集和预定义的anchor。(2)用两个分解的条件分布来描述联合anchor分布,并设计了两个模块分别对它们进行建模。(3)研究了特征与anchor对齐的重要性,设计了基于anchor形状的特征自适应模块。(4)我们研究了two-stage检测器的高质量proposals的使用,并提出了一个方案来提高经过训练的模型的性能。

2. 相关工作

Sliding window anchors在目标检测中。在feature map中使用 sliding window的方式生成anchor已被各种基于anchor的检测器广泛采用。two-stage方法已成为现代目标检测领域的主流范式。Faster RCNN[27]提出Region Proposal Network(RPN)来生成对象proposals。它使用一个小的完全卷积网络将每个sliding window anchor映射到一个低维特征。这种设计在后来的two-stage方法[3,18,12]中也被采用。MetaAnchor[32]将元学习引入anchor生成。已经有尝试[8,9,23,31,33,34,1,2]在早期layers或阶段应用级联体系结构以拒绝简单样本,并迭代回归bounding boxes以进行渐进细化。与两阶段方法相比,single-stage pipeline跳过对象proposals生成,并且在一次评估中预测bounding boxes和class scores。虽然省略了proposals步骤,但 single-stage方法仍然使用由anchor boxes产生的anchor boxes。例如,SSD[21]和DenseBox[14]密集地从feature map生成anchor,并像多类别RPN一样对它们进行评估。RetinanNet[19]引入了focal loss以解决前景-背景类别不平衡的问题。YOLOv2[26]采用 sliding window anchors进行分类和空间位置预测,以达到比以往更高的召回率。

比较和差异。我们总结了该方法与传统方法的不同之处。(1)以前的方法(single-stage, two-stage and multi-stage)主要依靠sliding window实现密集均匀的anchor。我们摒弃了sliding window方案,提出了一种更好的方法来指导anchoring和生成sparse anchors,这是以前没有探索过的。(2)级联检测器采用不止一个阶段来逐步细化bounding boxes,导致模型参数较多,推理速度较慢。这些方法采用RoI Pooling或ROI Align来提取bounding boxes的对准特征,对于proposal生成或single-stage检测器来说代价太高。(3)Anchor-free方法[14、15、25]通常具有简单的pipelines,并在单一阶段内产生最终检测结果。由于没有anchor,和基于anchor的进一步细化,他们缺乏处理复杂场景和情况的能力。我们的重点是稀疏和非统一的anchoring方案,并使用高质量的proposals来提高检测性能。为了实现这一目标,我们必须解决基于anchor的方法所特有的不对准和不一致问题。(4)一些single-shot检测器[33,30]通过多重回归和分类来细化anchor。我们的方法与他们有很大的不同。我们不是逐步细化anchor,而是预测anchor的分布,这些分布被分解为位置和形状。传统的方法没有考虑anchor和特征之间的对齐,因此它们多次回归anchor(用[x,y,w,h]表示),破坏了对齐和一致性。相反,我们强调这两条规则的重要性,所以我们只预测anchor形状,而不是固定anchor中心,并根据预测的形状调整特征。

3. Guided Anchoring

anchor是现代目标检测的基础pipelines.。主流框架,包括two-stage 和 single-stage 方法,大多依赖于anchor的统一排列。具体地说,一组具有预定义scale和aspect ratio的anchor将被部署在大小为W×H的feature map上,步长为s。该方案效率低下,因为许多anchor被放置在感兴趣对象不太可能存在的区域。此外,这种精心挑选的先验不切实际地为对象假定了一组固定的形状(即,scale和aspect ratio)。

在这项工作中,考虑到对象位置和形状的不均匀分布,我们的目标是开发一种更有效的anchoring方案来排列具有可学习形状的anchor。guided anchoring方案的工作方式如下。对象的位置和形状可以用(x,y,w,h)形式的四元组来表征,其中(x,y)是中心的空间坐标,w是宽度,h是高度。假设我们从给定的图像 I I I 中绘制一个对象,则其位置和形状可以被认为遵循以 i i i 为条件的分布,如下所示:
p ( x , y , w , h ∣ I ) = p ( x , y ∣ I ) p ( w , h ∣ x , y , I ) ( 1 ) p(x, y, w, h \mid I)=p(x, y \mid I) p(w, h \mid x, y, I) (1) p(x,y,w,hI)=p(x,yI)p(w,hx,y,I)1
这种分解抓住了两个重要的直觉:(1)给定一张图像,对象可能只存在于某些区域; (2) 物体的形状,即scale和aspect ratio,与它的位置密切相关。
在这里插入图片描述

按照这个公式,我们设计了一个anchor生成模块,如图 1 的红色虚线框所示。这个模块是一个由两个分支组成的网络,分别用于位置和形状预测。给定图像 L L L,我们首先导出特征图 F I F_I FI。在 F I F_I FI 之上,位置预测分支生成指示对象可能位置的概率图,而形状预测分支预测与位置相关的形状。给定两个分支的输出,我们通过选择预测概率高于某个阈值的位置和每个选定位置的最可能形状来生成一组anchor。由于anchor形状可以变化,不同位置的特征应该捕获不同范围内的视觉内容。考虑到这一点,我们进一步引入了一个特征适应模块,它根据anchor的形状来适配特征。

上述anchor生成过程基于单个feature map。对象检测 [18, 19] 的最新进展表明,对多个不同级别的feature map进行操作通常很有帮助。因此,我们按照 FPN 架构 [18] 开发了一种多级anchor生成方案,该方案在多个feature map上收集anchor。请注意,在我们的设计中,生成anchor的参数在所有涉及的特征级别之间共享,因此该方案是parameter-efficient的。

3.1. anchor位置预测

如图1所示,anchor位置预测分支生成一个与输入feature map F I F_I FI 大小相同的概率图 p ( ⋅ F I ) p(·F_I) p(FI),其中每个条目 p ( i , j ∣ F I ) p(i,j | F_I) p(ijFI)对应于 I I I 上坐标为 ( ( i + 1 2 ) s , ( j + 1 2 ) s ) ((i+\frac12)s,(j+\frac12)s) ((i+21)s(j+21)s)的位置,其中s是feature map的步长,即相邻anchor之间的距离。条目的值表示对象中心存在于该位置的概率。

在我们的公式中,概率映射 p ( i , j ∣ F I ) p(i,j | F_I) p(ijFI)是使用子网络 N L \mathcal{N}_{L} NL预测的。该网络对基本feature map F I F_I FI进行1×1卷积,以获得目标得分图,然后通过逐元素 使用sigmoid 函数将其转换为概率值。虽然更深层次的子网络可以做出更准确的预测,但我们凭经验发现,跟着sigmoid变换的一个卷积层在效率和准确性之间取得了很好的平衡。

基于得到的概率图,我们通过选择对应概率值大于预定阈值 ϵ L \epsilon_{L} ϵL 的位置来确定对象可能存在的活动区域。该过程可以在保持相同召回率的情况下过滤掉90%的区域。如图4(B)所示,天空和海洋等区域被排除在外,而anchor密集地集中在人和冲浪板周围。由于不需要考虑那些被排除的区域,我们用masked convolution[17,28]来代替随后的卷积层,以获得更有效的推断。

3.2. Anchor Shape Prediction

在确定对象的可能位置之后,我们的下一步是确定每个位置可能存在的对象的形状。这是由anchor形状预测分支完成的,如图1所示。该分支与传统的bounding box回归非常不同,因为它不会改变anchor位置,也不会导致anchor和anchor特征之间的不对齐。具体地说,在给定feature map F I F_I FI 的情况下,该分支将预测每个位置的最佳形状 ( w , h ) (w,h) (wh),使用与最近的ground-truth bounding box具有最高覆盖率的形状。

虽然我们的目标是预测宽度w和高度h的值,但是我们根据经验发现,直接预测这两个数字是不稳定的,因为它们的范围很大。相反,我们采用以下转换:
w = σ ⋅ s ⋅ e d w , h = σ ⋅ s ⋅ e d h ( 2 ) w=\sigma \cdot s \cdot e^{d w}, \quad h=\sigma \cdot s \cdot e^{d h} (2) w=σsedw,h=σsedh2
形状预测分支将输出 d w d_w dw d h d_h dh,然后将它们映射成如上所述的 ( w , h ) (w,h) (wh),其中 s s s是步幅, σ σ σ是经验比例因子(在我们的实验中 σ = 8 σ = 8 σ=8)。这种非线性变换将输出空间从大约 [ 0 , 1000 ] [0,1000] [01000]投影到 [ − 1 , 1 ] [-1,1] [11],从而获得更容易和稳定的学习目标。在我们的设计中,我们使用一个用于形状预测的子网 N S \mathcal{N}_{S} NS,它包括一个可产生一个包含 d w d_w dw d h d_h dh值的双通道图的1 × 1卷积层,以及一个实现 E q . ( 2 ) Eq.(2) Eq.(2) 的element-wise变换层。

注意,该设计本质上不同于传统的anchoring方案,因为每个位置仅与动态预测形状的一个anchor相关联,而不是与预定义形状的一组anchor相关联。我们的实验表明,由于位置和形状之间的密切关系,我们的方案可以获得比baseline方案更高的召回率。由于它允许任意的长宽比,所以我们的方案可以更好地捕捉那些极高或极宽的对象。

3.3. Anchor-Guided Feature Adaptation

在采用sliding window方案的传统RPN或single stage检测器中,anchor在整个feature map上是一致的,即它们在每个位置上具有相同的scale和aspect ratio。因此,feature map可以学习一致的representation。然而,在我们的方案中,anchor的形状因位置而异。在这种情况下,我们发现遵循以前的约定[27]可能不是一个好的选择,在该约定中,在feature map上均匀地应用全卷积分类器。理想情况下,大anchor的特征应该对大区域上的内容编码,而小anchor的特征应该相应地具有较小的范围。根据这一直觉,我们进一步设计了anchor-guided特征自适应组件,该组件将基于基础anchor形状来变换每个单独位置处的特征,如
f i ′ = N T ( f i , w i , h i ) ( 3 ) \mathbf{f}_{i}^{\prime}=\mathcal{N}_{T}\left(\mathbf{f}_{i}, w_{i}, h_{i}\right) (3) fi=NT(fi,wi,hi)3
其中, f i f_i fi是第 i i i个位置处的特征, ( w i , h i ) (w_i,h_i) (wihi)是对应的anchor形状。对于这种与位置有关的变换,我们采用了3×3可变形的卷积层[4]来实现 N t \mathcal{N}_{t} Nt。如图1所示,我们首先从anchor形状预测分支的输出预测 offset field,然后将可变形卷积应用于具有offset 的原始feature map以获得 f I ′ f_{I}^{\prime} fI。在调整后的特征之上,我们可以执行进一步的分类和bounding box回归。

3.4. 训练

联合目标。所提出的框架使用多任务损失以端到端的方式进行了优化。除了传统的分类损失 L c l s L_{cls} Lcls和回归损失 L r e g L_{reg} Lreg外,我们还引入了两个额外的损失:anchor定位 L l o c L_{loc} Lloc和anchor形状预测 L s h a p e L_{shape} Lshape。它们使用以下损失被联合优化。
L = λ 1 L l o c + λ 2 L shape  + L cls  + L reg  ( 4 ) \mathcal{L}=\lambda_{1} \mathcal{L}_{l o c}+\lambda_{2} \mathcal{L}_{\text {shape }}+\mathcal{L}_{\text {cls }}+\mathcal{L}_{\text {reg }} (4) L=λ1Lloc+λ2Lshape +Lcls +Lreg 4
anchor位置目标。为了训练anchor定位分支,对于每个图像,我们需要一个二进制标签图,其中1表示放置anchor的有效位置,否则为0。在这项工作中,我们使用ground-truth bounding boxes来指导二进制标签map的生成。特别是,我们希望在对象中心附近放置更多的anchor,而在远离中心的地方放置较少的anchor。首先,将ground-truth bounding boxes ( x g , y g , w g , h g ) (x_g,y_g,w_g,h_g) (xgygwghg)映射到对应的feature map比例,得到 ( x g ′ , y g ′ , w g ′ , h g ′ ) (x_g^{\prime},y_g^{\prime},w_g^{\prime},h_g^{\prime}) (xgygwghg)。我们将 R ( x , y , w , h ) R(x,y,w,h) R(xywh)表示为以 ( x , y ) (x,y) (xy)为中心的矩形区域,大小为 w × h w×h w×h。anchor应该放置在接近ground truth对象中心的位置,以获得更大的初始IoU,因此我们为每个box定义了三种类型的区域。
(1) 中心区域 C R = R ( x g ′ , y g ′ , σ 1 w ′ , σ 1 h ′ ) C R=\mathcal{R}\left(x_{g}^{\prime}, y_{g}^{\prime}, \sigma_{1} w^{\prime}, \sigma_{1} h^{\prime}\right) CR=R(xg,yg,σ1w,σ1h)定义了box的中心区域。 CR 中的像素被指定为正样本。
(2) 忽略区域 I R = R ( x g ′ , y g ′ , σ 2 w ′ , σ 2 h ′ ) \ C R I R=\mathcal{R}\left(x_{g}^{\prime}, y_{g}^{\prime}, \sigma_{2} w^{\prime}, \sigma_{2} h^{\prime}\right) \backslash C R IR=R(xg,yg,σ2w,σ2h)\CR是一个较大的 ( σ 2 > σ 1 ) (σ2 >σ1) (σ2>σ1) 区域,不包括 C R CR CR I R IR IR 中的像素被标记为“忽略”并在训练期间被排除。
(3) 外部区域 O R OR OR是不包括 C R CR CR I R IR IR的feature map。 O R OR OR中的像素被视为负样本。
在这里插入图片描述

以前的工作[14]提出了平衡采样的“灰色区域”,它与我们的位置目标有类似的定义,但只适用于单个特feature map。由于我们使用了来自FPN的多个特征级别,所以我们还考虑了相邻feature map的影响。具体地说,每个级别的feature map应该只针对特定比例范围的对象,因此,只有当feature map与目标对象的比例范围匹配时,我们才在feature map上分配CR。相邻级别的相同区域设置为IR,如图2所示。当多个对象重叠时,CR可以抑制IR,而IR可以抑制OR。由于CR通常只占整个feature map的一小部分,我们使用Focal Loss[19]来训练位置分支。

anchor形状目标。有两个步骤可以确定每个anchor的最佳形状目标。首先,我们需要将anchor与ground-truth bounding box匹配。接下来,我们将预测能够最好地覆盖匹配的ground-truth的anchor的宽度和高度。

先前的工作 [27] 将候选anchor分配给与anchor产生最大 IoU 值的ground truth bounding box。然而,这个过程不适用于我们的案例,因为我们的anchor的 w 和 h 不是预定义的,而是变量。为了克服这个问题,我们在变量anchor a w h = ( x 0 , y 0 , w , h ) ∣ w > 0 , h > 0 a_{wh} = {(x_0, y_0, w, h)|w > 0, h > 0} awh=(x0,y0,w,h)w>0,h>0和ground truth bounding box g t = ( x g , y g , w g , h g ) gt = (x_g, y_g, w_g, h_g) gt=(xg,yg,wg,hg)之间定义 I o U IoU IoU , 如下,记为 v I o U vIoU vIoU
vIoU ⁡ ( a w h , g t ) = max ⁡ w > 0 , h > 0 IoU ⁡ n o r m a l ( a w h , g t ) ( 5 ) \operatorname{vIoU}\left(a_{\mathbf{w h}}, \mathrm{gt}\right)=\max _{w>0, h>0} \operatorname{IoU}_{n o r m a l}\left(a_{w h}, \mathbf{g t}\right) (5) vIoU(awh,gt)=w>0,h>0maxIoUnormal(awh,gt)5
其中 I o U n o r m a l IoU_{normal} IoUnormal是IoU的典型定义,w和h是变量。请注意,对于任意anchor位置 ( x 0 , y 0 ) (x_0, y_0) (x0,y0) 和 ground-truth gt, v I o U ( a w h , g t ) vIoU(a_{wh}, gt) vIoU(awh,gt) 的解析表达式很复杂,并且难以在端到端网络中有效实现。因此,我们使用另一种方法来近似它。给定 ( x 0 , y 0 ) (x_0, y_0) (x0,y0),我们对 w 和 h 的一些常见值进行采样,以模拟所有 w 和 h 的枚举。然后我们用 gt 计算这些采样的 anchors 的 IoU,并使用最大值作为 v I o U ( a w h , g t ) vIoU(a_{wh}, gt) vIoU(awh,gt) 的近似值。在我们的实验中,我们采样了 9 对 ( w , h ) (w, h) (w,h) 来估计训练期间的 v I o U vIoU vIoU。具体来说,我们采用了 R e t i n a N e t [ 19 ] RetinaNet[19] RetinaNet[19] 中使用的 9 对不同scale和aspect ratio。理论上,我们采样的越多,近似值越准确,而计算成本也越高。我们采用bounded iou loss [29] 的变体来优化形状预测,而不计算目标。损失在 E q . ( 6 ) Eq. (6) Eq.(6)中定义。其中 ( w , h ) (w,h) wh ( w g , h g ) (w_g,h_g) (wghg) 表示预测的anchor形状和相应的ground-truth bounding box的形状。 L 1 \mathcal{L}_{1} L1是smooth L1 loss。
L s h a p e = L 1 ( 1 − m i n ( w w g , w g w ) ) + L 1 ( 1 − m i n ( h h g , h g h ) ) ( 6 ) \mathcal{L}_{shape} = \mathcal{L}_1 (1− min(\frac{w}{w_g}, \frac{w_g}{w})) + \mathcal{L}_1 (1− min (\frac{h}{h_g}, \frac{h_g}{h})) (6) Lshape=L1(1min(wgw,wwg))+L1(1min(hgh,hhg))6

3.5. 高质量proposals的使用

在这里插入图片描述

通过所提出的guided anchoring方案(GA-RPN)增强的 RPN 可以生成比传统 RPN 质量更高的proposals。我们探索如何通过使用这种高质量的proposals来提高传统two-stage 检测器的性能。首先,我们研究 RPN 和 GA-RPN 生成的proposals的 IoU 分布,如图 3 所示。GA-RPN proposals相对于 RPN proposals有两个显着优势:(1)正proposals的数量更大,以及(2)高IoU proposals的比例更显著。一个简单的想法是用建议的 GA-RPN 替换现有模型中的 RPN,并端到端训练模型。然而,这个问题并不简单,采用与以前完全相同的设置只能带来有限的增益(例如,小于 1 个点)。根据我们的观察,使用高质量proposals的先决条件是根据proposals分布调整训练样本的分布。因此,与 RPN 相比,在使用 GA-RPN 端到端训练检测器时,我们设置了更高的正/负阈值并使用更少的样本。

除了端到端训练,我们发现 GA-RPN proposals能够通过微调来提升训练好的两阶段检测器。具体来说,给定一个经过训练的模型,我们丢弃proposals生成组件,例如 RPN,并使用预先计算的 GA-RPN proposals对其进行微调几个 epoch(默认为 3 个 epoch)。 GA-RPN 提议也用于推理。这种简单的微调方案可以进一步大幅提高性能,只需几个 epoch 的时间成本。

4. 实验

4.1. 实验环境

数据集。我们在具有挑战性的MS COCO 2017 benchmark[20]上进行实验。我们使用 train split进行训练,并在val split上报告性能。检测结果在test-dev split中报告。

实施细节。如果没有特别说明,我们使用ResNet-50 [13]和FPN [18]作为主干网络。按照惯例,我们将图像的大小调整到1333 × 800的比例,而不改变纵横比。我们设 σ 1 = 0.2 σ_1 = 0.2 σ1=0.2 σ 2 = 0.5 σ_2 = 0.5 σ2=0.5。在多任务损失函数中,我们简单地使用 λ 1 = 1 λ_1 = 1 λ1=1 λ 2 = 0.1 λ_2 = 0.1 λ2=0.1来平衡位置和形状预测分支。我们在8个GPU上使用synchronized SGD,每个GPU有2个图像。我们总共训练12个epochs,初始学习率为0.02,在epoch8和11时将学习率降低0.1。运行时间是在TITAN X GPUs上测量的。

评估指标。RPN的结果是用Average Recall (AR)来衡量的,AR是不同IoU阈值(从0.5到0.95)下recalls的平均值。每幅图像100、300和1000个proposals的AR表示为 A R 100 AR_{100} AR100 A R 300 AR_{300} AR300 A R 1000 AR_{1000} AR1000。计算了100个proposals的小型、中型和大型对象 ( A R S 、 A R M 、 A R L ) (AR_S、AR_M、AR_L) (ARSARMARL)的AR。检测结果使用标准的COCO度量进行评估,该度量为从0.5到0.95的IoU下的平均mAP。

4.2. 结果

我们首先通过比较 GA-RPN 与 RPN baseline和以前SOTA region proposals方法的召回率来评估我们的anchoring方案。同时,我们比较了 RPN 的一些变体。“RPN+9 anchors”表示在每个特征级别使用 3 个scale和 3 个aspect ratio,而baseline仅使用 1 个scale和 3 个aspect ratio,遵循 [18]。“RPN+Focal Loss”和“RPN+Bounded IoU Loss”表示在RPN中采用focal loss [19]和bounded IoU Loss [29]分别替代二元交叉熵损失和smooth L 1 L1 L1损失。“RPN+Iterative”表示连续应用两个RPN头,它们之间有一个额外的 3 × 3 卷积。“RefineRPN”表示与 [33] 类似的结构,其中anchor在 FPN 之前和之后使用特征进行回归和分类两次。
在这里插入图片描述

如表 1 所示,我们的方法大大优于 RPN baseline。具体来说,它分别将 AR300 提高了 10.5% 和 AR1000 提高了 9.1%。值得注意的是,与具有较大主干的 RPN 相比,具有小主干的 GARPN 可以实现更高的召回率。图4所示的高质量结果支持了我们令人鼓舞的结果,我们显示了稀疏和任意形状的anchor,并可视化了两个分支的输出。可以观察到,anchor更多地集中在对象上,并为随后的对象proposals提供了良好的基础。在图 5 中,我们展示了一些通过sliding window anchoring和guided anchoring生成的proposals示例。
在这里插入图片描述
在这里插入图片描述

迭代回归和分类(“RPN+Iterative”和“RefineRPN”)只能给RPN带来有限的收益,这证明了前面提到的对齐和一致性规则的重要性,简单地多次细化anchor是不够有效的。保持anchor的中心固定并根据anchor形状调整特征是至关重要的。
在这里插入图片描述

为了研究guided anchoring的泛化能力及其提高检测性能的能力,我们将其集成到two-stage 和 single-stage检测pipelines中,包括Fast R-CNN [11],Faster RCNN [27]和RetinaNet [19]。对于two-stage器,我们用GA-RPN代替原来的RPN,对于single-stage检测器,用提出的guided anchoring代替sliding window anchoring方案。表2中的结果表明,guided anchoring不仅增加了RPN的proposals召回率,而且大幅度地提高了检测性能。在使用guided anchoring的情况下,这些探测器的mAP分别提高了2.3%、2.7%和1.2%。
在这里插入图片描述

为了进一步研究高质量proposals的有效性和调查微调方案,我们采用完全收敛的Faster R-CNN模型,并用预先计算的RPN或GA-RPN proposals对其进行微调。我们对探测器进行3个epoch的微调,学习率分别为0.02、0.002和0.0002。表3中的结果说明RPN proposals不能带来任何增益,而高质量GA-RPN proposals仅用3个epochs的时间成本就给训练模型带来2.2%的mAP改进。

4.3. 消融研究

在这里插入图片描述

模型设计。我们在设计中省略了不同的组件来研究每个组件的有效性,包括位置预测、形状预测和特征适应。结果如表4所示。形状预测分支被示出是有效的,导致4.2%的增益。

位置预测分支带来了微小的改善。然而,这一分支的重要性反映在它对获得可以导致更有效推理的稀疏anchor的有用性上。由特征适应模块带来的明显增益表明,根据预测的anchor形状重新排列feature map的必要性。该模块有助于捕获与anchor范围相对应的信息,尤其是对于大型对象。
在这里插入图片描述

anchor位置。位置阈值 ϵ L \epsilon_{L} ϵL控制anchor 分布的稀疏度。采用不同的阈值将产生不同数量的anchor。为了揭示 ϵ L \epsilon_{L} ϵL 对效率和性能的影响,我们改变阈值并比较以下结果:每张图像的平均anchor数、最终proposals的召回率和推理运行时间。从表5我们可以观察到大部分背景区域的objectness score接近于0,因此较小的 ϵ L \epsilon_{L} ϵL可以大大减少90%以上的anchor数量,而召回率只有很小的下降。值得注意的是,RPN 中的头部只是一个卷积层,因此加速并不明显。尽管如此,anchor数量的显著减少提供了使用更重的头部执行更有效推理的可能性。
在这里插入图片描述

anchor形状。我们将我们的方法生成的anchor的集合与预定义形状的sliding window anchors进行比较。由于我们的方法在feature map的每个位置仅预测一个anchor,而不是不同scale和aspect ratio的k(baseline中k = 3)个anchor,anchor的总数减少了 1 k \frac{1}{k} k1。我们在图6中展示了sliding window anchors 的scale和aspect ratio分布。结果显示了guided anchoring方案相对于预定anchoring尺度和形状的巨大优势。预测的anchor覆盖更大范围的scale和aspect ratio,其具有与ground truth相似的分布,并提供对物体具有更高覆盖率的初始anchor池。

特征适应。特征适应模块大大提高了召回率,证明了特征一致性的补救措施是必不可少的。我们认为改进不仅来自采用可变形卷积,还来自我们使用anchor形状预测来预测可变形卷积层偏移的设计。如果我们在anchor生成后简单地添加一个可变形的卷积层,AR100/AR300/AR1000的结果是56.1%/62.4%/66.1%,低于我们设计的结果。
在这里插入图片描述

对齐和一致性规则。我们验证了两个proposed规则的必要性。对齐规则建议我们应该保持anchor中心与feature map像素对齐。根据一致性规则,我们设计了特征适应模块来细化特征。表 6 中的结果显示了这些规则的重要性。 1)从第 1 行和第 2 行或第 3 行和第 4 行,我们了解到同时预测形状和中心偏移量相比于仅仅预测形状会损害性能。 2)第1行和第3行之间或第2行和第4行之间的比较显示了一致性的影响。

高质量proposals的使用。尽管有高质量的proposals,训练一个好的检测器仍然是一个不小的问题。如图3所示,GA-RPN proposals提供了更多高IoU的候选。这表明我们可以使用更少的proposals来训练检测器。我们测试了不同数量的proposals和不同的IoU阈值来为Fast R-CNN上的前景/背景分配标签。
在这里插入图片描述

从表 7 的结果中,我们观察到:(1)较大的 IoU 阈值对于利用高质量的proposals很重要。通过专注于 IoU 较高的正样本,误报会更少,分类的特征也更有辨别力。由于我们在训练时给IoU小于0.6的proposal分配了负标签,AP0.5会降低,而高IoU的AP会大幅增加,整体AP会高很多。 (2) 如果召回率足够高,在训练和测试期间使用较少的proposals可以有利于学习。proposals越少,召回率越低,但会简化学习过程,因为低分数proposals中有更多难样本。在使用 RPN proposals进行训练时,如果我们只使用 300 个proposals,性能会下降,因为召回率不够,很多对象会被遗漏。然而,GA-RPN 即使使用较少的proposals也能保证高召回率,因此使用 300 个proposals进行训练仍然可以提升最终的 mAP。

超参数。我们的方法对超参数不敏感。(1) 当我们采样3、9、15对scale和aspect ratio以近似Eq.(5)时,我们分别获得了68.3%,68.5%,68.5%的AR@1000。(2)我们默认设置 λ 2 = 0.1 λ_ 2=0.1 λ2=0.1以平衡损失项。当 λ 2 = 0.2 λ_2=0.2 λ2=0.2或0.05时,我们得到68.4%,当 λ 2 = 0.02 λ_2=0.02 λ2=0.02时,我们得到68.3%。(3) 我们在[0.1,0.5]范围内改变 σ 1 σ_1 σ1,在[0.2,1.0]范围内改变 σ 2 σ_2 σ2,性能保持不变(在68.1%到68.5%之间)。

5. 结论

我们提出了Guided Anchoring方案,它利用语义特征来引导anchoring。它通过联合预测位置和依赖于位置的anchor形状来生成任意形状的非均匀anchor。与使用sliding window方案的 RPN baseline相比,该方法在减少90%的anchor的情况下,召回率提高了9.1%。它还可以应用于各种基于anchor的检测器,以将性能提高多达 2.7%。
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值