R-CNN是较早地将DCNN用到目标检测中的方法。
中心思想:
- 通过selective search 获取候选框(一般一个图形中得到大约2000个大小不同、类别不同的候选区域);
- 用DCNN进行特征提取;
- 使用SVM分类器进行分类,得到一个初略的检测结果;
- 再次使用DCNN获取特征,并结合SVM回归模型得到更加精确的
边界框。
selective search的具体流程如下:



R-CNN 实现流程:

R-CNN操作步骤
- 在图像中确定约1000-2000个候选框 (使用选择性搜索)
- 每个候选框内图像块缩放至相同大小,并输入到CNN内进行特征提取
- 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
- 对于属于某一特征的候选框,用回归器进一步调整其位置
R-CNN结构和精度
R-CNN结构来源于AlexNet ,已经在ImageNet数据集上的1000个类别的分类任务中训练过,通过微调参数来完成21个类别的分类。
在VOC 2011 的测试数据集上的检测精度为:71.8%
R-CNN的缺点:
- 训练和测试过程分为好几个阶段:得到候选区域,DCNN 特征提取, SVM分类、SVM边界框回归,训练过程非常耗时。
- 训练过程中需要保存DCNN得到的特征,很占内存空间。
- 测试过程中,每一个候选区域都要提取一遍特征,而这些区域
有一定重叠度,各个区域的特征提取独立计算,效率不高,使测试一幅图像非常慢。
网友评论