平均精度均值(Mean Average Precision, mAP)
目录
与目标识别不同,目标检测中不仅仅需要在一张图片中检测到是否含有某物体,还需要将该物体的位置找出来,所以在判定模型的好坏时,就有其标准 —— mAP
一、Mean Average Precision – mAP
(一)什么是 mAP ?
平均精度均值(mAP)是预测目标位置以及类别的这一类算法的性能度量标准。mAP 对于评估目标定位模型、目标检测模型以及实例分割模型非常有用。
在模型预测时,输出的 bounding box 是有很多的,但是大部分都是置信度很小的,我们只需要输出置信度超过某个阈值的 bounding box 。
(二)mAP 是怎么计算的?
先介绍几个概念
2.准确率、召回率、精确度
(1)准确率 – precision & 召回率 – recall
若一个待检测的物体为狗,我们将被正确识别的狗,即检测为狗实际也为狗,称为True positives。将被正确识别的猫,即检测为猫实际也为猫,称为True negatives。被错误识别为狗的猫称为 False positives,被错误识别为猫的狗称为 False negatives。
则 precision 的计算为:
p r e c i s o n = T r u e P o s i t i v e s T r u e P o s i t i v e s + F a l s e P o s i t i v e s precison=\frac{True Positives}{True Positives+False Positives} precison=TruePositives+FalsePositivesTruePositives
准确率可以反映一个类别的预测正确率
recall 的计算为:
r e c a l l = T r u e P o s i t i v e s T r u e P o s i t i v e s + F a l s e N e g a t i v e s recall=\frac{True Positives}{True Positives+False Negatives} recall=TruePositives+FalseNegativesTruePositives
(2)精确度 – accuracy
精确度就是在所有预测的样本中,识别正确的占了多少。
a c c u r a c y = T r u e P o s i t i v e s + T r u e N e g a t i v e s T r u e P o s i t i v e s + F a l s e N e g a t i v e s + T r u e N e g a t i v e s + F a l s e P o s i t i v e s accuracy=\frac{TruePositives+TrueNegatives}{TruePositives+FalseNegatives+TrueNegatives+FalsePositives} accuracy=TruePositives+FalseNegatives+TrueNegatives+FalsePositivesTruePositives+TrueNegatives
准确率和召回率是互相影响的,因为如果想要提高准确率就会把预测的置信率阈值调高,所有置信率较高的预测才会被显示出来,而那一些正确正预测(True Positive)可能因为置信率比较低而没有被显示了。一般情况下准确率高、召回率就低,召回率低、准确率高,如果两者都低,就是网络出问题了。一般情况,用不同的阀值,统计出一组不同阀值下的精确率和召回率,如下图:
二、影响 mAP 的因素
一般来说影响 mAP 的原因有很多,主要有以下几个:
- 不好的训练数据。
- 训练数据不够多。
- 标注的框不准确。
- 数据的多变性。
有的时候增加训练数据可能 mAP 并不会增加多少。当然了,使用表现更好的网络,其 mAP 自然地也会更加的高。
包括机器学习、神经网络、深度学习、强化学习各种方面的文章