(十二)GA-RPN----2019CVPR论文解读

Region Proposal by Guided Anchoring

指导性锚定的区域提案

Abstract

区域锚点是现代对象检测技术的基石。最先进的探测器主要依靠密集的锚定方案,在该方案中,使用一组预定义的比例尺和纵横比在空间域上均匀地对锚定进行采样。在本文中,我们将回顾这个基础阶段。我们的研究表明,可以更有效地完成此任务。具体而言,我们提出了一种名为“引导锚定”的替代方案,该方案利用语义特征来指导锚定。所提出的方法共同预测了可能存在感兴趣对象中心的位置以及不同位置的比例和纵横比。除了预测的锚形状之外,我们还使用特征自适应模块缓解了特征不一致的情况。我们还研究了使用高质量建议来提高检测性能。锚定方案可以无缝集成到建议方法和检测器中。借助“引导锚固”,我们的MS COCO召回率比RPN基线低90%,可提高9.1%。我们还在Fast R-CNN,Faster R-CNN和RetinaNet中采用了引导锚定,分别将检测mAP提高了2.2%,2.7%和1.2%。代码将在https://github.com/open-mmlab/mmdetection上提供。

1 Introduction

锚是回归参考,分类候选是最高建议(对于两级检测器)或最终边界框(对于单级检测器)。现代的对象检测管道通常以大量密集分布的锚点开始。以快速对象检测框架Faster RCNN [27]为例,它首先从密集的锚集中生成区域提议,然后将其分类为特定类,并通过边界框回归来优化其位置。

合理的锚设计有两个通用规则:对齐和一致性。 首先,要将卷积特征用作锚点表示,锚点中心需要与特征图像素良好对齐。 其次,接受域和语义范围应与特征图不同位置上的锚点的比例和形状一致。 滑动窗口是遵循规则的一种简单且被广泛采用的锚固方案。 对于大多数检测方法而言,锚点是通过这种统一方案定义的,其中特征图中的每个位置都与具有预定义比例和纵横比的k个锚点关联。

在基准[6、20、7、5]和实际系统中,基于锚的检测管道均显示有效。但是,上述均匀锚固方案不一定是准备锚固的最佳方法。该方案可能导致两个困难:(1)必须针对不同的问题预定义一组整齐的长宽比固定的锚。错误的设计可能会影响检测器的速度和准确性。 (2)为了保持足够高的提案召回率,需要大量锚点,而其中大多数锚点都与与目标无关的虚假候选人。同时,大量的锚点可能导致大量的计算成本,尤其是当管道在建议阶段涉及繁重的分类器时。

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

可学习的锚形状是有前途的,但是它打破了前述的一致性规则,因此为学习锚的表示形式进行准确的分类和回归提出了新的挑战。锚点的比例和长宽比现在是可变的,而不是固定的,因此不同的特征图像素必须学习适合相应锚点的自适应表示。为解决此问题,我们引入了arXiv:1901.03278v2 [cs.CV] 2019年4月12日一个有效的模块,可根据锚点几何形状调整特征。

我们用上述引导式锚定和特征自适应方案制定了引导式锚定区域提议网络(GA-RPN)。得益于动态预测的锚点,与采用密集锚点方案的RPN基准相比,我们的方法可将召回率提高9.1%,而锚点数要少90%。通过预测比例尺和纵横比,而不是根据预定义的列表进行固定,我们的方案可以更有效地处理高大物体。除了区域建议外,引导式锚定方案还可以轻松地集成到任何依赖于锚点的检测器中。使用我们的方案可以实现一致的性能提升。例如,GA-Fast-RCNN,GA-Faster-RCNN和GA-RetinaNet在滑动窗口锚定的基础上,相对于其基线,COCO数据集的总体mAP分别提高了2.2%,2.7%和1.2%。此外,我们探索了高质量提案的使用,并使用GARPN提案提出了一个微调时间表,该时间表可以改善任何经过训练的模型的性能,例如,它将完全融合的Faster R-CNN模型从37.4%改进为39.6 %,仅3个纪元。

这项工作的主要贡献在于几个方面。 (1)我们提出了一种新的锚固方案,该方案能够预测除密集锚和预定义锚以外的非均匀和任意形状的锚。 (2)我们用两个因式条件分布来公式化联合锚分布,并设计两个模块分别对其建模。 (3)我们研究了将特征与相应锚点对齐的重要性,并设计了一个特征自适应模块,以基于基础锚点形状来细化特征。 (4)我们研究了将高质量建议用于两级检测器的问题,并提出了一种改进训练模型性能的方案。

2 Related Work

滑动窗口锚定在对象检测中。在特征图中以滑动窗口方式生成锚已被基于锚的各种检测器广泛采用。两阶段方法一直是现代对象检测时代的主导范式。更快的RCNN [27]提出了区域提案网络(RPN)来生成对象提案。它使用一个小的全卷积网络将每个滑动窗口锚点映射到一个低维特征。以后的两阶段方法[3、18、12]也采用了这种设计。 MetaAnchor [32]引入了元学习来锚定生成。已经进行了尝试[8、9、23、31、33、34、1、2] [8,9,23,31,33,34,1,2],这些应用级联架构拒绝早期层或阶段的简单样本,并迭代回归边界框以进行渐进式精炼。与两阶段方法相比,单阶段流水线跳过对象提案的生成,并在一次评估中预测边界框和类分数。尽管省略了建议步骤,但是单阶段方法仍然使用滑动窗口生成的锚框。例如,SSD [21]和DenseBox [14]从特征图密集地生成锚,并像多类RPN一样评估它们。 RetinaNet [19]引入焦点损失以解决前景-背景类不平衡问题。 YOLOv2 [26]采用滑动窗口锚进行分类和空间位置预测,从而获得比其先例更高的召回率。

比较和差异。我们总结了提出的方法和常规方法之间的差异如下。 (i)首先,以前的方法(单阶段,两阶段和多阶段)仍然依靠滑动窗口的密集而均匀的锚。我们放弃了滑动窗口方案,并提出了一个更好的对应方案来指导锚定并生成稀疏锚,这是以前没有探讨过的。 (ii)级联检测器采用多个阶段来逐步完善检测边界框,这通常会导致更多模型参数并降低推理速度。这些方法采用RoI Pooling或RoI Align来提取边界框的对齐特征,这对于提案生成或单级检测器来说太昂贵了。 (iii)无锚定方法[14、15、25]通常具有简单的管道,并在单个阶段内产生最终检测结果。由于缺乏锚点和进一步的基于锚点的改进,它们缺乏处理复杂场景和案例的能力。我们的重点是稀疏和不均匀的锚定方案,并使用高质量的建议来提高检测性能。为了实现这一目标,我们必须解决基于锚的方法所特有的不对齐和不一致的问题。 (iv)一些单发检测器[33,30]通过多次回归和分类来精炼锚。我们的方法与它们明显不同。我们不会逐步完善锚,而是预测锚的分布,该分布会因位置和形状而分解。传统方法无法多次考虑anchors和features回归锚(由[x,y,w,h]表示)之间的对齐方式,并且会破坏对齐方式和一致性。相反,我们强调这两个规则的重要性,因此我们仅预测锚定形状,但固定锚定中心并根据预测的形状调整特征。

3 Guided Anchoring

(十二)GA-RPN----2019CVPR论文解读_第1张图片
图1:我们的框架的图示。对于特征金字塔中的每个输出特征图,我们使用具有两个分支的锚点生成模块分别预测锚点的位置和形状。然后,将特征适配模块应用于原始特征图,以使新特征图了解锚点形状。

锚点是现代对象检测管道中的基础。 主流框架,包括两阶段和单阶段方法,大多依赖于锚点的均匀排列。 具体来说,一组具有预定义比例和长宽比的锚将被部署在大小为W×H,步幅为s的特征图上。 由于许多锚放置在不太可能存在目标物体的区域中,因此该方案效率不高。 另外,这种手工挑选的先验不切实际地假设对象具有一组固定形状(即,比例和纵横比)。

在这项工作中,我们旨在开发一种更有效的锚定方案,以考虑对象位置和形状的不均匀分布来安排具有可学习形状的锚。引导锚定方案的工作方式如下。对象的位置和形状可以用(x,y,w,h)形式的四元组来表征,其中(x,y)是中心的空间坐标,w是宽度,h高度。假设我们从给定图像I绘制对象,那么可以认为其位置和形状遵循以I为条件的分布,如下所示:
p ( x , y , w , h ∣ I ) = p ( x , y ∣ I ) p ( w , h ∣ x , y , I ) ( 1 ) p(x, y, w, h | I)=p(x, y | I) p(w, h | x, y, I) (1) p(x,y,w,hI)=p(x,yI)p(w,hx,y,I)(1)
这种分解可以捕捉两个重要的直觉:(1)给定一张图像,对象可能只存在于某些区域中; (2)物体的形状,即比例和长宽比,与其位置密切相关。

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

上述锚生成过程基于单个特征图。目标检测的最新进展[18,19]表明,对不同级别的多个特征图进行操作通常会很有帮助。因此,我们开发了一种多级锚生成方案,该方案遵循FPN体系结构[18],在多个特征图上收集锚。请注意,在我们的设计中,锚生成参数在所有涉及的特征级别之间共享,因此该方案具有参数效率。

3.1. Anchor Location Prediction

如图1所示,锚点位置预测分支会产生与输入特征图FI相同大小的概率图p(·| FI),其中每个条目p(i,j | FI)对应于坐标为( I上的(i +1 2)s,(j +1 2)s),其中s是特征图的步幅,即相邻锚点之间的距离。条目的值表示对象中心在该位置存在的可能性。

在我们的公式中,概率图p(i,j | FI)是使用子网NL预测的。该网络将1×1卷积应用于基本特征图FI,以获得客观性得分图,然后通过逐元素的S型函数将其转换为概率值。虽然更深的子网可以做出更准确的预测,但根据经验,我们发现在卷积层之后进行S型变换可以在效率和精度之间取得良好的平衡。

然后根据结果概率图,通过选择相应概率值高于预定义阈值ΔL的那些位置,确定可能存在对象的活动区域。此过程可以过滤掉90%的区域,同时仍保持相同的召回率。如图4(b)所示,排除了天空和海洋等区域,而锚点则集中在人和冲浪板上。由于没有必要考虑那些被排除的区域,因此我们用掩盖卷积替换了随后的卷积层[17,28],以进行更有效的推理。

3.2. Anchor Shape Prediction

在确定对象的可能位置之后,我们的下一步是确定每个位置可能存在的对象的形状。如图1所示,这是通过锚点形状预测分支完成的。此分支与常规边界框回归非常不同,因为它不会更改锚点的位置,并且不会导致锚点与锚点特征之间的未对准。具体地,给定特征图FI,该分支将预测每个位置的最佳形状(w,h),即,该形状可以导致最接近的地面真相边界框的最高覆盖范围。

虽然我们的目标是预测宽度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=σsedh(2)
形状预测分支将输出dw和dh,然后将它们如上所述映射到(w,h),其中s是步幅,而σ是经验比例因子(在我们的实验中,σ= 8)。这种非线性变换将输出空间从大约[0,1000]投影到[-1,1],从而使学习目标变得更加轻松和稳定。在我们的设计中,我们使用子网NS进行形状预测,该网络包括一个1×1卷积层,该卷积层产生一个包含dw和dh值的两通道映射图,以及一个实现等式的逐元素变换层( 2)。

注意,该设计本质上与常规锚定方案的不同之处在于,每个位置仅与动态预测形状的一个锚关联,而不是与一组预定义形状的锚关联。我们的实验表明,由于位置和形状之间的紧密关系,我们的方案可以实现比基线方案更高的召回率。由于它允许任意长宽比,因此我们的方案可以更好地捕获那些非常高或宽的对象。

3.3. Anchor-Guided Feature Adaptation

在采用滑动窗口方案的常规RPN或单级检测器中,锚在整个特征图上是均匀的,即,它们在每个位置共享相同的形状和比例。因此,特征图可以学习一致的表示。但是,在我们的方案中,锚的形状随位置而变化。在这种情况下,我们发现遵循先前的约定[27]并不是一个好的选择,在该约定中,将全卷积分类器均匀地应用于特征图。理想情况下,较大锚点的功能应在较大区域上编码内容,而较小锚点的功能应相应地具有较小范围。根据这种直觉,我们进一步设计了锚点引导的特征适配组件,该组件将根据基础的锚点形状在每个单独的位置上变换特征,如下所示:
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)
其中第i个位置的特征是(wi,hi)是对应的锚点形状。对于这种与位置有关的变换,我们采用3×3可变形卷积层[4]来实现NT。如图1所示,我们首先从锚形状预测分支的输出中预测一个偏移场,然后将具有可偏移量的可变形卷积应用于原始特征图以获得f0I。然后,在经过调整的特征之上,我们可以执行进一步的分类和边界框回归。

3.4. Training

共同目标。所提出的框架使用多任务丢失以端到端的方式进行了优化。除了常规的分类损失Lclsand回归损失Lreg,我们还为锚定位置Lloc和锚定形状预测Lshape引入了两个额外的损失。他们共同优化,但有以下损失。
L = λ 1 L l o c + λ 2 L s h a p e + L c l s + L r e g ( 4 ) \mathcal{L}=\lambda_{1} \mathcal{L}_{l o c}+\lambda_{2} \mathcal{L}_{s h a p e}+\mathcal{L}_{c l s}+\mathcal{L}_{r e g} (4) L=λ1Lloc+λ2Lshape+Lcls+Lreg(4)
定位目标。要训练锚点定位分支,对于每个图像,我们需要一个二进制标签图,其中1表示放置锚点的有效位置,否则为0。在这项工作中,我们采用了真实的边界框来指导二进制标签图的生成。特别是,我们希望在对象中心附近放置更多锚点,而远离中心的锚点更少。首先,我们将真实边界框(xg,yg,wg,hg)映射到相应的特征图比例尺,并获得(x0 g,y0 g,w0 g,h0 g)。我们将R(x,y,w,h)表示为以(x,y)为中心且w×h大小的矩形区域。预期将锚放置在接近地面真实物体中心的位置,以获得较大的初始IoU,因此,我们为每个框定义了三种类型的区域。

(1)中心区域CR = R(x0 g,y0 g,σ1w0,σ1h0)定义盒子的中心区域。 CR中的像素被指定为正样本。

(2)忽略区域IR = R(x0g,y0g,σ2w0,σ2h0)\ CR是不包括CR的较大区域(σ2>σ1)。 IR中的像素在训练过程中被标记为“忽略”并被排除。

(3)外部区域OR是不包括CR和IR的特征图。 OR中的像素被视为负样本。
(十二)GA-RPN----2019CVPR论文解读_第2张图片

图2:多层次功能的定位目标位置。我们根据地物真相的比例将其分配给不同的特征等级,并分别定义CR,IR和OR。 (最好以彩色显示。)

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

锚定形状目标。有两个步骤来确定每个锚点的最佳形状目标。首先,我们需要将锚点与地面真实边界框匹配。接下来,我们将预测锚的宽度和高度,以最好地覆盖匹配的地面真相。

先前的工作[27]将候选锚分配给地面真值边界框,该框会使用锚产生最大的IoU值。但是,此过程不适用于我们的情况,因为我们的锚不是预定义而是变量。为了克服这个问题,我们在变量锚awh = {(x0,y0,w,h)| w> 0,h> 0}与地面真值边界框gt =(xg,yg,wg,hg ),表示为vIoU。
vIoU ⁡ ( a w h , g t ) = max ⁡ w > 0 , h > 0  IoU normal  ( a w h , g t ) ( 5 ) \operatorname{vIoU}\left(a_{\mathrm{wh}}, \mathrm{gt}\right)=\max _{w>0, h>0} \text { IoU normal }\left(a_{w h}, \mathrm{gt}\right) (5) vIoU(awh,gt)=w>0,h>0max IoU normal (awh,gt)(5)
其中IoU normal是IoU的典型定义,而w和h是变量。请注意,对于任意锚点位置(x0,y0)和地面真相gt,vIoU(awh,gt)的解析表达式很复杂,并且在端到端网络中很难有效实现。因此,我们使用另一种方法对其进行近似。给定(x0,y0),我们对w和h的一些常用值进行采样,以模拟所有w和h的枚举。然后我们用gt计算这些采样锚的IoU,并将最大值用作vIoU(awh,gt)的近似值。在我们的实验中,我们采样了9对(w,h)来估计训练期间的vIoU。具体来说,我们采用了9对RetinaNet中使用的不同比例和纵横比[19]。从理论上讲,我们采样的对越多,则近似值越准确,而计算量却越大。我们采用有界iou损耗的一种变体[29]来优化形状预测,而无需计算目标。损失在等式中定义。 (6),其中(w,h)和(wg,hg)表示预测的锚点形状和相应的地面真相边界框的形状。 L1是平滑的L1损失。

(十二)GA-RPN----2019CVPR论文解读_第3张图片
图3:RPN和GA-RPN提案的IoU分布。我们显示IoU减少时的累计提案数量。
L shape  = L 1 ( 1 − min ⁡ ( w s , w s w ) ) + L 1 ( 1 − min ⁡ ( h h g , h a h ) ) ( 6 ) \mathcal{L}_{\text {shape }}=\mathcal{L}_{1}\left(1-\min \left(w_{s}, \frac{w_{s}}{w}\right)\right)+\mathcal{L}_{1}\left(1-\min \left(\frac{h}{h_{g}}, \frac{h_{a}}{h}\right)\right) (6) Lshape =L1(1min(ws,wws))+L1(1min(hgh,hha))(6)

3.5. The Use of High-quality Proposals

与常规RPN相比,通过建议的锚定方案(GA-RPN)增强的RPN可以生成质量更高的建议。我们探索如何通过使用这种高质量的建议来提高常规两级检测器的性能。首先,我们研究了由RPN和GA-RPN生成的提案的IoU分布,如图3所示。GA-RPN提案比RPN提案有两个显着优势:(1)积极提案的数量更大,并且( 2)高IoU提案的比例更为重要。一个简单的想法是用建议的GA-RPN替换现有模型中的RPN并端到端训练模型。但是,这个问题并非易事,采用与以前完全相同的设置只能带来有限的增益(例如,小于1点)。根据我们的观察,使用高质量建议书的先决条件是根据建议书分配调整培训样本的分配。因此,与RPN相比,当使用GA-RPN端对端训练检测器时,我们设置了较高的正/负阈值并使用较少的样本。

除了端到端培训之外,我们发现GA-RPN提案还可以通过微调计划来增强受过培训的两阶段检测器。具体而言,给定训练有素的模型,我们会丢弃提案生成组件(例如RPN),并使用预先计算的GA-RPN提案对它进行微调几个时期(默认为3个时期)。 GA-RPN提案也可用于推断。这种简单的微调方案可以进一步提高性能,而时间成本仅为几个纪元。

4 Experiments

4.1. Experimental Setting

(十二)GA-RPN----2019CVPR论文解读_第4张图片
(十二)GA-RPN----2019CVPR论文解读_第5张图片
(十二)GA-RPN----2019CVPR论文解读_第6张图片
数据集。 我们在具有挑战性的MS COCO 2017基准测试中进行实验[20]。 我们将火车拆分用于训练并报告val拆分的效果。 检测结果在test-dev拆分中报告。

实施细节。如果没有另外指定,我们将ResNet-50 [13]与FPN [18]用作骨干网。通常,我们将图像调整为1333×800的大小,而不改变宽高比。我们设置σ1= 0.2,σ2= 0.5。在多任务损失函数中,我们仅使用λ1= 1,λ2= 0.1来平衡位置和形状预测分支。我们在8个GPU上使用同步SGD,每个GPU有2张图像。我们总共训练了12个时期,初始学习率为0.02,在第8和11时期将学习率降低了0.1。运行时间在TITAN X GPU上进行了测量。

评估指标。 RPN的结果用平均召回率(AR)来衡量,该平均召回率是在不同IoU阈值(从0.5到0.95)下的召回率的平均值。每个图像100、300和1000个投标的AR表示为AR100,AR300和AR1000。小型,中型和大型对象(ARS,ARM,ARL)的AR是针对100个提案计算的。使用标准COCO度量标准评估检测结果,该标准将IoU的mAP平均在0.5到0.95之间。

4.2. Results

我们首先通过将GA-RPN的召回率与RPN基线和现有的最新区域提议方法进行比较来评估我们的锚定方案。 同时,我们比较RPN的一些变体,“ RPN + 9锚”表示在每个特征级别使用3个比例和3个纵横比,而基线仅使用1个比例和3个纵横比,紧随[18]。 “ RPN + Focal损失”和“ RPN +有界IoU损失”表示分别通过替换二进制交叉熵损失和平滑l1损失将焦点损失[19]和有界IoU损失[29]应用于RPN。 “ RPN + Iterative”表示连续应用两个RPN头,并且在它们之间附加3×3卷积。 “ RefineRPN”表示与[33]相似的结构,其中锚点回归并使用FPN之前和之后的特征进行两次分类。

如表1所示,我们的方法在很大程度上优于RPN基准。具体而言,它分别将AR300和AR1000分别提高了10.5%和9.1%。值得注意的是,具有较小主干的GARPN可以比具有较大主干的RPN获得更高的召回率。图4中显示的定性结果支持了我们令人鼓舞的结果,其中显示了稀疏和任意形状的锚,并可视化了两个分支的输出。可以看到,锚点更多地集中在对象上,并为随后的对象建议提供了良好的基础。在图5中,我们显示了在滑动窗口锚定和引导锚定时生成的提案的一些示例。

迭代回归和分类(“ RPN + Iterative”和“ RefineRPN”)仅给RPN带来了有限的收益,这证明了上述对齐和一致性规则的重要性,仅仅多次细化锚并不足够有效。 保持锚点中心固定并根据锚点形状调整要素至关重要。

(十二)GA-RPN----2019CVPR论文解读_第7张图片
为了研究引导锚的泛化能力及其增强检测性能的能力,我们将其集成到两阶段和单阶段检测管线中,包括Fast R-CNN [11],Faster RCNN [27]和RetinaNet [19] ]。对于两级探测器,我们将原始RPN替换为GA-RPN,对于单级探测器,将滑动窗口锚定方案替换为建议的导向锚定。表2中的结果表明,引导锚不仅增加了RPN的建议召回率,而且还大大提高了检测性能。通过引导锚定,这些探测器的mAP分别提高了2.3%,2.7%和1.2%。

为了进一步研究高质量建议的有效性并研究微调方案,我们采用了完全收敛的Faster R-CNN模型,并使用预先计算的RPN或GA-RPN建议进行微调。我们将检测器微调3个时期,学习率分别为0.02、0.002和0.0002。表3中的结果说明,RPN提案无法带来任何收益,而高质量的GA-RPN提案仅经过3个时间段的时间即可为训练模型带来2.2%的mAP改善。

4.3. Ablation Study

(十二)GA-RPN----2019CVPR论文解读_第8张图片
模型设计。我们在设计中省略了不同的组件以调查每个组件的有效性,包括位置预测,形状预测和特征自适应。结果示于表4。形状预测分支被显示为有效,这导致4.2%的增益。

位置预测分支带来了边际改进。然而,该分支的重要性反映在其获得稀疏锚的有用性上,从而导致更有效的推理。特征适配模块带来的明显收益表明,必须根据预测的锚点形状重新布置特征图。此模块有助于捕获与锚定范围相对应的信息,尤其是对于大型对象。

锚点位置。位置阈值ΔL控制锚分布的稀疏性。采用不同的阈值将产生不同数量的锚点。为了揭示LON效率和性能的影响,我们改变了阈值并比较了以下结果:每个图像的平均锚点数,最终建议的调用和推理运行时间。从表5中我们可以看到,大多数背景区域的客观性得分都接近于0,因此较小的?L可以将锚点的数量大大减少90%以上,而召回率只有很小的降低。值得注意的是,RPN中的磁头只是一个卷积层,因此加速并不明显。然而,锚数量的显着减少提供了用较重的头部执行更有效的推断的可能性。
(十二)GA-RPN----2019CVPR论文解读_第9张图片
锚形状。我们将我们的方法生成的锚点与预定义形状的滑动窗口锚点进行比较。由于我们的方法仅预测特征图的每个位置处的一个锚,而不是比例和纵横比不同的k个(在基线中k = 3)锚,因此总锚数减少了1 k。我们在图6中显示了带有滑动窗口锚的锚的比例和纵横比分布。结果显示,与预定义的锚比例和形状相比,引导锚固方案具有很大的优势。预测的锚点覆盖的比例尺和纵横比范围要大得多,这些比例与地面真实物体具有相似的分布,并提供了一个初始锚点池,对对象的覆盖率更高。

功能适应。特征适配模块大大提高了召回率,证明了对特征一致性的补救是必不可少的。我们声称,这种改进不仅来自采用可变形卷积,而且还源于我们使用锚定形状预测来预测可变形卷积层偏移的设计。如果仅在生成锚点之后添加一个可变形卷积层,则AR100 / AR300 / AR1000的结果为56.1%/ 62.4%/ 66.1%,不如我们的设计结果。

对齐和一致性规则。我们验证了两个拟议规则的必要性。对齐规则建议我们应使锚点中心与要素图像素对齐。根据一致性规则,我们设计了特征自适应模块来细化特征。表6中的结果表明了这些规则的重要性。 1)从第1行和第2行,或第3行和第4行,我们了解到预测形状和中心偏移量,而不仅仅是预测形状会损害性能。 2)第1行和第3行或第2行和第4行之间的比较显示了一致性的影响。

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

(十二)GA-RPN----2019CVPR论文解读_第10张图片

从表7的结果中,我们观察到:(1)更大的IoU阈值对于利用高质量建议很重要。 通过关注更高IoU的阳性样本,假阳性将更少,而分类的特征则更具区分性。由于我们在训练过程中为IoU小于0.6的提案分配了否定标签,因此AP0.5会降低,而高IoU的AP则会大幅增加,并且总体AP会更高。 (2)如果召回率足够高,在培训和测试期间使用较少的建议可以使学习受益。较少的建议会导致召回率降低,但会降低学习过程,因为低分建议中包含更多的样本。当使用RPN提案进行训练时,如果仅使用300个提案,则性能会降低,因为召回不足,并且遗漏了许多对象。但是,GA-RPN即使在提案较少的情况下也能确保较高的召回率,因此,对300份提案进行培训仍然可以提高最终的mAP。

超参数。我们的方法对超参数不敏感。 (1)当我们对3、9、15对进行采样以近似等式(5)时,我们分别获得AR @ 1000 68.3%,68.5%,68.5%。 (2)我们默认设置λ2= 0.1以平衡损失项。我们获得68.4%的λ2= 0.2或0.05和68.3%的λ2= 0.02。 (3)我们在[0.1,0.5]范围内改变σ1,在[0.2,1.0]范围内改变σ2,性能仍然相当(在68.1%和68.5%之间)。

5 Conclusion

我们提出了一种引导锚定方案,该方案利用语义特征来指导锚定。它通过联合预测位置和取决于位置的锚形状来生成任意形状的非均匀锚。所提出的方法与使用滑动窗口方案的RPN基线相比,具有比RPN基线少90%的锚,从而实现了9.1%的更高召回率。它也可以应用于各种基于锚的检测器,以将性能提高多达2.7%。

致谢

这项工作得到了SenseTime集团(香港中文大学协议编号TS1610626和编号TS1712093),香港普通研究基金(GRF)(编号14236516,编号14203518和编号14224316)的合作研究资助的部分支持,和新加坡教育部AcRF Tier 1(M4012082.020)。
(十二)GA-RPN----2019CVPR论文解读_第11张图片

归纳总结:

无论是one-stage还是two-stage,现有的Anchor-based方法生成Anchor的过程存在两大问题:
效率太低。现有方法在特征图上做滑窗,生成几千个Anchor。可是一张图片的物体也就几个而已,这导致负样本过多。

不合理的先验假设。生成Anchor时会假设Anchor的scale,或者长宽比为固定几个值。这些值往往随着数据集变化和变化。

基于上述两点,作者就尝试使用特征去指导Anchor box中心位置,宽高比的生成,这样不仅可以提高生成Anchor的效率,而且还可以生成任意大小的Anchor,这对于一些比较极端长宽比的物体是非常有效的。

模型结构

作者提出使用特征去指导Anchor生成,该结构称为Guided Anchoring,Guided Anchoring可以嵌入到任意的Anchor生成模块之中。

上图左边是一个FPN结构,FPN每一层的特征都可以嵌入一个Guided Anchoring模块用于预测proposals。Guided Anchoring的具体结构则如上图右边所示,主要由两个模块组成:

Anchor generation模块:添加两个分支分别用于预测特征图上每个像素(对应的感受野)是目标的置信度,以及对应宽和高。目标的置信度大于一个特定域值,则被认为是目标。显然,这个proposal获取的过程不同于滑窗,可以减少大量负样本(每个Feature map上的像素点做多只产生一个proposal)。此外,由于宽和高也是CNN回归出来的,所以没有对物体的scale,宽高比作任何先验假设。

Feature adaption模块:这个模块实际上借鉴了可变形卷积的思想。首先,利用Anchor generation模块可以得到每个点的宽和高,这个宽和高用一个2通道的特征图表示,然后在2通道的特征图上再次卷积,得到offset field。最后把offset field应用到特征图上即可(这个offset field应用到feature map上的过程,本质上是特征重采样的过程,具体原理可以参考可变形卷积的原理)。

其他细节
Feature adaption模块的作用:在传统的Anchor设置方法中,所有Anchor box形状和尺度(scale)都是一样的,但是作者提出的这个方法则不然,形状和scale各不相同。于是作者提出,对于不同shape和scale的Anchor,应该有个Feature Adaption的过程,以选择合适的特征进行后续的CNN分类和bounding box回归。

Anchor Generation模块的宽高预测细节:由于图像宽高范围在0-1000左右不等。所以作者使用了一个指数函数把宽高映射到[-1,1]左右,这样方便做回归

总结部分摘自:http://www.jintiankansha.me/t/sG6X3JPJCL

你可能感兴趣的:(目标检测,卷积,计算机视觉,机器学习,人工智能,深度学习)