R-CNN全称:Region with CNN feature
延续传统目标检测的思想。
区域选择→特征提取→分类器分类
具体流程:
1、生成候选框,筛选
-
采用selective search算法(选择搜索),进行图像分割。
-
用非极大值抑制(NMS)确定候选框
1、根据置信度得分进行框的排序 2、将置信度最高的候选框放入输出列表 3、用IOU(交并比)判断候选框之间的重叠大小,设置一个阈值(经验值取0.3) 超过阈值的去掉。(合并包含同一物体的可能性高的区域)。
-
大约提取2000个候选区域。由于不同的目标,尺度不同,候选框也就不同,所以要进行归一化(放缩或裁剪),得到固定大小的图像以便后面作为卷积的输入。
交并比(IOU):
置信度:
Groundtruth是真实位置,Boundingbox是框选的预测位置
置信度和IOU不是同一个值
置信度=预测框包含目标物体的概率×预测框和真实物体区域交并比
如果网格中不存在预测框,预测框和真实物体区域没有重叠部分,则P(object)=0,置信度为0.
2、CNN特征提取
- 用LeNet-5进行特征提取,输入图像的尺寸为32×32
- 也可以换其他网络进行特征提取。AlexNet(227×227)、VGG16,19(224×224)、inception (至少224×224)、resnet(224×224)
- 只是用来特征提取,最后lflatten为特征向量
3、 分类与回归
- 得到图像分类的准确率(SVM分类器)
- 位置精修,回归预测边框的置信度。
4、评价指标:
不同于分类问题,目标检测问题不仅要评价识别准确率,还要评价预测框。
即使你的目标检测器在图片中检测到猫,但如果你无法定位,它也没有用处。由于你要预测的是图像中各个物体是否出现及其位置。
- 计算IOU,作为评价边界框正确性的度量指标
- 计算精确率precision和召回率recall
- 计算mAP(这个指标常用于信息检索和目标检测领域。两个领域的计算方式不同,这里只考虑目标检测)
AP:平均精确率,这个是召回率作为横坐标,精确率作为纵坐标,得到一个P-R曲线,这个曲线下的面积就是AP
mAP就是所有类别的AP求和取平均值。
存在问题:
1、训练步骤较多,繁琐,速度慢。
2、涉及分类中的全连接网络,因此输入尺寸是固定的,而目标物的尺度不一样,只能放缩,导致精度降低。
3、候选区域需要提前提取并保存,占用空间大。