fix: face traces split at scene cuts — even same person, different cut
This commit is contained in:
@@ -62,8 +62,17 @@ def run_face_tracker(face_json_path: str, traced_json_path: str) -> str:
|
||||
}
|
||||
|
||||
print(f"[TRACE] Processing {len(face_data.get('frames', {}))} frames")
|
||||
|
||||
face_data = track_faces(face_data, use_embedding=True)
|
||||
|
||||
# Load cut boundaries from cut.json (same directory as face.json)
|
||||
cut_boundaries = None
|
||||
cuts_path = face_json_path.replace("_traced.json", ".cut.json").replace(".face.json", ".cut.json")
|
||||
if os.path.exists(cuts_path):
|
||||
with open(cuts_path) as f:
|
||||
cuts = json.load(f)
|
||||
cut_boundaries = {s["start_frame"] for s in cuts.get("scenes", []) if s["start_frame"] > 0}
|
||||
print(f"[TRACE] Loaded {len(cut_boundaries)} cut boundaries")
|
||||
|
||||
face_data = track_faces(face_data, use_embedding=True, cut_boundaries=cut_boundaries)
|
||||
metadata = face_data.get("metadata", {})
|
||||
metadata["tracking_method"] = "iou_embedding"
|
||||
metadata["tracked_at"] = datetime.now().isoformat()
|
||||
|
||||
Reference in New Issue
Block a user