目标检测评价指标


对于使用机器学习解决的大多数常见问题,通常有多种可用的模型。每个模型都有自己的独特之处,并随因素变化而表现不同。

每个模型在“验证/测试”数据集上来评估性能,性能衡量使用各种统计量如准确度(accuracy),精度(precision),召回率(recall)等。选择的统计量通常针对特定应用场景和用例。 对于每个应用场景,选择一个能够客观比较模型的度量指标非常重要。

这篇文章将介绍目标检测(Object Detection)问题中的最常用评估指标-Mean Average Precision,即mAP。

大多数时候,这些指标很容易理解和计算。例如,在二元分类中,精确度和召回率是一个一个简单直观的统计量。然而,目标检测是一个非常不同且有趣的问题。即使你的目标检测器在图片中检测到猫,但如果你无法定位,它也没有用处。由于你要预测的是图像中各个物体是否出现及其位置,如何计算mAP将非常有趣。

在讲解mAP之前,我们先定义目标检测问题。

目标检测问题

在目标检测问题中,给定一个图像,找到它所包含的物体,找到它们的位置并对它们进行分类。目标检测模型通常是在一组特定的类集合上进行训练的,所以模型只会定位和分类图像中的那些类。另外,对象的位置通常采用矩形边界框表示。因此,目标检测涉及图像中物体的定位和分类。

图1 几个常见的计算机视觉问题(来自Stanford’s CS231n)

下面所述的Mean Average Precision特别适用于同时预测物体位置及类别的算法。 因此,从图1可以看出,它对评估定位模型、目标检测模型和分割模型非常有用。

评估目标检测模型

为什么是mAP?

目标检测问题中的每个图片都可能包含一些不同类别的物体。如前所述,需要评估模型的物体分类和定位性能。因此,用于图像分类问题的标准指标precision不能直接应用于此。 这就是为什么需要mAP。 我希望读完这篇文章后,你将能够理解它的含义。

关于Ground Truth

对于任何算法,评估指标需要知道ground truth(真实标签)数据。 我们只知道训练、验证和测试数据集的ground truth。对于目标检测问题,ground truth包括图像中物体的类别以及该图像中每个物体的真实边界框。

Ground truth可视化

这里给出了一个实际图片(jpg、png等格式),以及相应的文本注释(边界框坐标 [公式] 和类别),如图中红色框以及文本标签所示。

对于这个特殊例子,模型在训练时需要原始的图片:

原始图片

以及ground truth的3个坐标及类别(这里假定图片大小是1000x800px,所有的坐标值都是以像素为单位的近似值):

下面让我们动一下手,去看如何计算mAP。这里我们不谈论不同的目标检测算法,假定我们已经有了一个训练好的模型,现在只需要在验证集上评估其性能。

mAP含义及计算

前面展示了原始图像和以及对应的ground truth。训练集和验证集中所有图像都以此方式标注。

训练好的目标检测模型会给出大量的预测结果,但是其中大多数的预测值都会有非常低的置信度(confidence score),因此我们只考虑那些置信度高于某个阈值的预测结果。

将原始图片送入训练好的模型,在经过置信度阈值筛选之后,目标检测算法给出带有边界框的预测结果:

模型的预测结果

现在,由于我们人类是目标检测专家,我们可以知道这些检测结果大致正确。但我们如何量化呢?我们首先需要判断每个检测的正确性。这里采用IoU(Intersection over Union),它可以作为评价边界框正确性的度量指标。 这是一个非常简单的指标。从名称看,有些人会发现这个名字是自解释的,但我们需要更好的解释。这里会以简短的方式解释IoU,如果想深入理解,可以参考Adrian Rosebrock这篇文章(Intersection over Union (IoU) for object detection)

IoU

IoU是预测框与ground truth的交集和并集的比值。这个量也被称为Jaccard指数,并于20世纪初由Paul Jaccard首次提出。为了得到交集和并集,我们首先将预测框与ground truth放在一起,如图所示。

预测框与ground truth(这里只给出horse)

对于每个类,预测框和ground truth重叠的区域是交集,而横跨的总区域就是并集。其中horse类的交集和并集如下图所示(这个例子交集比较大):

其中蓝绿色部分是交集,而并集还包括橘色的部分。那么,IoU可以如下计算:

鉴别正确的检测结果并计算precision和recall

为了计算precision和recall,与所有机器学习问题一样,我们必须鉴别出True Positives(真正例)、False Positives(假正例)、True Negatives(真负例)和 False Negatives(假负例)。

1) True positives(TP): 被正确地划分为正例的个数,即实际 为正例且被分类器划分为正例的实例数(样本数);

2)False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;

3)False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;

4)True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

为了获得True Positives and False Positives,我们需要使用IoU。计算IoU,我们从而确定一个检测结果(Positive)是正确的(True)还是错误的(False)。最常用的阈值是0.5,即如果IoU> 0.5,则认为它是True Positive,否则认为是False Positive。而COCO数据集的评估指标建议对不同的IoU阈值进行计算,但为简单起见,我们这里仅讨论一个阈值0.5,这是PASCAL VOC数据集所用的指标。

为了计算Recall,我们需要Negatives的数量。由于图片中我们没有预测到物体的每个部分都被视为Negative,因此计算True Negatives比较难办。但是我们可以只计算False Negatives,即我们模型所漏检的物体。

另外一个需要考虑的因素是模型所给出的各个检测结果的置信度。通过改变置信度阈值,我们可以改变一个预测框是Positive还是 Negative,即改变预测值的正负性(不是box的真实正负性,是预测正负性)。基本上,阈值以上的所有预测(Box + Class)都被认为是Positives,并且低于该值的都是Negatives。

对于每一个图片,ground truth数据会给出该图片中各个类别的实际物体数量。我们可以计算每个Positive预测框与ground truth的IoU值,并取最大的IoU值,认为该预测框检测到了那个IoU最大的ground truth。然后根据IoU阈值,我们可以计算出一张图片中各个类别的正确检测值(True Positives, TP)数量以及错误检测值数量(False Positives, FP)。据此,可以计算出各个类别的precision:
[公式]

既然我们已经得到了正确的预测值数量(True Positives),也很容易计算出漏检的物体数(False Negatives, FN)。据此可以计算出Recall(其实分母可以用ground truth总数):
[公式]

mAP

在论文中经常见到一种参数是 mAP(平均均值精度),常见的目标检测数据集 VOC/COCO都是以此为衡量标准,它跟 PR 曲线息息相关。先看一下 AP 的计算,以2010年为界它有两种不同的计算方法,现在更常用的是第二种:

  1. 2010年以前:针对某一分类将召回率 R 等距划分为十一个值[0,0.1,0.2,...,1],对于每一个 R 值计算对应的最大准确率 P(从PR 曲线就可以查到),然后对这十一个P 值求均值,也就是AveragePrecision。
  2. 2010年以后:针对某一分类的 n 个样本,假设它有 m 个正例,每一个正例就对应一个召回率 R 值(1/m,2/m,...,1),对每一个召回率计算最大准确率 P,然后对这m 个P 值求均值。

$$ AP = \frac{1}{m}\sum_{i}^{m}P_i = \frac{1}{m}*P_1 + \frac{1}{m}*P_2 + ... + \frac{1}{m}*P_m = \int P(R)\,\mathrm{d}R$$

注意到 AP 是针对于某一个类的,而一个数据集往往包含相当多的分类,对数据集所有类的 AP 求均值就得到 mAP。

$$ mAP = \frac{1}{C}\sum_{j}^{C}AP_j$$

所以,mAP 中:P 代表一个样本的最大准确率,AP 代表一类样本的平均准确率,mAP 就是数据集的平均准确率。

AP,AP50,AP75,APs,APm,APl

APs,APm,APl,AP0.5等的是在基于coco数据集处理目标检测任务时候定义出来评论检测模型的指标具体含义如下图:

1)除非另有说明,否则AP和AR在多个交汇点(IoU)值上取平均值。具体来说,我们使用10个IoU阈值0.50:0.05:0.95。IoU=.50:.05:.95 指的是交并比从0.5开始间隔0.05一直取值到0.95,然后求均值。这是对传统的一个突破,其中AP是在一个单一的0.50的IoU上计算的(这对应于我们的度量APIoU=.50 )。超过均值的IoUs能让探测器更好定位。

2)AP是所有类别的平均值。传统上,这被称为“平均准确度”(mAP,mean average precision)。我们没有区分AP和mAP(AR和mAR也是如此),并假定从上下文中可以清楚地看出差异。

3)  AP(所有10个IoU阈值和所有80个类别的平均值)将决定赢家。在考虑COCO性能时,这应该被认为是最重要的一个指标。

4)  在COCO中,比大物体相比有更多的小物体。具体地说,大约41%的物体很小(面积<322),34%是中等(322 < area < 962)),24%大(area > 962)。测量的面积(area)是分割掩码(segmentation mask)中的像素数量。

5)AR是在每个图像中检测到固定数量的最大召回(recall),在类别和IoU上平均。AR与提案评估(proposal evaluation)中使用的同名度量相关,但是按类别计算。

6)所有度量标准允许每个图像(在所有类别中)最多100个最高得分检测进行计算。

7)除了IoU计算(分别在框(box)或掩码(mask)上执行)之外,用边界框和分割掩码检测的评估度量在所有方面是相同的。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM