Bootstrap

R-CNN发展历程及其优缺点

R-CNN

R-CNN是第一个将CNN用于目标检测的DL model,主要流程为以下几个部分:

  • 使用无监督的选择性搜索(selective search)方法将输入图像具有相似颜色直方图特征的区域进行递归合并,大约产生2000个候选区域
  • 将候选区域裁剪成缩放成合适尺寸,并送到一个CNN特征提取网络中进行高层次的特征提取
  • 提取到的特征送入到SVM分类器进行分类,以及一个线性回归器进行box位置和大小调整
  • 最后通过NMS操作,得到最终的结果

SPPNet

SPPNet中的SPP是值空间金字塔池化,主要是针对R-CNN以下缺点进行改进:

  • R-CNN由于候选区域必须经过缩放成同一尺寸,才能被后一步处理,主要由于里面的线性分类器缘故
  • 由于R-CNN中存在对2000个候选区域都要做特征抽取,导致特征提取存在大量的重叠信息

SPPNet改进:

  • 提出了一个spp结构,mn的池化窗口,无论候选区域为多大,只要经过spp后,尺寸都是变为mn的。
  • SPPNet只要全图上做一次特征提取,然后每个候选区域对应的特征直接从全图特征中进行截取。

Fast R-CNN

改进的地方:

  • 提出ROI Pooling, SPP结构和ROI Pooling区别详见博客
  • 使用FC代替之前的SVM分类和线性回归器来进行物体分类和检测框修正,这样的好处是与特征提取的cnn构成一个整体,大大增强检测任务的一体性,提高了计算效率。

Faster R-CNN

改进的地方:

  • Faster R-CNN针对之前最耗时的SS,提出了一个区域候选网络(RPN)来取代SS,并且RPN和Faste R-CNN 共享特征提取的权值。
  • Faster R-CNN = RPN + Fast R-CNN
;