一、什么是目标检测
即用框(bounding box)标出物体的位置,并给出物体的类别
一些数据集介绍:
PASCAL VOC数据集http://host.robots.ox.ac.uk/pascal/VOC/ 20类物体
COCO数据集 http://cocodataset.org/#home 80类物体
二、IoU介绍
IoU:Intersection over Union,交并比。
解释:
1.绿色框为我们认为标定的框。
2.红色框为预测的框。
3.我们计算两个框的交集和并集。
4.交集/并集就是IoU。
三、PR曲线绘制
PR曲线:precision-recall curve。用于评价检测器性能。
PR曲线如何绘制:
如上图所示,我们给定了3个人工绘制的框(绿色):
检测器输出了5个红色框:
其中得分表示检测器框住的东西是人的概率。我们先将其按这个得分排序:
排好序后,我们按得分从高到低,将框与人工绘制的框进行计算IoU,当IoU大于一个阈值时,我们打上TP的标签。
注意:每个绿色框只能匹配一次,例如1号红框与1号绿框匹配,IoU=0.9,那么1号红框标注TP,为真正例。2号红框也与1号绿框匹配,IoU=0.8,此时只能标注其为FP,即假正例。在这种情况下,上表中出现TP的个数最多就等于3。也就是说召回率最大不能超过1。
准确率(Precision)和召回率(Recall):
我们设定不同的阈值,在每一个阈值情况下计算P和R的值,并绘成PR曲线:
解释:
1.由于检测器输出只有5个框,最低得分是0.7,假设阈值为低于0.7,例如取0.6。计算P=3/5=0.6,R=3/3=1。
2.假设阈值为0.7。P=3/4=0.75,R=3/3=1。
3.假设阈值为0.8。P=3/3=1,R=3/3=1。
4.假设阈值为0.9。P=3/3=1,R=2/3=0.67。
5.假设阈值为0.9。P=3/3=1,R=1/3=0.33。
画成PR曲线,如下图:
直观理解:
假设我们在这个例子中,检测器输出了很多很多红色框,例如100个框,他们的得分从高到低排列。假设我们将阈值取得很低,例如0.3,那么大量的框很有可能包含了所有需要检测的物体(例如30个物体),那么Recall就为1(Recall就是一共需要检测的物体中,我们检测到了的比例)。但是,由于大量的框大部分都是不准确的(只有30个框是准确框住了物体),那么准确率(Precision)就非常低(只有30%)。
反之,我们将阈值设置得非常高,例如0.95,那么排在前面3位的框确实框住了物体,但是需要检测的物体可能有30类,虽然这3个框都框住了物体(Precision为1),但是召回率却只有3/30=10%。
如何使用PR曲线评价一个检测器:
我们采用PR曲线下面所包含的面积大小来评价一个检测器,面积越大,检测器越好。
看下面这个情况:
排名第一的红框没有框住物体,这种情况下他属于假正例(FP),那么这种情况下得PR曲线如右边所示,当阈值为0.9时,Precision和Recall都为0。