目标检测里的mAP计算过程和原理

文章目录[隐藏]

经过检测模型以后,得到了所有图片的预测框,对于某一个图片,某个类,计算预测框和真实框之间的IOU值,并得到每一个预测框最大的IOU值和对应的真实框

这个要遍历每个图片每个类,共存在两个循环

然后对于最大的IOU值大于0.5的所有预测框,第一个预测类是TP,其余相同类的框都算FP,计算>0.5:0.95的bool值,并保存到变量M,这里一个循环,共三层循环

遍历完所有图片以后,就得到了变量M,包含 [bool值,预测框置信度,预测框的类,真实框的类]

然后根据预测框置信度进行降序排列,得到预测框的个数,真实框的个数

使用bool值计算累加值,True为TP、False为FP,1-bool则相反,可以得到相应的fp的累加值,tp的累加值,tp的累加值除以真实框的个数,就是召回率recall的分布情况,同样precision也可以计算得到,通过tp/(tp+fp)

由于bool值是10列,从0.5到0.95,对于每个阈值,像是0.6,分别计算每个类的AP值,对于recall、precision曲线,可以通过曲线拟合,然后计算[0, 1]之间分布的值,然后计算每个梯形的面积,并进行累加求和,就是AP值 np.trapz: 计算梯形的面积

计算mAP的代码实现可以看这个:

https://github.com/ZouJiu1/mAP

代码的详细流程

计算mAP的例子

 真实的标签内容

预测的相应内容

计算的详细过程

 最后的计算内容

 

 

 

https://github.com/ZouJiu1/mAPhttps://github.com/ZouJiu1/mAPhttps://github.com/ZouJiu1/mAP

https://zhuanlan.zhihu.com/p/449822471https://zhuanlan.zhihu.com/p/449822471https://zhuanlan.zhihu.com/p/449822471

版权声明:本文为CSDN博主「九是否非随机的称呼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_50617544/article/details/121893818

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLOX笔记

目录 1. 样本匹配 正负样本划分过程 2. yoloxwarmcos 学习率 3. 无法开启多gpu训练, 或者多gpu训练卡住? 1. 样本匹配 正负样本划分过程 说明: gt_centerbbox是在gt_bbox中心点向四周