diff --git a/recognization/code/eval_identity.py b/recognization/code/eval_identity.py index 01e3dfe..4a4ba5e 100644 --- a/recognization/code/eval_identity.py +++ b/recognization/code/eval_identity.py @@ -3,9 +3,9 @@ The original matcher is a candidate final architecture, not just a baseline. Every lane is scored the same way, on the same crops, at the same resolutions: + local RootSIFT pyramid + OCR text lane (the shipped default) matcher full-catalog SIFT/ORB/BRISK + RANSAC (the original demo) gallery DINOv2 embedding, raw or with the trained head - hybrid-verify DINO shortlist, then the matcher re-ranks inside it Reported per lane, as four separate ceilings rather than one conflated number: @@ -56,7 +56,7 @@ UNKNOWN = "unknown" # Two independent label passes disagreed here, so the row is not ground truth. # Scoring it would be scoring a coin flip. EXCLUDE = "exclude" -LANES = ("matcher", "gallery", "hybrid-verify") +LANES = ("local", "matcher", "gallery", "hybrid-verify") # A single SKU above this share of accepts is the failure the last audit found: # every dark package collapsing onto one enrolled product. HUB_SHARE = 0.30 diff --git a/recognization/code/eval_live.py b/recognization/code/eval_live.py index 56eeeca..02b4c78 100644 --- a/recognization/code/eval_live.py +++ b/recognization/code/eval_live.py @@ -11,7 +11,7 @@ store was enrolled; scoring them is training-set accuracy. python code/eval_live.py RECORDING_DIR [--stock-dir DIR] [--labels PATH] [--json PATH] [--iou 0.5] - [--replay] [--identity matcher|gallery] [--device cpu|mps|cuda] + [--replay] [--identity matcher|local|gallery] [--device cpu|mps|cuda] Prints a human count table and writes the same report as JSON (default /eval_live.json). Missing input exits 2 with {"error": ...} on