Round-2 report — stroke & schedule ruled out
Summary
Round 2 closed both open model-side levers, and both are nulls.
(1) Per-class label stroke at physical paint width ({solid: 5, dashed: 3}):
on both loss families, solid metrics reproduced round 1 exactly and dashed centerlines
stayed found (clDice ~0.96–0.97) — the models simply painted the thinner label they were
taught; only the measuring ruler moved. (2) 90-epoch schedule: early-stopped at 53 with
test F1 0.8703 ≈ round-1's 0.8678 — the 60-cap was never binding. Together with round-1's
data-volume null, the program has now confirmed from three independent
directions that the remaining gap is label-geometry/data. One cheap
implementation lever remains before declaring the exit: foreground-only class averaging
in the dice/Tversky losses (background dilution), running as round 3.
Results (held-out 97-tile test)
Stroke runs — two rulers (native = s5d3 labels; yard4 = round-1 scalar-4 ruler)
| run | ruler | F1 fg | F1 S/D | clDice | cov S/D | area S/D |
|---|---|---|---|---|---|---|
ft_r34_260624_s5d3(best ep 24/35) |
native | 0.8390 | 0.858/0.820 | 0.961 | 0.920/0.913 | 1.14/1.10 |
| yard4 | 0.8291 | 0.858/0.801 | 0.969 | 0.920/0.694 | 1.14/0.73 | |
dice_focal_260624_s5d3(best ep 35/46) |
native | 0.8529 | 0.865/0.841 | 0.962 | 0.883/0.858 | 1.04/1.04 |
| yard4 | 0.8042 | 0.865/0.743 | 0.967 | 0.883/0.603 | 1.04/0.62 | |
| Round-1 references (yard4 ruler): ft_r34 0.8678 · cov 0.916/0.938 — dice_focal 0.8750 · cov 0.875/0.889 | ||||||
The bold dashed numbers are geometry, not regression: a model taught 3 px dashes covers 3/5 of a 5 px ruler (0.73 and 0.62 area ≈ 3/5 with fit error). Solid columns are byte-identical to round 1 on both families — a clean negative control, exactly as predicted once the odd-width quantization discovery showed solids were already painted at physical width.
Schedule control
| run | F1 fg | clDice | cov S/D | best ep / trained |
|---|---|---|---|---|
ft_r34_260624 (r1, cap 60) | 0.8678 | 0.975 | 0.916/0.938 | 54 / 60 (no early stop) |
ft_r34_260624_e90 | 0.8703 | 0.975 | 0.911/0.924 | 47 / 53 (early stop) |
Verdicts
- null Label-stroke realism is not the F1 ceiling lever. 2/2 loss families: width-invariant metrics flat, models faithfully track whatever stroke they're taught, thin dashes cost pixel-F1 headroom (a 3 px stroke tolerates ~1 px registration error far worse) and stop training earlier. Decision: keep scalar-4 (painted 5 px) training labels.
- null Schedule is not a constraint. ΔF1 +0.0025 with 50% more epoch budget; round-1's "hit cap" was fluctuation.
- win Small dashed-recall improvement on faint paint: both s5d3 runs catch the faint adjacent-carriageway dashes that round-1 dice_focal dropped — thin labels concentrate dashed gradient on the paint core. Not enough to offset the ruler mechanics, but informative for future label work.
- status The program's converged operating point on
this data: F1 ~0.87 · coverage ~0.92/0.94 · clDice ~0.975
(
ft_r34line, recall-first pick).
Round 3 — last implementation lever, then exit
Per Miro's priority (recall > precision), one genuine wiring flaw found during the
dice-loss review is still untested: smp's multiclass Dice/Tversky average
over all classes including background by default. Background dice saturates
~0.99 within epochs, so a third of the loss is a flat constant diluting the marking-class
gradient — a plausible recall drag. smp exposes classes=[1, 2]; our registry
doesn't pass it.
| run | change | question |
|---|---|---|
ft_r34_260624_fg | Tversky with classes=[1,2] |
Does removing bg dilution buy real coverage on the recall anchor? |
dice_focal_260624_fg | dice term with classes=[1,2], focal unchanged |
Does the calibration anchor recover FT-level coverage? |
Registry change (~3 lines, expose classes) delegated to Grok 4.5 in
Cursor. Scalar-4 labels, 90-epoch cap, seed 1337 — directly comparable to rounds 1–2.
Exit rule: if coverage gains stay inside the seed band, the program
declares data/label-geometry the bottleneck (three nulls + round-1 volume null) and
closes with a final program report naming the ship checkpoint and the concrete data work
(gore/wide-paint representation, faint-tile confirmation pass, asphalt-edge rule).