External observer with OpenCV UI baseline

This commit is contained in:
administrator
2026-06-03 15:28:27 +02:00
parent f728524ee6
commit e86c05a885
9 changed files with 1375 additions and 47 deletions

View File

@@ -0,0 +1,55 @@
# Step 3 - Inferenza adattiva
## Obiettivo
Ridurre il tempo totale della demo senza cambiare modello o logica di missione, variando la frequenza di YOLO in base al contesto invece di usare un solo valore fisso.
## Principio
L'inferenza non deve avere sempre lo stesso ritmo.
Ci sono tre situazioni principali:
1. **scansione tranquilla**
- nessuna track attiva
- nessun target interessante vicino alla zona utile
- YOLO puo' girare piu' lentamente
2. **tracciamento normale**
- una o piu' track attive
- target presenti ma non ancora in fase critica
- YOLO gira a frequenza intermedia
3. **fase critica / near snapshot**
- track in stato `candidate` o `centered`
- target vicino alla linea di snapshot
- YOLO gira a frequenza alta
## Regole iniziali
Versione conservativa:
- nessuna track attiva -> `idle_yolo_fps`
- track attive ma nessuna `candidate/centered` -> `tracking_yolo_fps`
- almeno una `candidate/centered` -> `critical_yolo_fps`
Queste regole usano lo stato gia' prodotto dal tracker e dal `NavigationController`, quindi non introducono nuova logica semantica invasiva.
## Vincoli
- la frequenza adattiva non deve scendere troppo, altrimenti si rischia di ritardare il riaggancio del target;
- la frequenza critica non deve superare in modo aggressivo la capacita' reale della macchina;
- il comportamento deve restare deterministico e leggibile nei log.
## Configurazione proposta
- `adaptive_yolo_enabled`
- `idle_yolo_fps`
- `tracking_yolo_fps`
- `critical_yolo_fps`
## Criterio di successo
1. ridurre la durata netta della demo;
2. non peggiorare visibilmente il comportamento di tracking/snapshot;
3. mantenere il codice semplice e facilmente spegnibile.