深度学习中的mAP

我们在评价一个模型好坏的时候,经常会用到mAP,下面整理下对这个概念的理解,

1.TP TN FP FN

首先是TP TN FP FN的概念。

T或者N代表的是该样本是否被分类分对,P或者N代表的是该样本被分为什么

TP(True Positives):意思我们倒着来翻译就是“被分为正样本,并且分对了”,

TN(True Negatives):意思是“被分为负样本,而且分对了”,

FP(False Positives):意思是“被分为正样本,但是分错了”,

FN(False Negatives):意思是“被分为负样本,但是分错了”。

按上图来解释,左半矩形是正样本,右半矩形是负样本。一个2分类器,在图上画了个圆,分类器认为圆内是正样本,圆外是负样本。

TP:那么左半圆分类器认为是正样本,同时它确实是正样本,那么就是“被分为正样本,并且分对了”即TP,

FN:左半矩形扣除左半圆的部分就是分类器认为它是负样本,但是它本身却是正样本,就是“被分为负样本,但是分错了”即FN。

FP:右半圆分类器认为它是正样本,但是本身却是负样本,那么就是“被分为正样本,但是分错了”即FP。

TN:右半矩形扣除右半圆的部分就是分类器认为它是负样本,同时它本身确实是负样本,那么就是“被分为负样本,而且分对了”即TN

2.Precision(精度)和Recall(召回率)

有了上面TP TN FP FN的概念,这个Precision和Recall的概念一张图就能说明。

:翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”,衡量的是一个分类器分出来的正类的确是正类的概率。两种极端情况就是,如果精度是100%,就代表所有分类器分出来的正类确实都是正类。如果精度是0%,就代表分类器分出来的正类没一个是正类。光是精度还不能衡量分类器的好坏程度,比如50个正样本和50个负样本,我的分类器把49个正样本和50个负样本都分为负样本,剩下一个正样本分为正样本,这样我的精度也是100%,但是傻子也知道这个分类器很垃圾。

:翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比例”,衡量的是一个分类能把所有的正类都找出来的能力。两种极端情况,如果召回率是100%,就代表所有的正类都被分类器分为正类。如果召回率是0%,就代表没一个正类被分为正类。

3.举例计算AP

有3张图如下,要求算法找出face。蓝色框代表标签label,绿色框代表算法给出的结果pre,旁边的红色小字代表置信度。设定第一张图的检出框叫pre1,第一张的标签框叫label1。第二张、第三张同理。

3.1.根据IOU计算TP,FP

首先我们计算每张图的pre和label的IOU,根据IOU是否大于0.5来判断该pre是属于TP还是属于FP。显而易见,pre1是TP,pre2是FP,pre3是TP。

3.2.排序

根据每个pre的置信度进行从高到低排序,这里pre1、pre2、pre3置信度刚好就是从高到低。

3.3.在不同置信度阈值下获得Precision和Recall

首先,设置阈值为0.9,无视所有小于0.9的pre。那么检测器检出的所有框pre即TP+FP=1,并且pre1是TP,那么Precision=1/1。因为所有的label=3,所以Recall=1/3。这样就得到一组P、R值。

然后,设置阈值为0.8,无视所有小于0.8的pre。那么检测器检出的所有框pre即TP+FP=2,因为pre1是TP,pre2是FP,那么Precision=1/2=0.5。因为所有的label=3,所以Recall=1/3=0.33。这样就又得到一组P、R值。

再然后,设置阈值为0.7,无视所有小于0.7的pre。那么检测器检出的所有框pre即TP+FP=3,因为pre1是TP,pre2是FP,pre3是TP,那么Precision=2/3=0.67。因为所有的label=3,所以Recall=2/3=0.67。这样就又得到一组P、R值。

3.4.绘制PR曲线并计算AP值

根据上面3组PR值绘制PR曲线如下。然后每个“峰值点”往左画一条线段直到与上一个峰值点的垂直线相交。这样画出来的红色线段与坐标轴围起来的面积就是AP值。

在这里AP=1*0.33+0.67*0.33\approx 0.55

4.mAP

4.1.mAP简介

mAP 是 Mean Average Precision  的缩写,即 平均AP值。作为 object dection 中衡量检测精度的指标。计算公式为:

mAP = 所有类别的平均精度求和除以所有类别

是对多个验证集求平均AP值,其中QR指验证集个数:

4.2。P—R曲线

P-R曲线,顾名思义,就是P-R的关系曲线图,表示了召回率和准确率之间的关系;我们可以在坐标系上做以 precision 和 recall 作为 纵、横轴坐标 的二维曲线。

上图就是一个P-R曲线的例子,通过这几个例子,我们能够发现一个规律:精度越高,召回率越低,当召回达到1时,对应概率分数最低的正样本,这个时候正样本数量除以所有大于等于该阈值的样本数量就是最低的精度值。

reference:

https://blog.csdn.net/hsqyc/article/details/81702437?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control#commentBox

https://blog.csdn.net/shuiyixin/article/details/86349643

 

猜你喜欢

转载自blog.csdn.net/u013171226/article/details/113696035