map平均准确率_mAP

论坛 期权论坛     
选择匿名的用户   2021-5-30 11:17   150   0
<div class="._5ce-wx-style" style="font-size:16px;">
<div class="rich_media_content" id="js_content">
  <p>最近在处理检测问题的时候,需要对网络参数进行评估,之前对mAP的详细细节没有深入了解,这里记录一下</p>
  <p>-----------------------</p>
  <p>准确率(accuracy),精确率(precision),召回率(recall)</p>
  <p>MeanAverage Precision(平均精确率),即mAP</p>
  <p>Precision&#61;TP/(TP&#43;FP)</p>
  <p> TP(检测为P, 实际为p ,检测正确,P-&gt;P)  TruePostive</p>
  <p> FP(检测为P,实际为N,检测错误,N-&gt;P)   False Postive</p>
  <p>即Precision 为检测认为是P的样本里,真实为P的概率,即检测结果哩的真实率  </p>
  <p>Recall &#61;TP/(TP&#43;FN)   </p>
  <p> TP(检测为P,检测正确,实际为正,P-&gt;P) True Postive</p>
  <p> FN(检测为N,检测错误,说明实际为正,被检测为负,即漏掉了P-&gt;N) False Negive</p>
  <p>即Recall 为检测认为是P的样本哩占全部真实为P的概率,即反映了查全率</p>
  <p>假如原图中有10张人脸,检测到12张人脸,其中正确的人脸为8张,错误的为4张,则漏检的2张。</p>
  <p>TP&#61; 8, FP&#61;4, Precision&#61;66.7%  期望Precision越高越好,即错检测的尽可能少</p>
  <p>TP&#61;8,  FN&#61;2, Recall &#61;80% 即检测的查全率为80% 希望越多越好。</p>
  <p>Precision:根据上述方法,对于某个类别A,我们先计算每张图片中A类别TP和FP的数量,并遍历所有图像对其进行累加,即可得到类别A在整个数据集中TP和FP的数量,计算TP/(TP&#43;FP)即可得到类别A的Precision (计算Precision的时候只需要用到TP和FP),但是会发现Precision的数值是受模型预测出的边界框的数量(上述计算式的分母部分,即我们认为的检测出的Postive的样本的数量)影响的,如果我们控制模型输出预测框的数量,就可以得到不同的Precision,所以我们可以设置不同的score阈值,最终得到不同数量的TP和FP。</p>
  <p>Recall:对于某个类别A,按上述方法进行累加TP的数量,计算TP/(n_gt)即可得到Recall,其中n_gt表示类别A在所有图片中gt的数量之和。同理,如果控制模型输出的预测框的数量,就会改变TP的数量,也就会改变Recall的值</p>
  <p>综上,想要得到PR曲线,可以通过改变score的阈值来控制模型输出的预测框数量,从而得到不同的TP、FP、FN。不过在实际操作中,并不需要手动来设置score的阈值,因为每个预测框都有一个score,我们只需要将其按从小到大进行排序,然后每次选择最后一个score作为阈值即可,这样如果类别A在所有图片中的预测框数量之和有100个,就可以计算100组类别A的Precision-Recall值。</p>
  <p>假设现在数据集中一共有5张图片,</p>
  <p>①第1张图片中有2个A类别的gt,有三个A类别的预测框,score分别为(0.3, 0.5, 0.9),按照上述计算TP的方法(按score从大到小的顺序匹配)发现score为0.3和0.9的与gt相匹配,则将这两个记为TP。建立用于计算PR曲线的数组metric和记录A类别gt总数的变量ngt,向数组中加入(0.3, 1), (0.5, 0), (0.9, 1)三组</p>
  <p>数据(每组数据的第一个代表预测框的score,第二个代表这个预测框是否是TP),并将n_gt累加2;使用相同的方法计算接下来的几张图片,</p>
  <p>(0.3,1)(0.5, 0)(0.9,1)     gt&#61;2</p>
  <p>②第2张图片中没有A类别的物体(gt数量为0),则n_gt&#43;&#61;0,但有一个关于A类别的预测框,score为0.45,则向metric中加入(0.45, 0);</p>
  <p>(0.3,1)(0.5, 0)(0.9,1)(0.45, 0)     gt&#61;2</p>
  <p>③第3张图片中有1个A类别的物体,但没有预测框,则n_gt&#43;&#61;1;</p>
  <p>(0.3,1)(0.5, 0)(0.9,1)(0.45, 0)     gt&#61;3</p>
  <p>④第4张图片中有3个A类别的物体,有5个预测框,其中有3个与gt相匹配,最终n_gt&#43;&#61;3,metric中加入(0.85, 1), (0.8, 1), (0.7, 1), (0.35, 0), (0.1, 0);</p>
  <p>(0.3,1)(0.5, 0)(0.9,1)(0.45, 0) (0.85, 1), (0.8, 1), (0.7, 1), (0.35, 0), (0.1, 0)   gt&#61;6</p>
  <p>⑤第5张图片中没有A类别的物体,也没有A类别的预测框。</p>
  <p>(0.3,1)(0.5, 0)(0.9,1)(0.45, 0) (0.85, 1), (0.8, 1), (0.7, 1), (0.35, 0), (0.1, 0)   gt&#61;6</p>
  <p>对score进行从大到小排序,之所以使用由大向小排列是因为判断条件为&gt;&#61;score,是因为小的阈值向上兼容大的阈值</p>
  <p>       accTP    accFP      precition    recall</p>
  <p>(0.9,  1)        1                0        1/1        1/6 </p>
  <p>    #score  &#61;0.9   正确分类1个(0.9,  1),错分0个.  </p>
  <p>     precision&#61;1/(1&#43;0)&#61;1,  recall &#61;1/6</p>
  <p>(0.85,1)        2        0        2/2        2/6 </p>
  <p>    #score  &#61;0.85   正确分类2个(0.85,1)(0.9,1),错分0个. </p>
  <p>    precision&#61;2/(2&#43;0)&#61;1,  recall &#61;2/6</p>
  <p>(0.8,  1)     
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP