YOLOv3使用笔记——计算mAP、recall

1.批处理测试图输出检测结果文本

./darknet detector valid cfg/voc.data cfg/yolov3-voc.cfg results/yolov3-voc_final.weights -out detect_result.txt

使用detector valid参数,具体函数是detector.c下的validate_detector函数。将训练集的检测结果保存到detect_result.txt。

其中thresh在validate_detector中默认为0.005,按需修改。

修改txt文件名为检测的类别名,我的标签是person,即person.txt

 

2.使用py-faster-rcnn下的voc_eval.py计算mAP

将py-faster-rcnn/lib/datasets/voc_eval.py拷贝到darknet根目录

新建compute_mAP.py

from voc_eval import voc_eval

print voc_eval('/xxx/darknet/results/{}.txt', '/xxx/darknet/scripts/VOCdevkit/VOC2007/Annotations/{}.xml', '/xxx/darknet/scripts/VOCdevkit/VOC2007/ImageSets/Main/test.txt', 'person', '.')

重复执行需要删除 ./darknet/annots.pkl

执行python compute_mAP.py,voc_eval.py中返回的最后一个值即AP,检测单类就是mAP

 

3.计算recall

修改detector.c下的validate_detector_recall函数

替换list *plist = get_paths("data/coco_val_5k.list");为list *plist=get_paths("scripts/train.txt");自己的训练集文本

./darknet detector recall cfg/voc.data cfg/yolov3-voc.cfg results/yolov3-voc_final.weights

最后一列为recall值。

计算IOU为NAN的问题,替换for(k = 0; k < l.w*l.h*l.n; ++k)为for(k = 0; k < nboxes; ++k),重编译执行。

 

 

 

 

 

参考

https://blog.csdn.net/mieleizhi0522/article/details/79989754

https://blog.csdn.net/northeastsqure/article/details/54848665

 

  • 9
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 86
    评论
计算Darknet YOLOv3mAP(mean Average Precision),您需要执行以下步骤: 1. 准备测试集:首先,您需要准备一个包含测试图像和相应标注文件的测试集。这些标注文件应该包含每个图像中物体的位置和类别信息。 2. 运行推理:使用训练好的YOLOv3模型,对测试集中的图像进行推理。这将为每个图像生成预测框和相应的置信度。 3. 计算预测框与标注框的IoU(Intersection over Union):将每个预测框与其对应的标注框进行IoU计算。IoU是通过计算两个框的交集面积除以它们的并集面积得到的。 4. 设置阈值:根据您的需求,设置一个IoU阈值,通常为0.5。如果预测框与任何标注框的IoU大于此阈值,则将其视为正确预测。 5. 计算Precision和Recall使用上一步中的阈值,计算每个类别的Precision和Recall。Precision是正确预测的正样本(True Positive)与总预测正样本(True Positive + False Positive)之比。Recall是正确预测的正样本与总标注正样本(True Positive + False Negative)之比。 6. 计算AP(Average Precision):为每个类别计算AP,它是Precision-Recall曲线下的面积。通常,AP是根据不同阈值计算的Precision和Recall值的平均值。 7. 计算mAP计算所有类别的AP的平均值,得到mAP值。 请注意,以上步骤描述了计算YOLOv3mAP的基本过程,具体的实现细节可能因使用的工具和库而有所不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 86
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值