Guided Anchoring通过在线生成anchor的形式解决惯例手工预设anchor存在的问题,以及可能依据生成的anchor自适应特色,在嵌入方面提供了两种施行办法,是一个很残缺的解决方案

起源:晓飞的算法工程笔记 公众号

论文: Region Proposal by Guided Anchoring

  • 论文地址:https://arxiv.org/abs/1901.03278
  • 论文代码:https://github.com/open-mmlab/mmdetection

Introduction


  Anchor是许多指标检测算法中一个很重要的机制,但也会带来两个问题:

  • 须要事后设计适合的anchor尺寸和长宽比,如果设计不好,对速度和准确率造成很大影响
  • 为了使anchor达到足够的召回率,须要在特色图上铺设大量的anchor,不仅引入大量负样本,还消耗计算量

  为此,论文提出Guided Anchoring来依据图片特色在线生成anchor。首先判断指标可能呈现的地位,而后学习不同地位上的指标的形态,可依据图片特色在线学习稠密的候选anchor。然而,在线生成的anchor形态各异,固定的感触域可能不匹配其形态,所以Guided Anchoring依据anchor的形态进行自适应特征提取,而后再进行预测框精调与分类。

Guided Anchoring


  Guided Anchoring尝试在线学习不同形态的anchor及其地位,失去在特色图上不均匀分布的anchor汇合。指标可用四元组$(x,y,w,h)$示意,其地位和形态可认为是遵从图像$I$的一种散布:

  公式1蕴含两局部:1) 给定图片,指标仅存在于某些区域 2) 形态与地位严密相干。

  基于公式1,论文设计了图1的anchor生成器(Anchor generation),蕴含地位预测和形态预测两个分支。给定图片$I$,首先失去特色图$F_I$,地位预测分支依据$F_I$预测该像素为指标地位的概率,形态预测分支则预测像素地位相干的形态,基于两个分支抉择概率高于阈值以及每个地位最合适的anchor,失去最终的anchor汇合。因为汇合中的anchor形态可能差别很大,每个地位须要获取不同大小区域的特色,论文提出特色自适应模块(Feature adaption),依据anchor形态自适应提取特色。
  上述的生成过程是基于单个特色的,网络的整体架构蕴含FPN,所以为每层都装备Guided anchoring模块,模块参数是层间共享的。

Anchor Location Prediction

  地位预测分支预测特色图$F_I$的概率图$p(\cdot|F_I)$,每项$p(i,j|F_I)$为该地位是指标核心的概率,对应的输出图片中坐标$((i+\frac{1}{2})s, (j+\frac{1}{2})s)$,$s$为特色图的stride。
  在实现时,通过子网$\mathcal{N}_L$进行概率图预测,首先应用$1\times 1$卷积提取骨干网络特色图$F_I$的objectness分数,再通过element-wise sigmoid函数转化概率。更简单的子网能够带来更高的准确率,论文采纳的是准确率和速度最实惠的构造,最初取高于阈值$\epsilon_L$的像素地位,可能保障在高召回的前提下过滤90%的无关区域。

Anchor Shape Prediction

  形态预测分支的指标是预测每个地位对应指标的最佳形态$(w,h)$,但因为过大的数值范畴,如果间接预测其具体数字会非常不稳固,所以先进行转化:

  形态预测分支输入$dw$和$dh$,依据公式2转换出形态$(w,h)$,$s$为特色图的stride,$\sigma=8$为人工设置的缩放因子。这个非线性转换可将[0, 1000]映射到[-1, 1],更容易学习。在实现时,通过子网$\mathcal{N}_S$进行形态预测,首先应用$1\times 1$卷积取得两维特色图,别离对应$dw$和$dh$,而后通过公式2进行转换。因为每个地位的anchor都是学习来的,与预设的固定anchor比照,这种学习的anchor召回率更高。

Anchor-Guided Feature Adaptation

  惯例的预设anchor办法因为各地位的anchor是一样的,能够对每个地位进行一样的特征提取,而后再调整anchor和预测分类。但Guided Anchoring每个地位的anchor各不一样,现实状况下,较大的anchor须要较大的感触域特色,反之则须要较小的感触域特色,所以论文设计了基于anchor形态的特色自适应模块(anchor-guided feature adaptation component),依据每个地位的anchor形态转换特色:

  $f_i$为$i$地位的特色,$(w_i, h_i)$为对应的anchor形态,$\mathcal{N}_T$为$3\times 3$可变形卷积,变形卷积的偏移值由$1\times 1$卷积将地位预测分支输入转换取得,$f^{'}_i$为自适应特色,用于后续的anchor调整以及分类预测,具体见图1。

Training


Joint objective

  网络的整体损失函数由4局部形成,别离是分类损失、回归损失、anchor地位损失以及anchor形态损失:

Anchor location targets

  假如指标$(x_g, y_g, w_g, h_g)$在特色图上的映射为$(x^{'}_g, y^{'}_g, w^{'}_g, h^{'}_g)$,定义以下三种区域:

  • 核心区域$CR=\mathcal{R}((x^{'}_g, y^{'}_g, \sigma w^{'}_g, \sigma h^{'}_g))$,区域内均为正样本点
  • 疏忽区域$IR=\mathcal{R}(x^{'}_g, y^{'}_g, \sigma_2 w^{'}_g, \sigma_2 h^{'}_g) $\ $CR$,$\sigma_2 > \sigma$,区域内的均为疏忽点,不参加训练
  • 内部区域OR为非IR和CR的区域,区域内均为负样本点

  骨干网络应用了FPN,FPN的每层应该只负责特定大小范畴内的指标的训练。因为相邻层的特色类似,所以将IR区域映射到相邻层,这时的IR区域不思考CR区域,区域内同样不参加训练,如图2所示。当多个指标重叠时,CR区域优先于IR区域,IR区域优先于OR区域,训练采纳Focal loss。

Anchor shape targets

  首先,定义动静anchor $a_{wh}=\{(x_0, y_0, w, h)| w> 0, h > 0\}$与GT间的最优问题为:

  如果对每个地位都进行公式5的求解,这计算量会相当大,为此,论文用采样的办法来迫近公式5,采样的范畴为常见的anchor样例,比方RetinaNet的9种anchor。对于每个地位,抉择IoU最大的anchor作为公式5的后果。采样的范畴越大,anchor的生成后果更准,但会带来更多的额定计算量,anchor的采纳smooth-L1训练:

The Use of High-quality Proposals


  将Guided Anchoring嵌入RPN失去增强型GA-RPN,与原版进行比照,从图3能够看到:

  • GA-RPN的正样本数量更多
  • GA-RPN的高IoU候选框数量更多

  从后果来看,GA-RPN的成果比RPN好很多,论文间接将RPN替换GA-RPN仅带来小于1的AP晋升。依据察看发现,应用高质量候选框的前提是,须要依据候选框的散布来调整训练数据的散布。所以,在应用GA-RPN时,须要设置更高的正负样本阈值,让网络更加关注高质量的候选框。另外,论文发现GA-RPN也能够fine-tune的模式boost两阶段检测器的性能,给定训练好的检测模型,将RPN替换为GA-RPN进行几轮迭代,能带来不错的性能晋升。

Experiments


  与各种候选框办法进行比照。

  嵌入成果比照。

  fine-tune比照。

Conclusion


  Guided Anchoring通过在线生成anchor的形式解决惯例手工预设anchor存在的问题,以及可能依据生成的anchor自适应特色,在嵌入方面提供了两种施行办法,是一个很残缺的解决方案。但有个不好的点在于anchor target的生成,为了保障性能弄得不够完满,心愿有人能提出更精确且高效的公式5解决方案。



如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】