Two real store photographs, chosen for density and for products that look different
from each other, each with its own enrolled store:
demo-images/demo-image-1-mediya-dairy.jpg CC0 MEDIYA dairy case
21 products kept (13 price cards dropped), 16 recognised, all 14 products named
demo-images/demo-image-2-milk-case.jpg CC BY 2.0 supermarket milk case
56 detections, 49 recognised, all 13 products named
Both were enrolled the way a store would be: the products were read off a contact
sheet of the detections, their crops became the store's gallery (stock-mediya,
stock-milk150), and a head was trained on them. `build_store_from_shelf.py` is that
flow.
The filter came out of the first image. Every Japanese supermarket photo has the same
artifact: the detector boxes the shelf-edge price cards as products, because a card is
roughly the shape of a pack - 13 of 34 detections on image 1 were cards. Their text
separates them cleanly: a card's characters are 30-44% digits and it prints the
tax-excluded price (本体), while a product's are 3-19% digits. Cards are now dropped
before classification, and the count is reported as `price_cards_dropped` rather than
hidden.
demo-images/README.md records how to run both, what the demo shows, and the honest
caveat: both shelves are enrolled, so the recognition rate is in-distribution - what
the app does on a shelf it has been onboarded to, not on one it has never seen.
175 tests pass.
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1.1 KiB
1.1 KiB
| 1 | SKU_ID | product_name | receipt_date | expiration_date | number_in | number_out | number_on | image_link | price |
|---|---|---|---|---|---|---|---|---|---|
| 2 | sku_m01 | 小岩井 低脂肪牛乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 186 |
| 3 | sku_m02 | 荻山酪農 カフェ・オ・レ | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 397 |
| 4 | sku_m03 | 丹那 3.6牛乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 214 |
| 5 | sku_m04 | 木次 ミルクコーヒー | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 195 |
| 6 | sku_m05 | 木次 パスチャライズ牛乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 240 |
| 7 | sku_m06 | キスキ ブラウン・スイス牛乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 254 |
| 8 | sku_m07 | 丹那 飲んでやさしいヨーグルト | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 225 |
| 9 | sku_m08 | 農場3.7牛乳 特選 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 216 |
| 10 | sku_m09 | MINOR FIGURES OAT | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 300 |
| 11 | sku_m10 | 北海道 低脂肪乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 214 |
| 12 | sku_m11 | タカナシ 低温殺菌牛乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 396 |
| 13 | sku_m12 | RUDE HEALTH Oat Organic | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 400 |
| 14 | sku_m13 | 小岩井 無脂肪牛乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 178 |
| 15 | sku_m14 | きすき ノンホモ牛乳 | 2026-09-25 | 2026-10-20 | 24 | 8 | 16 | '' | 198 |