From 124c7d9b907790bde68475af77ff2e2a1fd7815a Mon Sep 17 00:00:00 2001 From: Huzail Date: Sat, 5 Oct 2024 21:36:21 +0530 Subject: [PATCH 01/18] Added class-agnostic --- supervision/metrics/mean_average_precision.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 04a5fe9d..56fd3967 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -75,6 +75,13 @@ class MeanAveragePrecision(Metric): f"The number of predictions ({len(predictions)}) and" f" targets ({len(targets)}) during the update must be the same." ) + # class-agnostic + if self._class_agnostic: + # Set all class_ids to 0 to ignore class distinction + for prediction in predictions: + prediction.class_id[:] = 0 + for target in targets: + target.class_id[:] = 0 self._predictions_list.extend(predictions) self._targets_list.extend(targets) @@ -239,13 +246,18 @@ class MeanAveragePrecision(Metric): target_classes: np.ndarray, iou: np.ndarray, iou_thresholds: np.ndarray, + class_agnostic: bool, ) -> np.ndarray: num_predictions, num_iou_levels = ( predictions_classes.shape[0], iou_thresholds.shape[0], ) correct = np.zeros((num_predictions, num_iou_levels), dtype=bool) - correct_class = target_classes[:, None] == predictions_classes + + if class_agnostic: + correct_class = np.ones_like(iou, dtype=bool) # Treat all as the same class + else: + correct_class = target_classes[:, None] == predictions_classes for i, iou_level in enumerate(iou_thresholds): matched_indices = np.where((iou >= iou_level) & correct_class) From 6d30eef4a96f9a3dd3513097d9dd3800141774ba Mon Sep 17 00:00:00 2001 From: Huzail Date: Sun, 6 Oct 2024 01:37:48 +0530 Subject: [PATCH 02/18] Added _match_detection_batch_class_agnostic --- supervision/metrics/mean_average_precision.py | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 56fd3967..11fbef5a 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -184,9 +184,14 @@ class MeanAveragePrecision(Metric): "Unsupported metric target for IoU calculation" ) - matches = self._match_detection_batch( - predictions.class_id, targets.class_id, iou, iou_thresholds - ) + # Match detections: if class_agnostic is set, skip class matching + if self._class_agnostic: + matches = self._match_detection_batch_class_agnostic(iou, iou_thresholds) + else: + matches = self._match_detection_batch( + predictions.class_id, targets.class_id, iou, iou_thresholds + ) + stats.append( ( matches, @@ -246,7 +251,6 @@ class MeanAveragePrecision(Metric): target_classes: np.ndarray, iou: np.ndarray, iou_thresholds: np.ndarray, - class_agnostic: bool, ) -> np.ndarray: num_predictions, num_iou_levels = ( predictions_classes.shape[0], @@ -254,10 +258,8 @@ class MeanAveragePrecision(Metric): ) correct = np.zeros((num_predictions, num_iou_levels), dtype=bool) - if class_agnostic: - correct_class = np.ones_like(iou, dtype=bool) # Treat all as the same class - else: - correct_class = target_classes[:, None] == predictions_classes + + correct_class = target_classes[:, None] == predictions_classes for i, iou_level in enumerate(iou_thresholds): matched_indices = np.where((iou >= iou_level) & correct_class) @@ -275,7 +277,32 @@ class MeanAveragePrecision(Metric): correct[matches[:, 1].astype(int), i] = True return correct + @staticmethod + def _match_detection_batch_class_agnostic( + iou: np.ndarray, + iou_thresholds: np.ndarray, + ) -> np.ndarray: + """ + Match detections for class-agnostic case, ignoring the class labels. + """ + num_predictions, num_iou_levels = iou.shape[0], iou_thresholds.shape[0] + correct = np.zeros((num_predictions, num_iou_levels), dtype=bool) + for i, iou_level in enumerate(iou_thresholds): + matched_indices = np.where(iou >= iou_level) + if matched_indices[0].shape[0]: + combined_indices = np.stack(matched_indices, axis=1) + iou_values = iou[matched_indices][:, None] + matches = np.hstack([combined_indices, iou_values]) + + if matched_indices[0].shape[0] > 1: + matches = matches[matches[:, 2].argsort()[::-1]] + matches = matches[np.unique(matches[:, 1], return_index=True)[1]] + matches = matches[np.unique(matches[:, 0], return_index=True)[1]] + + correct[matches[:, 1].astype(int), i] = True + + return correct @staticmethod def _average_precisions_per_class( matches: np.ndarray, From e0db07a80fa6cfbbade4d572334766880ce42f8b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 5 Oct 2024 21:14:39 +0000 Subject: [PATCH 03/18] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervision/metrics/mean_average_precision.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 11fbef5a..ff2d9e8e 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -186,7 +186,9 @@ class MeanAveragePrecision(Metric): # Match detections: if class_agnostic is set, skip class matching if self._class_agnostic: - matches = self._match_detection_batch_class_agnostic(iou, iou_thresholds) + matches = self._match_detection_batch_class_agnostic( + iou, iou_thresholds + ) else: matches = self._match_detection_batch( predictions.class_id, targets.class_id, iou, iou_thresholds @@ -258,7 +260,6 @@ class MeanAveragePrecision(Metric): ) correct = np.zeros((num_predictions, num_iou_levels), dtype=bool) - correct_class = target_classes[:, None] == predictions_classes for i, iou_level in enumerate(iou_thresholds): @@ -277,6 +278,7 @@ class MeanAveragePrecision(Metric): correct[matches[:, 1].astype(int), i] = True return correct + @staticmethod def _match_detection_batch_class_agnostic( iou: np.ndarray, @@ -303,6 +305,7 @@ class MeanAveragePrecision(Metric): correct[matches[:, 1].astype(int), i] = True return correct + @staticmethod def _average_precisions_per_class( matches: np.ndarray, From baffd983144ccd74a60c16ce96166d83ab21d4e2 Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 18:54:31 +0000 Subject: [PATCH 04/18] removed comments --- supervision/metrics/mean_average_precision.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index d672344b..7b7dd93c 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -75,9 +75,8 @@ class MeanAveragePrecision(Metric): f"The number of predictions ({len(predictions)}) and" f" targets ({len(targets)}) during the update must be the same." ) - # class-agnostic + if self._class_agnostic: - # Set all class_ids to 0 to ignore class distinction for prediction in predictions: prediction.class_id[:] = 0 for target in targets: @@ -184,7 +183,7 @@ class MeanAveragePrecision(Metric): "Unsupported metric target for IoU calculation" ) - # Match detections: if class_agnostic is set, skip class matching + if self._class_agnostic: matches = self._match_detection_batch_class_agnostic( iou, iou_thresholds From 12c6b873e3ef641cb67c67ff6cbd2691ac6a1cb2 Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:01:40 +0000 Subject: [PATCH 05/18] modified: supervision/metrics/mean_average_precision.py --- supervision/metrics/mean_average_precision.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 7b7dd93c..9aa06935 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -78,9 +78,9 @@ class MeanAveragePrecision(Metric): if self._class_agnostic: for prediction in predictions: - prediction.class_id[:] = 0 + prediction.class_id[:] = -1 for target in targets: - target.class_id[:] = 0 + target.class_id[:] = -1 self._predictions_list.extend(predictions) self._targets_list.extend(targets) From e433527942c624b1556c0a0f46190eea9fae22b5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:04:45 +0000 Subject: [PATCH 06/18] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervision/metrics/mean_average_precision.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 9aa06935..ef8f4c74 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -75,7 +75,7 @@ class MeanAveragePrecision(Metric): f"The number of predictions ({len(predictions)}) and" f" targets ({len(targets)}) during the update must be the same." ) - + if self._class_agnostic: for prediction in predictions: prediction.class_id[:] = -1 @@ -183,7 +183,6 @@ class MeanAveragePrecision(Metric): "Unsupported metric target for IoU calculation" ) - if self._class_agnostic: matches = self._match_detection_batch_class_agnostic( iou, iou_thresholds From 16a4491b596786c603556fa055244b366b243486 Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:29:41 +0000 Subject: [PATCH 07/18] modified class MeanAveragePrecisionResult for class_agnostic --- supervision/metrics/mean_average_precision.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 9aa06935..b02a2742 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -424,6 +424,7 @@ class MeanAveragePrecisionResult: Attributes: metric_target (MetricTarget): the type of data used for the metric - boxes, masks or oriented bounding boxes. + class_agnostic: When computing class-agnostic results, class ID is set to `-1`. mAP_map50_95 (float): the mAP score at IoU thresholds from `0.5` to `0.95`. mAP_map50 (float): the mAP score at IoU threshold of `0.5`. mAP_map75 (float): the mAP score at IoU threshold of `0.75`. @@ -443,6 +444,7 @@ class MeanAveragePrecisionResult: """ metric_target: MetricTarget + is_class_agnostic: bool @property def map50_95(self) -> float: @@ -477,6 +479,7 @@ class MeanAveragePrecisionResult: out_str = ( f"{self.__class__.__name__}:\n" f"Metric target: {self.metric_target}\n" + f"Class-agnostic: {self.is_class_agnostic}\n" f"mAP @ 50:95: {self.map50_95:.4f}\n" f"mAP @ 50: {self.map50:.4f}\n" f"mAP @ 75: {self.map75:.4f}\n" From 62a3cfe480f749c27affbaace1f6463f10ace180 Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:33:56 +0000 Subject: [PATCH 08/18] modified: supervision/metrics/mean_average_precision.py --- supervision/metrics/mean_average_precision.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index ec9d0fd4..b496ffaa 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -478,7 +478,7 @@ class MeanAveragePrecisionResult: out_str = ( f"{self.__class__.__name__}:\n" f"Metric target: {self.metric_target}\n" - f"Class-agnostic: {self.is_class_agnostic}\n" + f"Class agnostic: {self.is_class_agnostic}\n" f"mAP @ 50:95: {self.map50_95:.4f}\n" f"mAP @ 50: {self.map50:.4f}\n" f"mAP @ 75: {self.map75:.4f}\n" From 0f42a87ee8d55370c52d0709da6d484d24b47107 Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:44:50 +0000 Subject: [PATCH 09/18] modified: supervision/metrics/mean_average_precision.py --- supervision/metrics/mean_average_precision.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index b496ffaa..3d3f10f4 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -215,6 +215,7 @@ class MeanAveragePrecision(Metric): return MeanAveragePrecisionResult( metric_target=self._metric_target, + is_class_agnostic= self._class_agnostic, mAP_scores=mAP_scores, iou_thresholds=iou_thresholds, matched_classes=unique_classes, @@ -443,7 +444,7 @@ class MeanAveragePrecisionResult: """ metric_target: MetricTarget - is_class_agnostic: bool + is_class_agnostic: @property def map50_95(self) -> float: From 201a186539528b712b78e572deda7ed0ec7e3588 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:45:22 +0000 Subject: [PATCH 10/18] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervision/metrics/mean_average_precision.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 3d3f10f4..3c7ae7ae 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -444,7 +444,7 @@ class MeanAveragePrecisionResult: """ metric_target: MetricTarget - is_class_agnostic: + is_class_agnostic: @property def map50_95(self) -> float: From 53b26d0c05edadb6db80c1e7f97fde131bc1544c Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:48:05 +0000 Subject: [PATCH 11/18] modified: supervision/metrics/mean_average_precision.py --- supervision/metrics/mean_average_precision.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 3d3f10f4..05885784 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -444,7 +444,7 @@ class MeanAveragePrecisionResult: """ metric_target: MetricTarget - is_class_agnostic: + is_class_agnostic: bool @property def map50_95(self) -> float: From 75b6384a9aacaf0a90a942bc9db6cf76d02eebfd Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 19:52:56 +0000 Subject: [PATCH 12/18] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervision/metrics/mean_average_precision.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index aeff48b3..c5338a6d 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -215,7 +215,7 @@ class MeanAveragePrecision(Metric): return MeanAveragePrecisionResult( metric_target=self._metric_target, - is_class_agnostic= self._class_agnostic, + is_class_agnostic=self._class_agnostic, mAP_scores=mAP_scores, iou_thresholds=iou_thresholds, matched_classes=unique_classes, @@ -443,7 +443,6 @@ class MeanAveragePrecisionResult: for large objects. """ - metric_target: MetricTarget is_class_agnostic: bool From f1e32e7c079d17b9444863983b24f8bdbe01afdf Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:16:25 +0000 Subject: [PATCH 13/18] Added deepcopy --- supervision/metrics/mean_average_precision.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index c5338a6d..b05d6009 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -77,6 +77,9 @@ class MeanAveragePrecision(Metric): ) if self._class_agnostic: + predictions = deepcopy(predictions) + targets = deepcopy(targets) + for prediction in predictions: prediction.class_id[:] = -1 for target in targets: From 5fc7c3aa53727dd4310330e7b80fcb9a12348d54 Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:19:26 +0000 Subject: [PATCH 14/18] only using _match_detection_batch --- supervision/metrics/mean_average_precision.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index b05d6009..4e3aa26c 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -186,14 +186,11 @@ class MeanAveragePrecision(Metric): "Unsupported metric target for IoU calculation" ) - if self._class_agnostic: - matches = self._match_detection_batch_class_agnostic( - iou, iou_thresholds - ) - else: - matches = self._match_detection_batch( - predictions.class_id, targets.class_id, iou, iou_thresholds - ) + + + matches = self._match_detection_batch( + predictions.class_id, targets.class_id, iou, iou_thresholds + ) stats.append( ( From 9659f7b2ebd161c308cd33957f84c3a21cb3dfe2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:21:00 +0000 Subject: [PATCH 15/18] =?UTF-8?q?fix(pre=5Fcommit):=20=F0=9F=8E=A8=20auto?= =?UTF-8?q?=20format=20pre-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- supervision/metrics/mean_average_precision.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index 4e3aa26c..ff606298 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -186,8 +186,6 @@ class MeanAveragePrecision(Metric): "Unsupported metric target for IoU calculation" ) - - matches = self._match_detection_batch( predictions.class_id, targets.class_id, iou, iou_thresholds ) From 05b17c483af5eab63ee46d73c4c3554f9e13247f Mon Sep 17 00:00:00 2001 From: Ahmad Huzail Khan <104365728+AHuzail@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:25:10 +0000 Subject: [PATCH 16/18] Deleted _match_detection_batch_class_agnostic --- supervision/metrics/mean_average_precision.py | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index ff606298..ed556719 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -276,33 +276,6 @@ class MeanAveragePrecision(Metric): return correct - @staticmethod - def _match_detection_batch_class_agnostic( - iou: np.ndarray, - iou_thresholds: np.ndarray, - ) -> np.ndarray: - """ - Match detections for class-agnostic case, ignoring the class labels. - """ - num_predictions, num_iou_levels = iou.shape[0], iou_thresholds.shape[0] - correct = np.zeros((num_predictions, num_iou_levels), dtype=bool) - - for i, iou_level in enumerate(iou_thresholds): - matched_indices = np.where(iou >= iou_level) - if matched_indices[0].shape[0]: - combined_indices = np.stack(matched_indices, axis=1) - iou_values = iou[matched_indices][:, None] - matches = np.hstack([combined_indices, iou_values]) - - if matched_indices[0].shape[0] > 1: - matches = matches[matches[:, 2].argsort()[::-1]] - matches = matches[np.unique(matches[:, 1], return_index=True)[1]] - matches = matches[np.unique(matches[:, 0], return_index=True)[1]] - - correct[matches[:, 1].astype(int), i] = True - - return correct - @staticmethod def _average_precisions_per_class( matches: np.ndarray, From 2530c41ffa9de5b62e39ffabe66410191ce02dd2 Mon Sep 17 00:00:00 2001 From: LinasKo Date: Thu, 10 Oct 2024 13:00:07 +0300 Subject: [PATCH 17/18] docs: fix datatype of class_agnostic in MeanAveragePrecisionResult --- supervision/metrics/mean_average_precision.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/supervision/metrics/mean_average_precision.py b/supervision/metrics/mean_average_precision.py index ed556719..dbd60b2e 100644 --- a/supervision/metrics/mean_average_precision.py +++ b/supervision/metrics/mean_average_precision.py @@ -395,7 +395,8 @@ class MeanAveragePrecisionResult: Attributes: metric_target (MetricTarget): the type of data used for the metric - boxes, masks or oriented bounding boxes. - class_agnostic: When computing class-agnostic results, class ID is set to `-1`. + class_agnostic (bool): When computing class-agnostic results, class ID + is set to `-1`. mAP_map50_95 (float): the mAP score at IoU thresholds from `0.5` to `0.95`. mAP_map50 (float): the mAP score at IoU threshold of `0.5`. mAP_map75 (float): the mAP score at IoU threshold of `0.75`. From c5dfb47d5c94714e16bd688226cafaab64d7c8f0 Mon Sep 17 00:00:00 2001 From: LinasKo Date: Thu, 10 Oct 2024 13:02:07 +0300 Subject: [PATCH 18/18] Remove old unused code: CLASS_ID_NONE --- supervision/metrics/__init__.py | 1 - supervision/metrics/core.py | 3 --- 2 files changed, 4 deletions(-) diff --git a/supervision/metrics/__init__.py b/supervision/metrics/__init__.py index 17a6cd48..8ae33e63 100644 --- a/supervision/metrics/__init__.py +++ b/supervision/metrics/__init__.py @@ -1,5 +1,4 @@ from supervision.metrics.core import ( - CLASS_ID_NONE, AveragingMethod, Metric, MetricTarget, diff --git a/supervision/metrics/core.py b/supervision/metrics/core.py index 1440fd43..d1818441 100644 --- a/supervision/metrics/core.py +++ b/supervision/metrics/core.py @@ -4,9 +4,6 @@ from abc import ABC, abstractmethod from enum import Enum from typing import Any -CLASS_ID_NONE = -1 -"""Used by metrics module as class ID, when none is present""" - class Metric(ABC): """