目标检测模型评估指标mAP及代码注释
最近刚看完Faster R-CNN的源码,对于mAP这个目标检测的衡量指标之前也大致的了解一下,但是它与准确度(Accuray)、精度(Precision)、召回率(recall)等的关系是怎么样的?这些都还没有了解,所以刚好顺着Faster R-CNN的源码,把这个问题搞清楚一些。
一、目标检测问题
每个模型在“验证/测试”数据集上来评估性能,性能衡量使用各种统计量如准确度(accuracy),精度(precision),召回率(recall)等。选择的统计量通常针对特定应用场景和用例。 对于每个应用场景,选择一个能够客观比较模型的度量指标非常重要。
大多数时候,这些指标很容易理解和计算。例如,在二元分类中,精确度和召回率是一个一个简单直观的统计量。然而,目标检测是一个非常不同且有趣的问题。即使你的目标检测器在图片中检测到猫,但如果你无法定位,它也没有用处。由于你要预测的是图像中各个物体是否出现及其位置,如何计算mAP将非常有趣。
在目标检测问题中,给定一个图像,找到它所包含的物体,找到他们的位置并对它们进行分类。目标检测模型通常是在一组特定的类集合上进行训练的,所以模型只会定位和分类图像中的那些类。另外,对象的位置通常采用矩形边界框表示。因此,目标检测涉及图像中物体的定位和分类。
二、评估目标检测模型
1.为什么是mAP?
目标检测问题中的每个图片都可能包含一些不同类别的物体。如前所述,需要评估模型的物体分类和定位性能。因此,用于图像分类问题的标准指标precision不能直接应用于此。所以我们需要一种新的评估方式,即mAP(Mean Average Precision),来衡量模型的性能。
2.Ground Truth的定义
对于任何算法,评估指标需要知道ground truth(真实标签)数据。 我们只知道训练、验证和测试数据集的ground truth。对于目标检测问题,ground truth包括图像中物体的类别以及该图像中每个物体的真实边界框。
训练时,模型需要的输入是原始的图像,以及Ground Truth的坐标值和类别。
在计算mAP之前我们再来复习以下比较重要的概念。
3.IOU的概念
IOU的概念应该比较简单,就是衡量监测框和标签框的重合程度。
2.TP TN FP FN的概念
TP(True Positives)意思是“被分为正样本,并且分对了”,
TN(True Negatives)意思是“被分为负样本,而且分对了”,
FP(False Positives)意思是“被分为正样本,但是分错了”,
FN(False Negatives)意思是“被分为负样本,但是分错了”。
按下图来解释,左半矩形是正样本,右半矩形是负样本。一个2分类器,在图上画了个圆,分类器认为圆内是正样本,圆外是负样本。那么左半圆分类器认为是正样本,同时它确实是正样本,那么就是“被分为正样本,并且分对了”即TP,左半矩形扣除左半圆的部分就是分类器认为它是负样本,但是它本身却是正样本,就是“被分为负样本,但是分错了”即FN。右半圆分类器认为它是正样本,但是本身却是负样本,那么就是“被分为正样本,但是分错了”即FP。右半矩形扣除右半圆的部分就是分类器认为它是负样本,同时它本身确实是负样本,那么就是“被分为负样本,而且分对了”即TN
3.Precision(精度)和Recall(召回率)的概念
有了上面TP TN FP FN的概念,这个Precision和Recall的概念一张图就能说明。
翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”,衡量的是一个分类器分出来的正类的确是正类的概率。两种极端情况就是,如果精度是100%,就代表所有分类器分