From 338c589032336ff51a93096182a5405d992f2598 Mon Sep 17 00:00:00 2001 From: abhishek7kalra Date: Sun, 15 Oct 2023 17:42:40 +0530 Subject: [PATCH 1/2] LineZone.trigger update to return info --- supervision/detection/line_counter.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/supervision/detection/line_counter.py b/supervision/detection/line_counter.py index ea97fcb83..db86e3f9e 100644 --- a/supervision/detection/line_counter.py +++ b/supervision/detection/line_counter.py @@ -26,6 +26,7 @@ def __init__(self, start: Point, end: Point): self.tracker_state: Dict[str, bool] = {} self.in_count: int = 0 self.out_count: int = 0 + self.crossed = [] def trigger(self, detections: Detections): """ @@ -33,9 +34,14 @@ def trigger(self, detections: Detections): Attributes: detections (Detections): The detections for which to update the counts. - + + Returns: + np.ndarray: A boolean array indicating + which detection has crossed the line on the either sides """ - for xyxy, _, confidence, class_id, tracker_id in detections: + self.crossed = [False] * len(detections) + + for i, (xyxy, _, confidence, class_id, tracker_id) in enumerate(detections): # handle detections with no tracker_id if tracker_id is None: continue @@ -67,8 +73,13 @@ def trigger(self, detections: Detections): self.tracker_state[tracker_id] = tracker_state if tracker_state: self.in_count += 1 + self.crossed[i] = True + else: self.out_count += 1 + self.crossed[i] = True + + return self.crossed class LineZoneAnnotator: From bf725ef0f72699079152d3630a5f27c6acf27311 Mon Sep 17 00:00:00 2001 From: abhishek7kalra Date: Sun, 15 Oct 2023 18:10:54 +0530 Subject: [PATCH 2/2] fix pre-commit --- supervision/detection/line_counter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/supervision/detection/line_counter.py b/supervision/detection/line_counter.py index db86e3f9e..1c1fe7709 100644 --- a/supervision/detection/line_counter.py +++ b/supervision/detection/line_counter.py @@ -34,7 +34,7 @@ def trigger(self, detections: Detections): Attributes: detections (Detections): The detections for which to update the counts. - + Returns: np.ndarray: A boolean array indicating which detection has crossed the line on the either sides