docs(decision): re-measure the stream and live rows after the calibration
The stream row was recorded before the accept lines moved. Three fresh 20 s pan replays through the shipped lane: 70-74% coverage at 77-85% precision, 0 wrong labels in all three (0-1 before), 8-14 unknown false accepts - the near-unknown case, which the size gate and catalog completeness own rather than the accept line. Live resolution on the shipped evaluator: 56% end-to-end at 97% precision with 1 false accept, so the calibration is not a full-resolution artifact. The recordings are committed under stream-gated/ so the row is reproducible.
This commit is contained in:
parent
5eb4bdf6c8
commit
01d9a5e614
4 changed files with 6228 additions and 5 deletions
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -728,10 +728,14 @@ Two live-path bugs surfaced while measuring this, both fixed:
|
|||
Coverage is still a gate (G1). Four 20 s pan replays of `add/image6.jpg`
|
||||
through the shipped lane name 63-70% of the in-catalog facings a window can
|
||||
show, at 76-84% precision (`score_stream.py` over
|
||||
`data/evaluations/2026-09-29-session/stream/fin_*.json`). Van's contract on the
|
||||
same stream answers more and is wrong far more often, which is the trade the
|
||||
decision makes. The earlier "53 of 131 tracks" figure was a harness artifact
|
||||
rather than a recognition limit.
|
||||
`data/evaluations/2026-09-29-session/stream/fin_*.json`). Re-recorded
|
||||
2026-09-29 with the calibrated accept lines
|
||||
(`stream-gated/tracks_*.json`): 70-74% at 77-85%, with 0 wrong labels in all
|
||||
three runs against 0-1 before, and 8-14 unknown false accepts - the
|
||||
near-unknown case, which is the size gate's and the catalog's job rather than
|
||||
the accept line's. Van's contract on the same stream answers more and is wrong
|
||||
far more often, which is the trade the decision makes. The earlier "53 of 131
|
||||
tracks" figure was a harness artifact rather than a recognition limit.
|
||||
|
||||
The shipped default scale now has test coverage. `make_session` builds only
|
||||
`matcher`-backend engines, so `scale == "local"` in `_on_classified` never ran
|
||||
|
|
@ -885,7 +889,9 @@ on 2650 distractor crops and 109 image6 facings:
|
|||
far-unknown) with coverage left. On the shipped evaluator that is 66 %
|
||||
end-to-end at 95 % precision with 2 false accepts, against 75 % / 92 % / 4 at
|
||||
the old 2.0 line - the coverage is what the precision costs, and G2 is the gate
|
||||
that says to pay it.
|
||||
that says to pay it. At live resolution the same lines give 56 % end-to-end at
|
||||
97 % precision with 1 false accept, so the calibration holds on the path the
|
||||
phone actually uses and not only at full resolution.
|
||||
|
||||
Reproduce: `.venv/bin/python code/eval_distractors.py --stock stock-lopia-clean
|
||||
--write data/external-shelves/wikimedia-commons data/external-shelves/wikimedia-commons-2`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue