9a0da7aac8
Problema: in scenari con molte scale (ring detection), il matcher perdeva
istanze a scale estreme:
1. Cap max_vars_full (default max_matches*8) escludeva la pose corretta
2. bg_map usava box fissa = template_size, penalizzando varianti a scala
grande dove il template reale è più grande del box
Fix:
- Rimosso cap hard sul numero di varianti full-res (Numba compensa velocità)
- bg_map PER-SCALA: cache {scale: bg_map} con box size scalata
appropriatamente (tw*scale, th*scale). Calcolato una volta per scala
unica, poi ogni variante usa il suo bg_map
Benchmark rings_and_nuts (template ruota grande, 3 ruote nella scena a
dimensioni diverse):
prima: 2/3 match (persa la grande)
dopo: 3/3 match score 1.0 a scale 1.00, 0.95, 0.80
Regression:
clip→clip: 13/13 invariato (0.93s)
ring→clip FP: 3 (era 1 con bg fisso, era 10 senza bg)
compromesso ragionevole: verify_threshold=0.5 elimina gli ultimi FP
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>