目标检测的MAP(mean average precision)是衡量目标检测算法性能的常用指标之一。
它是通过计算不同类别的平均精度值来评估目标检测算法在整个数据集上的准确性。是对整个数据集上的性能进行评估,而不仅仅是单个图像或样本。
目标检测评判标准不像图像分类那样简单,图像分类用accuracy评判,也就是test数据集中正确的和全部的相比。即
a
c
c
r
a
c
y
=
r
i
g
h
t
_
t
e
s
t
a
l
l
_
t
e
s
t
accracy=\frac{right\_test}{all\_test}
accracy=all_testright_test
想知道MAP先了解什么是查准率和查全率
1.查准率和查全率
查准率(Precision):模型预测的所有目标中,预测正确的比例。公式如下
T
P
T
P
+
F
P
\frac{TP}{TP+FP}
TP+FPTP
根据图片讲一下:
注:图中绿色框(ground truth box)红色框(bounding box)IOU>0.5(gtbox与bbox匹配成功)
TP(True Positive):预测正确的检测框数量,即图中红框cat0.9框
FP(False Positive): 预测错误的检测框,即图中红框cat0.3框
FN(False Negative):没有检测到的gtbox的数量,即图中绿框cat
解释完以上公式,就能明白,查准率:TP/(TP+FP),指的是预测正确的框在全部预测的比例
如果仅通过,查准率能评判吗?
图中只预测一个框,查准率是1,但是,只检测到一个目标显然是不行的,这就需要引入查全率。
查全率(Recall): 所有真实目标中,类型预测正确的目标比例。公式如下
T
P
T
P
+
F
N
\frac{TP}{TP+FN}
TP+FNTP
图中查全率为1,但是太多不必要的bbox,这个也不是很好的判别标准。
我们需要结合查全率和查准率去作为评判标准,这就引入了AP
2.AP
简单说AP就是P-R(Precision-Recall曲线)曲线下面积。
根据图片整理数据
图中IOU在0.5之上,才是正确的预测框,confidence即置信度(分类器判别为小猫的概率)
按置信度的从大到小排序
GT ID(即gtbox的id) | confidence | OB(IOU=0.5) |
---|---|---|
1 | 0.98 | True |
3 | 0.89 | True |
6 | 0.88 | True |
7 | 0.78 | True |
3 | 0.66 | False |
1 | 0.61 | False |
4 | 0.52 | True |
根据以上数据,计算Precision-Recall,已知gtbox数量为7。
Rank | Precision | Recall | TP | FP | FN |
---|---|---|---|---|---|
1(置信度>=0.98,满足的有gt id=1) | 1 | 1/7 | 1 | 0 | 6 |
2 (置信度>=0.89,满足的有gt id=(1,3)) | 1 | 2/7 | 2 | 0 | 5 |
3 | 1 | 3/7 | 3 | 0 | 4 |
4 | 1 | 4/7 | 4 | 0 | 3 |
5 | 4/5 | 4/7 | 4 | 1 | 3 |
6 | 4/6 | 4/7 | 4 | 2 | 3 |
7 | 5/7 | 5/7 | 5 | 2 | 2 |
计算每个置信度对应的Precision和Recall值。从高到低遍历所有检测结果,并记录每个置信度下的Precision和Recall值。随着置信度从高到低变化,Precision和Recall的值也发生变化,一条平滑的Precision-Recall曲线随之生成。
计算图中矩形的面积,即得到AP
AP=(0.14-0)x1.0+(0.28-0.14)x1.0+(0.42-0.28)x1.0+(0.57-0.42)x1.0+(0.71-0.57)x0.71=0.6694
每一个AP确定一个类别的比例,MAP是所有AP求平均,可得全部类别的比例。
3.COCO指标
上图为COCO的指标,下图是对于某一数据集进行训练得到的结果。
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.448
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.721
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.482
area= all表示对所有类别,IoU=0.75表示IoU=0.75指标下,maxDets=100表示最多预测框为100
第二行表示在IoU=0.5的标准下,对所有类别,100个预测框中有72.1%的是正确的。
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.099
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.280
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.521
area= large small medium对大中小图像类别进行区分
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.418
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.565
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.573
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.166
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.419
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.641
(AR)是查全率,即预测出预测框占所有gtbox的比例