From 05a85c8f8f3441eb0e76952f1ae070b31d0bf0fd Mon Sep 17 00:00:00 2001 From: dsutanto Date: Thu, 2 Jul 2026 16:32:05 +0700 Subject: [PATCH] Fix RATE start from big Number --- counter_live_rknn_bytetrack.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/counter_live_rknn_bytetrack.py b/counter_live_rknn_bytetrack.py index 67a47a2..ca9b136 100644 --- a/counter_live_rknn_bytetrack.py +++ b/counter_live_rknn_bytetrack.py @@ -10,6 +10,7 @@ import csv import os import signal import time +from collections import deque from datetime import datetime from pathlib import Path @@ -65,6 +66,7 @@ MIN_DURATION_PER_BATCH = int(os.getenv("MIN_DURATION_PER_BATCH", "60")) EXPORT_CSV = os.getenv("EXPORT_CSV", "true").lower() == "true" CROSS_CSV = os.getenv("CROSS_CSV", f"{OUTPUT_DIR}/batch_crossings.csv") +RATE_WINDOW_SEC = int(os.getenv("RATE_WINDOW_SEC", "60")) WARMUP_FRAMES = int(os.getenv("WARMUP_FRAMES", "30")) RECONNECT_DELAY_SEC = int(os.getenv("RECONNECT_DELAY_SEC", "3")) MAX_RECONNECT_ATTEMPTS = int(os.getenv("MAX_RECONNECT_ATTEMPTS", "0")) @@ -1016,6 +1018,7 @@ def run(): frame_idx = 0 inf_ms = 0.0 video_writer = None + crossing_times = deque() cap, w, h, fps = connect_stream(SOURCE) if cap is None: @@ -1162,6 +1165,7 @@ def run(): ayam_crossed_frame = True if started_new: batch_started_frame = True + crossing_times.append(mono) ayam_cross_flash[tid] = CROSS_FLASH_FRAMES popups.append( { @@ -1219,7 +1223,9 @@ def run(): batch_num = store.current_batch_number or 0 batch_count = store.current_batch_count display_total = store.display_total() - rate = (display_total / elapsed * 60) if elapsed > 0 else 0.0 + while crossing_times and mono - crossing_times[0] > RATE_WINDOW_SEC: + crossing_times.popleft() + rate = (len(crossing_times) / RATE_WINDOW_SEC * 60) if crossing_times else 0.0 draw_elegant_counting_line(frame, line_x, h, line_pulse) draw_hero_count(frame, line_x, h, batch_count, count_pulse)