论文地址: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 了。
文中试验后果示例:
学习更多编程常识,请关注我的公众号:
代码的路