Files
Shape_Model_2D/ROADMAP.md
T

77 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.