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

2.2 KiB

Aggiornamento 2026-05-18 19:58

Analisi benchmark

File analizzato:

Nota metodologica:

  • Il file conteneva due intestazioni (ts ...) perche' un run breve di verifica era stato appeso al run completo.
  • L'analisi e' stata fatta filtrando solo le righe con frame_id numerico.

Risultati principali

  • Frame validi: 19789
  • Snapshot: 69
  • Video sorgente: 30.0 fps
  • Durata nominale video: circa 658.3 s = 10.97 min

Benchmark completo:

  • total_loop_s = 2004.19 s
  • total_pause_s = 552.03 s
  • total_wms_s = 690.03 s
  • total_active_s = 762.13 s

Interpretazione:

  • Le pause snapshot headless valgono circa 8.0 s ciascuna.
  • L'attesa WMS simulata headless vale circa 10.0 s per snapshot.
  • Quindi il benchmark completo include ancora il comportamento demo di snapshot+attesa, solo senza finestre.

Prestazioni nette della pipeline

Togliendo pause snapshot e attesa WMS:

  • active_fps = 25.97
  • active_yolo_fps = 12.69

Tempi medi in regime stabile:

  • mean_loop_ms = 36.90
  • mean_read_ms = 6.10
  • mean_yolo_ms = 31.20
  • mean_track_ms = 0.18
  • mean_draw_ms = 0.00
  • mean_ui_ms = 0.00

Percentili:

  • loop_p50 = 33.91 ms
  • loop_p90 = 68.93 ms
  • loop_p95 = 73.14 ms
  • yolo_p50 = 27.85 ms
  • yolo_p90 = 38.05 ms
  • yolo_p95 = 46.10 ms

Confronto con la demo OpenCV

Run demo precedente:

  • demo_active_s = 1092.85 s
  • demo_draw_ui_s = 597.18 s

Run benchmark:

  • benchmark_active_s = 762.13 s
  • benchmark_draw_ui_s = 0

Risparmio netto:

  • active_s_saved = 330.72 s circa 5.51 min

Conclusione

La UI OpenCV pesava davvero molto, ma non era l'unico problema.

Tolte completamente le finestre:

  • la pipeline netta scende a circa 12.70 min
  • il video reale dura circa 10.97 min

Residuo rispetto all'obiettivo netto:

  • circa 103.8 s = 1.73 min

Questa parte residua dipende principalmente da:

  • inferenza YOLO ancora sotto il target di 15 fps
  • costo di cap.read()
  • scheduling single-thread del loop

Quindi:

  • la demo con interfaccia va ripensata per non ricadere nel costo UI attuale
  • la pipeline core, senza UI, e' ormai abbastanza vicina all'obiettivo ma non ancora coincidente con la durata del video