Files
flywms/aggiornamento-2026-05-18-18-30.md
2026-05-19 08:52:44 +02:00

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 PerfLogWriter in 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 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.