Adriano
075b014bd7
perf: piramide al training, refinement sub-step, multithreading
...
LineShapeMatcher:
- Feature piramidate precomputate al training (_LevelFeatures per livello
piramide, dedup risolto una volta)
- Refinement angolare: 5 offset ±step/2 + parabolic fit → precisione ~0.5°
con angle_step=5° (10x fine rispetto a step training)
- Subpixel posizione: parabolic fit 2D sul picco → frazione pixel
- Multithreading: n_threads auto=CPU-1, parallelizza top-level pruning e
full-res matching tramite ThreadPoolExecutor (numpy/cv2 rilasciano GIL)
GUI:
- Dialog edit_params con bottone Auto-tune
- Legenda numerata match con pallino colore (#i, coords, angle, scala, score)
- Hotkey finestra: r=params, o=nuovo ROI, m=nuovo modello, s=nuova scena
- Pannello con train/find time + HOTKEY in basso
auto_tune.py:
- Analisi template: soglie grad da percentili, num_features da densità
edge, pyramid_levels da min_side, min_score da entropia orientation,
rilevazione simmetria rotazionale (soglia 0.75 NCC su magnitude)
Benchmark clip.png (13 istanze, 72 varianti angolari):
prima: 5.84s, precisione 5° (step training)
ora: 1.67s, precisione ~0.5°, subpixel posizione
speed-up: 3.5x, precisione angolare 10x
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 01:22:56 +02:00
Adriano
b9a4d51fac
feat: PM2D standalone shape-based matcher
...
Programma standalone Pattern Matching 2D con GUI cv2/tk + algoritmo
puro riusabile. Due backend:
- LineShapeMatcher (default): porting Python di line2Dup (linemod-style)
- Gradient orientation quantized 8-bin modulo π + spreading
- Feature sparse top-magnitude con spacing minimo
- Score via shift-add vettorizzato numpy (O(N_features·H·W))
- Piramide multi-risoluzione con pruning varianti al top-level
- Supporto mask binaria per modello non-rettangolare
- EdgeShapeMatcher (fallback): Canny + matchTemplate multi-rotazione
GUI separata da algoritmo. Benchmark clip.png (13 istanze):
- Edge backend: 84s, 6/13 score ~0.3
- Line backend: 4.1s, 13/13 score 0.98-1.00
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-24 00:46:59 +02:00