1. 目标检测-任务概述
分类 VS 检测
- 分类问题:所属类别
- 检测问题:所属类别 + 物体位置
1.1 从分类到检测算法
设
为图片中的某个像素点,
为其他位置,由
可构成一个矩形框。
穷举图片中所有可能的矩形框
,每个子区域当成一张图片来做分类。
候选区域:每个
所代表的矩形框,也被称为感兴趣区域(Region of Interest,
ROI)。
1.2 目标检测的核心问题
- 如何产生候选区域,并对它们进行标注;
- 如何提取图像特征,并将提取到的特征与候选区域的类别和位置进行关联。
1.3 目标检测算法
- 两阶段目标检测算法:特征提取 -> 生成 Region Proposal -> 分类 + 位置调整(bounding box regression)
典型算法: Faster-RCNN, Pyramid Network
- 单阶段目标检测算法:特征提取 -> 分类 + 位置调整(bounding box regression)
典型算法:SSD, YOLOv3,RetinaNet
2. 目标检测基础知识
边界框:正好能包含物体的矩形框,bounding box, bbox。
真实框:数据集标注中给出的目标物体对应的边界框, ground truth box, 简称 gt_box。
预测框:由模型预测出的可能包含目标物体的边界框,prediction box, 简称 pred_box。
检测任务输出:[L, P, x1, y1, x2, y2]
,L 是类别标签,P 是所属类别的概率。一张图片会有多个预测框。
锚框:以某种规则生成边界框,经过位置调整后成为预测框, anchors。
锚框的生成可参考程序:
书亮:generate_anchors.pyzhuanlan.zhihu.com
锚框和真实框的重合程度可以用指标 IOU(Intersection of Union)来衡量。
3. 目标检测的指标
- TP (True Positive): 正确的正样本。即检测器找出了样本区域,正确的判断。
- FN (False Negative): 错误的负样本,即检测器把样本区域判定为背景,相当于『遗漏』。
- TN (True Negative): 正确的负样本。即检测器把背景判定为背景,正确的判断。
- FP (False Positive): 错误的正样本。即检测器把背景判定为样本区域,也叫『虚警』。
3.1 两个指标:
Precision - 正确率,也即检测结果的正确率:
Recall - 召回率,也即样本被检测出来的概率:
3.2 如何判断检测器的好坏?
对于检测算法,每个框的输出如下:
或者
confidence 代表当前框是目标的置信度,
。
PR 曲线
调整
,计算不同
下检测器的 Precison 和 Recall 值,然后连接成曲线,就是 PR 曲线。
从积分的角度来看,PR 曲线下的面积就是检测器在各个
下的 AP(Average Precision)。当然,AP 越高的检测器就越好。
3.3 mAP
关于多类别检测器,考虑 mAP (mean Average Precision):
3.4 NMS
NMS(None Maximum Suppression),又名为非极大值抑制,是目标检测框架种的后处理模块,主要用于删除高度冗余的 bbox。
4. Faster-RCNN
5. YOLOv3
5.1 实现方案
参考
- Paddle 深度学习应用公开课: https://www.bilibili.com/video/av83663267
- NMS: https://zhuanlan.zhihu.com/p/50126479