Guided Anchoring

Guided Anchoring

文章
   Anchor机制是目前主流的(当然也有不基于anchor的算法, 比如CornerNet和GridNet)基于深度学习的目标检测算法的重要基石。目前的最先进的检测器都是使用的密集的anchor模式,即在图片上均匀放置好一组定义好形状和大小的anchor。anchor的设计一般有两个要求1.alignment,为了用卷积特征作为anchor的表示,anchor的中心需要和特征图的像素中心比较好地对齐;2.consistency,不同位置对应的anchor的形状和大小应该一致。

   本文的研究表明anchor机制可以实施得更加有效和高效。本文提出的方法Guided Anchoring利用语义特征来指导anchor。方法会联合预测感兴趣物体中心可能出现的位置和在不同位置的形状大小。也就是先预测anchor的形状大小及位置,再在这些anchor的基础上预测目标。

   从图1中看到Guided anchoring模块中有两个部分:anchor generation和feature adaption。首先是anchor generation,对于第一部分anchor location prediction,采用网络N_L。N_L对输入特征图F_I使用1x1的卷积,得到与F_I相同分辨率的输出,该输出的位置(i,j)对应原图上((i+0.5)s,(j+0.5)s),其中s是这个F_I的stride。N_L得到的输出的每个位置的值表示原图I上对应位置出现物体的可能性(当然得使用sigmoid)。

   anchor generation的第二部分是anchor shape prediction,采用1x1的卷积网络N_S,输入F_I,输出和F_I尺寸相同的2通道的特征图,表示每个位置可能的最好的anchor的尺寸。文章发现直接训练输出绝对尺寸不稳定,因为绝对尺寸的范围太大了,因此采用下式
在这里插入图片描述

s是stride,σ是一个尺度系数(文中取8),N_S只需要预测dw和dh,通过这样的方法将训练目标的范围从约[0,1000]缩小到了[-1,1]。
   接下来是anchor-guided feature adaption。由于每个位置的anchor形状不一样,所以不能再像之前的基于anchor的方法那样,直接利用F_I进行1x1的卷积预测每个anchor的结果,而应该对feature map进行adaption,也就是大一点的anchor对应的感受野应该大一点,小一点的anchor对应的感受野应该小一点,于是作者想到用可变形卷积的思想。先对每个位置预测一个卷积的offset(1x1卷积,输入为shape prediction),然后根据该offset field进行3x3的可变形卷积就完成了对feature map的adaption。

训练:
   除了基本的分类损失和回归损失以外,guided anchor方法还需要学习anchor location和anchor shape,因此还有两个额外的损失函数:
在这里插入图片描述
anchor location targets:每次训练anchor的location,那么对于每张图片就需要一个binary的label map,1表示有anchor,0表示没有。希望能在物体中心附近的区域anchor多一些,远一点的地方anchor少一些。于是将ground truth映射到target大小的分辨率,然后根据下图设置label和正负样本点


上图可以看出,在gt中心周围的一些点(CR)都为正样本,为1;在gt内部但距离中心较远的点为被忽略区域(IR),计算损失函数时不考虑这部分;其余部分则是外部区域(OR)负样本,为0。

anchor shape targets:首先要给ground truth可以达到最大IoU的anchor作为匹配anchor
在这里插入图片描述
这和之前的基于anchor的方法不一样,之前的方法anchor都定义好形状了,因此可以直接找到最大IoU的,现在anchor形状不定,所以要找可能最大的。但实际上要在连续的w和h的取值范围中找到最优值是比较复杂的,要把这个过程嵌入到网络中很费时间,因此文章设置了9对w和h,每次就在这9对中找最优即可,为了效率进行了一定的trade-off。注意训练的时候,损失函数也不是直接像最优的w和h训练,而是借鉴了bounded IoU loss
   最后实验表明,不管是用在two-stage的RPN中还是用于one-stage detector,本文方法的效果都不错。下面这个图明显看出GA-RPN在生成的proposal质量上,是要好于传统RPN的。


   再看一下anchor generation的效果


可以看到anchor其实大都可以算作还不错的检测结果了,所以我说这篇文章最大亮点就是用DCN把one-stage和two-stage结合了

   从下面两个表看出guided anchor对模型速度影响也不大,而且对主流的检测框架都有促进作用。


  <center>
                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                            </div>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值