|
14 | 14 | from ultralytics import YOLO
|
15 | 15 |
|
16 | 16 |
|
| 17 | + |
17 | 18 | # Configure logging
|
18 | 19 | logging.basicConfig(
|
19 | 20 | level=logging.DEBUG, # Set to DEBUG to capture all levels of logs
|
@@ -219,14 +220,14 @@ def main():
|
219 | 220 |
|
220 | 221 | # Queues for inter-thread communication ##################################
|
221 | 222 | frame_queue = queue.Queue(maxsize=1)
|
222 | | - detection_queue = queue.Queue(maxsize=1) |
| 223 | + detection_queue = queue.Queue(maxsize=5) |
223 | 224 | stop_event = threading.Event()
|
224 | 225 |
|
225 | 226 | # Detection Thread ########################################################
|
226 | 227 | def detection_worker():
|
227 | 228 | while not stop_event.is_set():
|
228 | 229 | try:
|
229 | | - frame = frame_queue.get(timeout=1) |
| 230 | + frame = frame_queue.get(timeout=0.01) |
230 | 231 | logging.debug("Frame retrieved from frame_queue for detection.")
|
231 | 232 | detect_objects(model, frame, detection_queue)
|
232 | 233 | logging.debug("Object detection completed and results put into detection_queue.")
|
@@ -257,7 +258,7 @@ def detection_worker():
|
257 | 258 |
|
258 | 259 | # Put the frame into the frame_queue for detection
|
259 | 260 | if not frame_queue.full():
|
260 | | - frame_queue.put(image) |
| 261 | + frame_queue.put(image, timeout=0.01) |
261 | 262 | logging.debug("Frame added to frame_queue.")
|
262 | 263 | else:
|
263 | 264 | logging.debug("Frame queue is full. Skipping frame.")
|
|
0 commit comments