Fast-RCNN阅读笔记

来源:互联网 发布:2016中超球员数据 编辑:程序博客网 时间:2024/06/05 11:43

2015年提出的 Fast R-CNN 主要贡献是加速和简化 R-CNN。
R-CNN因为下述原因运行很慢:
1,为每幅图像提取候选区域(selective search),得到平均约2000个候选区域,那么前向传播的过程就需要运行平均约2000次;
2, 它必须分别训练三个不同的模型 - CNN 生成图像特征,预测类别的分类器SVM和收紧边界框的回归模型。这使得整个流水线(pipeline)难以训练。

2015 年,R-CNN 的第一作者 Ross Girshick 解决了这两个问题,并创造了第二个算法——Fast R-CNN。下面是其主要思想。
(1)ROIPool
可以看成是只含一层的SPP!!!

对于 CNN 的前向传递,Girshick 意识到,对于每个图像,很多提出的图像区域总是相互重叠,使得我们一遍又一遍地重复进行 CNN 计算(大约 2000 次!)。他的想法很简单:为什么不让每个图像只运行一次 CNN,然后找到一种在 2000 个提案中共享计算的方法?

这里写图片描述
这正是 Fast R-CNN 使用被称为 RoIPool(兴趣区域池化)的技术所完成的事情。其要点在于,RoIPool 分享了 CNN 在图像子区域的前向传递。在上图中,请注意如何通过从 CNN 的特征映射选择相应的区域来获取每个区域的 CNN 特征。然后,每个区域的特征简单地池化(通常使用最大池化(Max Pooling))。所以我们所需要的是原始图像的一次传递,而非大约 2000 次!
(2)a united network
使用一个网络完成特征提取,分类,边界回归等任务,如下图所示:
这里写图片描述
原来的候选框提取被ROIPool替换,SVM分类被softmax替换,紧缩边界框还是使用原来的线性回归,这样,所有需要的输出均来自一个单一网络!

相较与RCNN和SPP-net,它的亮点在于:

1)MAP相较于RCNN也有很大的提高;

2)训练过程通过运用多任务损失,实现单个网络完成;

3)在训练过程中所有层都可以得到更新;

4)不再需要磁盘存储器作为特征缓存;

5) 比RCNN的训练时间快9倍,测试时间快213倍,在 PASCAL VOC 2012上获得MAP也更高.。和SPPnet相比,训练时间快3倍,测试时间快10倍,MAP也有提升。

如下博客很有参看价值:
http://www.w2bc.com/article/120530

1 0