基于锚框的物体检测R-CNN(2)

基于锚框的多阶段目标检测算法:R-CNN

多阶段目标检测中,faster R-CNN是非常典型的一个算法,且它是由最初的R-CNN经一系列改进演化而来的。
faster R-CNN系列出现的顺序为:R-CNN(深度学习目标检测的一个里程碑)->fast R-CNN(效率提高200倍左右,可应用于实际中)->faster R-CNN(用RPN取代了Selective Search,大大提高了效率)。后面又引入了特征金字塔FPN,以及将faster-RCNN应用在图像分割上的MASK R-CNN。

今天,先写下R-CNN的目标检测过程。

R-CNN的目标检测过程

基于锚框的物体检测R-CNN(2)
如图所示,R-CNN目标检测过程分为5个部分:
1.第一步:输入一幅图像
2.第二步:生成候选区域,使用Selective Search算法生成大约2000个候选区域
3.第三步:将候选区域在输入图像上裁剪出来,并全部缩放为227×227的大小
4.第四步:将缩放后的候选框放入卷积神经网络中提取特征
5.第五步:分类:把提取的特征放入到所有SVM分类器中进行判断(每类都有一个分类器,判断输入是否属于该类)

这样就完成了目标检测,最后,还有一个调整候选框位置和大小的步骤,先将候选区域放大一定的比例(如1.5倍),对放大后的候选区域进行边缘检测,取包含边缘的最小矩形框作为最终检测框。

缺点:

虽然比传统检测方法的精度提升了很多,但缺点也很明显,速度非常慢,原因如下几点:
1.使用Selective Search算法生成大约2000个候选区域,这个过程非常耗时
2.每个候选区域使用一次卷积神经网络进行一次特征提取,共需越2000次。由于候选框之间可能存在重叠区域,所以这个过程有很多属于重复计算
3.特征提取,目标分类,边框回归是三个独立的步骤,训练,检测效率低