From 73782ed3985f006319813282a218f87ca435da11 Mon Sep 17 00:00:00 2001 From: ertugrulsmz Date: Sun, 8 Nov 2020 14:31:19 +0300 Subject: [PATCH 1/3] return result --- mean_average_precision/detection_map.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/mean_average_precision/detection_map.py b/mean_average_precision/detection_map.py index 0928452..7efe7c3 100644 --- a/mean_average_precision/detection_map.py +++ b/mean_average_precision/detection_map.py @@ -158,3 +158,21 @@ def plot(self, interpolated=True, class_names=None): plt.suptitle("Mean average precision : {:0.2f}".format(sum(mean_average_precision)/len(mean_average_precision))) fig.tight_layout() + + + def get_result(interpolated=True, class_names=None): + """ + return result. As result is calculated for a batch, it needs to be utilized for entire dataset. + """ + + mean_average_precision = [] + # TODO: data structure not optimal for this operation... + for i in range (mAP.n_class): + if i > mAP.n_class - 1: + break + precisions, recalls = mAP.compute_precision_recall_(i, interpolated) + average_precision = mAP.compute_ap(precisions, recalls) + class_name = class_names[i] if class_names else "Class {}".format(i) + mean_average_precision.append(average_precision) + + return sum(mean_average_precision)/len(mean_average_precision) From 625d99636be2bf91b949d0f855efa7a814b4aa0f Mon Sep 17 00:00:00 2001 From: ertugrulsmz Date: Sun, 8 Nov 2020 14:39:56 +0300 Subject: [PATCH 2/3] function to method --- mean_average_precision/detection_map.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mean_average_precision/detection_map.py b/mean_average_precision/detection_map.py index 7efe7c3..ecd7321 100644 --- a/mean_average_precision/detection_map.py +++ b/mean_average_precision/detection_map.py @@ -167,11 +167,11 @@ def get_result(interpolated=True, class_names=None): mean_average_precision = [] # TODO: data structure not optimal for this operation... - for i in range (mAP.n_class): - if i > mAP.n_class - 1: + for i in range (self.n_class): + if i > self.n_class - 1: break - precisions, recalls = mAP.compute_precision_recall_(i, interpolated) - average_precision = mAP.compute_ap(precisions, recalls) + precisions, recalls = self.compute_precision_recall_(i, interpolated) + average_precision = self.compute_ap(precisions, recalls) class_name = class_names[i] if class_names else "Class {}".format(i) mean_average_precision.append(average_precision) From d9277a5f0e6ba1465eb4c429698de1f531bd5604 Mon Sep 17 00:00:00 2001 From: ertugrulsmz Date: Sun, 8 Nov 2020 14:44:16 +0300 Subject: [PATCH 3/3] typo --- mean_average_precision/detection_map.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mean_average_precision/detection_map.py b/mean_average_precision/detection_map.py index ecd7321..7f21359 100644 --- a/mean_average_precision/detection_map.py +++ b/mean_average_precision/detection_map.py @@ -160,7 +160,7 @@ def plot(self, interpolated=True, class_names=None): fig.tight_layout() - def get_result(interpolated=True, class_names=None): + def get_result(self,interpolated=True, class_names=None): """ return result. As result is calculated for a batch, it needs to be utilized for entire dataset. """