2.2 KiB
2.2 KiB
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
PerfLogWriterin flywms_navigation.py con:- bufferizzazione in memoria
- flush periodico a tempo
- flush per numero di righe
- Nuovi parametri INI/CLI:
perf_log_pathperf_log_flush_interval_secperf_log_flush_lines
- Il file di default e'
tempistiche.txt. - Per ogni frame vengono scritte colonne TSV con:
read_msyolo_mstrack_msdraw_msui_mssnapshot_pause_mswms_wait_msloop_msloop_fpsyolo_real_fps- conteggi oggetti/track/snapshot
- ultimo comando navigazione
- La finestra principale
flywms navigatenon 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 per il nuovo renderer alleggerito e per il costruttore
UltralyticsDetector(..., yolo_half).
Verifica
Compilazione:
python -m py_compile flywms_navigation.py flywms_navigation_gui.py
Run di test:
python flywms_navigation.py --no-display --max-frames 20 --perf-log-path tempistiche-test.txt
Prime righe del log:
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.