Faster RCNN

论文原文: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

Faster RCNN的最大贡献是去掉了Selective Search来进行Region Proposal的生成,转而使用RPN(Region Proposal Network)来生成区域候选框。

Faster RCNN的整个流程

这里写图片描述
其中,Region Proposal Network用来生成一系列的候选建议框。该层有两部分,第一部分是一个共享的卷积层,第二部分是用来打分的。分成两个支路,其中一路用来做二分类,表示该框是前景还是背景。另外一个之路用来进行bounding box的回归操作。

训练的时候,每次从RPN网络中的一个像素点对应到原图像中的一个框,如果该框的IoU>0.7,则标记为1,表示是物体。如果IoU<0.3,则标记为0,表示该区域是一个背景。如果介于0.3~0.7之间,则舍弃掉。如果是背景,则回归损失为0。如果是前景,则回归损失为smoothL1损失。最后训练的时候,是直接将RPN的损失和Object detector的损失直接相加即可。

1. RPN

这里写图片描述
RPN的具体过程为:
1). 在最后一个Conv层得到的feature map后面,使用一个3×3的卷积层,得到一个H×W×N的特征向量。如果最后的feature map的维度是256维,则最后经过一层卷积之后得到的仍然是1个256维的feature map。每个feature map最后会得到H×W256维的特征。每个256维的特征最后进行一个分叉,一个进入到分类器产生2k个分数输出,文中K=9,表示取3个不同的大小,3个不同的长宽比。即每一个像素点最后会输出18个分类的分数和36个回归的分数。最后文中还限制了fg和bg的个数,保证总数不超过256个,前景不超过128个。当前景不足128个的时候,用背景补充。
2). 取标签的2种方式

  • IoU大于0.7为物体,IoU小于0.3为背景,0.3~0.7不管
  • 如果一个ground truth没有被任何的anchor box取到,这时就在所有的anchor box当中,取与该ground truth的IoU最大的anchor box为前景。此操作是为了防止某些极端情况下有的ground truth一个都没有被取到的情况。

3). 以上面的过程不断进行训练之后,在测试阶段,先通过feature map不断地在原图上取bounding box。这样的话,就会得到H×W×9个bounding box。然后先利用RPN,对所有的bounding box得到他们是否是object的分数。从大到小排列后,运用非最大抑制(NMX),每张图片得到分数最大的300个框,然后将这些框送到分类器去进行分类。

2. Faster RCNN的训练和测试

Faster RCNN由两部分组成,一部分是Fast RCNN,另一部分是RPN。RPN的训练过程是没有用到非最大抑制的。但是在送到到Fast RCNN的那一部分进行训练的时候,并不是一个feature map取9个框的。而是将所有的框选出来之后,运用非最大抑制的方法,先挑选出300个框。然后将这300个框送入到Fast RCNN的那一部分进行训练。测试的时候,使用的也是一样的流程。即先通过RPN选出一些候选框,然后将这些候选框送到分类网络去进行具体分类。而且这中间,RPN和Fast RCNN是一起进行训练的。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012897374/article/details/79980805
上一篇Fast RCNN
下一篇YoLo
想对作者说点什么? 我来说一句

faster rcnn经典文献

2017年09月10日 2.26MB 下载

没有更多推荐了,返回首页

关闭
关闭