目标检测的评价指标

总结一下在目标检测中常见的一些评价指标:

1.true positive, false positive, true negative, false negative

首先解释一下上面四个词:
表示分类正确:
true positive:对象本来为正例,网络识别为正例
true negative:对象本来为负例,网络识别为负例
表示分类错误:
false positive:对象本来为负例,网络识别为正例,通常叫误报
false negative:对象本来为正例,网络识别为负例,通常叫漏报

在目标检测任务中,正例通常为我们希望在图像中检测出的对象,负例通常为除正例外的背景。

2.Precison和Recall

precision = true positive / (true positive + false positive),即precision表示的是在识别出的所有正例中,识别正确的正例所占的比例。
recall = true positive / (true positive + false negative),即recall表示的是在样本所有真正的正例中,识别正确的正例所占的比例。
下面有一张图,可以帮助更好的理解这两个指标:
目标检测的评价指标

3.AP和mAP

实际多类别分类任务中,top-5通常是我们常用的指标(即在所有识别出来的对象中,筛选出前5个分数最高的,作为识别出来的正例),但是我们有时想要更精确的衡量一个模型的能力,这时就需要知道从top-1到top-N(N是所有测试样本个数)对应的precision和recall。显然随着我们选定的样本越来也多,recall一定会越来越高,而precision整体上会呈下降趋势。把recall当成横坐标,precision当成纵坐标,即可得到常用的precision-recall曲线,如下:
目标检测的评价指标
接下来说说AP的计算,理论上讲,AP应该就是precision-recall曲线与两个坐标轴围成的面积。即p-r曲线的积分:
目标检测的评价指标
积分是一种极限的思想,它是将recall轴分成无穷平均划分成无穷多区间,但是在实际操作中,我们可以近似的将recall轴平均分成有限个区间,如阈值区间为[0, 0.1, 0.2, …, 1],在划分区间完成后,AP的计算方式主要有两种:
1、在recall的每一个区间内,选择precision的平均值作为函数值,然后用函数值乘以区间宽度作为一个面积元,最后将所有的面积元累加,作为AP。
2、在recall的每一个区间内,选择precision的最大值作为函数值,然后用函数值乘以区间宽度作为一个面积元,最后将所有的面积元累加,作为AP。

第二种计算方式计算出来的面积近似为下图:
目标检测的评价指标

可见两种方式都是对面积的近似计算,不同的训练集可能采用不同的计算方式。

AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。