Files
Shape_Model_2D/ROADMAP.md
T

4.1 KiB
Raw Blame History

Roadmap - Possibili Sviluppi

Lista ragionata di miglioramenti futuri. Priorità = impatto / effort, non urgenza temporale.

Performance CPU

Sviluppo Effort Speed-up atteso Dipendenze Priorità
Numba JIT su _score_by_shift basso 3-5× numba (~200MB) alta
Numba JIT su _response_map basso 2-3× numba alta
FFT-based score per varianti dense medio 2× su template grandi scipy media
Rewrite _score_by_shift in Cython alto 5-8× cython build bassa
SIMD via pypy runtime medio 2-4× pypy interpreter bassa (dipendenza runtime)
Memory layout: struct-of-arrays compatto int8 medio 1.5× (cache) - media

Performance GPU

Sviluppo Effort Speed-up atteso Dipendenze Priorità
Backend CuPy per _score_by_shift + _response_map medio 5-10× cupy-cuda12x (~600MB) alta
Kernel CUDA custom (Numba CUDA o RawKernel) medio-alto 10-20× numba-cuda / cupy media
PyTorch backend (conv2d per feature dense) basso-medio 3-8× torch (~2GB) bassa
OpenCV CUDA (build custom) altissimo 5× build da sorgenti bassa
Multi-GPU matching (scene partitioning) alto N× - bassa

Algoritmiche

Sviluppo Effort Beneficio Priorità
Coarse-to-fine angolare (top-level step grosso, full step fine) medio 3-5× velocità con stesso precisione alta
Linear memory linemod (meiqua) alto 10× match, -memoria media
NMS cross-variant (dedup pose simili tra angoli/scale) basso meno duplicati alta
ICP pose refinement sub-pixel medio <0.1 px precisione media
Score calibrato probabilistico medio soglia adattiva media
Rilevazione simmetria rotazionale robusta medio angle_range auto ridotto alta
Template piramidato con feature per livello fatto -
Refinement angolare sub-step fatto -
Subpixel posizione (parabolic fit) fatto -
Multi-template support (modello con varianti) medio generalizzazione media
Confidence ellipse (uncertainty quantification) basso diagnostic bassa

Feature di prodotto

Sviluppo Effort Beneficio Priorità
Supporto DXF (tassellazione + rasterizzazione via ezdxf) medio input CAD alta
ROI poligonale (non rettangolare) nella GUI basso modello parziale preciso alta
Analisi distintività modello (entropia, self-corr) nella UI basso warning al training media
Salvataggio/caricamento modello .npz con thumbnail basso ricette riusabili alta
Batch matching su cartella scene basso throughput offline media
Esportazione JSON risultati per integrazione basso pipeline alta
Live camera matching (webcam) basso-medio demo bassa
REST API wrapper (FastAPI) medio integrazione Vision Suite media
NATS messaging (per Vision Suite) medio microservizio bassa
Web UI (Gradio o React) sostituiva di tk/cv2 alto deploy remoto media
Benchmark suite automatica con GT labels medio non-regression alta

Qualità codice

Sviluppo Effort Beneficio Priorità
Unit test (pytest) con dataset sintetico basso robustezza alta
Type annotations complete + mypy strict basso manutenibilità media
CI GitHub Actions: lint + test + build medio qualità PR media
Profiling automatico baseline + regression check medio evitare lentezze bassa
Packaging pip (pip install pm2d) basso distribuzione bassa

Target performance produzione

Obiettivi da documento tecnico Vision Suite (Fase Beta):

  • Precisione posizionale mediana: <0.5 px → raggiunto con subpixel (attualmente ~0.1-0.3 px atteso)
  • Precisione angolare mediana: <1.0° → raggiunto con refinement (~0.5°)
  • Latency mediana: <50 ms su 1920×1080 → attuale ~1.7s su 830×822 (serve GPU o ulteriore CPU)
  • F1 score dataset sintetico: >0.95 → da misurare con dataset sintetico

Prossimo blocker per target: latency. Via più promettente: GPU (CuPy) o coarse-to-fine angolare.