From 2242c8d39b14f95cb848d3fa362b8a6b38733175 Mon Sep 17 00:00:00 2001 From: Alexander Popov Date: Tue, 3 Oct 2023 21:56:17 +0300 Subject: [PATCH] add FPS counter --- projects/CV/Stream/__main__.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/projects/CV/Stream/__main__.py b/projects/CV/Stream/__main__.py index f657194..9d63155 100644 --- a/projects/CV/Stream/__main__.py +++ b/projects/CV/Stream/__main__.py @@ -10,11 +10,18 @@ model = YOLO('yolov8m.pt') video_path = 'run.mp4' cap = cv2.VideoCapture(video_path) +fps = 0 +prev_frame_time = 0 +new_frame_time = 0 + # Loop through the video frames while cap.isOpened(): # Read a frame from the video success, frame = cap.read() + # Set current frame time + new_frame_time = time.time() + if success: # Run YOLOv8 inference on the frame results = model(frame) @@ -22,6 +29,10 @@ while cap.isOpened(): # Visualize the results on the frame annotated_frame = results[0].plot() + # Calculate FPS + fps = int(1 / (new_frame_time - prev_frame_time)) + prev_frame_time = new_frame_time + # Display the annotated frame cv2.imshow('YOLOv8 Inference', annotated_frame) @@ -32,6 +43,8 @@ while cap.isOpened(): # Break the loop if the end of the video is reached break + print(fps) + # Release the video capture object and close the display window cap.release() cv2.destroyAllWindows()