Coverage-first live labelling, merged catalog, shelf-intelligence decision

The live path abstained too much: a detected product whose best candidate
missed the accept line was left blank, so a shelf where 59% of in-catalog
facings were shown read as broken. Show the best candidate immediately as
`provisional`, keep the track re-classifiable so a later attempt upgrades or
corrects it, and never blank a label already on screen.

- identity.py / identity_lanes.py: every decision now carries
  `provisional_sku` - the row the evidence supports well enough to show,
  separate from `best_sku`, which still means "cleared the gate". The accept
  line does not move: far-unknown false accepts stay at 0.066%.
- live.py: a below-gate candidate labels the track with
  `identity_level: provisional` and `confirmed = False`, so the planner and
  the crop lane keep offering it. Accepted labels stay frozen. Inherited
  provisional labels stay re-classifiable.
- Clients render provisional distinctly (amber chip, dashed box) via
  `LiveScanOverlayPolicy.isProvisional(identity)`, which now reads the wire
  level instead of only the state.
- build_stock_all.py merges stock, stock-lopia, stock-mediya and
  stock-milk150 into stock-all (111 images, 60 SKUs). The server could only
  read one folder, so anything outside it came back blank. stock-demo is
  byte-identical to mediya+milk150 and is not a source.

Measured on add/image6.jpg at live resolution: in-catalog facings shown
59.4% -> 86.0%, correct shown 38 -> 55, precision 97.4% -> 87.3%. On the
wire at 8fps 0.5x: 65 of 79 tracks labelled, 742 accepted + 309 provisional
observations, first label 1.27s.

docs/research/2026-09-29-shelf-intelligence/ carries the experiments and the
decision: group signals (combined AUC 0.991 sibling / 0.990 unrelated),
OCR scheduling (group representatives cut calls 4.4x and wall 3.3x), and the
finding that group propagation damages more labels than it rescues on this
shelf, so groups schedule compute rather than overwrite labels.

331 tests pass.
This commit is contained in:
tngo 2026-09-29 13:45:14 +09:00
parent fbf31d74fe
commit 0cf64a18bf
171 changed files with 554214 additions and 35 deletions

View file

@ -0,0 +1,61 @@
SKU_ID,product_name,receipt_date,expiration_date,number_in,number_out,number_on,image_link,price
sku_001,明治 おいしい牛乳,2026-09-12,2026-09-25,120,47,73,'/Users/nguyenhongvan/app/recognization/stock/sku_001.jpeg',258
sku_002,野菜生活100 グリーンサラダ,2026-09-11,2027-03-11,130,45,85,'/Users/nguyenhongvan/app/recognization/stock/sku_002.jpeg,179
sku_003,Tropicana エッセンシャルズ マルチビタミン,2026-09-12,2027-03-12,140,52,88,'/Users/nguyenhongvan/app/recognization/stock/sku_003.jpg',168
sku_004,伊藤園 1日分の野菜,2026-09-09,2027-03-09,200,96,104,'/Users/nguyenhongvan/app/recognization/stock/sku_004.jpeg',198
sku_005,野菜生活100 マンゴーサラダ,2026-09-11,2027-03-11,140,58,82,'/Users/nguyenhongvan/app/recognization/stock/sku_005.jpeg',179
sku_007,野菜生活100 オリジナル,2026-09-10,2027-03-10,180,82,98,'/Users/nguyenhongvan/app/recognization/stock/sku_007.jpeg',179
sku_008,明治プロビオヨーグルト R-1 ドリンクタイプ,2026-09-14,2026-09-28,120,45,75,'/Users/nguyenhongvan/app/recognization/stock/sku_008.png',250
sku_009,野菜生活100 ベリーサラダ,2026-09-11,2027-03-11,150,63,87,'/Users/nguyenhongvan/app/recognization/stock/sku_009.jpeg',179
sku_010,明治プロビオヨーグルト R-1 ドリンクタイプ 低糖・低カロリー,2026-09-14,2026-09-28,100,39,61,'/Users/nguyenhongvan/app/recognization/stock/sku_010.jpeg',250
sku_011,野菜生活100 アップルサラダ,2026-09-15,2027-03-15,150,65,85,'/Users/nguyenhongvan/app/recognization/stock/sku_011.jpeg',179
sku_012,ハッピーターン,2026-09-15,2027-03-15,180,72,108,'/Users/nguyenhongvan/app/recognization/stock/sku_012.jpeg',198
sku_018,手塩屋 8枚,2026-09-15,2027-03-15,150,65,85,'/Users/nguyenhongvan/app/recognization/stock/sku_018.jpeg',168
sku_016,新潟仕込み こだわりのり塩味 24枚,2026-09-15,2027-03-15,160,58,102,'/Users/nguyenhongvan/app/recognization/stock/sku_016.jpeg',178
sku_014,おばあちゃんのぽたぽた焼 20枚,2026-09-15,2027-03-15,170,82,88,'/Users/nguyenhongvan/app/recognization/stock/sku_014.jpeg',188
sku_013,ソフトサラダ 20枚,2026-09-15,2027-03-15,140,55,85,'/Users/nguyenhongvan/app/recognization/stock/sku_013.jpeg',188
sku_015,ばかうけ 青のりしょうゆ味,2026-09-15,2027-03-15,155,67,88,'/Users/nguyenhongvan/app/recognization/stock/sku_015.jpeg',168
sku_020,亀田のまがりせんべい 16枚,2026-09-15,2027-03-15,145,61,84,'/Users/nguyenhongvan/app/recognization/stock/sku_020.jpeg',188
sku_017,味しらべ,2026-09-15,2027-03-15,125,43,82,'/Users/nguyenhongvan/app/recognization/stock/sku_017.jpeg',188
sku_019,歌舞伎揚,2026-09-15,2027-03-15,135,54,81,'/Users/nguyenhongvan/rapp/recognization/stock/sku_019.jpeg',218
sku_021,岩塚の黒豆せんべい,2026-09-15,2027-03-15,120,46,74,'/Users/nguyenhongvan/app/recognization/stock/sku_021.jpeg',198
sku_022,持ちのこ,2026-09-15,2027-03-15,120,46,74,'/Users/nguyenhongvan/app/recognization/stock/sku_022.jpg',210
sku_l01,キューピー エッグケア 305g,2026-09-18,2026-12-20,36,12,24,'',349
sku_l02,キューピー アマニ油マヨネーズ 200g,2026-09-18,2026-12-20,24,9,15,'',329
sku_l03,キューピー からしマヨネーズ 200g,2026-09-18,2026-12-20,30,14,16,'',219
sku_l04,やまや めんたいマヨネーズタイプ 200g,2026-09-18,2026-11-30,18,6,12,'',399
sku_l05,キューピー ゼロ ノンコレステロール 310g,2026-09-20,2026-12-25,24,11,13,'',269
sku_l06,キューピー フィッテ 210g,2026-09-20,2026-12-25,18,7,11,'',379
sku_l07,丸和油脂 ラッキーマヨネーズ 200g,2026-09-20,2026-12-25,24,10,14,'',199
sku_l08,スパイシーストーム ペリペリミックス 30g,2026-09-15,2027-03-15,12,4,8,'',699
sku_l09,ピュアセレクト コクうま カロリーカット65% 360g,2026-09-22,2026-12-28,30,13,17,'',209
sku_l10,ピュアセレクト マヨネーズ 400g,2026-09-22,2026-12-28,36,15,21,'',222
sku_l11,キューピー ハーフマヨネーズ 400g,2026-09-19,2026-12-22,48,22,26,'',269
sku_l12,ユーラス 野菜をおいしく食べる旨たれ 380g,2026-09-10,2027-02-10,24,8,16,'',299
sku_m01,小岩井 低脂肪牛乳,2026-09-25,2026-10-20,24,8,16,'',186
sku_m02,荻山酪農 カフェ・オ・レ,2026-09-25,2026-10-20,24,8,16,'',397
sku_m03,丹那 3.6牛乳,2026-09-25,2026-10-20,24,8,16,'',214
sku_m04,木次 ミルクコーヒー,2026-09-25,2026-10-20,24,8,16,'',195
sku_m05,木次 パスチャライズ牛乳,2026-09-25,2026-10-20,24,8,16,'',240
sku_m06,キスキ ブラウン・スイス牛乳,2026-09-25,2026-10-20,24,8,16,'',254
sku_m07,丹那 飲んでやさしいヨーグルト,2026-09-25,2026-10-20,24,8,16,'',225
sku_m08,農場3.7牛乳 特選,2026-09-25,2026-10-20,24,8,16,'',216
sku_m09,MINOR FIGURES OAT,2026-09-25,2026-10-20,24,8,16,'',300
sku_m10,北海道 低脂肪乳,2026-09-25,2026-10-20,24,8,16,'',214
sku_m11,タカナシ 低温殺菌牛乳,2026-09-25,2026-10-20,24,8,16,'',396
sku_m12,RUDE HEALTH Oat Organic,2026-09-25,2026-10-20,24,8,16,'',400
sku_m13,小岩井 無脂肪牛乳,2026-09-25,2026-10-20,24,8,16,'',178
sku_m14,きすき ノンホモ牛乳,2026-09-25,2026-10-20,24,8,16,'',198
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
1 SKU_ID product_name receipt_date expiration_date number_in number_out number_on image_link price
2 sku_001 明治 おいしい牛乳 2026-09-12 2026-09-25 120 47 73 '/Users/nguyenhongvan/app/recognization/stock/sku_001.jpeg' 258
3 sku_002 野菜生活100 グリーンサラダ 2026-09-11 2027-03-11 130 45 85 '/Users/nguyenhongvan/app/recognization/stock/sku_002.jpeg 179
4 sku_003 Tropicana エッセンシャルズ マルチビタミン 2026-09-12 2027-03-12 140 52 88 '/Users/nguyenhongvan/app/recognization/stock/sku_003.jpg' 168
5 sku_004 伊藤園 1日分の野菜 2026-09-09 2027-03-09 200 96 104 '/Users/nguyenhongvan/app/recognization/stock/sku_004.jpeg' 198
6 sku_005 野菜生活100 マンゴーサラダ 2026-09-11 2027-03-11 140 58 82 '/Users/nguyenhongvan/app/recognization/stock/sku_005.jpeg' 179
7 sku_007 野菜生活100 オリジナル 2026-09-10 2027-03-10 180 82 98 '/Users/nguyenhongvan/app/recognization/stock/sku_007.jpeg' 179
8 sku_008 明治プロビオヨーグルト R-1 ドリンクタイプ 2026-09-14 2026-09-28 120 45 75 '/Users/nguyenhongvan/app/recognization/stock/sku_008.png' 250
9 sku_009 野菜生活100 ベリーサラダ 2026-09-11 2027-03-11 150 63 87 '/Users/nguyenhongvan/app/recognization/stock/sku_009.jpeg' 179
10 sku_010 明治プロビオヨーグルト R-1 ドリンクタイプ 低糖・低カロリー 2026-09-14 2026-09-28 100 39 61 '/Users/nguyenhongvan/app/recognization/stock/sku_010.jpeg' 250
11 sku_011 野菜生活100 アップルサラダ 2026-09-15 2027-03-15 150 65 85 '/Users/nguyenhongvan/app/recognization/stock/sku_011.jpeg' 179
12 sku_012 ハッピーターン 2026-09-15 2027-03-15 180 72 108 '/Users/nguyenhongvan/app/recognization/stock/sku_012.jpeg' 198
13 sku_018 手塩屋 8枚 2026-09-15 2027-03-15 150 65 85 '/Users/nguyenhongvan/app/recognization/stock/sku_018.jpeg' 168
14 sku_016 新潟仕込み こだわりのり塩味 24枚 2026-09-15 2027-03-15 160 58 102 '/Users/nguyenhongvan/app/recognization/stock/sku_016.jpeg' 178
15 sku_014 おばあちゃんのぽたぽた焼 20枚 2026-09-15 2027-03-15 170 82 88 '/Users/nguyenhongvan/app/recognization/stock/sku_014.jpeg' 188
16 sku_013 ソフトサラダ 20枚 2026-09-15 2027-03-15 140 55 85 '/Users/nguyenhongvan/app/recognization/stock/sku_013.jpeg' 188
17 sku_015 ばかうけ 青のりしょうゆ味 2026-09-15 2027-03-15 155 67 88 '/Users/nguyenhongvan/app/recognization/stock/sku_015.jpeg' 168
18 sku_020 亀田のまがりせんべい 16枚 2026-09-15 2027-03-15 145 61 84 '/Users/nguyenhongvan/app/recognization/stock/sku_020.jpeg' 188
19 sku_017 味しらべ 2026-09-15 2027-03-15 125 43 82 '/Users/nguyenhongvan/app/recognization/stock/sku_017.jpeg' 188
20 sku_019 歌舞伎揚 2026-09-15 2027-03-15 135 54 81 '/Users/nguyenhongvan/rapp/recognization/stock/sku_019.jpeg' 218
21 sku_021 岩塚の黒豆せんべい 2026-09-15 2027-03-15 120 46 74 '/Users/nguyenhongvan/app/recognization/stock/sku_021.jpeg' 198
22 sku_022 持ちのこ 2026-09-15 2027-03-15 120 46 74 '/Users/nguyenhongvan/app/recognization/stock/sku_022.jpg' 210
23 sku_l01 キューピー エッグケア 305g 2026-09-18 2026-12-20 36 12 24 '' 349
24 sku_l02 キューピー アマニ油マヨネーズ 200g 2026-09-18 2026-12-20 24 9 15 '' 329
25 sku_l03 キューピー からしマヨネーズ 200g 2026-09-18 2026-12-20 30 14 16 '' 219
26 sku_l04 やまや めんたいマヨネーズタイプ 200g 2026-09-18 2026-11-30 18 6 12 '' 399
27 sku_l05 キューピー ゼロ ノンコレステロール 310g 2026-09-20 2026-12-25 24 11 13 '' 269
28 sku_l06 キューピー フィッテ 210g 2026-09-20 2026-12-25 18 7 11 '' 379
29 sku_l07 丸和油脂 ラッキーマヨネーズ 200g 2026-09-20 2026-12-25 24 10 14 '' 199
30 sku_l08 スパイシーストーム ペリペリミックス 30g 2026-09-15 2027-03-15 12 4 8 '' 699
31 sku_l09 ピュアセレクト コクうま カロリーカット65% 360g 2026-09-22 2026-12-28 30 13 17 '' 209
32 sku_l10 ピュアセレクト マヨネーズ 400g 2026-09-22 2026-12-28 36 15 21 '' 222
33 sku_l11 キューピー ハーフマヨネーズ 400g 2026-09-19 2026-12-22 48 22 26 '' 269
34 sku_l12 ユーラス 野菜をおいしく食べる旨たれ 380g 2026-09-10 2027-02-10 24 8 16 '' 299
35 sku_m01 小岩井 低脂肪牛乳 2026-09-25 2026-10-20 24 8 16 '' 186
36 sku_m02 荻山酪農 カフェ・オ・レ 2026-09-25 2026-10-20 24 8 16 '' 397
37 sku_m03 丹那 3.6牛乳 2026-09-25 2026-10-20 24 8 16 '' 214
38 sku_m04 木次 ミルクコーヒー 2026-09-25 2026-10-20 24 8 16 '' 195
39 sku_m05 木次 パスチャライズ牛乳 2026-09-25 2026-10-20 24 8 16 '' 240
40 sku_m06 キスキ ブラウン・スイス牛乳 2026-09-25 2026-10-20 24 8 16 '' 254
41 sku_m07 丹那 飲んでやさしいヨーグルト 2026-09-25 2026-10-20 24 8 16 '' 225
42 sku_m08 農場3.7牛乳 特選 2026-09-25 2026-10-20 24 8 16 '' 216
43 sku_m09 MINOR FIGURES OAT 2026-09-25 2026-10-20 24 8 16 '' 300
44 sku_m10 北海道 低脂肪乳 2026-09-25 2026-10-20 24 8 16 '' 214
45 sku_m11 タカナシ 低温殺菌牛乳 2026-09-25 2026-10-20 24 8 16 '' 396
46 sku_m12 RUDE HEALTH Oat Organic 2026-09-25 2026-10-20 24 8 16 '' 400
47 sku_m13 小岩井 無脂肪牛乳 2026-09-25 2026-10-20 24 8 16 '' 178
48 sku_m14 きすき ノンホモ牛乳 2026-09-25 2026-10-20 24 8 16 '' 198
49 sku_k01 明治 おいしい牛乳 2026-09-25 2026-10-15 48 20 28 '' 198
50 sku_k02 ゆうパック 優良牛乳 2026-09-25 2026-10-15 48 20 28 '' 130
51 sku_k03 酪農家限定 低温殺菌牛乳 2026-09-25 2026-10-15 48 20 28 '' 248
52 sku_k04 北海道牛乳 2026-09-25 2026-10-15 48 20 28 '' 178
53 sku_k05 MEGMILK 2026-09-25 2026-10-15 48 20 28 '' 158
54 sku_k06 毎日牛乳 2026-09-25 2026-10-15 48 20 28 '' 168
55 sku_k07 タカナシ 低温殺菌牛乳 2026-09-25 2026-10-15 48 20 28 '' 258
56 sku_k08 タカナシ 殺菌低脂肪牛乳 2026-09-25 2026-10-15 48 20 28 '' 198
57 sku_k09 毎日骨太 2026-09-25 2026-10-15 48 20 28 '' 148
58 sku_k10 カルシウム入り低脂肪乳 2026-09-25 2026-10-15 48 20 28 '' 145
59 sku_k11 無脂肪牛乳 2026-09-25 2026-10-15 48 20 28 '' 138
60 sku_k12 低脂肪牛乳 2026-09-25 2026-10-15 48 20 28 '' 120
61 sku_k13 ミルク 2026-09-25 2026-10-15 48 20 28 '' 260