GA: Region Proposal by Guided Anchoring论文解读
文章目录
Attention:
论文解读的博客原文发布于个人github论文合集 欢迎关注,有想法欢迎一起讨论!私信评论均可。
后面有些语法在****的markdown上不支持,导致显示bug,我就懒得改了,有需求直接访问原博客查看。
创建人 | github论文汇总 | 个人博客 | 知乎论文专栏 |
---|---|---|---|
ming71 | paperdaily | chaser | 专栏 |
1. Motivation
- anchor人为经验设置引入超参数,设计复杂;而且一旦设置不合理会影响效果
- 检测依赖密集的anchor,计算量大
- 绝大多数的anchor是负样本,不参与回归预测
探究了anchor-based框架设计anchor两个重要因素:alignment and consistency。前者指的是anchor的中心和特征图像素进行对齐,从而可以滑窗产生密集的anchor确保对物体的覆盖;后者是不同尺度的特征图使用不同尺度的anchor检测才能达到很精确的效果。如果使用学习生成的anchor,需要解决如何满足上述两个条件。
2. Guided Anchoring
2.1 Anchor Location Prediction
该模块使用子网络预测特征图每一点作为物体中心点的可能性,这些响应区域会作为anchor中心,(和RPN的前景背景二分类不同!看loss部分的label就知道,label是取得中心位置为1而无关前景背景).解决了alignment的问题。由于进行了位置的响应,可以剔除背景,因而需要放置的anchor可以大大减少。
位置预测对应右边上面的location预测,将特征图通过1x1卷积压缩到单通道,然后接像素级sigmoid对每个像素有无物体进行打分。(作者提到,尽管这里用深层的子网络效果更好,但是经验来说直接卷积+sigmoid可以更好平衡精度和速度);
对得分图按照一定阈值进行筛选,得到物体位置响应图,可以滤去90%的背景(如下图);
在inference阶段不用考虑背景,预测完位置之后使用mask卷积替代普通卷积,只在有anchor的地方计算,进行加速
2.2 Anchor Shape Prediction
在上面响应了位置信息,知道哪些位置是anchor后,需要确定anchor的形状,进一步解决consistency的问题。
对于shape prediction分支,输入不是上面的位置得分图而是直接从原图进行学习,直接学习每个像素点的wh信息。这里和RPN不同,不需要考虑定位和特征图尺度适配问题,只负责预测形状。但是由于物体尺度变化范围很大直接学习wh仍可能导致计算不稳定,采取学习如下dw,dh:
2.3 Anchor-Guided Feature Adaptation
anchor和特征图匹配的问题:某个尺度特征图的感受野是固定的,但是要基于它生成的anchor大小是通过shape预测分支得到的,所以形状并不一样(RPN中anchor都一样),这就产生了矛盾:理论上大的anchor应该在更大感受野的特征图上预测,小的反之,而不是放到统一尺度特征图预测。
解决办法:把anchor的形状信息直接融入到特征图中,这样新得到的特征图就可以去适应每个位置anchor的形状,从而解决consistency的问题。我们利用一个3x3的deformable convolution来修正原始的特征图,而 deformable convolution 的 offset 是通过 anchor 的 w 和 h 经过一个 1x1 conv 得到的。通过这样的操作,达到了让 feature 的有效范围和 anchor 形状更加接近的目的,同一个 conv 的不同位置也可以代表不同形状大小的 anchor 了。
2.4 Training
2.4.1 联合训练目标函数:
(2) loss: focal loss
2.4.3 Anchor shape targets(借用作者的描述)
形状预测分支的目标是给定 anchor 中心点,预测最佳的长和宽,这是一个回归问题。按照往常做法,先算出target,也就是该中心点的anchor最优的w和h然后用L1/L2/Smooth L1这类loss来监督。然而这玩意的target并不好计算,而且实现起来也会比较困难,所以我们直接使用IoU作为监督,来学习w和h。既然我们算不出来最优的w和h,而计算IoU又是可导的操作,那就让网络自己去优化使得IoU最大吧。
损失函数借鉴了bounded IoU Loss,而不是直接优化wh,如图:
这里面还有个问题,就是对于某个anchor,应该优化和哪个ground truth的IoU,也就是说应该把这个anchor分配给哪个ground truth。对于以前常规的anchor,我们可以直接计算它和所有 ground truth的IoU,然后将它分配给IoU最大的那个gt。但是很不幸现在的anchor的w和h是不确定的,是一个需要预测的变量。
当然我们不可能真的把所有可能的w和h遍历一遍然后求IoU的最大值,所以采用了近似的方法,也就是 sample一些可能的w和h。理论上sample得越多,近似效果越好,但出于效率的考虑,我们 sample了常见的9组w和h。我们通过实验发现,最终结果对sample的组数这个超参并不敏感,也就是说不管sample多少组,近似效果已经足够。
(实际上还是手动设置wh,但是他说对这个超参数不敏感,如果真的如此,那就算还行)
3. Ablation Study
3.1 Model design
3.2 Anchor location
3.3 其他实验
- Anchor shape.
- Feature adaption
- Alignment and consistency rule
- The use of high-quality proposals
使用GA之后带来两个优势:
(1) 可以使用更高的IoU阈值,因为相比RPN GA可以生成更多的高质量proposal
(2) 训练时采用更少的proposal。往往proposal数目少会带来召回率降低查全低下,但是GA-RPN的查全率已经很高了吗,因此使用更少的proposal就能达到效果,这对训练和检测都是有益的。
3.4 Hyper-parameters
取的anchor默认wh对依次为3-9-15,AR为68.3%-68.5%-68.5%,可见取多了确实没大的用处(实际上,在Faster-RCNN中,作者实验证明,加了更多尺度作用也没那么大,只有0.1%这就值得思考了)
Conclusion:
- 创新点:
- 减少了大量的anchor负样本生成,背景anchor的剔除,降低计算;并且生成的proposal召回率更高
- 不用过于依赖手动设置的anchor(
这一点有待考证,因为它实际是通过更多组的anchor进行候选的) - 使用更少的proposal但是获得更好的效果
- 提出了 alignment 和 consistency 这两个设计anchor的思想,并且尝试解决
- 实现结构
为了实现anchor的自生成,通过anchor的中心预测概率图确定xy,anchor形状预测wh(但是这里有手动参数,尽管作者说不敏感,但是证据不充分);为了解决尺度匹配的问题引入可变性卷积,融合anchor shape和特征图信息。 - 个人感觉:
生成wh的方法还是比较因循守旧的,不过提出的中心点xy预测思路很不错,预测中心概率图来剔除大量的背景样本,大大提高检测效率;并且进一步通过可变形卷积特征融合以及改进的shape预测将proposal质量提高了;为网络提供更少、质量更高的proposal