我使用的是voc格式数据集,训练方法详见上篇博客:YOLOv3训练自己的VOC数据集
一、生成检测结果txt文本
./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg xx.weight
- 如果没加
-out
选项则默认在results目录下生成txt文件,例如:comp4_det_test_car.txt - 将生成的txt文件更名为 类别名.txt,例如car.txt
二、借助voc_eval.py计算recall、precision等
- Faster RCNN的实现中即包含voc_eval.py,将其复制到当前项目目录下
- 新建compute.py
from voc_eval import voc_eval
rec,prec,ap = voc_eval('…/results/{}.txt','…/VOCdevkit/VOC2007/Annotations/{}.xml','…/VOCdevkit/VOC2007/ImageSets/Main/test.txt','car','.')
print(……)
- 注意随手删除运行目录下生成的annots.pkl,以防下一次运行出现问题
- 另外原项目examples/detector.c中包含
validate_detector_recall
函数,也可借助其计算recall
参考:
https://blog.csdn.net/cgt19910923/article/details/80524173
https://blog.csdn.net/mieleizhi0522/article/details/79989754
https://blog.csdn.net/northeastsqure/article/details/54848665