# 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.