ui: parametri user-friendly (tipo/simmetria/scala/precisione)

Nascosti i parametri tecnici (num_features, weak/strong_grad, spread,
pyramid) incomprensibili per operatori. Sostituiti da scelte semantiche:

- Tipo modello: intero | parziale
- Simmetria: nessuna | bilaterale (180) | rotazionale 3/4/6/8x
- Variazione scala: fissa | 10% | 25% | 50%
- Precisione: veloce 10 | normale 5 | preciso 2
- Score minimo: slider
- Max match: input

Server: nuovo endpoint POST /match_simple. Deriva tecnici via
_simple_to_technical(roi) che analizza la ROI:
- weak/strong_grad da percentili
- num_features da densita edge x tipo
- pyramid_levels da min(h,w) ROI
- spread_radius proporzionale

Frontend: select + slider, sezione Avanzate collassabile per override.

Test rings_and_nuts preset intero/nessuna/medio/normale: 3/3 ruote in 2.14s

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-24 09:56:34 +02:00
parent fd7585acc5
commit d35bb574ef
4 changed files with 322 additions and 112 deletions
+30 -7
View File
@@ -56,18 +56,41 @@ canvas {
margin-top: 6px; font-size: 12px; color: #aaa;
}
#params-form {
display: grid; grid-template-columns: 1fr 100px; gap: 4px 8px;
.field {
margin-bottom: 10px;
}
#params-form label {
font-size: 12px; display: flex; align-items: center;
.field label {
display: block; font-size: 12px; color: #b0b0b0;
margin-bottom: 3px;
}
#params-form input {
.field select, .field input {
width: 100%; background: #2a2a2a; color: #dcdcdc;
border: 1px solid #444; padding: 5px 6px; border-radius: 3px;
font-size: 12px;
}
.field input[type="range"] {
padding: 0; height: 26px;
}
.field select:focus, .field input:focus {
outline: 1px solid #00c8ff;
}
#v-score { color: #00c8ff; font-weight: bold; }
details { margin-top: 10px; font-size: 12px; }
details summary {
cursor: pointer; padding: 4px 0; color: #00c8ff;
}
#adv-form {
display: grid; grid-template-columns: 1fr 80px; gap: 3px 6px;
margin-top: 4px;
}
#adv-form label { font-size: 11px; color: #999; }
#adv-form input {
background: #2a2a2a; color: #dcdcdc; border: 1px solid #444;
padding: 4px 6px; border-radius: 3px; font-size: 12px;
padding: 3px 5px; border-radius: 3px; font-size: 11px;
width: 100%;
}
#params-form input:focus { outline: 1px solid #00c8ff; }
.kv {
display: flex; justify-content: space-between;