Track mode: more sensitive face detection + longer smoothing window

This commit is contained in:
Sebastjan Artič 2026-04-28 16:45:13 +00:00
parent 400f6dbb6d
commit 64e8854cea

View File

@ -72,7 +72,7 @@ def detect_face_centers(video_path, sample_fps=5):
ts = frame_idx / src_fps ts = frame_idx / src_fps
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale( faces = face_cascade.detectMultiScale(
gray, scaleFactor=1.2, minNeighbors=5, minSize=(60, 60) gray, scaleFactor=1.1, minNeighbors=3, minSize=(40, 40)
) )
if len(faces) > 0: if len(faces) > 0:
# Vzemi največji obraz # Vzemi največji obraz
@ -247,7 +247,7 @@ def main():
samples, _, _, _, _ = detect_face_centers(work_input, sample_fps=5) samples, _, _, _, _ = detect_face_centers(work_input, sample_fps=5)
n_with_face = sum(1 for _, x in samples if x is not None) n_with_face = sum(1 for _, x in samples if x is not None)
print(f" {n_with_face}/{len(samples)} vzorcev z obrazom") print(f" {n_with_face}/{len(samples)} vzorcev z obrazom")
x_at = smooth_track(samples, info["duration"], smoothing_window=2.0) x_at = smooth_track(samples, info["duration"], smoothing_window=4.0)
vfilter = build_track_filter(info, x_at, args.target_width, args.target_height, info["fps"]) vfilter = build_track_filter(info, x_at, args.target_width, args.target_height, info["fps"])
elif args.mode == "center": elif args.mode == "center":
vfilter = build_center_filter(info, args.target_width, args.target_height) vfilter = build_center_filter(info, args.target_width, args.target_height)