本文是根据复旦大学赵卫东老师的课程所整理
前言
目标检测Object Detection是将目标从图像中提取出来。 简单来说就是定位+分类,知道在哪里知道是什么东西。目标检测一般包括以下三个步骤:
- 框住图中的某一部分作为候选区域。
- 提取候选区域相关的视觉特征
- 利用分类器进行识别
一、准备知识
1. 交并比IoU
物体检测是通过IoU来进行精准度评价的。使用两个区域的交集区域除以两个区域的并集区域。
一般IoU的值越大,表示物体预测越准确。
2. mAP
mAP是目标检测中度量识别精度的指标。
多个类别物体检测中,每一个类别都可以根据查全率和查准率绘制一条P-R曲线,横坐标为查全率,纵坐标为查准率,AP就是该曲线下的面积,mAP是多个类别AP的平均值。
补充:查全率和查准率
Q表示目标检测的类别集合,𝐴𝑣𝑒𝑃(𝑞)是计算类别下物体的平均准确率。mAP的取值范围在[0,1]之间。
. | 正样本 | 负样本 |
---|---|---|
预测正 | TP | FP |
预测负 | FN | TN |
TP = True Positive = 真阳性;FP = False Positive = 假阳性;
FN = False Negative = 假阴性; TN = True Negative = 真阴性
1)查准率、精确率
预测为正的样本有多少被预测正确
2)召回率、查全率
正样本有多少被预测正确
3)准确率
3. 感兴趣区域ROI
感兴趣区域是目标检测的一个概念,表示系统感兴趣的区域,在Fast-RCNN等模型中都有ROI处理的模块,ROI区域的提取能够在消除一些噪声的同时减少后续图像处理的数据量,是较常用的方法
4.非极大值抑制NMS
5.传统目标检测
问题:
- 滑动窗口区域选择策略没有针对性,时间复杂度高,窗口冗余太多
- 手工设计的特征对与多样性的变化没有很好的鲁棒性,比如形态变化和光照影响等
解决方法:region proposal(候选区域)
利用图像中的纹理、边缘、颜色等信息,选取较少窗口保持较高的召回率。降低时间复杂度,并且比滑动窗口的质量更高(固定长宽比)。
使用region proposal+CNN代替传统目标检测使用的滑动窗口+手工设计特征=R-CNN框架
下面具体介绍R-CNN
二、R-CNN
R-CNN:Region with CNN features
将检测问题转换成为region proposals的分类问题
要点:
• Selective Search:选择性搜索
• Warp:图像Region变换
• Supervised pre-training:有监督预训练也称迁移学习
• IOU:交并比IOU=(A∩B)/(A∪B)
• NMS:非极大值抑制
• DPM:使用判别训练的部件模型进行目标检测
1.总体流程
可以看出总体的流程还是候选区域->特征提取->分类
- 区域提名:通过Selective Search从原始图片提取2000个左右区域候选框;
- 区域归一化:把所有侯选框缩放成固定大小(227×227)Warp;
- 通过CNN网络提取特征(在特征层的基础上添加两个全连接层);
- 使用SVM结合NMS(非极大值抑制)获得区域边框(BBox),最后用DPM