56 lines
1.7 KiB
Markdown
56 lines
1.7 KiB
Markdown
# 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.
|