与目标识别不同,目标检测中不仅仅需要在一张图片中检测到是否含有某物体,还需要将该物体的位置找出来,所以在判定模型的好坏时,就有其标准 —— 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 的计算为:
$$precison=\frac{True Positives}{True Positives+False Positives}$$
准确率可以反映一个类别的预测正确率
recall 的计算为:
$$recall=\frac{True Positives}{True Positives+False Negatives}$$
(2)精确度 -- accuracy
精确度就是在所有预测的样本中,识别正确的占了多少。
$$accuracy=\frac{TruePositives+TrueNegatives}{TruePositives+FalseNegatives+TrueNegatives+FalsePositives}$$
准确率和召回率是互相影响的,因为如果想要提高准确率就会把预测的置信率阈值调高,所有置信率较高的预测才会被显示出来,而那一些正确正预测(True Positive)可能因为置信率比较低而没有被显示了。一般情况下准确率高、召回率就低,召回率低、准确率高,如果两者都低,就是网络出问题了。一般情况,用不同的阀值,统计出一组不同阀值下的精确率和召回率,如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qzGFSeHC-1671170457999)(null)]
二、影响 mAP 的因素
一般来说影响 mAP 的原因有很多,主要有以下几个:
- 不好的训练数据。
- 训练数据不够多。
- 标注的框不准确。
- 数据的多变性。
有的时候增加训练数据可能 mAP 并不会增加多少。当然了,使用表现更好的网络,其 mAP 自然地也会更加的高。