RCNN → Fast RCNN → Faster RCNN
最近在浏览网页时看到RFCN,突然发现有一些知识点是之前学习时没有发现的,于是对RCNN系列进行了复习。
RCNN系列的博客已经很多很多了,这边就不再多说。这篇博客主要是对一些讲解RCNN系列网络较好的博客进行了总结。
RCNN:
1、http://blog.youkuaiyun.com/shenxiaolu1984/article/details/51066975
这篇博客主要讲了候选框选取的方式,特征提取、类别判断和位置精修等只做简单介绍。
2、http://blog.youkuaiyun.com/u011534057/article/details/51218218
这篇博客讲述了RCNN中CNN是如何训练的。首先与训练网络用于分类、然后Fine-tune网络用于目标检测、最后训练SVM来实现目标检测。
3、http://blog.youkuaiyun.com/u011534057/article/details/51218250
这篇博客讲了一些基础知识,如有监督无监督、IOU、NMS等,同时也对候选框选取时缩放的问题进行了叙述。
4、http://blog.youkuaiyun.com/u014696921/article/details/52824097
RCNN虽然效果不错,但是还存在如下一些问题:
R-CNN网络训练、测试速度都很慢:R-CNN网络中,一张图经由selective search算法提取约2k个建议框【这2k个建议框大量重叠】,而所有建议框变形后都要输入AlexNet CNN网络提取特征【即约2k次特征提取】,会出现上述重叠区域多次重复提取特征,提取特征操作冗余;
R-CNN网络训练、测试繁琐:R-CNN网络训练过程分为ILSVRC 2012样本下有监督预训练、PASCAL VOC 2007该特定样本下的微调、20类即20个SVM分类器训练、20类即20个Bounding-box 回归器训练,该训练流程繁琐复杂;同理测试过程也包括提取建议框、提取CNN特征、SVM分类和Bounding-box 回归等步骤,过于繁琐;
R-CNN网络训练需要大量存储空间:20类即20个SVM分类器和20类即20个Bounding-box 回归器在训练过程中需要大量特征作为训练样本,这部分从CNN提取的特征会占用大量存储空间;
R-CNN网络需要对建议框进行形变操作后【形变为227×227 size】再输入CNN网络提取特征,其实像AlexNet CNN等网络在提取特征过程中对图像的大小并无要求,只是在提取完特征进行全连接操作的时候才需要固定特征尺寸【R-CNN中将输入图像形变为227×227可正好满足AlexNet CNN网络最后的特征尺寸要求】,然后才使用SVM分类器分类,R-CNN需要进行形变操作的问题在Fast R-CNN已经不存在。
Fast RCNN:
1、http://blog.youkuaiyun.com/u011534057/article/details/51241831
2、http://blog.youkuaiyun.com/coffee_cream/article/details/51236082
3、http://blog.youkuaiyun.com/u014696921/article/details/52808293
Fast RCNN实在RCNN基础上的改进,主要引入了SPP net中ROI pooling的思想,RCNN先选取候选框,然后依次输入到CNN网络中;Fast RCNN是将整张图片输入到CNN中,将候选框映射到特征层上。ROI思想具体参考:
spp-net:http://blog.youkuaiyun.com/u011534057/article/details/51219959
在Fast R-CNN后,在CPU上实现的区域建议算法Selective Search【2s/image】、EdgeBoxes【0.2s/image】等成了物体检测速度提升上的最大瓶颈。因此出现了Faster RCNN
Faster RCNN:
1、http://blog.youkuaiyun.com/u014696921/article/details/52824107
2、http://blog.youkuaiyun.com/u011534057/article/details/51259812
3、http://blog.youkuaiyun.com/u011534057/article/details/51247371
Faster RCNN在Fast RCNN基础上最大的改进就是将候选框选取的方式换成了RPN。