RCNN

RCNN (Region CNN)

region 区域, 行政区, 范围

一. 速度

经典的目标检测算法 使用滑动窗法依次判断所有可能的区域。(大概判断多少个?)

RCNN 则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。

二. RCNN 训练集

经典的目标检测算法 在区域中提取人工设定的特征(Haar,HOG).

RCNN 则需要训练深度网络进行特征提取.可供使用的有两个数据库:

  • 一个较大的识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别。一千万图像,1000类。
  • 一个较小的检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置。一万图像,20类。

使用识别库进行预训练,而后用检测库调优参数。最后在检测库上评测。

三. 流程

RCNN算法分为4个步骤

  • 一张图像生成1K~2K个候选区域
  • 对每个候选区域,使用深度网络提取特征
  • 特征送入每一类的SVM 分类器,判别是否属于该类
  • 使用回归器精细修正候选框位置

1. 候选区域生成

Selective Search方法.从一张图像生成约2000-3000个候选区域。 思路如下:

1
2
3
- 使用一种过分割手段,将图像分割成小区域
- 查看现有小区域,合并可能性最高的两个区域。重复直到整张图像合并成一个区域位置
- 输出所有曾经存在过的区域,所谓候选区域

2. 特征提取

  • 预处理

归一化: 使用深度网络提取特征之前, 首先把候选区域归一化成同一尺寸227×227.

  • 预训练

基本借鉴Hinton 2012年在Image Net上的分类网络2,略作简化3。

此网络提取的特征为4096维,之后送入一个4096->1000的全连接(fc)层进行分类。
学习率0.01。

  • 训练数据

使用ILVCR 2012的全部数据进行训练,输入一张图片,输出1000维的类别标号。