本文介绍coco style的map计算方式
相关概念
- map mean average precision,表示各类别ap的平均值
- ap average precision,表示P-R曲线下的面积
- p precision,查准率, p = T P T P + F P p=\frac{TP}{TP+FP} p=TP+FPTP
- r recall,召回率, r = T P T P + F N r=\frac{TP}{TP+FN} r=TP+FNTP
- TP true positive,在detection中,表示成功检测到某个ground truth bounding box的预测框的数量
- FP false positive,表示没能匹配到某个ground truth bounding box的预测框的数量
- FN false negative,表示没能检测出来的ground truth bounding box 注意FN和FP是不一样的
- 判定阈值 表示判断预测框成功检测出某个gt bbox的iou阈值,即 i o u ( d t , g t ) iou(dt, gt) iou(dt,gt)大于该阈值时,才认为 d t dt dt成功匹配到了 g t gt gt,在coco style的map计算中,存在多个判定阈值 0.5 , 0.55 , 0.6 , . . . , 0.95 0.5, 0.55, 0.6, ..., 0.95 0.5,0.55,0.6,...,0.95
为了弄清楚cocoapi是如何计算map的,我们需要搞清楚下面几个问题
如何计算TP和FP
计算TP和FP其实就是为所有的预测框分配gt bbox。
cocoapi的分配算法如下所示:
输入: 图片 I I I,类别 C C C,判定阈值 t h r e s h o l d threshold threshold
过程:
- 找到 I I I上所有属于 C C C类的预测框集合 D D D
- 找到 I I I上所有属于 C C C类的gt bbox集合 G G G
- 将 D D D按照分类置信度降序排列
- f o r d i n D for\ d\ in\ D f