图像类评价指标介绍

图像类任务分为图像分类单标签、物体检测矩形框、实例分割、语义分割、OCR和关键点共6类,每类使用不同的评价指标。 下面会根据不同类别,对评估任务中的评价指标进行介绍。

图像分类单标签

评估结果总览如下图所示:

../../_images/evaluation_image_cls.png

精确率(Precision)

作用:

用来衡量算法的误检情况的评价指标。

定义:

分类器预测为正类别的样本中,真实为正类别的样本所占的比例。

计算过程:
\[\text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}}\]

其中,True Positives(真正例)表示分类器正确预测为正类别的样本数,False Positives(假正例)表示分类器错误预测为正类别的样本数。

召回率(Recall)

作用:

用来衡量算法的漏检情况的评价指标。

定义:

所有真实正类别样本中,被分类器正确预测为正类别的样本所占的比例。

计算过程:
\[\text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}}\]

其中,True Positives(真正例)表示分类器正确预测为正类别的样本数,False Negatives(假反例)表示分类器错误预测为负类别的样本数。

F1-score

作用:

用于综合衡量算法漏检和误检情况的评价指标。

定义:

Precision和Recall的调和平均值

计算过程:
\[F1 = \frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}\]

混淆矩阵(Confusion Matrix)

作用:

方便地看出机器是否将两个不同的类混淆了。

定义:

矩阵的每一列表示分类器预测的类别,而每一行表示样本真实的类别。

例如下图所示,矩阵的第 1 行第 5 列表示有 9 个真实类别为 sunflower 的样本被分类器错分为 daisy 。

../../_images/evaluation_image_cls_confusion_matrix.png

物体检测矩形框

评估结果总览如下图所示:

../../_images/evaluation_image_det.png

mAP(mean Average Precision)

作用:

用来衡量目标检测算法检测精度的评价指标,值越高通常算法检测效果越好。

定义:

所有类别在不同召回率下的平均精确率的平均值。

评估任务中的mAP计算方式采用COCO中的算法,即使用插值平均法计算平均精确率,mAP 为 IoU=0.5:0.05:0.95 下的平均值。

计算过程:
  1. 计算预测矩形框与真值矩形框的交并比(Intersection over Union, 简称 IoU),对于 IoU 大于阈值且预测 label 与真实 label 相符的记为 True Positives, 否则记为 False Positives 。

  2. 根据预测矩形框的置信度计算得出不同 Recall 下的 Precision, 使用插值平均法计算平均精确率。

  3. 计算不同 IoU 阈值下的平均精确率,求平均得到单类的 AP (Average Precision)。

  4. 对不同类别的 AP 求取平均值的到最终的 mAP 。

子评价指标:
  • mAP@50: 只计算IoU=0.50下的mAP

  • mAP@75:只计算IoU=0.75下的mAP

  • mAP_small: 只计算小物体(面积小于32*32)的mAP

  • mAP_medium:只计算中物体(面积大于32*32且小于96*96)的mAP

  • mAP_large:只计算大物体(面积大于96*96)的mAP

P-R曲线(Precision-Recall Curve)

作用:

用来观察精确率随召回率的变化趋势。

定义:

横轴为召回率,纵轴为精确率的曲线图。

评估任务支持比较不同类别物体的P-R曲线,可以通过如下图红框所示的下拉菜单来选择P-R曲线的IoU阈值和要展示的类别。

../../_images/evaluation_image_det_pr_curve.png

实例分割

评估结果总览如下图所示:

../../_images/evaluation_image_ins.png

实例分割的评价指标与目标检测基本一致,只是将计算 IoU 的对象替换成了实例分割得到的 Mask 。

语义分割

评估结果总览如下图所示:

../../_images/evaluation_image_seg.png

AAcc (Average Accuracy)

作用:

评价整体预测精度。

定义:

整个图像数据集上预测正确的像素数占总像素数的比例。

计算过程:
\[\text{AAcc} = \frac{\text{TP}}{\text{TP} + \text{FN}}\]

其中 \(\text{TP}\) 表示类别预测正确的像素数,\(\text{FN}\) 表示类别预测错误的像素数。

MAcc (Mean Accuracy)

作用:

评价整体预测精度,相比 AAcc 不容易忽视一些小样本的准确率。

定义:

各个类别的像素级别精度的平均值。

计算过程:
\[\text{MAcc} = \frac{1}{N} \sum_{i=1}^{N} \frac{\text{TP}_i}{\text{TP}_i + \text{FN}_i}\]

其中 \(\text{TP}_i\) 表示类别 i 预测正确的像素数, \(\text{FN}_i\) 表示算法未识别出的类别 i 的像素数。

MIoU (Mean Intersection over Union)

作用:

评价整体预测精度,相比 AAcc 不容易忽视一些小样本的准确率。

定义:

整个图像数据集上预测正确的像素数与真实像素数的交并比的平均值。

计算过程:
\[\text{MIoU} = \frac{1}{N} \sum_{i=1}^{N} \frac{\text{TP}_i}{\text{TP}_i + \text{FP}_i + \text{FN}_i}\]

其中 \(\text{TP}_i\) 表示类别 i 预测正确的像素数,\(\text{FP}_i\) 表示算法错分为类别 i 的像素数, \(\text{FN}_i\) 表示算法未识别出的类别 i 的像素数。

OCR

评估结果总览如下图所示:

../../_images/evaluation_image_ocr.png
计算过程:
  1. 根据给定的阈值过滤掉小于阈值的预测结果;

  2. 计算过滤后的预测结果与真值的 IoU ,剔除 IoU 小于 0.5 的预测结果;

  3. 比对预测结果与真值的文本信息,统计正确的预测结果总数记为 TP;

\[\begin{split}\begin{aligned} &\text{Precision} = \frac{\text{TP}}{\text{num}_\text{pred}} \\ &\text{Recall} = \frac{\text{TP}}{\text{num}_\text{gt}} \\ &\text{Hmean} = \frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \end{aligned}\end{split}\]

其中 \(\text{num}_\text{pred}\) 代表预测结果的总数,\(\text{num}_\text{gt}\) 代表真值的总数。

评估任务中阈值选择为 0.3 到 0.9 ,间隔 0.1。最后评价指标为这些阈值下评价指标的平均值。

关键点

评估结果总览如下图所示:

../../_images/evaluation_image_kp.png

NME(Normalized Mean Error)

作用:

用来衡量关键点检测的位置误差

定义:

预测关键点位置与真实关键点位置之间的平均归一化误差

计算过程:
  1. 计算每个关键点的预测位置 \(P_i\) 和真实位置 \(P_{i}^{gt}\) 之间的欧氏距离。

  2. 将每个关键点的欧氏距离除以其对应包围框的大小,得到归一化的距离。

  3. 对所有关键点的归一化距离取平均,得到最终的NME值。

可以概括为如下公式:

\[\text{NME} = \frac{1}{N} \sum_{i=1}^{N} \frac{\text{Euclidean Distance}(P_i, P_{i}^{gt})}{\text{Bounding Box Size}(P_{i}^{gt})}\]

其中,\(N\) 是关键点的数量,\(P_i\) 是预测的关键点位置,\(P_{i}^{gt}\) 是真实的关键点位置,Euclidean Distance 表示欧氏距离,Bounding Box Size 表示关键点所在的包围框(Bounding Box)的大小。