代码地址:Grid-R-CNN
1. 概述
导读:这篇文章在Faster RCNN(带FPN)的基础上采用grid guided定位机制提出了新的检测方法Grid RCNN。与传统的回归方法相比,Grid RCNN显式捕获空间信息(像素级,使得定位更准确),并使用了卷积网络对位置敏感的特性。在检测框的表达上,传统方法使用两个独立的点(左上与右下),而这篇文章中的方法使用多点组合的形式组合更多的信息以排除一些不精确的检测结果。同时为了能够更好利用网格中点的联系,文章提出一个两阶段特征融合策略融合相邻grid点的特征。
可移植性方面,文章提出的grid guided定位方法可以很容易移植到不同的检测方法中去。
在性能方面,Grid RCNN在COCO benchmark上相比这篇文章中的基准网络在IoU=0.8时提升了4.1%AP,在IoU=0.9时提升了10%AP。
这篇文章提出的全卷积的定位框回归方法与传统的检测框回归方法对比,见图1所示:
一般来说使用两个点就可以定位一个目标,但是定位目标的点并不是与定位的特征直接关联的。好比如在图1(b)中的右上角的点,它的位置其实没有在目标上而是在背景区域,它与周围的背景有着相似的特征,这样就会影响到精确的边界定位。
为了克服这个问题文章提出了多点监督机制,通过在一个网格中定义目标点,可以获得更多信息来减少一些点检测不准确的影响。比如猫咪右上角的点可能不准确,可以通过刚好位于边界的上中点进行监督校准。
除此之外,为了充分利用网格点的信息,提出了一种信息融合的策略。具体来说,对于一个网格点来说,其相邻的特征图都会被收集并融合成一个特征图,这个融合后的特征图用于相应网格点的预测,从而使得这个网格点的位置更加精准。
文章的主要贡献如下:
- 1)这篇文章提出了一个新的检测器Grid RCNN,其使用卷积网络有效保留了空间信息,首次通过两阶段网络使用逐点预测grid点的形式定位目标;
- 2)提出对grid中的预测点使用多点监督方法,减少了一些不准确点的影响。为了使空间上相关联的grid点获取到融合特征,在特征层级上提出了特征融合的机制,这样使得目标的定位可以被校准;
- 3)在多个检测框架上运用Grid RCNN中的检测机制,证明了grid guided定位机制是好于传统上基于回归的定位方法的;
2. 方法设计
2.1 网络结构
这篇文章提出的网络结构见图2所示:
与Faster RCNN不同是将原来全连接的回归网络换成了全卷机的网络(grid预测分支),这个分支在RPN RoI的结果上输出一组空间分布(heatmap),可以用它来定位目标边界框的grid点。在grid点基础上通过特征图级别的信息融合方法确定准确的定位框。
2.2 Grid Guided定位
从RoIAlign出来的特征图被规定为 14 ∗ 14 14*14 14∗14大小,其后面接了8个 3 ∗ 3 3*3 3∗3的膨胀卷积(扩大感受野),之后使用2个2倍的反卷积扩大分辨率到 56 ∗ 56 56*56 56∗56,最后其输出channel是 N ∗ N N*N N∗N,分辨率是 56 ∗ 56 56*56 56∗56的特征图(每个网格点对应一个特征图),这些特征图经过sigmoid操作得到对应的概率图。对于这些heatmap都有一个对应的监督图(GT),这些监督图中使用5个像素组成的交叉形状带表示目标点,并使用二值交叉熵损失回归。
在预测阶段在每个heatmap上选择最大置信度的像素作为grid point,并计算相对原始图像的位置,这里使用
(
H
x
,
H
y
)
(H_x, H_y)
(Hx,Hy)表示heatmap中的grid点位置,
(
I
x
,
I
y
)
(I_x,I_y)
(Ix,Iy)表示原始输入图中的位置,其计算关系如下:
其中,
(
P
x
,
P
y
)
(P_x,P_y)
(Px,Py)表示当前目标的proposal左上角点相对原始图像的偏移,
w
p
,
h
p
,
w
o
,
h
o
w_p,h_p,w_o,h_o
wp,hp,wo,ho分别表示proposal的宽高与输出heatmap的宽高。
得到这些网格点之后就是需要计算预测出来的检测框了,文中对检测框的描述为
B
=
(
x
l
,
y
u
,
x
r
,
y
b
)
B=(x_l,y_u,x_r,y_b)
B=(xl,yu,xr,yb),分别表示检测框的上下左右四个边。第
j
j
j个grid点坐标为
(
x
j
,
y
j
)
(x_j,y_j)
(xj,yj),其对应的概率为
p
j
p_j
pj。第
i
i
i条边使用
E
i
E_i
Ei表示,自然每条边上都有多个点(grid point),则对应的四个边界位置就是使用这些点加权组合的形式得到,其关系为:
使用加权组合的形式会使得误差变动减小,预测更精准些。由网格点带来的性能影响见下表1所示:
2.3 Grid Points特征融合
被划分的网格上的点并不是相互独立的,相反其是相互关联的,这节讲的是如何使用这些点的关联来减少grid点的偏差。直接使用均值坐标的形式会抛弃掉很多特征图的丰富信息,对此提出了另外一种特征融合的方式。
这里使用两个阶段的特征融合策略。对于第一阶段特征融合,这里选用图3(a)中左上角的点作为原点,距离其距离为1的点(其对应的特征图)加入进来进行特征融合,既是这些点的特征图使用3个连续的
5
∗
5
5*5
5∗5卷积之后与原点所在的特征图相加,其数学表达为:
在做完一阶段特征融合之后,选用距离为2的网格点进行进一步特征融合,使用第二阶段特征融合的结果作为后面grid点定位heatmap的输出(图3(b))。需要注意的是第一阶段与第二阶段的权值并不是共享的,分别单独有一套,相互独立。
特征融合对网络性能带来的影响见表2所示:
2.4 Extended Region Mapping
实际中发现目标对应的网格点并没有落在RPN的RoI中,自然后面的grid point生成heatmap中也不会存在这些对应的网格点,这就导致训练阶段一些网格点的缺失,从而无法有效使用训练样本中的一些样本,训练效率降低;预测阶段由于网格点的丢失会导致对应目标的定位错误。其示意见图4所示,小的白框是RPN的结果,绿色的是GT,9个点中的7个点没有在RPN区域中。
其中一个直观的解决办法就是增大RPN的结果,但是这样会带来一些无关的东西,会降低对于小目标的检测性能。对此,文章是通过重新定义输出heatmap的表达区域(增大对应的面积) 实现的,在高度和宽度上增加了1倍,见图4中虚线的矩形。因而输出特征图的点与原始输入图的坐标对应关系为:
对坐标的重新映射给性能带来的影响见表3所示: