运行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是一个存储字典的列表,存储的是每一类对应的真实框个数、检测框个数、召回率、精度和平均精度。
然后再看一下evaluate()是怎么接受eval_map()返回的内容: