Replaces the DINO gallery as the recognition path with the measured design from docs/research/2026-09-28-recognition-architecture/DECISION.md: RootSIFT over a per-SKU reference pyramid, similarity-constrained RANSAC and a hue check, fused with an OCR text lane that vetoes a match whose package text names a different catalog row and answers on its own when geometry finds nothing. - identity_lanes.py: LocalLane, TextLane, DecisionPolicy. The text lane builds each row's signature from the catalog name plus its packshot OCR, so a row with no enrolled image is still answerable. - engine.py: every backend groups scores by canonical SKU, so no view-suffixed id reaches the wire and a name and price always resolve. decide_crop fuses the lanes; score_crop_lanes feeds the live path. Both lanes are built in warm_up (non-fatally) so the first frame is not the slow one, and the text lane shares the engine's OCR lock. - live.py: decides per crop on the lane's own rank order. The lane's order comes from its rank key and its value is only the gate, so re-sorting by value named a different SKU than the lane chose; averaging in an empty observation also diluted a good confidence below the accept line. - identity.py: a `local` score scale whose gate is one absolute line, because the value is already a margin over the runner-up. - app.py, run-demo-server.sh: `--identity local` is the default; the demo server no longer starts on the leaked `stock-lopia` catalog. - eval_live.py: the replay vocabulary accepts `local`, so a recording from the shipped server can be scored. - README.md: documents the three backends and what each is for. Measured on the corrected image6 labels at live resolution: 36/61 in-catalog facings named at 95% precision, 0 of 48 unknowns accepted, 11 labels sourced from the text lane alone. Through the real server: /v1/recognize 90% precision, /v1/stream 100% precision, no view-suffixed ids on either.
1.2 KiB
1.2 KiB
| 1 | SKU_ID | product_name | receipt_date | expiration_date | number_in | number_out | number_on | image_link | price |
|---|---|---|---|---|---|---|---|---|---|
| 2 | sku_l01 | キューピー エッグケア 305g | 2026-09-18 | 2026-12-20 | 36 | 12 | 24 | '' | 349 |
| 3 | sku_l02 | キューピー アマニ油マヨネーズ 200g | 2026-09-18 | 2026-12-20 | 24 | 9 | 15 | '' | 329 |
| 4 | sku_l03 | キューピー からしマヨネーズ 200g | 2026-09-18 | 2026-12-20 | 30 | 14 | 16 | '' | 219 |
| 5 | sku_l04 | やまや めんたいマヨネーズタイプ 200g | 2026-09-18 | 2026-11-30 | 18 | 6 | 12 | '' | 399 |
| 6 | sku_l05 | キューピー ゼロ ノンコレステロール 310g | 2026-09-20 | 2026-12-25 | 24 | 11 | 13 | '' | 269 |
| 7 | sku_l06 | キューピー フィッテ 210g | 2026-09-20 | 2026-12-25 | 18 | 7 | 11 | '' | 379 |
| 8 | sku_l07 | 丸和油脂 ラッキーマヨネーズ 200g | 2026-09-20 | 2026-12-25 | 24 | 10 | 14 | '' | 199 |
| 9 | sku_l08 | スパイシーストーム ペリペリミックス 30g | 2026-09-15 | 2027-03-15 | 12 | 4 | 8 | '' | 699 |
| 10 | sku_l09 | ピュアセレクト コクうま カロリーカット65% 360g | 2026-09-22 | 2026-12-28 | 30 | 13 | 17 | '' | 209 |
| 11 | sku_l10 | ピュアセレクト マヨネーズ 450g | 2026-09-22 | 2026-12-28 | 36 | 15 | 21 | '' | 222 |
| 12 | sku_l11 | キューピー ハーフマヨネーズ 450g | 2026-09-19 | 2026-12-22 | 48 | 22 | 26 | '' | 269 |
| 13 | sku_l12 | 焼肉のたれ 中辛 | 2026-09-10 | 2027-02-10 | 24 | 8 | 16 | '' | 299 |