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.
BIN
recognization/stock-all/sku_001.jpeg
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
recognization/stock-all/sku_002.jpeg
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
recognization/stock-all/sku_003.jpg
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
recognization/stock-all/sku_004.jpeg
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
recognization/stock-all/sku_005.jpeg
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
recognization/stock-all/sku_007.jpeg
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
recognization/stock-all/sku_008.png
Normal file
|
After Width: | Height: | Size: 366 KiB |
BIN
recognization/stock-all/sku_009.jpeg
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
recognization/stock-all/sku_010.jpeg
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
recognization/stock-all/sku_011.jpeg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
recognization/stock-all/sku_012.jpeg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
recognization/stock-all/sku_013.jpeg
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
recognization/stock-all/sku_014.jpeg
Normal file
|
After Width: | Height: | Size: 119 KiB |
BIN
recognization/stock-all/sku_015.jpeg
Normal file
|
After Width: | Height: | Size: 111 KiB |
BIN
recognization/stock-all/sku_016.jpeg
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
recognization/stock-all/sku_017.jpeg
Normal file
|
After Width: | Height: | Size: 174 KiB |
BIN
recognization/stock-all/sku_018.jpeg
Normal file
|
After Width: | Height: | Size: 110 KiB |
BIN
recognization/stock-all/sku_019.jpeg
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
recognization/stock-all/sku_020.jpeg
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
recognization/stock-all/sku_021.jpeg
Normal file
|
After Width: | Height: | Size: 116 KiB |
BIN
recognization/stock-all/sku_022.jpg
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
recognization/stock-all/sku_k01.jpeg
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
recognization/stock-all/sku_k01_1.jpeg
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
recognization/stock-all/sku_k01_2.jpeg
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
recognization/stock-all/sku_k01_3.jpeg
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
recognization/stock-all/sku_k01_4.jpeg
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
recognization/stock-all/sku_k01_5.jpeg
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
recognization/stock-all/sku_k01_6.jpeg
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
recognization/stock-all/sku_k01_7.jpeg
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
BIN
recognization/stock-all/sku_k01_8.jpeg
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
recognization/stock-all/sku_k02.jpeg
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
recognization/stock-all/sku_k02_1.jpeg
Normal file
|
After Width: | Height: | Size: 4 KiB |
BIN
recognization/stock-all/sku_k02_2.jpeg
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
BIN
recognization/stock-all/sku_k02_3.jpeg
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
recognization/stock-all/sku_k02_4.jpeg
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
recognization/stock-all/sku_k02_5.jpeg
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
recognization/stock-all/sku_k02_6.jpeg
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
recognization/stock-all/sku_k03.jpeg
Normal file
|
After Width: | Height: | Size: 6.4 KiB |
BIN
recognization/stock-all/sku_k03_1.jpeg
Normal file
|
After Width: | Height: | Size: 6 KiB |
BIN
recognization/stock-all/sku_k03_2.jpeg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
recognization/stock-all/sku_k04.jpeg
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
recognization/stock-all/sku_k04_1.jpeg
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
recognization/stock-all/sku_k04_2.jpeg
Normal file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
recognization/stock-all/sku_k04_3.jpeg
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
recognization/stock-all/sku_k04_4.jpeg
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
recognization/stock-all/sku_k04_5.jpeg
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
recognization/stock-all/sku_k04_6.jpeg
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
recognization/stock-all/sku_k04_7.jpeg
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
recognization/stock-all/sku_k04_8.jpeg
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
recognization/stock-all/sku_k05.jpeg
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
recognization/stock-all/sku_k05_1.jpeg
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
recognization/stock-all/sku_k05_2.jpeg
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
recognization/stock-all/sku_k06.jpeg
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
recognization/stock-all/sku_k07.jpeg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
recognization/stock-all/sku_k07_1.jpeg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
recognization/stock-all/sku_k08.jpeg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
recognization/stock-all/sku_k08_1.jpeg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
recognization/stock-all/sku_k09.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-all/sku_k09_1.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-all/sku_k09_2.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
recognization/stock-all/sku_k10.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-all/sku_k10_1.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
recognization/stock-all/sku_k10_2.jpeg
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
recognization/stock-all/sku_k11.jpeg
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
recognization/stock-all/sku_k11_1.jpeg
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
recognization/stock-all/sku_k12.jpeg
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
recognization/stock-all/sku_k13.jpeg
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
recognization/stock-all/sku_l01.jpeg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
recognization/stock-all/sku_l01_1.jpeg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
recognization/stock-all/sku_l01_2.jpeg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
recognization/stock-all/sku_l02.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
recognization/stock-all/sku_l02_1.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
recognization/stock-all/sku_l02_2.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
recognization/stock-all/sku_l02_3.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
recognization/stock-all/sku_l03.jpeg
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
recognization/stock-all/sku_l03_1.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-all/sku_l03_2.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-all/sku_l03_3.jpeg
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
recognization/stock-all/sku_l04.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
recognization/stock-all/sku_l04_1.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
recognization/stock-all/sku_l04_2.jpeg
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
BIN
recognization/stock-all/sku_l04_3.jpeg
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
recognization/stock-all/sku_l05.jpeg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
recognization/stock-all/sku_l05_1.jpeg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
recognization/stock-all/sku_l05_2.jpeg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
recognization/stock-all/sku_l05_3.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-all/sku_l06.jpg
Normal file
|
After Width: | Height: | Size: 137 KiB |
BIN
recognization/stock-all/sku_l07.jpeg
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
recognization/stock-all/sku_l07_1.jpeg
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
recognization/stock-all/sku_l07_2.jpeg
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
recognization/stock-all/sku_l07_3.jpeg
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
recognization/stock-all/sku_l09.jpeg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
recognization/stock-all/sku_l09_1.jpeg
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
recognization/stock-all/sku_l09_2.jpeg
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
recognization/stock-all/sku_l09_3.jpeg
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
recognization/stock-all/sku_m01.jpeg
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
recognization/stock-all/sku_m01_1.jpeg
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
recognization/stock-all/sku_m01_2.jpeg
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
recognization/stock-all/sku_m02.jpeg
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
recognization/stock-all/sku_m03.jpeg
Normal file
|
After Width: | Height: | Size: 26 KiB |