mAP指标

        mAP是mean of Average Precision的缩写,意思是平均精确度(average precision)的平均(mean),是目标检测中模型性能的衡量标准。

一、正确率和召回率

TP(True Positive):正确预测为正样本(真正例)

FP(False Positive):错误预测为正样本(假正例)

FN(False Negative):错误预测为负样本(假负例)

TN(True Negative):正确预测为负样本(真负例)

准确率:正确预测为正样本数量/预测为正样本数量

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

召回率:正确预测为正样本数量/实际正样本数量

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

二、AP指标(Average Precision)和mAP指标(mean Average Precision)

        AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。

TP:如果一个预测框与某一个GT(Grounding Truth)的IoU大于阈值,即认为这个预测框正确(真正例),标记为TP。在实际预测中,经常会出现多个预测框与同一个GT的IoU都大于阈值,这时通常只将这些预测框中置信度最大的算作TP,其它算作FP。

FP:除TP之外的标记为FP (假正例,一般都只设置一个TP标志位,如果当前预测框正确,那么这个标志位设置为1代表TP,否则设置为0代表FP)。

计算某一类别(A类别)的AP:

        以数据集(所有图片)为单位计算PR曲线,以图片为单位计算TP、FP,所以我们需要建立一个数组记录每个图片中所有预测框的TP和置信度。

①标记所有图片中的预测框(标记为TP或FP,即1或0)

        所有预测框都是Positive(正例),要区分TP和FP(真正例和假正例)。将一个预测框分别与同一张图片、同一类别的所有GT计算IoU,取最大IoU所对应的GT。若IoU大于阈值,则标记为TP,否则标记为FP。同时还需要判断GT是否被访问过,若未被访问过,则标记为TP,否则标记为FP。

        假设现在数据集中一共有3张图片,第1张图片中有2个A类别的GT,有3个A类别的预测框,置信度分别为(0.3, 0.5, 0.9),发现置信度为0.3和0.9的与GT相匹配,则将这两个记为TP。建立用于计算PR曲线的数组metric和记录A类别gt总数的变量n_GT,向数组中加入(0.3, 1), (0.5, 0), (0.9, 1)三组数据(置信度,是否为TP),并将n_GT累加2;第2张图片中没有A类别的物体(GT数量为0),则n_GT+=0,但有一个关于A类别的预测框,置信度为0.45,则向metric中加入(0.45, 0);第3张图片中有1个A类别的物体,但没有预测框,则n_gt+=1。

②按置信度排序所有预测框

        最终将得到的A类别的n_GT=6,metric按置信度从大到小进行排序为(0.9, 1), (0.85, 1), (0.8, 1), (0.7, 1), (0.5, 0), (0.45, 0), (0.35, 0), (0.3, 1), (0.1, 0) 共9个预测框,依次去掉metric中最后一组数据,可以得到(5/8, 5/6), (4/7, 4/6), (4/6, 4/6), (4/5, 4/6), (4/4, 4/6), (3/3, 3/6), (2/2, 2/6), (1/1, 1/6) 共9组PR值。

③计算AP值        

        因为A类别一共有6个GT,所以Recall的值应该是从1/6~6/6共6个,也就是要取6组PR值计算平均Precision,因为这个例子中没有出现Recall=6/6的情况,所以R=6/6时的Precision算作0,即类别A的AP=(1/1 + 2/2 + 3/3 + 4/4+ 5/8 + 0) / 6 = 0.7708。按照同样的方式计算其他类别的AP,最后求所有AP的均值,即可得到mAP。

PR曲线:

        设总数为N的样本,分别将Top-1,TOP2,…Top-N预测为正样本,则可以获得N组PR值。以Precision值为纵坐标,以对应的Recall值为横坐标,将这N组PR值在图上画出来,就是P-R曲线,如下图。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值