如何衡量目标检测算法的优劣

发布时间 2023-05-25 21:10:35作者: Ah_Qiu

如何衡量目标检测算法的优劣

目标检测(object detection)问题相对于一般AI分类问题更加复杂,不仅检测出目标,输出目标的类别,还要定位出目标的位置。分类问题中的简单accuray指标已经不能反映出目标检测问题结果的准确度,而mAP (Mean Average Precision)就是被用来衡量目标检测算法优劣的常用指标。

要理解什么是mAP,需要先澄清什么是Precision(查准率)和Recall(查全率)。

1. mAP相关概念

1.1 正例与负例

假设我们的分类目标只有两类,计为正例(positive)和负例(negtive)。T表示预测正确,F表示预测错误。

然后我们就能得到如下的四种情况:

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

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

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

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

1.2 P(精确率)

P 代表 precision,即精确率,又称为查准率。精确率表示预测样本中实际正样本数占所有正样本数的比例,计算公式为:

精确率 = 正确预测样本中实际正样本数 / 所有的正样本数

precision = TP/(TP+FP)

1.3 R(查全率)

R 代表 recall ,即召回率,召回率表示预测样本中实际正样本数占所有预测的样本的比例,计算公式为:

召回率 = 正确预测样本中实际正样本数 /实际的正样本数

Recall = TP/(TP+FN)

一般来说,召回率越高,准确率越低。

查全率和查准率通常是一对矛盾的度量,一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

1.4 IoU指标

目标检测问题中,算法通常输出一个预测框来标识检出目标的位置,要衡量这个预测框与目标的实际位置(ground truth)的准确度,可以使用IoU指标。

交并比IoU(Intersection over union):交并比IoU衡量的是两个区域的重叠程度,是两个区域重叠部分面积占二者总面积(重叠部分只计算一次)的比例。目标检测中IoU就是预测框与实际框的交集除以并集。

我们可以设置一个IoU阈值(threshold),通常是0.5,预测结果可以分为:

(1)如果IoU >= 0.5

如果预测类别也正确,认为是一个好的预测,分类为TP

如果预测类别错误,认为是一个坏的预测,分类为FP

(2)如果IoU < 0.5, 认为是一个坏的预测,分类为FP

如果一个目标出现在图像中,但是算法未检出,分类为FN

TN(图像上所有不包含实际框和检测框的部分)通常计算中用不到。

1.4 ACC(准确率)

ACC 代表 Accuracy,即准确率,准确率表示预测样本中预测正确数占所有样本数的比例,计算公式为:

准确率 = 预测样本中所有被正确分类的样本数 / 所有的样本数

ACC = (TP+TN)/(TP+FP+TN+FN)

1.5 AP(平均精确度)

AP 代表 *Average Precision*,即平均精确度,是单个类别平均精确度

对于目标检测任务而言,每一个类都可以计算出其Precision和Recall,通过合理的计算,每个类都可以得到一条P-R曲线曲线下的面积就是AP的值。

img

计算面积:

img

即:AP = A1 + A2 + A3 + A4

2. mAP

2.1 mAP简介

而mAP是 Mean Average Precision 的缩写,是所有类别的平均精确度mAP ,即 均值平均精度

作为目标检测中衡量检测精度的指标。

计算公式为:mAP = 所有类别的平均精度求和除以所有类别。

2.2 mAP_0.5

即将IoU阈值设为0.5时求出的mAP。

2.3 mAP_0.5:0.95

表示在不同IoU阈值(从0.5到0.95,步长0.05)上的平均mAP。