product-recognition-demo/recognization/data/external-eval
tngo 5fe3258614 test(external): add 12 kewpie external-proxy images with provenance
Two visually verified non-enrollment images per SKU for sku_l01, l02, l03,
l05, l06 and l11, sourced from Amazon retailer galleries and Yahoo
retailer/customer listings. sku_l06 uses the current 内臓脂肪を減らす package
(F-12); three customer listings showing the superseded wrapper were rejected.
Collection scratch files are removed.
2026-09-29 03:19:23 +09:00
..
kewpie test(external): add 12 kewpie external-proxy images with provenance 2026-09-29 03:19:23 +09:00
l12-reconciliation test(external): score 8 independent-source images, 0 false accepts 2026-09-29 03:13:16 +09:00
other-mayo test(external): score 8 independent-source images, 0 false accepts 2026-09-29 03:13:16 +09:00
tier3-sources test(external): score 8 independent-source images, 0 false accepts 2026-09-29 03:13:16 +09:00
README.md test(external): score 8 independent-source images, 0 false accepts 2026-09-29 03:13:16 +09:00

External evidence (2026-09-29)

Independent-source media used to stress the identity pipeline. None of this is Tier 2. DECISION.md's Tier 2 is a second labelled store visit; these are external_proxy artifacts, and every manifest here says so.

Directory What it holds
other-mayo/ 8 accepted images for sku_l04, sku_l07, sku_l09 from 6 source domains, plus the scored result
l12-reconciliation/ What sku_l12 actually is, from the shelf tag and package pixels
kewpie/ Kewpie 450 g research (the near-unknown case)
tier3-sources/ Two reusable pan clips and 11 rejected candidates for a future Tier-3 replay

Leak test

Every accepted image was template-matched against add/image6.jpg. Highest score across all 8 is 0.675 (sku_l07_1), and the 0.95+ band that identifies a crop of the evaluation photo is empty. The images are genuinely external.

Result: 8 images, 0 false accepts

Scored through the shipped LocalLaneAdapter + DecisionPolicy against stock-lopia-clean (other-mayo/eval_result.json):

Verdict Count Files
Correct accept 4 sku_l07_1, sku_l07_2, sku_l09_1, sku_l09_2
Abstain 4 all sku_l04_*
False accept 0 —

Two things this establishes that the image6 shelf cannot:

  • sku_l07 is answered with no enrolled image. Both l07 images accept through the text lane alone: sku_l07_1 reads ラッキー フヨネーズ, and sku_l07_2 reads the rear label's 製造者:丸和油脂株式会社 with 内容量:200g. The catalog row is 丸和油脂 ラッキーマヨネーズ 200g, so the manufacturer and the size together name it. This is the text lane's coverage claim - that a product with no reference image can still be named - holding on data that was not used to build it.
  • The l04 abstentions are correct behaviour, not a miss. l04 has no enrolled image either, and its reads are weak: sku_l04_2 reads only コと旨 タ 味 (all rows score 0.0), and sku_l04_4 reads the rear label with やまや garbled to まや, scoring 0.379 - below the accept line. Abstaining on a weak read is the designed outcome.

sku_l07_2 accepts with a negative local score (-0.55) on text evidence alone. That is the lane doing its job, but it is worth naming: the accept rests on two matched tokens (manufacturer + size), not on geometry.

What is still missing

No external source gives per-SKU identity for the whole catalog, and no reusable clip combines the target category with shelf-distance text resolution. The Tier-2 and Tier-3 gates in DECISION.md still need the operator's own recorded walks.