From 0feafec7c9a7e2a6aa9c54d6590cc50c037eaf3a Mon Sep 17 00:00:00 2001 From: Duncan Tourolle Date: Sun, 9 Aug 2026 22:28:21 +0200 Subject: [PATCH] feat(review): GT-aware TP/FP/FN frame annotation + scene-detector examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit dump_error_frames.py drew every identified box green, so a false positive looked like a true positive and a missed cast member was invisible. Make the annotation ground-truth aware, matching what the per-second scorer classifies: - GREEN true positive — a name X-Ray also credits to this scene - RED false positive — a name X-Ray does NOT credit here (the real error) - ORANGE unknown detection - BLUE a text panel listing X-Ray cast present with no detected face (the structural false-negatives — no box exists to draw) Add two representative annotated frames to the scene-detector page: a clean green-TP second, and the face-vs-scene-cast case (a red FP lead + six off-camera cast in blue) that makes the recall ceiling visual. Frames are generated by the script from replay.py --raw-out output; the two committed examples are hand-picked doc assets (bulk experiments/dump_review is regenerable and gitignored). --- .gitignore | 1 + docs/assets/images/scarface_fn_fp_example.jpg | Bin 0 -> 47869 bytes docs/assets/images/scarface_tp_example.jpg | Bin 0 -> 48334 bytes docs/scene-boundary-detector.md | 19 +++++++ scripts/optimizer/dump_error_frames.py | 47 +++++++++++++----- 5 files changed, 55 insertions(+), 12 deletions(-) create mode 100644 docs/assets/images/scarface_fn_fp_example.jpg create mode 100644 docs/assets/images/scarface_tp_example.jpg diff --git a/.gitignore b/.gitignore index 6546aea..914c24b 100644 --- a/.gitignore +++ b/.gitignore @@ -120,3 +120,4 @@ venv/ Thumbs.db .venv-rocm/ !models/scene_boundary_xgb.json +experiments/dump_review/ diff --git a/docs/assets/images/scarface_fn_fp_example.jpg b/docs/assets/images/scarface_fn_fp_example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c7eff72feaca8c7f588d562dc9929dac3d958d37 GIT binary patch literal 47869 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 iZfCjTE;C&z67 literal 0 HcmV?d00001 diff --git a/docs/assets/images/scarface_tp_example.jpg b/docs/assets/images/scarface_tp_example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fe1d44ca1aa3a51901fcfbc474c55d6de6a09df3 GIT binary patch literal 48334 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 hDh&+O&bRm%<1OR7|M~cz_uzl-f&c$|0Q str: + """Normalised match key, mirroring identity.py's name: fallback.""" + return "name:" + "".join(ch for ch in name.lower() if ch.isalnum() or ch == " ").strip() + + +def draw_annotations(frame_path: Path, actors: list, fp_keys=None, fn_names=None): + """Draw GT-aware boxes: GREEN = true positive (named actor X-Ray also has in + this scene), RED = false positive (named actor NOT in the scene → the real + error), ORANGE = unknown detection. FN cast (present per X-Ray but no face + detected — so no box to draw) is listed as a BLUE text panel bottom-left.""" img = cv2.imread(str(frame_path)) if img is None: return + fp_keys = fp_keys or set() + GREEN, RED, ORANGE, BLUE = (60,200,0), (0,0,230), (220,100,0), (230,150,0) for a in actors: known = a.get("actor_idx", -1) >= 0 - colour = (60, 200, 0) if known else (220, 100, 0) # BGR: green / orange - x, y, w, h = a["bbox"] - x, y, w, h = int(x), int(y), int(w), int(h) + if known: + colour = RED if _name_key(a["name"]) in fp_keys else GREEN + label = f"{a['name']} {a['similarity']*100:.0f}%" + else: + colour = ORANGE; label = f"unknown {a['similarity']*100:.0f}%" + x, y, w, h = (int(v) for v in a["bbox"]) cv2.rectangle(img, (x, y), (x + w, y + h), colour, 2) - - label = f"{a['name']} {a['similarity']*100:.0f}%" if known else f"unknown {a['similarity']*100:.0f}%" - (tw, th), baseline = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1) - strip_y0 = max(0, y - th - 4) - cv2.rectangle(img, (x, strip_y0), (x + tw + 4, y), colour, cv2.FILLED) - cv2.putText(img, label, (x + 2, y - 2), cv2.FONT_HERSHEY_SIMPLEX, 0.5, - (255, 255, 255), 1, cv2.LINE_AA) + (tw, th), _ = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1) + cv2.rectangle(img, (x, max(0, y-th-4)), (x+tw+4, y), colour, cv2.FILLED) + cv2.putText(img, label, (x+2, y-2), cv2.FONT_HERSHEY_SIMPLEX, 0.5, + (255,255,255), 1, cv2.LINE_AA) + # FN: X-Ray cast present with no detected face — no box exists, so list them. + fn = [n for n in (fn_names or []) if n] + if fn: + H = img.shape[0] + cv2.putText(img, "off-screen / missed (X-Ray cast, no face):", + (8, H-8-18*len(fn[:6])), cv2.FONT_HERSHEY_SIMPLEX, 0.45, BLUE, 1, cv2.LINE_AA) + for i, n in enumerate(fn[:6]): + disp = n.replace("name:", "").title() + cv2.putText(img, f" {disp}", (8, H-8-18*(len(fn[:6])-1-i)), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, BLUE, 1, cv2.LINE_AA) cv2.imwrite(str(frame_path), img) @@ -183,7 +204,9 @@ def main(): extract_frame(args.movie, r["t"], out_path) ok = True if raw_by_second is not None: - draw_annotations(out_path, raw_by_second.get(r["t"], [])) + fp_keys = {_name_key(n) for n in r["fp"]} + draw_annotations(out_path, raw_by_second.get(r["t"], []), + fp_keys=fp_keys, fn_names=r["fn"]) except subprocess.CalledProcessError as e: ok = False print(f"[dump_error_frames] ffmpeg failed at t={r['t']}: {e}", file=sys.stderr)