Skip to content

Commit e6f64bc

Browse files
committed
feat(inference): log fps
1 parent d1b9b8f commit e6f64bc

3 files changed

Lines changed: 25 additions & 0 deletions

File tree

config.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
fps = 25
33
source_id = 0
44
uri = "rtsp://camera/stream"
5+
fps_check_interval_sec=10
56

67
[zmq]
78
port = 5555

src/python/_cli.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,5 @@ def inference(
8686
source_id=config_data["stream"].get("source_id", 0),
8787
uri=config_data["stream"].get("uri", "rtsp://camera/stream"),
8888
port=config_data["zmq"].get("port", 5555),
89+
fps_check_interval_sec=config_data["stream"].get("fps_interval_sec", 10),
8990
)

src/python/yolo/inference/metadata.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ def run_simulation(
144144
source_id: int = 0,
145145
uri: str = "rtsp://camera/stream",
146146
port: int = 5555,
147+
fps_check_interval_sec: int = 10,
147148
) -> None:
148149
"""Run the live stream tracker simulation and send via ZeroMQ."""
149150
# Initialize ZeroMQ PUB socket
@@ -154,6 +155,10 @@ def run_simulation(
154155
logger.info("📡 Sending Live Stream Metadata via ZeroMQ (Ctrl+C to stop)...")
155156
logger.info("📡 Publishing on tcp://*:%s", port)
156157

158+
# FPS tracking
159+
interval_start_time = time.time()
160+
interval_frame_count = 0
161+
157162
try:
158163
for metadata in live_stream_tracker_simulation(fps=fps, uri=uri):
159164
# Send metadata via ZeroMQ
@@ -163,6 +168,24 @@ def run_simulation(
163168
frame_objects=metadata["detections"],
164169
)
165170

171+
# Track FPS
172+
interval_frame_count += 1
173+
current_time = time.time()
174+
elapsed = current_time - interval_start_time
175+
176+
# Log average FPS every 10 seconds
177+
if elapsed >= fps_check_interval_sec:
178+
avg_fps = interval_frame_count / elapsed
179+
logger.info(
180+
"📊 Average FPS: %.2f/%02d (over %.1f seconds)",
181+
avg_fps,
182+
fps,
183+
elapsed,
184+
)
185+
# Reset counters
186+
interval_start_time = current_time
187+
interval_frame_count = 0
188+
166189
logger.debug(
167190
"[Frame %s] Active Objects: %s",
168191
metadata["frame_num"],

0 commit comments

Comments
 (0)