# Evidence scripts (2026-09-28 audit) Read-only against product code: every script imports from `code/` and writes only into this folder. Run from `recognization/` with `.venv/bin/python`. `eval/labels/image6.json` is the corrected image6 label set (26 of 111 v1 labels changed; every row carries `v1_label`, `source`, and a `note` where changed). `image6-v1-labels-overlay.jpg` shows the v1 labels on the shelf; green = catalog label, red = unknown. `sheet.py` regenerates per-SKU contact sheets. | Step | Command (prefix `E=docs/research/2026-09-28-recognition-architecture/evidence`) | Produces | |---|---|---| | Original matcher, both catalogs, full/live/live-with-unscaled-boxes | `.venv/bin/python $E/diag.py --stock stock-lopia-clean --labels $E/../../../eval/labels/image6.json [--live] [--bug] --out $E/run_stock-lopia-clean_.pkl` (repeat with `--stock stock-lopia`) | `run_*.pkl` | | Score them under v1 or v2 labels | `.venv/bin/python $E/analyze.py $E/run_*.pkl` | identity top-1, argmax, current gate | | Matcher variants | `.venv/bin/python $E/variants.py --stock stock-lopia-clean --labels $E/../../../eval/labels/image6.json [--live] --scales 200,400 --root --geom affine --out $E/v_ms_root_aff_.pkl` (also `--tmpl-h 250/400`, no flags = raw) | `v_*.pkl` | | Variant ranking + open-set frontier | `.venv/bin/python $E/an2.py $E $(basename -a $E/v_*.pkl)` (`LABELS=image6_v2_lfo.json` for the leave-facing-out runs) | correct at 100/95/90 % precision | | Leave-facing-out catalog | `.venv/bin/python $E/lfo_setup.py`, then `variants.py --stock $E/cat_ --labels $E/image6_v2_lfo.json --scales 200,400 --root --geom affine [--live] --out $E/lfo_cat__.pkl` | `lfo_*.pkl` | | Unrelated-shelf distractors | `YOLO_OFFLINE=1 .venv/bin/python $E/distract.py stock-lopia-clean $E/cat_full` | `distract.pkl` | | Catalog growth, exhaustive vs descriptor index | `YOLO_OFFLINE=1 .venv/bin/python $E/scale.py` | stdout | | DINO retrieval under growth | `YOLO_OFFLINE=1 .venv/bin/python $E/dino_scale.py` | stdout | | OCR read-rate | `.venv/bin/python $E/ocr_exp.py` | `ocr.pkl` | | OCR signatures, then fusion | `.venv/bin/python $E/ocr_fuse.py && .venv/bin/python $E/fuse_eval.py` | `sig.pkl`, stdout | | Per-SKU contact sheets + the labelled shelf | `.venv/bin/python $E/sheet.py ` | `gt_