文章目录[隐藏]
经过检测模型以后,得到了所有图片的预测框,对于某一个图片,某个类,计算预测框和真实框之间的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
版权声明:本文为CSDN博主「九是否非随机的称呼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_50617544/article/details/121893818
暂无评论