目标检测系列教程(一):模型性能评价指标——mAP



前言

    本文主要介绍目标检测模型的性能评价指标——mean Average Precision(mAP)。本文的第一部分主要介绍传统二分类模型的性能评价指标(都是基本概念,熟悉可以直接跳过),然后在第二部分介绍mAP的计算方式。


一. 普通二分类模型的性能评价指标

1. Precision,Recall和F1score

    在传统的二分类问题中,衡量分类模型性能的指标通常使用Precision(查准率)和Recall(查全率),以及在此基础上的F1scorePR图。
    对一个二分类模型,我们可以根据其分类结果构建混淆矩阵并根据混淆矩阵计算PrecisionRecall,过程如下:

预测正例预测负例
真实正例TP (True Positive)FN (False Negative)
真实负例FP (False Positive)TN (True Negative)

P = T P T P + F P P=\frac {TP}{TP+FP} P=TP+FPTP

R = T P T P + F N R=\frac {TP}{TP+FN} R=TP+FNTP

    由于单独考察PrecisionRecall都是很片面的,因此实际情况下通常使用F1score衡量模型的性能,其计算公式为:

F 1 s c o r e = 2 1 P + 1 R = 2 P R P + R F1score=\frac {2}{\frac1P+\frac1R}=\frac {2PR}{P+R} F1score=P1+R12=P+R2PR

    在对模型进行性能评价时,认为Precision,RecallF1score越大则模型的性能越好。

2. PR图和BEP

    PR图通过曲线的形式反应模型的性能,为了理解其绘制过程,下面以最简单的二分类模型进行说明。下图所示为一个简单的感知机(perceptron),其中 ( x 1 , x 2 , … , x n ) (x_1,x_2,…,x_n) (x1,x2,,xn)是输入的n维数据,b是一个常数偏置,为一个求和单元,是激活函数。

    perceptron的计算过程为 y = y= y= ( ∑ i = 1 n w i ∗ x i + b ) (∑_{i=1}^nw_i*x_i +b) (i=1nwixi+b),其中激活函数的作用是引入非线性便于模型优化。以sigmoid激活函数为例,它将 ∑ i = 1 n w i ∗ x i + b ∑_{i=1}^nw_i*x_i +b i=1nwixi+b的结果映射到[0,1]区间上,其函数曲线如下,横轴为 ∑ i = 1 n w i ∗ x i + b ∑_{i=1}^nw_i*x_i +b i=1nwixi+b而纵轴为 y = y= y= ( ∑ i = 1 n w i ∗ x i + b ) (∑_{i=1}^nw_i*x_i +b) (i=1nwixi+b)

    perceptron的工作原理为:若 ∑ i = 1 n w i ∗ x i + b > 0 ∑_{i=1}^nw_i*x_i +b>0 i=1nwixi+b>0则认为输入样本为正样本,反之则为负样本。换言之,如果 y > 0.5 y>0.5 y>0.5则认为输入样本为正样本,反之则认为输入样本为负样本。即,此时模型使用的分类阈值为0.5
    因此,如果我们选择不同的阈值,我们就可以得到不同的预测结果,也就可以得到不同的混淆矩阵,进而得到不同的PrecisionRecallPR图的绘制过程为:以P为纵坐标,R为横坐标,选择不同的阈值计算PrecisionRecall并绘制曲线上的一个点,最终由多个点拟合出一条PR曲线。BEP则为PR曲线上P=R处的点,称为平衡点。使用PR图和BEP评价模型性能时,认为PR曲线越靠外或BEP越靠外则模型性能越好。


二. 目标检测模型的性能评价指标

    目标检测模型比传统的二分类模型复杂得多,因为其检测结果同时包括了目标位置(bounding box的中心坐标和宽高)和目标类别。

1. IOU

    IOU全称为交并比(intersection over union),即两个bounding box交集面积和并集面积之比,用于衡量检测出的bounding box和真实bounding box的贴近程度。显然IOU越大表示两个bounding box的位置越接近。

2. Precision和Recall

    目标检测问题中的PrecisionRecall的计算方式与传统二分类问题存在差异。假设我们使用的IOU阈值为0.5,混淆矩阵中TP, FN, FP的具体含义如下:

  • TP: 检测出的bbox中,与真实bboxIOU≥0.5bbox数目。可理解为真实情况中是目标且检测结果中也是目标的个数,其中若某个真实的bbox与多个检测出的bboxIOU≥0.5TP只能统计一次。
  • FN: 漏检的bbox数目。可理解为真实情况中是目标但检测结果中不是目标的个数。
  • FP: 检测出的bbox中,与真实bboxIOU<0.5bbox数目以及冗余的bbox数目。可理解为真实情况不是目标但检测结果中是目标的个数,其中若某个真实的bbox与多个检测出的bboxIOU≥0.5TP只能统计一次,其余情况均算作FP

    简言之,PrecisionRecall可以衡量模型在检测目标数量和目标位置的优劣程度。

3. PR图

    针对某个类别的所有检测结果,我们可以绘制该类别的PR 图,绘制方式如下:

  • Step1: 将该类别的所有检测结果按照置信度阈值由大到小排列,其中若检测出的bbox与某个真实bboxIOU≥0.5,则认为该bbox检测正确,其Ground Truth标签为True
  • Step2:从列表的第一行开始,依次选择它们的置信度为阈值,将该阈值以上的标签视为True,该阈值以下的标签视为False
  • Step3:计算当前阈值下的PrecisionRecall,然后绘制PR曲线上的一个点;
  • Step4:重复step2step3直到绘制结束。

    下面以一个实际例子介绍PR图的绘制步骤:
    假设图像中共有5个类别为A的目标,我们共检测出了10个类别为A的目标。首先将我们的检测结果按照置信度由大到小排列,并确定它们的Ground Truth标签(表格的前三列)。

IDConfidenceGTRank1Rank2Rank3……
10.9TrueTureTrueTrue……
20.9TrueFalseTrueTrue……
30.8FalseFalseFalseTrue……
40.8FalseFalseFalseFalse……
50.7FalseFalseFalseFalse……
60.7TrueFalseFalseFalse……
70.7TrueFalseFalseFalse……
80.7FalseFalseFalseFalse……
90.6FalseFalseFalseFalse……
100.6TrueFalseFalseFalse……

    以列表第一行的Confidence为阈值时(表格第4列),TP=1,FP=0,FN=4,P=1,R=0.2
    以列表第二行的Confidence为阈值时(表格第5列),TP=2,FP=0,FN=3,P=1,R=0.4
    以列表第三行的Confidence为阈值时(表格第6列),TP=2,FP=1,FN=3,P=0.67,R=0.4
    以此类推即可绘制出该类别的PR曲线。

4. AP

    AP全称为Average Precision,即平均查准率。Pascal Voc 2008Pascal Voc 2009分别使用了不同的计算方式。假设我们绘制出的PR曲线如下图蓝色实线所示,对PR曲线做平滑处理(曲线上每个点的precision是该点右侧最大的precision)的曲线如下图黄色实线所示。
    Pascal Voc 2008AP的计算方式为:在平滑后的PR曲线上,取Recall[0,1]上的十等分点(共11个点),并计算它们Precision的均值。其计算公式为:
A P = 1 11 ∗ ∑ i = 0 , 0.1 , … , 1.0 P s m o o t h ( i ) AP=\frac 1{11}*\sum_{i=0,0.1,…,1.0} P_{smooth}(i) AP=111i=0,0.1,,1.0Psmooth(i)
    Pascal Voc 2009之后对AP的计算方式为:平滑后的PR曲线去横轴围成的区域面积。其计算公式为:
A P = ∫ 0 1 P s m o o t h ( i ) d i AP=\int_0^1 P_{smooth}(i)di AP=01Psmooth(i)di

5. mAP

    mAP的全称是mean Average Precision,是各个类别AP的均值。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值