68 lines
2.2 KiB
Markdown
68 lines
2.2 KiB
Markdown
# Aggiornamento 2026-05-18 18:30
|
|
|
|
## Obiettivo
|
|
|
|
Registrare in un file dedicato le tempistiche dettagliate della pipeline, riducendo allo stesso tempo il costo della preview principale spostando la telemetria fuori dall'overlay.
|
|
|
|
## Modifiche
|
|
|
|
- Aggiunta classe `PerfLogWriter` in [flywms_navigation.py](C:/devel/flywms/flywms_navigation.py) con:
|
|
- bufferizzazione in memoria
|
|
- flush periodico a tempo
|
|
- flush per numero di righe
|
|
- Nuovi parametri INI/CLI:
|
|
- `perf_log_path`
|
|
- `perf_log_flush_interval_sec`
|
|
- `perf_log_flush_lines`
|
|
- Il file di default e' `tempistiche.txt`.
|
|
- Per ogni frame vengono scritte colonne TSV con:
|
|
- `read_ms`
|
|
- `yolo_ms`
|
|
- `track_ms`
|
|
- `draw_ms`
|
|
- `ui_ms`
|
|
- `snapshot_pause_ms`
|
|
- `wms_wait_ms`
|
|
- `loop_ms`
|
|
- `loop_fps`
|
|
- `yolo_real_fps`
|
|
- conteggi oggetti/track/snapshot
|
|
- ultimo comando navigazione
|
|
- La finestra principale `flywms navigate` non disegna piu':
|
|
- riga FPS/metriche
|
|
- ultimo comando
|
|
- testo sopra i bbox dei gaylord
|
|
- testo sopra i bbox etichetta
|
|
- Restano nella preview principale:
|
|
- bbox
|
|
- centri
|
|
- fascia utile
|
|
- freccia di movimento simulato
|
|
- Aggiornata anche [flywms_navigation_gui.py](C:/devel/flywms/flywms_navigation_gui.py) per il nuovo renderer alleggerito e per il costruttore `UltralyticsDetector(..., yolo_half)`.
|
|
|
|
## Verifica
|
|
|
|
Compilazione:
|
|
|
|
```powershell
|
|
python -m py_compile flywms_navigation.py flywms_navigation_gui.py
|
|
```
|
|
|
|
Run di test:
|
|
|
|
```powershell
|
|
python flywms_navigation.py --no-display --max-frames 20 --perf-log-path tempistiche-test.txt
|
|
```
|
|
|
|
Prime righe del log:
|
|
|
|
```text
|
|
ts frame_id run_yolo read_ms yolo_ms track_ms draw_ms ui_ms snapshot_pause_ms wms_wait_ms loop_ms loop_fps yolo_real_fps src_fps preview_target yolo_target det labels tracks active snapshots command
|
|
2026-05-18 18:31:14 1 1 39.710 10065.399 0.106 0.000 0.000 0.000 0.000 10150.452 0.099 0.099 30.0 24.0 15.0 2 2 2 2 0 ""
|
|
2026-05-18 18:31:14 2 1 7.376 38.036 0.222 0.000 0.000 0.000 0.000 47.984 0.196 0.196 30.0 24.0 15.0 2 2 2 2 0 ""
|
|
```
|
|
|
|
## Nota
|
|
|
|
Nel test headless `draw_ms` e `ui_ms` sono giustamente nulli. Nel run reale con finestre aperte il file `tempistiche.txt` mostrera' il costo della parte grafica e delle pause simulate, che e' proprio quello che ci serve per capire dove si perde il target FPS.
|