mmdetection 测试时获取precision指标

运行tool/test.py时,会调用mmdet/datasets/voc.py中的evaluate()函数计算AP值,而evaluate()又是调用mmdet/core/evalution/mean_ap.py中的eval_map()函数获取AP值。其实这个函数eval_map()也可以得到Recall和Precision,只是mmdetection的代码中没有这样处理。

先看一下eval_map()返回的内容:

 mean_ap就是MAP值,另一个eval_results是一个存储字典的列表,存储的是每一类对应的真实框个数、检测框个数、召回率、精度和平均精度。

mmdetection 测试时获取precision指标_第1张图片

 然后再看一下evaluate()是怎么接受eval_map()返回的内容:

mmdetection 测试时获取precision指标_第2张图片

它只对mean_ap做处理,并没有在这里得到Precision和Recall。所以可以参考下面的方式获取Precision和Recall。

mmdetection 测试时获取precision指标_第3张图片

result[0]表示第一类对应的字典,存储了真实框个数、检测框个数、召回率、精度和平均精度。

测试结果如下:

mmdetection 测试时获取precision指标_第4张图片

 仅作参考,具体原理可以参看:

用商汤的mmdetection 学习目标检测中的 Recalls, Precisions, AP, mAP 算法 Part1_史蒂夫方-CSDN博客_mmdetection计算ap

用商汤的mmdetection 学习目标检测中的 Recalls, Precisions, AP, mAP 算法 Part2_史蒂夫方-CSDN博客

你可能感兴趣的:(python,深度学习,pytorch)