Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)
Guided Anchoring通过在线生成anchor的方式解决常规手工预设anchor存在的问题,以及能够根据生成的anchor自适应特征,在嵌入方面提供了两种实施方法,是一个很完整的解决方案论文: Region Proposal by Guided Anchoring
?
来源:晓飞的算法工程笔记 公众号
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/96827e33c2924ac0b98af4b41f110082.jpg)
文章图片
- 论文地址:https://arxiv.org/abs/1901.03278
- 论文代码:https://github.com/open-mmlab/mmdetection
- 需要预先设计合适的anchor尺寸和长宽比,如果设计不好,对速度和准确率造成很大影响
- 为了使anchor达到足够的召回率,需要在特征图上铺设大量的anchor,不仅引入大量负样本,还耗费计算量
Guided Anchoring ? Guided Anchoring尝试在线学习不同形状的anchor及其位置,得到在特征图上不均匀分布的anchor集合。目标可用四元组$(x,y,w,h)$表示,其位置和形状可认为是服从图像$I$的一种分布:
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/8b2b6744c2a748b6970bd1ee59488e08.png)
文章图片
? 公式1包含两部分:1) 给定图片,目标仅存在于某些区域 2) 形状与位置紧密相关。
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/50a02c166c48435386a8dde12a7bd593.jpg)
文章图片
? 基于公式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)$,但由于过大的数值范围,如果直接预测其具体数字会十分不稳定,所以先进行转化:
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/b00d94d766bf451f8398191261034578.png)
文章图片
? 形状预测分支输出$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形状转换特征:
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/8c233797e1dc4ffa936d52ca9a84877b.png)
文章图片
? $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形状损失:
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/79f416ec6d5948a884383966702088f5.png)
文章图片
Anchor location targets
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/974617fe10bc4fdfad0744b2567cd411.jpg)
文章图片
? 假设目标$(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的区域,区域内均为负样本点
Anchor shape targets
? 首先,定义动态anchor $a_{wh}=\{(x_0, y_0, w, h)| w> 0, h > 0\}$与GT间的最优问题为:
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/7e68a1844e20473c9cb17ce85685ef1a.png)
文章图片
? 如果对每个位置都进行公式5的求解,这计算量会相当大,为此,论文用采样的方法来逼近公式5,采样的范围为常见的anchor样例,比如RetinaNet的9种anchor。对于每个位置,选择IoU最大的anchor作为公式5的结果。采样的范围越大,anchor的生成结果更准,但会带来更多的额外计算量,anchor的采用smooth-L1训练:
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/43b5edb7772b432893c4e79580789978.png)
文章图片
The Use of High-quality Proposals
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/0c2ee43e214341419e19f83570f445b9.jpg)
文章图片
? 将Guided Anchoring嵌入RPN得到增强型GA-RPN,与原版进行对比,从图3可以看到:
- GA-RPN的正样本数量更多
- GA-RPN的高IoU候选框数量更多
Experiments
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/1e2fb2c7ac9044fea1be11c9af6b1490.jpg)
文章图片
? 与各种候选框方法进行对比。
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/11b49cf67141447ab5cc228ace8baf1f.png)
文章图片
? 嵌入效果对比。
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/cc68a2bb3ecd49c1b722df025da49ff5.png)
文章图片
? fine-tune对比。
Conclusion ? Guided Anchoring通过在线生成anchor的方式解决常规手工预设anchor存在的问题,以及能够根据生成的anchor自适应特征,在嵌入方面提供了两种实施方法,是一个很完整的解决方案。但有个不好的点在于anchor target的生成,为了保证性能弄得不够完美,希望有人能提出更准确且高效的公式5解决方案。
?
?
?
如果本文对你有帮助,麻烦点个赞或在看呗~【Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)】
更多内容请关注 微信公众号【晓飞的算法工程笔记】
![Guided|Guided Anchoring(在线稀疏anchor生成方案,嵌入即提2AP | CVPR 2019)](https://img.it610.com/image/info9/a04d525a7f534adf97b9c426d75dfaff.jpg)
文章图片
推荐阅读
- 在线版的迅捷思维导图怎么操作()
- 在线学习,反思与成长
- travis|travis CI 持续集成
- Java毕业设计项目实战篇|Java项目:在线嘿嘿网盘系统设计和实现(java+Springboot+ssm+mysql+maven)
- 【中考在线】家有中考生――中考第一天
- 在线教育升级|在线教育升级 人工智能成为趋势
- 12-13整理
- “团队合作+在线研讨=事半功倍”|“团队合作+在线研讨=事半功倍” ?逐字稿
- word文档转html实现在线预览功能
- 在线时间戳计算时间差