计算mAP
主要有三种有所区别的计算方式
- 把confidence分为11份,以11个confidence分别为阈值,计算11个recall和precision,最后计算曲线下面积。
- 假预测结果里面为positive的数据的个数为num,那么我们最多可以得到num个fp,最少0个fp,也就是recall的可能取值为[1/num, 2/num, ... ,1]。以这num个recall为准,计算对应的precision,最后计算曲线下面积。
- 考虑到一幅图中,真值不可能把所有的物体都框出来,为了保证不误判,在真值里面还会加上每张图的正负标签。比如一张图里面有狗,有人。这个是正标签。这个图里面没有房子,没有树。这个负标签。那么只有出现在正负标签中的类才会用来计算AP。也就是你判断出了标签以外的类,对最终的分数既没有好处也没有坏处。
曲线下面积计算方法:
- sum((recall_n_1-recall_n)*precision),也就是求曲线面积的公式。recall为横轴,precision为纵轴。
判定fp,tp
- 计算fp,tp的时候,需要判断预测的box是否和真值的box重合。这里就引出了几种计算法方法
- 按照box重合度分:
- AP:分别计算iou阈值为0.5到0.95,步长0.05的AP的平均值
- AP50:iou阈值为0.5得到的AP
- AP75:iou阈值为0.7得到的AP
- 按照box大小
- APs:box面积小于32*32像素
- APm:box面积介于32*32到