Region Proposal by Guided Anchoring(CVPR2019)
简介:GA-RPN(Guided Anchoring)是一种新的anchor 生成方法,其通过图像特征来指导anchor 的生成。通过CNN预测 anchor 的位置和形状,生成稀疏而且形状任意的 anchor,并且设计Feature Adaption 模块来修正特征图使之与预测生成得 anchor精确匹配。GA-RPN相比RPN减少90%的anchor,并且提高9.1%的召回率,将其用于不同的物体检测器Fast R-CNN, Faster R-CNN and RetinaNet,分别提高 检测mAP 2.2%,2.7% ,1.2%。
贡献:
提出了一种新的anchor策略,用于产生稀疏的任意形状的anchor;
设计了基于anchor形状的特征适应模块来refine特征;
提出了一种改进模型性能的方案.
一、Motivation:
现有的Anchor-based方法生成Anchor的过程存在两大问题:
为了保证召回率,需要生成密集的anchor,引入过多负样本同时影响模型的速率。
anchor的尺度和长宽比需要预先定义,针对不同类型的检测任务需要调整这些超参数,预先定义好的 anchor 形状不一定能满足极端大小或者长宽比悬殊的物体。
基于上述两点,作者就尝试使用特征去指导Anchor box中心位置,宽高比的生成,这样不仅可以提高生成Anchor的效率,而且还可以生成任意大小的Anchor,这对于一些比较极端长宽比的物体是非常有效的。
注意:作者假设待检测图像中的目标是不均匀分布的且稀疏的。
二、模型结构
作者提出使用图像特征去指导Anchor生成,该结构称为Guided Anchoring,Guided Anchoring可以嵌入到任意的Anchor生成模块之中。下面是一个嵌入到FPN中的例子:
上图左边是一个FPN结构,FPN每一层的特征都可以嵌入一个Guided Anchoring模块用于预测proposals。Guided Anchoring的具体结构则如上图右边所示,主要由两个模块组成:
Anchor generation模块:
添加两个分支分别用于预测特征图上每个像素(对应的感受野)是目标的置信度,以及对应宽和高。目标的置信度大于一个特定域值,则被认为是目标。显然,这个proposal获取的过程不同于滑窗,可以减少大量负样本(每个Feature map上的像素点做多只产生一个proposal)。此外,由于宽和高也是CNN回归出来的,所以没有对物体的scale,宽高比作任何先验假设。
1、anchor Location Prediction
位置预测分支的目标是预测那些区域应该作为中心点来生成 anchor,是一个二分类问题,预测是不是物体的中心。
FPN特征图经过位置预测子网络生成位置得分图:对基础feature map先通过1*1卷积,然后逐元素Sigmoid转换为概率值。然后根据阈值筛选,可以过滤掉90%的区域而保持相同的召回率
我们将整个 feature map 的区域分为物体中心区域,外围区域和忽略区域:即将 ground truth 框的中心一小块对应在 feature map 上的区域标为物体中心区域,在训练的时候作为正样本,其余区域按照离中心的距离标为忽略或者负样本。通过位置预测,可以筛选出一小部分区域作为 anchor 的候选中心点位置,使得 anchor 数量大大降低。
2、Anchor Shape Prediction
针对每个检测出的中心点,选取一个最佳的anchor box。最佳anchor box的定义为:与预测的候选中心点的邻近ground truth box产生最大IOU的anchor box。
形状预测分支的目标是给定 anchor 中心点,预测最佳的长和宽,这是一个回归问题。论文直接使用 IoU 作为监督,来学习 w 和 h。无法直接计算w 和 h,而计算 IoU 又是可导的操作,所以使用基于bounded IoU Loss网络优化使得 IoU 最大。
作者认为,直接预测anchor box的宽高的话,范围太广不易学习,故将宽高值使用指数及比例缩放进行压缩:
ω =σ·s·exp(dw) , h=σ·s·exp(dh )
该分支预测dw,dh,通过上式进行压缩,s为stride,σ是经验尺度因子(论文取8),该映射将[0,1000]压缩至[-1,1]。该分支输出dw和dh。首先通过1*1卷积层产生两个通道的map(包括dw和dh的值),然后经过逐元素转换层实现w和h的转化。得益于任意形状的anchor,所以对于宽高比夸张的目标也具有更好的效果(比如火车等)。
Feature adaption模块:这个模块实际上借鉴了可变性卷积的思想。
由于每个位置的形状不同,大的anchor对应较大感受野,小的anchor对应小的感受野。所以不能像之前基于anchor的方法那样直接对feature map进行卷积来预测,而是要对feature map进行feature adaptation。作者利用变形卷积的思想,根据形状对各个位置单独进行转换。
其中,fi是第i个位置的特征,(wi, hi)是对应的anchor形状。NT通过3*3的变形卷积实现。首先通过形状预测分支预测offset field,然后对带偏移的原始feature map做变形卷积获得adapted features。之后进一步做分类和bounding box回归。
三、Training
采用多任务loss进行端到端的训练,损失函数为:
1、anchor location
利用groundtruth bounding box来指导label生成,1代表有效位置,0代表无效位置。中心附近的anchor应该较多,而远离中心的anchor数目应该少一些。假定R(x, y, w, h)表示以(x, y)为中心,w和h分别为宽高的矩形区域。将groundtruth的bbox(xg, yg, wg, hg)映射到feature map的尺度得到(x'g, y'g, w'g, h'g)。
a.定义中心区域CR=R(x'g, y'g, σ1w', σ1h'),CR区域内的像素标记为正样本;
b.定义ignore区域IR=R(x'g, y'g, σ2w', σ2h')\CR,该区域的像素标记为ignore;
c.其余区域标记为外部区域OR,该区域所有像素标记为负样本。
考虑到基于FPN利用了多层feature,所以只有当feature map与目标的尺度范围匹配时才标记为CR,而临近层相同区域标记为IR,如下图所示。文中使用Focal Loss来训练定位分支。
2)anchor shape
首先将anchor与groundtruth的bbox匹配,然后计算最佳宽和高(可以最大化IoU)。因此重新定义了变化的anchor与gt bbox的vIoU:
变化anchor:awh=(x0, y0, w, h)
groundtruth bbox:gt=(xg, yg, wg, hg)
其中IoUnormal是IoU的常规定义,w和h是变量。由于对任意位置的anchor与ground truth,对vIOU进行明确的表示是非常困难的,因此给定(x0,y0),本文采用近似的方法,采样一些可能的w和h。文中采样了9组常见的w、h。实验表明结果对sample的组数不敏感。文中采用有界IoU损失来最大化IoU。
作者使用Guided Anchoring策略来改进RPN(称为GA-RPN)。下图对比了RPN和GA-RPN产生的proposal的IoU分布:
很显然,GA-RPN产生的正样本数目更多,而且高IoU的proposal占的比例更大。训练时相比于RPN,GA-RPN采用更高的阈值、使用更少的样本(使用高质量proposal的前提是根据proposal的分布调整训练样本的分布)。
四、优缺点分析
优点:
1、论文提出anchor设计的两个准则:alignment 和 consistency,指导基于anchor优化的方向。采用位置预测和形状预测两个分支,不需要像FPN预先设置尺度和长宽比,同时使用可变形卷积对feature map调整,生成高质量低密度的proposal,提高IoU的阈值进行训练。
2、提出了一种新的anchor策略,用于产生稀疏的任意形状的anchor;
3、论文提出的GA-RPN可以完全替代RPN,在Fast R-CNN, Faster R-CNN and RetinaNet等模型基础上提高目标检测模型的精度。
缺点:
1、论文假设图像中的目标是稀疏的。如果是稠密图像,比如车站或广场的拥挤人群,检测效果有待检验。
2、每一个点只产生一个anchor,那么对于那些目标中心重合,即一个点需要负责检测两个目标,似乎无法处理。
3、采用deformable卷积会相对地降低速度,同时根据DCN v2的分析,在deformable卷积中加入可调节的机制可能会更好。
思考:
1、可以借鉴采用双分支预测:一个分支预测目标的中心点,另一个分支预测物体的长框,这个思想的实现和看完cornerNet和CenterNet的想法实现是类似的,但是出发点不同。
之前做双分支预测是想利用anchor free中的中心点的预测看能否增加物体的内部感知能力。现在的双分支预测是为了减少先验框anchor的数量,减少正负样本的不平衡问题。两者出发点不同,但是采用的操作是类似的,有效性有待考证。