14. 必会--mAP计算

181 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情

1. 基本概念

IoU

IoU的定义:预测框和真实框的交并比。

IoU用来定义正负样本,若IoU>threshold,则为正样本;若IoU<=threshold,则为负样本。

Precision & Recall

查准率:预测为正且预测对的样本与所有预测为正的样本之比。

Precision=TPTP+FPPrecision=\frac{TP}{TP+FP}

查全率:预测为正且预测对的样本与所有实际为正的样本之比。

Recall=TPTP+FNRecall=\frac{TP}{TP+FN}

2. mAP计算流程

当一个数据集通过我们的目标检测算法,得到了预测的框和预测的类别。接下来,我们就需要通过计算IoU来判定这些预测框的正负性,以及经过mAP来判定我们算法的好坏。

举例说明:

Image1,2预测猫猫类别。红框为预测框,绿框为真实框。百分数为预测猫猫置信度。

图片.png

根据置信度降序进行排序。将IoU>0.5的预测框置为TP,IoU<=0.5的预测框置为FP。 计算每个置信度阈值下的Precision和Recall:例如,confidence>=88%时,所有数据集中,(将confidence<88%的预测框忽略掉。多个预测框对应同一个GT,则置信度最高的那个视为TP,其他的视为FP)TP=1,FP=1,FN=2,因此Precision=1/2,Recall=1/3。

图片.png

绘制出P-R曲线图,然后计算P-R曲线面积作为AP值。

图片.png

步骤

0.选用较低的置信度阈值来筛选网络的预测框。使用nms去除高度重复的框。

1.根据置信度降序,将confidence<边界值的预测框忽略掉,先根据IoU阈值判定TP、FP、FN,当多个预测框对应同一个GT,则置信度最高的那个视为TP,其他的视为FP。

2.计算不同置信度阈值下的Precision和Recall,绘制P-R曲线。

3.P-R曲线面积即为AP值。

4.计算完每个类的AP值求平均即为mAP。

COCO数据集的mAP

COCO数据集的"AP"是对不同的IoU阈值的AP值取平均,再对类别取平均得到最终的mAP(在COCO中mAP也叫AP)。