From 3a7facdc105255087979b42076eae3a7041afd4c Mon Sep 17 00:00:00 2001 From: Accusys Date: Thu, 14 May 2026 02:26:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20face=20tracker=20=E2=80=94=20add=20iou>0?= =?UTF-8?q?.35+dist<100=20condition=20for=20same-position=20matching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/utils/face_tracker.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/utils/face_tracker.py b/scripts/utils/face_tracker.py index 90cf246..add6943 100755 --- a/scripts/utils/face_tracker.py +++ b/scripts/utils/face_tracker.py @@ -184,8 +184,8 @@ def match_faces( score = 0.0 - # Always reject if embedding similarity is too low (different person) - if use_embedding and curr_emb and prev_emb and similarity < 0.5: + # Reject only if BOTH embedding AND IoU disagree (different person + different position) + if use_embedding and curr_emb and prev_emb and similarity < 0.5 and iou < 0.3: continue # Reject if bbox size changes by more than 5x (e.g., far shot → close-up) @@ -209,6 +209,8 @@ def match_faces( score = iou + similarity elif iou > 0.5 and similarity > 0.65: score = iou * 1.5 + similarity * 0.5 + elif iou > 0.35 and distance < distance_threshold: + score = iou * 2 - distance / 500 elif similarity > 0.85: score = similarity * 2 elif similarity > 0.75 and distance < distance_threshold: