GA-RPN

Region Proposal by Guided Anchoring

Introduction

作者认为设计一个好的anchor产生的部件需要满足两个条件:alignmnet和consistency

  • alignment指的是anchor的中心点需要和feature point对齐
  • consistency指的是anchor的尺度和形状需要和感受野一致

因此本篇文章主要贡献如下:

  • 重新设计了一个anchor generator,guided anchor,与手工先验设计不同,该部件可以自行预测anchor
  • 用两个分解的条件分布来制定联合锚点分布,并设计两个模块分别对它们进行建模
  • 研究了特征对齐和特征图自适应
  • 研究了高质量的候选区域对于两阶段检测其的影响,并且提出了一种对已经训练好的模型提点的方法

Guided Anchoring

GA anchor可以由下述条件分布公式获得:

$$
p(x,y,w,h|I)=p(x,y│I)p(w,h|x,y,I)
$$

上述公式可以解释为给定一张图片I上存在目标区域的概率等于图片上存在目标中心点的概率与图片上目标中心点为基础的边框长宽概率的乘积;

但是分解出来的两个公式暗示着1、物体存在着适当的候选区域2、物体的形状(尺度和长宽比)和它当前所处的位置有关系;

所以根据上述两个等式,作者设置了两个分支,分别为预测像素级前后背景的分支,以及anchor的长宽形状,所以对应的生成锚点的过程可以简单的概括为:通过选择预测概率高于某个阈值的位置以及每个所选位置最可能的形状来生成一组锚点。之后又设计了一个特征自适应模块。

Anchor Location Prediction

预测的特征图可能值每个点的位置对应到原图上的位置为

$$
((i+1/2)s,(j+1/2)s)
$$

预测分支的通道数为1,并且预测完后要进行sigmoid操作,高于阈值的保留低于阈值的剔除,可以筛选掉大约90%的区域,由于排除的区域已经没有必要再进行保留,所以在测试的时候将随后的普通卷积换成maksed卷积操作。

Anchor Shape Prediction

该模块的主要思路在于:

$$
f_i^′=N_T (f_i,w_i,h_i)
$$

由于anchor是网络预测的,所以anchor对应区域和之前的感受野已经出现了偏差,为了弥补这个偏差,需要利用形变卷积操作\(N_T\),将特征图上的每个点的位置\(i\)进行相应变化得到合适的感受野。

Training

Joint objective

损失函数除了常规的位置和分类之外,还加上了GA的位置和形状的损失函数:

$$
L=λ_1 L_{loc}+λ_2 L_{shape}+L_{cls}+L_{reg}
$$

Anchor location targets

位置分支使用的是focal loss损失函数,并且由于是逐像素的,首先要规定正负样本区域,将GT映射到特征图上之后,分为三个区域:

  • 中心区域CR:\((x_g',y_g',\sigma_1w',\sigma_1h')\)定义为正样本
  • 忽略区域IR:\((x_g',y_g',\sigma_2w',\sigma_2h')\)中心区域外,前式区域内忽略
  • 外部区域OR:即忽略区域之外的区域

Anchor shape targets

由于预测的anchor可能会很多,所以在这里,作者采样9个预测的anchor来代表整体的anchor

之后使用损失公式bounded iou loss:

$$
L_{shape}=L_1 (1−min⁡(w/w_g ,w_g/w) )+L_1 (1−min⁡(hhg ,hg/h)
$$

The Use of High-quality Proposals

作者发现这些高质量的候选区域能够更好的帮助一些二阶段模型进行微调,能够得到更高的精度。