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
|