product-recognition-demo/recognization/docs
tngo fd72251160 feat: add Van's real baseline lane and stop size tokens naming products
Two review findings, both confirmed by measurement.

1. The evaluator had no always-argmax lane, so every "vs Van" claim compared
   against the *gated* matcher, which is not Van's contract - the original demo
   answered every crop with its best-scoring SKU and had no accept line. The new
   'van' lane is that contract: same scores, no gate. Against it the local lane
   wins both axes at both resolutions (full 61%/77% vs 52%/29%; live 59%/95% vs
   57%/32%), but the live coverage margin is one facing, not seven, and the 95%
   figure is live-resolution only - at full resolution the same lane reads 77%
   with 11 false accepts and a hub alarm.

2. A crop reading only "400g" scored 0.667 on three SKUs, above TEXT_ACCEPT, so
   the text lane named a product from a size line. The fill-in job now requires
   two non-digit bigrams; the veto is unchanged, so "65%" still contradicts a
   local answer. The raw OCR read travels with the ranking through
   score_crop_lanes for that check.

Tests: 3 for the size gate (policy + live) and the van lane's own row. Removing
the gate fails all three. Suite 276 -> 280.
2026-09-28 23:12:44 +09:00
..
research/2026-09-28-recognition-architecture feat: add Van's real baseline lane and stop size tokens naming products 2026-09-28 23:12:44 +09:00
API.md docs: describe the mobile lane as shipped, and fix the capabilities example 2026-09-28 19:10:31 +09:00
DATA.md docs: require explicit backend for legacy walks 2026-09-28 14:42:12 +09:00
design-price-tags-and-compliance.md docs: design for price-tag OCR, reconciliation, compliance, and mobile scan 2026-09-24 13:45:54 +09:00
EXTERNAL-EVAL.md feat: a store's fine-tuned head, and the two-stage gate it needs 2026-09-25 03:21:22 +09:00