docs: match the false-accept record to the evaluator's own columns

The record said '2 false accepts of 48 unknowns', which conflated two fields:
the 2 are 0 unknown accepts plus 1 unenrolled in-catalog facing and 1 enrolled
misidentification. Also restores the hybrid-verify line the lane vocabulary
edit dropped, and reframes the l09 note: its hubness ratio is 1.76 full /
1.36 live against G7's limit of 2.0, so the gate passes and the 30% internal
share heuristic is what raises the alarm.
This commit is contained in:
tngo 2026-09-28 22:36:27 +09:00
parent 47c4273eec
commit 2b7dd0c193
3 changed files with 12 additions and 4 deletions

View file

@ -6,6 +6,7 @@ Every lane is scored the same way, on the same crops, at the same resolutions:
local RootSIFT pyramid + OCR text lane (the shipped default) local RootSIFT pyramid + OCR text lane (the shipped default)
matcher full-catalog SIFT/ORB/BRISK + RANSAC (the original demo) matcher full-catalog SIFT/ORB/BRISK + RANSAC (the original demo)
gallery DINOv2 embedding, raw or with the trained head gallery DINOv2 embedding, raw or with the trained head
hybrid-verify DINO shortlist, then the matcher re-ranks inside it
Reported per lane, as four separate ceilings rather than one conflated number: Reported per lane, as four separate ceilings rather than one conflated number:

View file

@ -595,7 +595,11 @@ The headline number is reproducible from the repo, not from a scratch script:
--image add/image6.jpg --lanes local --live --image add/image6.jpg --lanes local --live
live resolution: catalog 69% · identity 86% · decision 86% · live resolution: catalog 69% · identity 86% · decision 86% ·
end-to-end 59% · precision 95% · 2 false accepts of 48 unknowns · 20.6 ms/crop end-to-end 59% · precision 95% · 20.6 ms/crop
false accepts: 2 of 109 scored facings — 0 of the 48 unknowns, and 1
unenrolled in-catalog facing plus 1 enrolled misidentification. The
evaluator's own columns: unknown_false_accepts 0, unenrolled_false_accepts 1.
Still open, and not implementable from here: Tier 2 held-out labels (F-11), the Still open, and not implementable from here: Tier 2 held-out labels (F-11), the
E-1..E-9 experiments, and the completion gate G1-G7, all of which need a second E-1..E-9 experiments, and the completion gate G1-G7, all of which need a second

View file

@ -59,9 +59,12 @@ text lane the signatures that cover them.
the enrollment protocol wants (§8 of the architecture decision). Its matcher the enrollment protocol wants (§8 of the architecture decision). Its matcher
scores dwarf the other references (85-129 inliers against 10-40), so it wins scores dwarf the other references (85-129 inliers against 10-40), so it wins
facings it should not; re-source it before trusting l09 precision. Measured on facings it should not; re-source it before trusting l09 precision. Measured on
the corrected image6 labels at full resolution, that is the one hub alarm the the corrected image6 labels, l09 is the largest single-SKU share of accepts at
local lane raises: 18 accepts, 12 correct, a 37.5% share against the 30% limit. both resolutions: 18 of 48 accepts (37.5%) at full, 11 of 38 (28.9%) at live,
At live resolution the alarm clears (29%). against a true share of 13 of 61 facings (21.3%). That is a hubness ratio of
1.76 and 1.36 against the completion gate's limit of 2.0, so G7 passes; the
stricter internal 30% share heuristic is what raises the alarm at full
resolution. Re-sourcing the reference is the fix, not a threshold change.
## Rejected ## Rejected