平均精度(Average Precision,AP)以及AP50、AP75、APs、APm、APl、Box AP、Mask AP等不同阈值和细分类别的评估指标说明

平均精度(Average Precision,AP)是信息检索领域和机器学习评价指标中常用的一个衡量方法,特别广泛用于目标检测任务。它在评估模型的表现时结合了准确率(Precision)和召回率(Recall),为我们提供一个综合性的评估指标。

关键概念

  1. Precision(准确率):精确率表示在模型预测为正例的所有样本中,实际上为正例的比例。它的计算公式为:
    Precision = True Positives (TP) True Positives (TP) + False Positives (FP) \text{Precision} = \frac{\text{True Positives (TP)}}{\text{True Positives (TP)} + \text{False Positives (FP)}} Precision=True Positives (TP)+False Positives (FP)True Positives (TP)
    其中,TP(True Positives)是真阳性,正例识别为正例,FP(False Positives)是假阳性,负例识别为正例。

  2. Recall(召回率):召回率(Recall,或称灵敏度、查全率):召回率表示在所有真实正例中,被正确识别出来的比例。它的计算公式为:

Recall = True Positives (TP) True Positives (TP) + False Negatives (FN) \text{Recall} = \frac{\text{True Positives (TP)}}{\text{True Positives (TP)} + \text{False Negatives (FN)}} Recall=True Positives (TP)+False Negatives (FN)True Positives (TP)
其中,FN(False Negatives)是假阴性,正例识别为负例。

  1. 精度-召回曲线(PR曲线):是将Precision(精度)和Recall(召回率)的关系绘制成一张曲线图。具体做法是,通过设置不同的阈值影响TP、FP、FN的值,计算出不同阈值下的Precision和Recall值,所有阈值对应的精确率(Y轴)和召回率(X轴)绘制到图中,形成PR曲线。
  2. **交并比(IoU)
    IoU 是用来量化检测框与真实框的重叠程度。它的计算方式如下:
    IoU = Area of Overlap Area of Union \text{IoU} = \frac{\text{Area of Overlap}}{\text{Area of Union}} IoU=Area of UnionArea of Overlap
  • Area of Overlap 是预测框和真实框之间的重叠区域。
  • Area of Union 是预测框和真实框的总面积,并且去除了重叠区域的重复计算。

IoU 值在 0 到 1 之间,1 表示完全重叠,0 表示完全不重叠。

计算过程

在计算目标检测系统性能时,平均精度(AP)是一个常用的评估指标。AP 是通过计算不同阈值下的精度 (Precision) 和召回率 (Recall) 来评估一个目标检测模型的性能,你需要以下步骤:

1. 预测结果与真实标签匹配

模型对图像中每个对象进行预测,得到预测框(Bounding Box)、置信度和类别标签。然后,将这些预测结果与数据集中的真实标注进行匹配。常用的匹配准则是 IoU(Intersection over Union),即预测框和真实框的交集面积与并集面积之比。一般情况下,IoU 大于某个阈值(如 0.5)时认为匹配成功。

2. 计算Precision-Recall曲线

然后根据预测的置信度对预测结果进行排序,从高到低计算 Precision 和 Recall:

  • Precision(精度):在所有被预测的对象中,真正属于对象的比例。
  • Recall(召回率):在所有真实的对象中,被正确预测的比例。

3. 计算平均精度(AP)

通过前一步得到的 Precision-Recall 曲线,计算曲线下的面积即为 AP 值。通常采用 101 点插值法来计算该面积:即在 Recall 的 0 到 1 之间,以 0.01 为步长,共 101 个点,每个点对应的 Precision 取该点开始之后(右侧)的最大 Precision 值。

具体步骤如下:

  1. 将 Recall 划分为 101 个点:Recall ∈ [0, 0.01, 0.02, …, 1](这个符号表达式意味着召回率可以取集合中的任意一个值,而集合中的这些值是从0到1之间,以0.01为步长均匀递增的离散值)。
  2. 对每个 Recall 点,找到对应的最大的 Precision 值。
  3. 计算这些点的平均值,这个平均值就是平均精度(AP)。
示例公式

A P = ∑ r ∈ { 0 , 0.01 , 0.02 , . . . , 1 } P interpolated ( r ) × Δ r AP = \sum_{r \in \{0, 0.01, 0.02, ..., 1\}} P_{\text{interpolated}}(r) \times \Delta r AP=r{0,0.01,0.02,...,1}Pinterpolated(r)×Δr

其中:
P interpolated ( r ) = max ⁡ r ~ ≥ r P ( r ~ ) P_{\text{interpolated}}(r) = \max_{\tilde{r} \geq r} P(\tilde{r}) Pinterpolated(r)=r~rmaxP(r~)
Δ r = 0.01 \Delta r = 0.01 Δr=0.01

参考资料

更详细的计算方法可以参考 COCO 数据集官方网站及其评估指标文档。另外,Python 中的 object detection 库(如 pycocotools)也提供了计算 AP 的现成函数。推荐阅读 COCO 的官方评估文档和代码以深入理解。

实例举例

11点插值法(11-point Interpolation)

早期的平均精度计算方法,通常在11个固定的Recall点(0.0, 0.1, …, 1.0)处插值,并取这些点的Precision平均值。
假设有一个目标检测任务,我们的模型在不同阈值下产生的一系列Precision和Recall如下:

阈值(Confidence) TP FP FN Precision Recall
0.9 1 0 4 1.0 0.20
0.8 2 1 3 0.67 0.40
0.7 3 1 2 0.75 0.60
0.6 4 1 1 0.80 0.80
0.5 5 2 0 0.71 1.00

绘制出的PR曲线的面积即为平均精度(AP)。对于更复杂的情况,更细致的插值方法会被采用以更准确地计算AP值。

AP50 和 AP75

AP50 和 AP75 是两种特定的 AP 指标,分别在不同的 IoU 阈值下计算。

  • AP50:在 IoU 阈值为 0.5 时计算的平均精度。
  • AP75:在 IoU 阈值为 0.75 时计算的平均精度。

例如:

  • AP50:表示在IoU阈值设为0.5的情况下,模型的平均精度,即预测框与真实框有50%以上的重叠被认为是正确检测。
  • AP75:表示在IoU阈值设为0.75的情况下,模型的平均精度,即预测框与真实框有75%以上的重叠被认为是正确检测。

一般来说,AP50 相对比较容易达到较高的值,因为它只要求 IoU 超过 0.5;而 AP75 更具挑战性,它要求模型的定位更精确(IoU 必须超过 0.75)。

总结
  • AP 是在多个 IoU 阈值下综合评价模型性能的指标。
  • AP50AP75 是特定 IoU 阈值下的 AP 值,分别表示在 IoU 阈值为 0.5 和 0.75 时的平均精度。
    通过结合这些指标,我们可以更全面和精确地评估一个目标检测模型的性能。

APs、APm 和 APl

尽管AP已经能提供一定的性能评估,但在具体细节上还是有所不足,比如目标检测对目标大小很敏感,因此引入了APs、APm和APl, 分别代表不同大小(small, medium, large)的目标上的平均精度。这种分细分类别评估的方式能够提供更为细致和具体的性能评估,为模型改进提供更多的信息:

  1. APs(Small Objects):评估检测模型对小尺寸目标(面积 < 32x32 像素)的性能。这对于应用于高密度小物体场景(如行人检测、遥感图像目标检测等)是非常重要的。小物体检测通常更具挑战性,因为小物体的信息容易丢失或在特征图上存在更少的特征。

  2. APm(Medium Objects):评估检测模型对中等尺寸目标(32x32 ≤ 面积 < 96x96 像素)的性能。中等大小的目标是大部分目标检测任务中较为常见的一类,准确检测这些目标对提高整体性能至关重要。

  3. APl(Large Objects):评估检测模型对大尺寸目标(面积 ≥ 96x96 像素)的性能。大尺寸目标通常比较容易检测,因为它们在输入图片中含有更多的特征信息。然而,准确地框住这些大尺寸目标的边界仍然是一个挑战。

通过单独评估不同大小目标的检测性能,研究人员和工程师可以更清楚地了解模型的优缺点。例如,一个模型在AP总指标上表现不错,但APs较低,这可能意味着模型在小目标检测上存在不足。这些信息有助于有针对性地改进模型,优化检测算法,或者针对某些具体的应用场景进行模型调整和优化。

AP(Average Precision,平均精度)是一种衡量模型检测性能的指标,常用于评估目标检测和实例分割算法。在具体应用中,AP可以根据不同的任务进行细分,比如 box APmask AP

Box AP

Box AP 是具体针对目标检测任务中的 AP 值,在这类任务中,我们重点关注模型在检测到目标物体时,预测的边界框与真实的边界框的重合程度。具体来说,box AP 衡量的是模型预测的边界框(bounding boxes)与真实边界框之间的 IoU 值是否超过一个预设的阈值(一般为0.5或者更高)。流程如下:

  1. 预测边界框:模型生成一系列预测边界框。
  2. IoU计算:计算预测边界框与真实边界框之间的 IoU。
  3. 设置阈值:在不同的IoU阈值下评估模型的 Precision 和 Recall。
  4. AP计算:通过精度-召回曲线下的面积来计算 box AP。

Box AP 的核心在于评估边界框的质量,确保模型能够精确地定位目标物体。

Mask AP 掩膜平均精度(Mask AP, Mask Average Precision)

Mask AP 是针对实例分割(Instance Segmentation)任务的 AP 值。这种任务不仅要求模型检测出物体的边界框,还需要对物体的每个像素点进行分类(生成二值掩膜)。Mask AP 的计算流程与 box AP 类似,但它的复杂度更高,因为它要求对掩膜预测的质量进行评估:

  1. 预测掩膜:模型生成一系列预测掩膜(masks)。
  2. IoU计算:对每个预测掩膜和真实掩膜计算 IoU。
  3. 设置阈值:在不同的IoU阈值下评估模型的 Precision 和 Recall。
  4. AP计算:通过精度-召回曲线下的面积来计算 mask AP。

Mask AP 的核心在于评估掩膜的质量,确保模型能够精确地分割出目标物体的形状。

尽管 box AP 和 mask AP 针对不同的任务,它们的计算方法在概念上是类似的,都是通过评估 IoU 和计算平均精度来衡量模型的性能。

计算掩膜的IoU
  1. 掩膜定义

    • 每个对象的掩膜可以用一个二值矩阵表示,其中“1”表示该像素属于对象,“0”表示该像素不属于对象。
  2. 交集(Intersection)

    • 交集指的是两个掩膜相交部分的像素数,即两个掩膜都为“1”的像素数。
    • Intersection = ∑ ( Mask1 & Mask2 ) \text{Intersection} = \sum (\text{Mask1} \& \text{Mask2}) Intersection=(Mask1&Mask2)
  3. 并集(Union)

    • 并集指的是两个掩膜的所有像素数减去交集部分的像素数。
      - Union = ∑ ( Mask1 ∣ Mask2 ) \text{Union} = \sum (\text{Mask1} | \text{Mask2}) Union=(Mask1Mask2)
  4. 计算IoU

    • IoU的计算公式为:
      IoU = Intersection Union \text{IoU} = \frac{\text{Intersection}}{\text{Union}} IoU=UnionIntersection

总结

平均精度(AP)作为一个有说服力且广泛接受的评价指标,可以有效地评估分类和检测模型的性能。通过整合Precision和Recall,它提供了一个对模型性能的全面衡量。

你可能感兴趣的:(深度学习基础,分类,数据挖掘,人工智能)