R-CNN(Region with CNN featrue),是深度学习目标检测的开山之作,作者是Ross Girshick,论文原名为 :Rich feature hierarchies for accurate object detection and semantic segmentation 。
1. R-CNN 网络结构
- 用selective search 算法在每个图片上生成1000-2000个候选区域;
- 对每个区域统一缩放到一个尺寸,如:227*227。对这些候大小一致的候选框分别进行深度网络(如VGG16)特征提取,注意,是分别提取,也就是说,要对这些候选区域每个都单独做一次特征提取;
- 将候选区域的特征,通过非极大值抑制 NMS 对多余的目标进行剔除。输入多个SVM 分类器进行类别判断,这里是说,如果有20类,就要分别采用20个SVM分类器对类别进行判断。
- 使用回归算法,对识别的候选框进行位置修正。因为在selective search 算法中,所产生的候选框并不是那么准,所以在这里还需要再对识别的区域进行修正。
2. R-CNN的特点
- 速度慢,检测一张图片要几十秒,但是在当时看来,这个速度是很快的。
- 训练速度慢,训练过程特别繁琐,SS和rcnn需要分开进行训练。
- 精度高,在当时,是最准确的目标检测算法,将当时的准确率从30% 提高到50%。