[代码解析]如何计算Precision和Recall

相关文件:py/metrics/map/voc_map.py

前提条件

  • 每类的真值边界框个数
  • TP/FP列表

Precision/Recall

小于置信度阈值下的边界框将不参与计算(过滤掉了)。之前已对按置信度排序的边界框进行了TP/FP的判断,所以可以计算出指定置信度阈值下的TP/FP个数

比如置信度阈值为0.5,刚好等同于列表中第9个边界框的置信度,那么之后的边界框将被过滤,仅需统计前10个边界框对应的TP/FP个数。示例如下:

tp = np.sum(TP[:10])
fp = np.sum(FP[:10])

然后就可以计算对应阈值下的Precision/Recall

Precision = tp / (tp + fp)
Recall = tp / num_ground_truth