rpn产生proposals_FPN 记录

关于FPN,已经见的很多了,但是最近在读FSAF,发现网上的解读刚开始有点看不懂,在FPN选择某一层feature做检测这个问题上,也就是motivation的说明上,因此我再一次细读了FPN论文,做个记录,这篇论文实验做的很细很全啊。。

FPN结构

应用

1 用在RPN上

用ResNet做骨干网络,bottom-up特征集为{C2,C3,C4,C5},对应着conv2, conv3, conv4, conv5;相对于原图的stride是{4,8,16,32}; up-bottom的特征集是{P2,P3, P4, P5},对应着C,尺度相同,但是channel都是256(论文中的设置)

设置的anchor

,比例依然是

对应于特征图

为这些anchor设置训练标签,基于与gt box的iou,(策略不变,重复一下:当某anchor与一个gt box有最高iou,或者这个anchor与任一个gt box有超过0.7的iou,设置为positive;当与任何gt box都是iou小于0.3,设置为negative)。

事实上,要清楚的事,这个里面需要选择level这个操作吗,答案是不需要的,因为RPN网络的作用是产生proposals,其实这些不同层的proposals都可以理解为基于原图的,那么产生的大大小小的这些proposals有很多,我们不用管他是来源于哪一层上设置的anchor得来的,(proposal是anchor经过RPN的分类和回归的结果在proposal layer计算得到的),我们只是得到了很多很多的proposals,和anchor一样多,但是我们只要分数最高的前多少个,比如300,或者1000。

在不同的level上共享参数与否结果影响不大,说明不同level上的金字塔共享相似的语义级别。

2 用在Fast R-CNN

首先简单的回顾一下 R-CNN,Fast,Faster系列的变化: R-CNN用其他方法提出很多个proposals,然后每一个proposals经过CNN提取特征,然后这些特征经过一个SVM分类和回归器;Fast 快的地方在于,这很多个proposals不再一个个经过CNN,而是从一个特征图中提取,这就是ROI pooling;FASter快的地方在于,不再需要用其他 的方法得到proposals,二是采用RPN网络,anchor机制来获取所有可能的proposals.

这里要用Fast RCNN,所以要用ROI pooling,所以就需要确定每一个proposal要在哪一层做ROI pooling,是这样安排的。针对一个

的ROI,根据这样的规则

设置为4,因为 faster RCNN就是使用的

作为特征图的。比如宽高是224的一半时,就会被分配到level 3.

分配好了level,就可以做ROI pooling,得到一个

的特征。

实验

1 RPN

在这个RPN上,主要关注的是是否找到了所有可能的的proposals,所以主要专注的是模型的召回率的提升

结果如图

2 Fast RCNN

Fast RCNN 的功能是将proposals分类和回归的更准,因此主要关注的是模型的准确率的提升

这里只是将FPN利用在Fast RCNN 上,这里的假设前提是已经提供好了proposals,这里使用的proposals是固定表1 c中的proposals。同时,为了简单起见,不在RPN和Fast RCNN 之间共享feature map。

结果如图:

3 Faster RCNN

上面用的是固定的proposals,在Faster RCNN中,RPN和Fast RCNN网络是共享骨干网络的,共享特征。

结果如图:

图中的*是原始论文结果,a是baseline,之所以比*高的原因是:1 使用的图片像素是800取代600,2 对每个图片训练512个ROI而不是64个 3使用5个尺度的anchor取代4个(增加了

) 4 在测试时,每个图片使用1000个proposals而不是300个。所以高了一些。

再看FPN的结果,发现时56.9,这不是刚才不共享feature map的结果吗,

对,这个图还是不共享feature的结果,因为是为了简单起见。

如图是共享特征图的结果:

可以看出共享特征之后,再次提高了

4 在coco上做对比

在图5中的resnet-101还没有充分训练,又训练以后,结果如图4,但是时间原因,结果还是不共享feature的结果,相信共享以后还会提升。

而且,我们公布的结果并没有探索现在流行的trick,比如迭代回归[9](这是啥??),难样本挖掘,上下文建模[16](??这又是啥),以及数据增强等,所以如果做了这些提升,结果还会提升进一步。

在分割上的应用

暂时不总结这个分割部分了

比如mask rcnn就是使用了FPN,卓有成效。

总结

总的来说,FPN当然是很有效果的,应用广泛。FASF是针对FPN的问题,去做改进,让其自己选择更好的feature map,关于这一点,之后在FASF再详细讲一讲。

源代码部分还没有解析,之后有机会会添加上的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值