论文地址:https://arxiv.org/pdf/1901.03...

代码地址:GitHub - open-mmlab/mmdetection: OpenMMLab Detection Toolbox and Benchmark

1.RPN

RPN即Region Proposal Network,是用RON来抉择感兴趣区域的,即proposal extraction。例如,如果一个区域的p>0.5,则认为这个区域中可能是80个类别中的某一类,具体是哪一类当初还不分明。到此为止,网络只须要把这些可能含有物体的区域选取进去就能够了,这些被选取进去的区域又叫做ROI(Region of Interests),即感兴趣的区域。当然RPN同时也会在feature map上框定这些ROI感兴趣区域的大抵地位,即输入Bounding Box。

RPN具体介绍:https://mp.weixin.qq.com/s/VX...

2.Guided Anchoring

通常用(x,y,w,h)来形容一个anchor,即中心点坐标和宽高。文章将anchor的散布用条件概率来示意,公式为:

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

两个条件概率的散布,代表给定图像特色之后anchor的中心点概率分布,和给定图像特色和中心点之后的形态概率分布。这样看来,原来咱们所获取anchor的办法就能够看成上述条件概率分布的一个特例,即p(x,y|I)是均匀分布而p(w,h|x,y,I)是冲激函数。

依据下面的公式,anchor的生成过程能够合成为两个步骤,anchor地位预测和形态预测。

论文中用到的办法如下:

这个框架就是在原始的RPN的特色图根底上,采纳两个分值别离预测anchor的地位和形态,而后再联合到一起失去anchor。之后采纳一个Feature Adaption模块进行anchor特色的调整,失去新的特色图供之后的预测应用(anchor的分类和回归)。整个办法能够端到端训练,而且相比之前只是减少了3个1×1 conv 和一个3×3 deformable conv,带来的模型参数量变动很小。

(1)地位预测

地位预测分支的指标是预测哪些区域应该作为中心点来生成anchor,也是一个二分类问题,然而不同于RPN的分类,咱们并不是预测每个点是前景还是背景,而是预测是不是物体核心。

咱们将整个feature map的区域分为物体核心区域、外围区域和疏忽区域,大抵思路就是将groundtruth 框的核心一小块对应在feature map上的区域标为物体核心区域,在训练的时候作为正样本,其余区域依照离核心的间隔标为疏忽或者负样本。最初通过抉择对应概率值高于预约阈值的地位来确定可能存在对象流动的区域。$F1$ 对输出的特色图应用 1×1 的卷积,失去与 $F1$ 雷同分辨率的输入,$N_L$ 失去输入的每个地位的值示意原图I上对应地位呈现物体的可能性,也就是概率图,最初通过抉择对应概率值高于预约阈值的地位来确定可能存在对象流动的区域。

通过地位预测,咱们能够筛选出一小部分区域作为anchor的候选中心点地位,使得anchor数量大大降低。这样在最初咱们就能够只针对有anchor的中央进行计算。

(2)形态预测

形态预测分支是指标是给定anchor中心点,预测最佳的长和宽,这是一个回归问题。

采纳1×1的卷积网络 $N_s$ 输出 $F_1$,输入与 $F_1$ 尺寸雷同的2通道的特色图,每个通道别离代表 dw 和 dh,示意每个地位可能的最好的 anchor 尺寸。尽管咱们的预测指标是 w 和 h,然而间接预测这两个数字不稳固,因为范畴很大,所以将空间近似 [0,1000] 映射到了 [-1,1] 中,公式为:

$$w=\sigma \times s \times e^{dw},w=\sigma \times s \times e^{dh}$$

其中 s 是步幅, 是教训因子,试验中取 =8。试验中产生 dw,dh 的双通道映射,通过这个方程实现了逐像素转换。文章中间接用 IOU 作为监督来学习 w 和 h。

对于 anchor 和 ground truth 匹配问题,传统 RPN 都是间接计算 anchor 和所有 ground truth 的 IOU,而后将anchor 匹配给 IOU 最大的那个 ground truth,然而当初因为咱们的改良,anchor 的 w 和 h 都是不确定的,是一个须要预测的变量。文中将这个 anchor 和某个 ground truth 的 IOU 示意为:

$$vIOU(a_{wh},gt)=\max_{w>0,h>0}IOU_{normal}(a_{wh},gt)$$

咱们不可能把所有可能的 w 和 h 遍历一遍求 IOU 的最大值,文中采纳了9组可能的 w 和 h 作为样本,近似成果曾经足够。

到这里咱们就能够生成 anchor 了。这时所生成的 anchor 就是稠密而且每个地位不一样的。试验可得此时的均匀 recall 曾经超过一般的 RPN 了,仅仅是减少了两个 conv。

(3)特色精调模块

因为每个地位的形态不同,大的anchor对应较大感触野,小的anchor对应小的感触野。所以不能像之前基于anchor的办法那样间接对feature map进行卷积来预测,而是要对feature map进行feature adaptation。作者利用可变形卷积(deformable convolution)的思维,依据形态对各个地位独自进行转换。

办法就是把anchor的形态信息间接融入到特色图当中,失去新的特色图去适应每个地位anchor的形态。这里就利用了上述的3×3的可变形卷积进行对原始特色图的修改,可变形卷积的变动量是通过anchor的w和h通过一个1×1 conv失去的。

$$f'_i=N_t(f_i,w_i,h_i)$$

其中,fi 是第 i 个地位的特色,(wi, hi) 是对应的 anchor 形态。NT 通过 3×3 的变形卷积实现。首先通过形态预测分支预测偏移字段 offset field,而后对带偏移的原始 feature map 做变形卷积取得 adapted features。之后进一步做分类和 bounding box 回归。

通过这样的操作,达到了让 feature 的无效范畴和 anchor 形态更加靠近的目标,同一个 conv 的不同地位也能够代表不同形态大小的 anchor 了。

文中试验后果示例:

学习更多编程常识,请关注我的公众号:

代码的路