共计 3475 个字符,预计需要花费 9 分钟才能阅读完成。
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 解决方案。
如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】