【深度学习理论】Mean Average Precision 计算
Precision = 检测正确的正样本数 / 总的检测样本(top-n)
Recall = 检测正确的正样本数 / 总正样本(top-all)
一般来说,Precision
与Recall
的效果是成反比的,简单的说,如果将所有检测样本识别为正样本,那么Recall=1,但是Precision却会降低。
来自博客的一张图片:http://blog.sina.com.cn/s/blog_9db078090102whzw.html
在图像处理领域,Pascal VOC 2010之后出现一种新的计算方法。首先假设在N个样本中具有M个正样本,也就是对于Top-n
的划分过程中,会得到M个Recall
值,分别是1/M, 2/M, 3/M, ..., M/M
。当Top-n
中的n不断增大的过程中,每一个Recall值会对应一个范围。如下图:
对于每一个Recall值,计算出不同的Precision的值,然后取最大值作为该Recall值对应的Precision值(其实就是第一个Precision值),然后将每一个Recall对应的Precision值计算平均值。得到该类别的Precision(AP
)。
在图像分类的过程中,一般是多分类问题,按照上面的计算过程,会得到每一个类比的AP的值,然后求出平均值就是mAP
。也就是说横向是每个类别的Score
,纵向是每一个样本ID
。