From 40ce7946d5741cdd1916db14f0520dfd3e6f6951 Mon Sep 17 00:00:00 2001 From: Jakob Lechner Date: Sat, 2 Aug 2025 04:18:38 +0200 Subject: [PATCH] Count each person just once just once and either in or out --- utils/counter.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/utils/counter.py b/utils/counter.py index cf91a45..bc8a533 100644 --- a/utils/counter.py +++ b/utils/counter.py @@ -22,15 +22,20 @@ class Counter: ) if track_id not in self.track_memory: - self.track_memory[track_id] = center + self.track_memory[track_id] = [center, False] continue - prev = self.track_memory[track_id] - self.track_memory[track_id] = center + prev = self.track_memory[track_id][0] + self.track_memory[track_id][0] = center + + if self.track_memory[track_id][1]: + continue if prev < line_position <= center: self.in_count += 1 self.metrics["people_in"].labels(stream=self.stream_id).inc() + self.track_memory[track_id][1] = True elif prev > line_position >= center: self.out_count += 1 self.metrics["people_out"].labels(stream=self.stream_id).inc() + self.track_memory[track_id][1] = True