454 lines
15 KiB
INI
454 lines
15 KiB
INI
[navigation]
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: sorgente video usata per simulare la camera del drone.
|
|
; Se vuoto o "none", usa webcam 0.
|
|
; Default se non indicato: testhd.mp4
|
|
video = testhd2_edit.mp4
|
|
|
|
; OBBLIGATORIO: si.
|
|
; Ruolo: modello Ultralytics/YOLO moderno usato per rilevare gaylord ed etichette.
|
|
; Default se non indicato: C:\devel\flywms\runs\flywms_yolo11n_quick20\weights\best.pt
|
|
weights = C:\devel\flywms\runs\flywms_yolo11n_quick20\weights\best.pt
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: device usato da Ultralytics. Usa "cpu" per forzare CPU; con GPU compatibile usare "0".
|
|
; Default se non indicato: cpu
|
|
ultralytics_device = 0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: dimensione input YOLO. 640 e' il valore usato nel training rapido.
|
|
; Default se non indicato: 640
|
|
input_size = 640
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: confidenza minima delle detection accettate dal detector.
|
|
; Default se non indicato: 0.25
|
|
min_confidence = 0.25
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: classe tracciata dalla navigazione. Le altre detection non entrano nel tracker.
|
|
; Default se non indicato: gaylord
|
|
target_class = gaylord
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: classe etichetta associata al gaylord centrato.
|
|
; Il bbox etichetta viene accettato solo se e' contenuto nel bbox del gaylord.
|
|
; Default se non indicato: etichetta
|
|
label_class = etichetta
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: numero massimo di frame in cui una track puo' non essere vista prima di essere rimossa.
|
|
; Default se non indicato: 8
|
|
max_track_missed = 8
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: soglia minima dello score che associa una detection a una track esistente.
|
|
; Default se non indicato: 0.25
|
|
min_match_score = 0.25
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: distanza massima ammessa tra centri bbox, espressa come frazione della larghezza frame.
|
|
; Default se non indicato: 0.18
|
|
max_center_distance_ratio = 0.18
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: mezza ampiezza della fascia azzurra di avvicinamento al centro.
|
|
; Non fa scattare la foto: indica solo che la track e' candidata.
|
|
; Default se non indicato: 0.18
|
|
center_tolerance_ratio = 0.18
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: tolleranza stretta dalla linea verticale centrale per scattare la foto.
|
|
; La foto parte quando il centro bbox e' entro questa soglia.
|
|
; Default se non indicato: 0.035
|
|
snapshot_line_tolerance_ratio = 0.035
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: limite verticale superiore della fascia utile della scaffalatura.
|
|
; Default se non indicato: 0.15
|
|
usable_y_min_ratio = 0.15
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: limite verticale inferiore della fascia utile della scaffalatura.
|
|
; Default se non indicato: 0.85
|
|
usable_y_max_ratio = 0.85
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: numero minimo di detection confermate prima di considerare affidabile una track.
|
|
; Default se non indicato: 3
|
|
min_track_hits = 3
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: area minima del bbox gaylord rispetto all'intero frame.
|
|
; Serve a ignorare oggetti troppo lontani/piccoli.
|
|
; Default se non indicato: 0.02
|
|
min_gaylord_area_ratio = 0.02
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: margine da bordo immagine per considerare un bbox tagliato.
|
|
; 0 disabilita questo filtro, utile con il video manuale di test.
|
|
; Default se non indicato: 0.0
|
|
edge_margin_ratio = 0.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: padding aggiunto al bbox centrale prima di salvare il crop inviato all'OCR remoto.
|
|
; Default se non indicato: 0.03
|
|
ocr_payload_pad_ratio = 0.03
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: padding aggiunto al bbox etichetta prima di salvare il crop inviato all'OCR remoto.
|
|
; Default se non indicato: 0.20
|
|
label_payload_pad_ratio = 0.20
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: trend minimo dell'area bbox negli ultimi frame. Valori negativi tollerano leggera uscita.
|
|
; Default se non indicato: -0.35
|
|
min_area_trend = -0.35
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: numero di candidati da valutare prima dello snapshot.
|
|
; 1 significa: scatta subito quando il centro tocca la linea.
|
|
; Default se non indicato: 1
|
|
snapshot_window_frames = 1
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: directory dove salvare frame debug, crop OCR e snapshots.jsonl.
|
|
; Default se non indicato: navigate_snapshots
|
|
snapshot_output_dir = navigate_snapshots
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: tempo massimo con cui il drone attende OCR remoto + verifica WMS.
|
|
; Con PaddleOCR il primo avvio del worker puo' richiedere alcuni secondi.
|
|
; Default se non indicato: 2.0
|
|
remote_ack_timeout_sec = 3.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: risposta remota simulata. Valori: always-ack, always-nack, alternate.
|
|
; Default se non indicato: always-ack
|
|
remote_ack_mode = always-ack
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, invia realmente il payload etichetta al server WMS demo via HTTP.
|
|
; Se false, mantiene la risposta remota simulata locale.
|
|
; Default se non indicato: false
|
|
wms_enabled = false
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: endpoint HTTP del server WMS demo, anche su altro PC.
|
|
; Esempio rete: http://192.168.1.50:8088/api/v1/navigation-snapshot
|
|
; Default se non indicato: http://127.0.0.1:8088/api/v1/navigation-snapshot
|
|
wms_server_url = http://127.0.0.1:8088/api/v1/navigation-snapshot
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: identificativo del client/drone demo mandato nei metadati.
|
|
; Default se non indicato: flywms-demo-01
|
|
wms_client_id = flywms-demo-01
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: timeout HTTP del worker WMS, in secondi.
|
|
; Deve essere maggiore del tempo OCR server; con PaddleOCR fast caldo circa 3s, primo avvio circa 8-10s.
|
|
; Default se non indicato: 2.0
|
|
wms_timeout_sec = 12.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: numero massimo di snapshot in coda verso il WMS.
|
|
; Default se non indicato: 8
|
|
wms_queue_max_size = 8
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, oltre al crop etichetta invia anche il frame/debug gaylord.
|
|
; Default se non indicato: true
|
|
wms_send_gaylord_debug = true
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: host su cui il server WMS demo FastAPI resta in ascolto.
|
|
; 0.0.0.0 consente connessioni da altri PC della rete.
|
|
; Default se non indicato: 0.0.0.0
|
|
wms_server_host = 0.0.0.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: porta del server WMS demo FastAPI.
|
|
; Default se non indicato: 8088
|
|
wms_server_port = 8088
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: directory in cui il server salva immagini e metadati ricevuti.
|
|
; Default se non indicato: wms_received
|
|
wms_received_dir = wms_received
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: risposta simulata server. Valori: always-ack, always-nack, alternate, random.
|
|
; Default se non indicato: always-ack
|
|
wms_fake_ack_mode = always-ack
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: ritardo finto del server per simulare OCR/WMS.
|
|
; Default se non indicato: 0.5
|
|
wms_fake_processing_sec = 0.5
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, il server WMS demo apre le finestre OpenCV immagine/payload.
|
|
; Default se non indicato: true
|
|
wms_ui_enabled = true
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, il server prova OCR reale sul crop etichetta.
|
|
; Default se non indicato: true
|
|
wms_ocr_enabled = true
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: motore OCR server. Valori: paddleocr, easyocr, tesseract, fake.
|
|
; Default se non indicato: paddleocr
|
|
wms_ocr_mode = paddleocr
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: Python del virtualenv isolato usato dal worker PaddleOCR.
|
|
; Default se non indicato: C:\devel\yolo-ocr\.venv-paddle-cpu\Scripts\python.exe
|
|
wms_paddle_python = C:\devel\yolo-ocr\.venv-paddle-cpu\Scripts\python.exe
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: script worker PaddleOCR persistente.
|
|
; Default se non indicato: flywms_paddleocr_worker.py nella cartella flywms.
|
|
wms_paddle_worker_script = C:\devel\flywms\flywms_paddleocr_worker.py
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: altezze a cui ridimensionare il crop etichetta prima dell'OCR.
|
|
; Per demo 96 e' la configurazione leggera. Per debug: 64,96,128.
|
|
; Default se non indicato: 96
|
|
wms_paddle_target_heights = 96
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: quante varianti preprocessing usare nel worker PaddleOCR.
|
|
; Valori: fast, balanced, full.
|
|
; fast usa originale, CLAHE, CLAHE+sharpen ed e' il default per il server demo.
|
|
; Default se non indicato: fast
|
|
wms_paddle_variant_set = fast
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: numero di cifre atteso nel codice UDC.
|
|
; Default se non indicato: 6
|
|
wms_paddle_expected_digits = 6
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: numero minimo di varianti OCR che devono concordare sul codice.
|
|
; Default se non indicato: 2
|
|
wms_paddle_min_votes = 2
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: confidenza minima del candidato PaddleOCR scelto.
|
|
; Default se non indicato: 0.70
|
|
wms_paddle_min_confidence = 0.70
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: prefisso del codice fallback se OCR reale non legge nulla.
|
|
; Default se non indicato: UDC
|
|
wms_fake_ocr_prefix = UDC
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: testo restituito quando OCR non determina il codice reale.
|
|
; Default se non indicato: udc non determinato
|
|
wms_undetermined_code_text = udc non determinato
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: ritardo finto OCR/fallback in secondi.
|
|
; Default se non indicato: 0.2
|
|
wms_fake_ocr_delay_sec = 0.2
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: operatore/drone simulato registrato nel payload WMS.
|
|
; Default se non indicato: udrone
|
|
wms_operator = udrone
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: sito/magazzino simulato registrato nel payload WMS.
|
|
; Default se non indicato: demo-magazzino
|
|
wms_site = demo-magazzino
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: durata simulata del movimento drone dal centro gaylord al centro etichetta.
|
|
; Default se non indicato: 3.0
|
|
label_move_sec = 3.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: attesa simulata per stabilizzare la foto ravvicinata dell'etichetta.
|
|
; Default se non indicato: 2.0
|
|
label_stabilization_sec = 2.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: durata simulata del ritorno dal centro etichetta al centro gaylord.
|
|
; Default se non indicato: 3.0
|
|
label_return_sec = 3.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: direzione simulata di ripartenza dopo ACK. Valori: destra, sinistra.
|
|
; Default se non indicato: destra
|
|
scan_direction = destra
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: larghezza massima delle finestre video di debug.
|
|
; Default se non indicato: 1280
|
|
preview_width = 1280
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: profilo benchmark senza finestre OpenCV.
|
|
; Se true forza no_display e usa benchmark_preview_fps come target di cattura/preview.
|
|
; Default se non indicato: false
|
|
benchmark_mode = false
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: FPS target di cattura/preview per il profilo benchmark.
|
|
; Default se non indicato: 30.0
|
|
benchmark_preview_fps = 30.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, il video di test viene riprodotto rispettando il framerate originale.
|
|
; Default se non indicato: true
|
|
realtime_playback = true
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: FPS massimo per lettura/preview realtime. 0 usa il framerate della sorgente.
|
|
; Con video registrati puo' essere usato per simulare una preview piu' lenta, es. 24 fps.
|
|
; Con webcam/camere viene anche richiesto al driver, ma non tutti i driver rispettano il valore.
|
|
; Default se non indicato: 24.0
|
|
preview_fps = 24.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, usa FP16/half precision per YOLO quando gira su GPU.
|
|
; Su CPU viene ignorato automaticamente.
|
|
; Default se non indicato: true
|
|
yolo_half = true
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: FPS massimo per inferenza YOLO. 0 esegue YOLO su ogni frame di preview.
|
|
; Nei frame intermedi la preview continua usando l'ultimo stato di tracking disponibile.
|
|
; Default se non indicato: 15.0
|
|
yolo_fps = 15.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, la frequenza YOLO viene adattata allo stato delle track.
|
|
; Default se non indicato: true
|
|
adaptive_yolo_enabled = false
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: FPS YOLO quando non ci sono track attive.
|
|
; Default se non indicato: 8.0
|
|
idle_yolo_fps = 8.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: FPS YOLO quando ci sono track attive ma nessuna e' ancora critica.
|
|
; Default se non indicato: 12.0
|
|
tracking_yolo_fps = 12.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: FPS YOLO quando una track e' in stato candidate/centered.
|
|
; Default se non indicato: 15.0
|
|
critical_yolo_fps = 15.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: massimo numero di frame da processare. 0 significa tutto il video.
|
|
; Default se non indicato: 0
|
|
max_frames = 0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: ogni quanti secondi stampare statistiche nel terminale.
|
|
; Default se non indicato: 2.0
|
|
stats_interval = 2.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: file di log delle tempistiche dettagliate per frame.
|
|
; Default se non indicato: tempistiche.txt
|
|
perf_log_path = tempistiche.txt
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: intervallo massimo tra due flush del file di tempistiche.
|
|
; Default se non indicato: 2.0
|
|
perf_log_flush_interval_sec = 2.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: numero di righe bufferizzate prima del flush del file di tempistiche.
|
|
; Default se non indicato: 120
|
|
perf_log_flush_lines = 120
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: ogni quanti frame aggiornare il moto apparente stimato dalle track.
|
|
; Default se non indicato: 5
|
|
motion_report_interval = 5
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: movimento medio minimo in pixel per dichiarare destra/sinistra/su/giu.
|
|
; Default se non indicato: 1.5
|
|
motion_min_pixels = 1.5
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, logga nel terminale lo stato delle track e i motivi di non scatto.
|
|
; Default se non indicato: true
|
|
debug_tracks = true
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: intensita' del flash visuale simulato al momento dello scatto, da 0 a 1.
|
|
; Default se non indicato: 0.70
|
|
flash_alpha = 0.70
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, disabilita tutte le finestre video. Usarlo solo per test headless.
|
|
; Default se non indicato: false
|
|
no_display = false
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, avvia la pubblicazione dei dati verso un observer esterno su socket locale.
|
|
; Quando attivo, il core disabilita la UI OpenCV integrata per non rallentare la demo.
|
|
; Default se non indicato: false
|
|
observer_enabled = false
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: host TCP del publisher observer.
|
|
; Default se non indicato: 127.0.0.1
|
|
observer_host = 127.0.0.1
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: porta TCP del publisher observer.
|
|
; Default se non indicato: 8765
|
|
observer_port = 8765
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: FPS massimi della preview inviata all'observer. Tenere basso per non pesare sul core.
|
|
; Default se non indicato: 4.0
|
|
observer_preview_fps = 4.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: larghezza massima della preview inviata all'observer.
|
|
; Default se non indicato: 960
|
|
observer_preview_width = 960
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: qualita' JPEG delle preview inviate all'observer.
|
|
; Default se non indicato: 75
|
|
observer_jpeg_quality = 75
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: frequenza della telemetria inviata all'observer.
|
|
; Default se non indicato: 8.0
|
|
observer_telemetry_fps = 8.0
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: se true, posiziona e ridimensiona le finestre OpenCV usando i valori sotto.
|
|
; Formato finestre: x,y,width,height
|
|
; Default se non indicato: true
|
|
window_layout_enabled = true
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: posizione finestra principale con tracking gaylord/etichetta.
|
|
navigate_window = 20,40,1100,620
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: posizione finestra comandi e indicatori movimento.
|
|
commands_window = 1140,40,760,520
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: posizione finestra snapshot gaylord.
|
|
snapshot_window = 1140,590,520,360
|
|
|
|
; OBBLIGATORIO: no.
|
|
; Ruolo: posizione finestra crop etichetta.
|
|
label_window = 1140,980,520,260
|