yolov3中MAP的计算

今天跑了以下YOLOv2,发现竟然没有计算mAP的,这样怎么和其他模型对比呢?
于是乎,百度了一下,折腾了好几下,我发现,有些人不知道是不是故意的,竟给别人出馊主意方法绕来绕去(虽然也能计算,但让人觉得不知所云)。我竟无言以对。
幸好,有一篇比较良心:我的参考文献,本文也只是对这篇博客更细致的解释。
为了避免大家踩坑,觉得写一篇这个很有必要。

YOLOv3同样适用!

一、生成检测结果文件

./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg results/yolo-voc_final.weights -out [类名] -gpu 0 -thresh .5
 
 
  • 1

输出的txt文件在results下,记得修改一下输出文件的名称,因为得到的文件名和你的类名会不一样。
注意:输出的文件名要求为类名,不然后面计算时会出现ap = nan。我觉得出现nan的人应该还是有的。
权重文件(.weights)在backup里也有。

二、新建一个.py文件

在faster-rcnn/lib/datasets/ 下,新建一个compute_mAP.py文件。(或者将faster-rcnn/lib/datasets/ 下的voc_eval.py复制到darknet目录下,新建一个compute_mAP.py文件)

from voc_eval import voc_eval

rec,prec,ap = voc_eval('/home/liwanzhi/YOLO/darknet/results/{}.txt', '/home/liwanzhi/YOLO/darknet/scripts/VOCdevkit/VOC2007/Annotations/{}.xml', '/home/liwanzhi/YOLO/darknet/scripts/VOCdevkit/VOC2007/ImageSets/Main/test.txt', '1', '.')

print('rec',rec)
print('prec',prec)
print('ap',ap)
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

第1项:表示检测结果文件路径
第2项:表示标签文件的路径
第3项:表示测试文件路径
第4项:类名

三、运行compute_mAP.py

这里写图片描述
最后一项就是AP,由于我只有1类,所以就是mAP。
出现nan的可能就是第一步的问题了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值