COCOAPI评估Yolov3,计算mAP

大致步骤按照这篇博文利用COCOAPI计算Yolov3训练出的模型的MAP值,复现ap。本人使用的是COCO val2017,所以在这篇博文的基础上需要做一些修改。

1.准备好val2017数据集,共5000张图片,保存至val2017文件夹
2.重命名val2017下所有图片,把val2017的测试集图像名称改成和coco/5k.part相似的,即把000000000139.jpg改成COCO_val2017_000000000139.jpg
3.把val2017下的所有图像路径保存至一个txt文件,这里取名image_nams.txt
4.修改darknet/cfg/coco.data文件,这里我们只需要用到valid,所以把valid的值改为保存图像路径的txt的路径。(train的值不用管,eval=coco这句话必须加上)
COCOAPI评估Yolov3,计算mAP
5.运行./darknet detector valid cfg/coco.data cfg/yolov3.cfg backup/yolov3.weight,顺利的话coco_results.json就会保存在results/文件夹下了
6.按照上面那篇博文的方法,输入instances_val2017.json和coco_results.json的路径的话就可以得到结果了。附图是tiny-yolov3的评估结果COCOAPI评估Yolov3,计算mAP
有几处容易犯错的地方:
1.图片的保存路径
2.图片保存路径的格式
3.加载对应的cfg和weights文件
附上我高强度骚扰这个博主然后自问自答的过程吧
COCOAPI评估Yolov3,计算mAP
这个image_id全为0还是后来使用cocoapi评估的时候报了results do not correspond to current coco set的时候又检查json文件时才发现的,按照val2014的格式改也是一时兴起,试了一下竟然成功了。记录一下~