Formatting

This commit is contained in:
Ruben van de Ven 2024-11-21 13:29:56 +01:00
parent 389da6701f
commit 30648b9bb8

View file

@ -1,4 +1,5 @@
from argparse import Namespace from argparse import Namespace
import math
from pathlib import Path from pathlib import Path
import pickle import pickle
from tempfile import mktemp from tempfile import mktemp
@ -37,16 +38,18 @@ class FrameGenerator():
self.video_nr = None self.video_nr = None
self.frame_count = None self.frame_count = None
self.frame_idx = None self.frame_idx = None
self.n = 0
def __iter__(self): def __iter__(self):
n = 0
for video_nr, video_path in enumerate(self.video_srcs): for video_nr, video_path in enumerate(self.video_srcs):
self.video_path = video_path self.video_path = video_path
self.video_nr = video_path self.video_nr = video_nr
logger.info(f"Play from '{str(video_path)}'") logger.info(f"Play from '{str(video_path)}'")
video = cv2.VideoCapture(str(video_path)) video = cv2.VideoCapture(str(video_path))
fps = video.get(cv2.CAP_PROP_FPS) fps = video.get(cv2.CAP_PROP_FPS)
self.frame_count = video.get(cv2.CAP_PROP_FRAME_COUNT) self.frame_count = video.get(cv2.CAP_PROP_FRAME_COUNT)
if self.frame_count < 0:
self.frame_count = math.inf
self.frame_idx = 0 self.frame_idx = 0
if self.config.video_offset: if self.config.video_offset:
logger.info(f"Start at frame {self.config.video_offset}") logger.info(f"Start at frame {self.config.video_offset}")
@ -56,16 +59,29 @@ class FrameGenerator():
while True: while True:
ret, img = video.read() ret, img = video.read()
self.frame_idx+=1 self.frame_idx+=1
n+=1 self.n+=1
# seek to 0 if video has finished. Infinite loop # seek to 0 if video has finished. Infinite loop
if not ret: if not ret:
# now loading multiple files # now loading multiple files
break break
frame = Frame(index=n, img=img, H=self.config.H, camera=self.config.camera) frame = Frame(index=self.n, img=img, H=self.config.H, camera=self.config.camera)
yield frame yield frame
def marquee_string(string: str, window: int, i: int):
if window > len(string):
return string
# too_much = len(string) - window
# offset = i % too_much
# return string[offset:offset+window]
too_much = len(string) - window
offset = i % (too_much*2)
if offset > too_much:
offset = too_much - (offset-too_much)
return string[offset:offset+window]
def tracker_preprocess(): def tracker_preprocess():
@ -89,7 +105,7 @@ def tracker_preprocess():
total += len(detections) total += len(detections)
# detections = _yolov8_track(frame, model, imgsz=1440, classes=[0]) # detections = _yolov8_track(frame, model, imgsz=1440, classes=[0])
bar.set_description(f"[{frames.video_nr}/{len(frames.video_srcs)}] [{frames.frame_idx}/{frames.frame_count}] {str(frames.video_path)} -- Detections {len(detections)}: {[d.track_id for d in detections]} (so far {total})") bar.set_description(f"{frames.video_nr}/{len(frames.video_srcs)} [{frames.frame_idx}/{frames.frame_count}] {marquee_string(str(frames.video_path), 10, frames.n//2)} | dets {len(detections)}: {[d.track_id for d in detections]} ({total})")
for detection in detections: for detection in detections:
track = tracks[detection.track_id] track = tracks[detection.track_id]