R-CNN目标检测系列
R-CNN
Fast R-CNN
Faster R-CNN
这一些系列的工作都是Ross B. Girshick(RBG)完成的。
R-CNN
R-CNN(Regions with CNN features)是RBG在2014年提出的一种目标检测算法,RCNN是讲CNN方法应用到目标检测问题上的一个里程碑,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测。
前面我们提到的滑动窗口法可以得到目标所在的区域,但是会产生大量的计算。除了滑动窗口法之外还有另外一类基于区域(Region Proposal)的方法,selective search就是其中之一。
Selective Search 生成候选区域(proposal)
Step 1:计算区域集R里每个相邻区域的相似度S={s1, s2, …}
While S != empty set:
Step 2:找出相似度最高的两个区域,将其合并为新集Rt,添加进R
Step 3:从S中移除所有与step2中有关的子集
Step 4:重新计算新集Rt与所有子集的相似度
这里的相似度主要是考虑颜色,纹理,尺寸,交叠四个方面
算法流程
算法流程1
选择一个分类模型(比如ALexNet, VGGNet)
算法流程2
- 去掉最后一个全连接层
- 将分类数从1000改为(N+1)。对于VOC,N=20;对于ILSVRC2013,N=200.
- 对该模型做fine-tuning。(主要目的是优化卷积层和池化层的参数)
算法流程3
论文中用到的网络pool4后面的一层是fc6全连接层。
对每一个候选区域进行特征提取:
Resize区域大小,然后做一次前向运算,将第五个池化层的输出(也就是候选框提取到的特征)保存到硬盘。
算法流程4
训练阶段:
使用pool5输出的图像特征训练SVM分类器(二分类)来判断这个候选框里面的物体类别。
测试阶段:
每个类别对应一个SVM,判断是不是属于这个类别。下图是狗分类的SVM:
算法流程5
使用pool5输出的图像特征训练一个回归器(dx, dy, dw, dh&#