文章 12
评论 4
浏览 32307
Region Proposal by Guided Anchoring 论文阅读笔记

Region Proposal by Guided Anchoring 论文阅读笔记

概述

这篇文章提出了提出了一种新的 anchor 生成方法,即通过图像特征来指导 anchor 的生成。通过预测 anchor 的位置和形状,来生成稀疏而且形状任意的 anchor,并且设计了 Feature Adaption 模块来修正特征图使之与 anchor 形状更加匹配。

文章提出手工设计 anchor 有两个要求:1)alignment,为了用卷积特征作为 anchor 的表示,anchor 的中心需要和特征图的像素中心比较好地对齐;2)consistency,feature map 不同区域的 anchor 的形状和大小应当与其感受野和语义范围一致。论文还认为,这种手工设计 anchor 的方式存在两点不足:1)必须针对不同的问题设计相应比例和大小的 anchor,错误的设计可能会影响检测器的速度和精度;2)为了得到极高的召回率,需要设计非常多的 anchor,而其中大部分 anchor 并不会覆盖到真实目标,大量的 anchor 也会带来非常大的运算开销。

方法

文章指出,对于一张图片 I,其 anchor 的位置和形状分布满足下式

P(x,y,w,h|I)=P(x,y|I)P(w,h|x,y,I)

这个式子表明,给定一张图片 I,目标可能只会出现在其特定位置,并且目标的形状与它的位置密切相关。

ga1.png

上图是 guided anchoring 的示意图,从图中可以看出 guided anchoring 模块分为两个部分,ancho generation 和 feature adaption。其中 anchor generation 分为 anchor location prediction 和 anchor shape prediction 两部分。第一个 anchor location prediction 网络负责预测 anchor 的位置,该网络由 1x1 卷积组成,并使用 sigmoid 函数将 feature map 的值转化为概率值。该分支产生一个与输入尺寸相同的由概率值组成的 feature map,其中每个点的概率值P(i,j|I),对应原(s(i+1/2),s(j+1/2))坐标的位置,其中 s 为 feature map 的步长,即相邻 anchor 之间的距离,这个概率值表示该位置上出现物体的可能性。第二个 anchor shape prediction 网络负责预测 anchor 的形状,该网络产生的 feature map 预测每个点的 anchor 形状(w, h),由尺度的范围较大,直接预测十分不稳定,因此构造下式

w=\sigma\cdot s \cdot e^{dw}, h=\sigma\cdot s \cdot e^{dh}

网络预测 dw 和 dh 的值,然后通过上面的式子转化成最终的 w 和 h 的值。

传统的 RPN 层 anchor 均匀分布在整个 feature map 上,不同的区域的 anchor 的形状和大小是一致的,因此 RPN 的 feature map 可以学习到一致的特征。但 guided anchoring 方案中每个 anchor 都是不同的形状和大小,因此不能像传统的 RPN 一样直接用原 feature map 进行分类和回归。因此,利用 feature adaption 部分将不同 anchor 的信息融合到 feature map 中,利用一个 3x3 的 deformable convolution 来修正原始的 feature map,而 deformable convolution 的 offset 是通过 anchor 的 w 和 h 经过一个 1x1 conv 得到的。论文的 ablation study 的结果表明,这部分能够带来非常显著的效果提升。

训练

不同于传统的目标检测框架,该框架下需要包含了四个部分的损失函数

L=\lambda_1L_{loc}+\lambda_2L_{shape}+L_{cls}+L_{reg}

要计算上面的损失函数,需要产生两个 ground truth,包括 anchor location targets 和 anchor shape targets。其中 anchor location targets 用一张只有 0 和 1 的 feature map 表示,若存在有效目标则为 1,否则为 0。我们希望在目标的中心处放置更多的 anchor,边缘处放置更少的 anchor。首先将 ground truth 的 bounding box 的尺寸

(x_g,y_g,w_g,h_g)映射到 feature map 的大小(x_g^{'},y_g^{'},w_g^{'},h_g^{'}),用R(x,y,w,h)表示一个 anchor,根据 anchor 的位置和尺寸将其分为三个类别,如下图所示:
ga2.png

  • 中心区域:CR=R(x_g^{'},y_g^{'},\sigma_1 w^{'},\sigma_1 h^{'})定义了目标中心区域的点,这些点标记为正类。
  • 忽略区域:IR=R(x_g^{'},y_g^{'},\sigma_2 w^{'},\sigma_2 h^{'}) - CR(\sigma_2\gt\sigma_1)
  • 外部区域:表示 feature map 中除去 CR 和 IR 的区域,该区域的点标记为负类

由于使用了 FPN 多尺度的方法,因此在在定义 CR 区域时只考虑与当前 feature map 的尺度相吻合的目标,使用 focal loss 训练该分支。
为了获得最合适的 anchor 的形状和尺寸,一般会将 anchor 与 ground truth 计算 IoU 以匹配更合适的目标,但本文的 anchor 的形状是变化的,直接计算比较困难。因此,本文定义了变化的 anchor 的(x_0,y_0,w,h)与真实目标的(x_0,y_0,w_g,h_g)的 IoU,记作 vIoU,表达式如下:

vIoU(a_{wh},gt)=\max\limits_{w\gt0,h\gt;0}IoU_{normal}(a_{wh},gt)

其中IoU_{normal}为经典的 IoU 定义,w 和 h 为变量,对于任意位置的 anchor 和 ground truth,对 vIoU 直接进行计算是十分困难的。因此对于给定的(x_0,y_0),本文计算了 9 组 w 和 h 的值下的 IoU,取其中最大值为近似值。

The Use of High-quality Proposals

相比传统的 RPN,GA-RPN 可以产生更高质量的 anchors。本文考虑了如何利用这些高质量的 anchors 来提升两阶段检测性能。首先研究了,RPN 及 GA-RPN 产生的 anchors IOU 的分布规律,如下图。
ga3.png
与 RPN 相比 GA-RPN 存在两个明显的优点:(1)正 proposals 的数量更多。(2)高 IOU 的 proposals 的比例更有用。但将 RPN 换作 GA-RPN 效果提升不大。据实验观察,使用高质量 proposal 的先决条件是根据 proposals 的分布来进一步调整训练样本的分布。因此,相比 RPN,训练 GA-RPN 时使用更高的阈值来使用更少的样本来进行训练。


标题:Region Proposal by Guided Anchoring 论文阅读笔记
作者:coollwd
地址:http://coollwd.top/articles/2019/12/15/1576424122490.html

Everything that kills me makes me feel alive

取消