今天跑了一下YOLOv3,用的VOC格式的数据集,发现不知道怎么计算mAP。
于是乎,百度了一下,折腾了好几下,我发现,有些人的方法绕来绕去,不知道是不是故意炫技,虽然也能计算,但让人觉得不知所云,一会要输入命令行,一会又要用到python,一会又要删除什么文件,一会又要设置什么difficult参数,甚至有的要修改darknet源码,总之搞得非常复杂。
偶然间自己发现了一个快速计算mAP的方法,完全不需要用到python,1分钟就能搞定,只要修改几个地方,然后一条命令行指令搞定。
进入正题:
1. 如果你之前训练的是VOC格式的数据集,你一定会得到一个测试用的.txt文件,里面写了测试图片的绝对路径,例如:
2. 修改voc.data文件,修改里面的 valid 设置为测试用的.txt文件的路径,其他不要动,如下所示:
classes= 20
train = data/voc/voc_train.txt
valid = data/voc/2007_test.txt #这里写的是你测试用的.txt文件的相对路径
names = data/voc.names
backup = data/weights
3. 然后cd 进入你的…darknet-master/build/darknet/x64 路径下,在CMD中输入:
darknet.exe detector map data/voc.data data/yolov3-voc.cfg data/weights/yolov3-voc_22000.weights -points 11 -thresh 0.5 -iou_thresh 0.5
一些参数说明:
data/voc.data #改成你使用的voc.data 的相对路径
data/yolov3-voc.cfg #改成你使用的yolov3-voc.cfg 的相对路径
data/weights/yolov3-voc_22000.weights #改成你使用的.weights权重参数文件的相对路径
points 11 #11表示该数据集为VOC格式的数据集,coco为101 ,ImageNet为0
thresh 0.5 #只计算预测置信值大于0.5的预测框
iou_thresh 0.5 #只计算IOU交并比大于0.5的预测框