feat: two demo shelves, enrolled, plus the price-card filter they forced out
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>
BIN
recognization/stock-milk150/identity_head.pt
Normal file
BIN
recognization/stock-milk150/sku_k01.jpeg
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
recognization/stock-milk150/sku_k01_1.jpeg
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
recognization/stock-milk150/sku_k01_2.jpeg
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
recognization/stock-milk150/sku_k01_3.jpeg
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
recognization/stock-milk150/sku_k01_4.jpeg
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
recognization/stock-milk150/sku_k01_5.jpeg
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
recognization/stock-milk150/sku_k01_6.jpeg
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
recognization/stock-milk150/sku_k01_7.jpeg
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
recognization/stock-milk150/sku_k01_8.jpeg
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
recognization/stock-milk150/sku_k02.jpeg
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
recognization/stock-milk150/sku_k02_1.jpeg
Normal file
|
After Width: | Height: | Size: 4 KiB |
BIN
recognization/stock-milk150/sku_k02_2.jpeg
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
recognization/stock-milk150/sku_k02_3.jpeg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
recognization/stock-milk150/sku_k02_4.jpeg
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
recognization/stock-milk150/sku_k02_5.jpeg
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
recognization/stock-milk150/sku_k02_6.jpeg
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
recognization/stock-milk150/sku_k03.jpeg
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
recognization/stock-milk150/sku_k03_1.jpeg
Normal file
|
After Width: | Height: | Size: 6 KiB |
BIN
recognization/stock-milk150/sku_k03_2.jpeg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
recognization/stock-milk150/sku_k04.jpeg
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
recognization/stock-milk150/sku_k04_1.jpeg
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
recognization/stock-milk150/sku_k04_2.jpeg
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
recognization/stock-milk150/sku_k04_3.jpeg
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
recognization/stock-milk150/sku_k04_4.jpeg
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
recognization/stock-milk150/sku_k04_5.jpeg
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
recognization/stock-milk150/sku_k04_6.jpeg
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
recognization/stock-milk150/sku_k04_7.jpeg
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
recognization/stock-milk150/sku_k04_8.jpeg
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
recognization/stock-milk150/sku_k05.jpeg
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
recognization/stock-milk150/sku_k05_1.jpeg
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
recognization/stock-milk150/sku_k05_2.jpeg
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
recognization/stock-milk150/sku_k06.jpeg
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
recognization/stock-milk150/sku_k07.jpeg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
recognization/stock-milk150/sku_k07_1.jpeg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
recognization/stock-milk150/sku_k08.jpeg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
recognization/stock-milk150/sku_k08_1.jpeg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
recognization/stock-milk150/sku_k09.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-milk150/sku_k09_1.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-milk150/sku_k09_2.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
recognization/stock-milk150/sku_k10.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-milk150/sku_k10_1.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
recognization/stock-milk150/sku_k10_2.jpeg
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
recognization/stock-milk150/sku_k11.jpeg
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
recognization/stock-milk150/sku_k11_1.jpeg
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
recognization/stock-milk150/sku_k12.jpeg
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
recognization/stock-milk150/sku_k13.jpeg
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
14
recognization/stock-milk150/stock.csv
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
SKU_ID,product_name,receipt_date,expiration_date,number_in,number_out,number_on,image_link,price
|
||||
sku_k01,明治 おいしい牛乳,2026-09-25,2026-10-15,48,20,28,'',198
|
||||
sku_k02,ゆうパック 優良牛乳,2026-09-25,2026-10-15,48,20,28,'',130
|
||||
sku_k03,酪農家限定 低温殺菌牛乳,2026-09-25,2026-10-15,48,20,28,'',248
|
||||
sku_k04,北海道牛乳,2026-09-25,2026-10-15,48,20,28,'',178
|
||||
sku_k05,MEGMILK,2026-09-25,2026-10-15,48,20,28,'',158
|
||||
sku_k06,毎日牛乳,2026-09-25,2026-10-15,48,20,28,'',168
|
||||
sku_k07,タカナシ 低温殺菌牛乳,2026-09-25,2026-10-15,48,20,28,'',258
|
||||
sku_k08,タカナシ 殺菌低脂肪牛乳,2026-09-25,2026-10-15,48,20,28,'',198
|
||||
sku_k09,毎日骨太,2026-09-25,2026-10-15,48,20,28,'',148
|
||||
sku_k10,カルシウム入り低脂肪乳,2026-09-25,2026-10-15,48,20,28,'',145
|
||||
sku_k11,無脂肪牛乳,2026-09-25,2026-10-15,48,20,28,'',138
|
||||
sku_k12,低脂肪牛乳,2026-09-25,2026-10-15,48,20,28,'',120
|
||||
sku_k13,ミルク,2026-09-25,2026-10-15,48,20,28,'',260
|
||||
|