From 7e846c7d3c1ec5d2f5669767c01e451279cd9efe Mon Sep 17 00:00:00 2001 From: Glenn Jocher Date: Tue, 8 Dec 2020 17:40:19 -0800 Subject: [PATCH] Reinstate PR curve sentinel values (#1598) --- utils/metrics.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/utils/metrics.py b/utils/metrics.py index af32ddc5..99d5bcfa 100644 --- a/utils/metrics.py +++ b/utils/metrics.py @@ -77,18 +77,17 @@ def ap_per_class(tp, conf, pred_cls, target_cls, plot=False, save_dir='precision def compute_ap(recall, precision): - """ Compute the average precision, given the recall and precision curves. - Source: https://github.com/rbgirshick/py-faster-rcnn. + """ Compute the average precision, given the recall and precision curves # Arguments - recall: The recall curve (list). - precision: The precision curve (list). + recall: The recall curve (list) + precision: The precision curve (list) # Returns - The average precision as computed in py-faster-rcnn. + Average precision, precision curve, recall curve """ # Append sentinel values to beginning and end - mrec = recall # np.concatenate(([0.], recall, [recall[-1] + 1E-3])) - mpre = precision # np.concatenate(([0.], precision, [0.])) + mrec = np.concatenate(([0.], recall, [recall[-1] + 0.01])) + mpre = np.concatenate(([1.], precision, [0.])) # Compute the precision envelope mpre = np.flip(np.maximum.accumulate(np.flip(mpre)))