目标检测
首发于目标检测

2019 CVPR目标检测GA-RPN论文阅读笔记

背景:

(更新信息,该论文已经被CVPR接受,目前paper list还没有完全放出,extreme-assistant/cvpr2019这篇整理的相对较完整。)

《Region Proposal by Guided Anchoring》是2019年1月挂在在Arxiv的论文,作者来自于商汤和港中文。该论文的技巧在2018年COCO比赛分割冠军中也被采用(另一个技巧则是新的backbone,FishNet)。

论文地址:

https://arxiv.org/pdf/1901.03278.pdfarxiv.org

代码地址:据说会开源到mmdetection,关注中,mmdetection地址为:

open-mmlab/mmdetectiongithub.com图标

一、研究动机

目前anchor都是人工预设好的(Faster-RCNN提前设定,如1:2,1:1,2:1,而YOLOv2则通过聚类得到),这样会存在两个问题:1)anchor需要特别的设计,并且无法覆盖特殊情况(如特别高或者宽),如果设计得不好,那会影响最后的效果。2)为了保持较高的召回率,需要大量的anchor,而其中大多数都是负样本(无用的anchor)。该论文提出了一种可学习的anchor机制,由图像本身的语义信息来学习产生得到(主要是位置和上下文信息)。

二、具体方法

图 一 整体框架

整体框架如图一所示,其中GA-RPN包含三个部分:

(1)anchor位置预测:

采用一个子网络对原特征图学习得到特征图上每一个点存在目标的可能性。该子网络包含一个卷积层,其kernel size为1,通道数为1,和一个sigmoid激活函数,生成一个 w\times h 的概率图,每个点代表了对应特征图上的点是否存在目标。注:此处文中也采用了更复杂的网络,考虑到效率的问题,采用了上述设计。

(2)anchor形状预测:

同样利用一个子网络学习得到对应点的anchor的w和h,同时注意到直接学习w和h,训练会不稳定(真实物体长宽的实际像素可能在十几到上千),所以通过学习dw和dh,通过如下公式:

大约能将[0,1000]映射到[-1,1]。(实际上,考虑s为32倍下采样的尺度图, \sigma 为8,[-1,1]能负责检出[94,696]。)所以该子网络的输出是 w\times h \times 2 的特征图。

图二

图二表示了GA-RPN的预测结果。b是位置预测的结果,c是形状(长宽比)预测的结果。

(3)Anchor特征适应

不同于主流预设的anchor机制,由于特征点的每一个anchor的大小和形状是相同的,所以特征的表达也是一致的。对于GA-RPN,由于不同的点的anchor大小形状均不相同,所以特征的表达应该也不一致,具体地,大的anchor,应该有更大的region的信息,而小的anchor,则需要对应region的信息。实现上,论文借用了deformable卷积的思想。新的特征图由原来的特征图做deformable卷积得到,其中offset由形状预测图卷积得到,如图一所示。

实验细节上:

(1)损失函数,联合训练加入了anchor的损失函数:

(2)anchor位置损失函数训练:

在第一项anchor位置loss中,需要选取正负样本:

图三

图中蓝色框和红色框均为真值框,以最上角为例,中心的绿色区域负责检出整个红色框,为正样本,黄色区域不选取样本,黄色区域与红框之间的样本为负样本。

(3)anchor形状损失函数训练:

之前的方法由于anchor是预设的,所以可以很自然地可以直接计算anchor和真值的IoU,从而选取样本。但现在的anchor是不定的,无法通过上述方法计算。所以论文预设了9组值,分别每个点的9组值和真值的IoU,选取其中最大的IoU作为该anchor的IoU。然后选取训练样本。

(4)GA-RPN的使用:

直接将RPN替换为GA-RPN,而不改其他任何设置,对最后的结果提升较小。GA-RPN产生的proposal其位置更加准确,所以需要提高IoU阈值。

从表中可以看到,在0.5的情况下,直接替换,只提升了0.7个点,但在0.6的情况下,提升了1.7个点。进一步地,减少proposal的数目,其提升更加明显。

三、实验结果

应用到不同的检测框架中,其提升有1-2个百分点的提升。(注,注GA-RPN调整了阈值重新进行训练。)

上表展示了不同部分对召回率的影响,可以看到特征适应部分对召回率的提升较为明显。

四、总结分析

优点:

(1)除了meta-anchor(孙剑 2018 NIPS的paper),又一篇讨论学习得到anchor的方法,思想值得学习。

(2)实现上将anchor的学习分解成两个部分,降低了学习难度,加入了特征适应部分,合情合理,最后在结果上,对two-stage和one-stage的方法均有不小的提升。

缺点:

(1)每一个点只产生一个anchor,那么对于那些两个目标(一大一小)的中心重合的情况,即一个点需要负责检测两个目标,似乎无法处理。虽然只是一个极端的例子。

(2)采用deformable卷积会相对地降低速度,同时根据DCN v2的分析,在deformable卷积中加入可调节的机制可能会更好。

编辑于 2019-03-07

文章被以下专栏收录