Faster RCNN
abs里面很明确的之处了Region Proposals是瓶颈,于是他们在这次的文章中使用一个RPNet来做区域的建议,和CNN共享了完整的图像卷积特征,这里共享卷积特征的机制,RPN告诉网络去哪里找目标(通俗的讲就是注意力机制)。然后这个检测速度又快了不少,5fps把,具体是什么GPU没看。
其实Fast-RCNN不用SS,多想点别的路子考虑怎么做Region Proposal就不至于有Faster-RCNN了。
how it works
Intro里就直接点名了region proposals就是瓶颈,SS这种算法和高效的检测网络相比,慢了一个数量级。之后叙述了几个解决的办法,比如edgeboxes和GPU的SS,但是因为种种原因都不太合适,其中后者还是没有共享计算。
本文的贡献:
- RPN的提出,区域proposal变得cheap了,因为他共享了之前backbone的卷积特征提取,一个端到端的训练模式完全成为事实。而且RPN + Fast RCNN的检测精度也好了,证明RPN是work的。
- anchor
- 训练方案我之前也没见过,RP和目标检测微调之间交替进行,RP是固定的。
实际取得的效果也是非常好的(和之前比较),而且backbone如果很深的话,RPN的效果也会更好。
详细的设计
大部分的设计和前文的fast-RCNN比较像,不过SS换成RPN了,所以着重关注的点应该是RPN的设计
主要关注一下RPN的设计
- 使用填充为1的
3×3
的卷积层变换卷积神经网络的输出,并将输出通道数记为c
。这样,卷积神经网络为图像抽取的特征图中的每个单元均得到一个长度为c
的新特征。 - 以特征图的每个像素为中心,生成多个不同大小和宽高比的锚框并标注它们。
- 使用锚框中心单元长度为
c
的特征,分别预测该锚框的二元类别(含目标还是背景)和边界框。 - 使用非极大值抑制,从预测类别为目标的预测边界框中移除相似的结果。最终输出的预测边界框即是兴趣区域汇聚层所需的提议区域
这种RPN+RCNN一起训练的,Faster R-CNN 的目标函数不仅包括目标检测中的类别和边界框预测,还包括区域提议网络中锚框的二元类别和边界框预测。具体实现的代码见Irrigation下的baseline。
This post is licensed under CC BY 4.0 by the author.