Benvenuti alla serie di tutorial dedicati a 3DF Zephyr.
Questa pagina è dedicata all’ottimizzazione delle posizioni delle immagini (detta anche “bundle adjustment”).
Questa procedura è disponibile solo nella versione completa di 3DF Zephyr in quanto è necessario posizionare i punti di controllo (vincoli 2D o 3D) prima di poter avviare il processo di ottimizzazione.
L’ottimizzazione della posizione delle immagini (o dei parametri delle fotocamere) migliora di fatto l’iniziale risultato ottenuto dalla fase Structure from Motion, specialmente quando vengono elaborati dati immagine di bassa qualità.
L’algoritmo alla base dell’ottimizzazione fotocamere, il Bundle Adjustment, è una procedura di minimizzazione non lineare che aggiusta le posizioni dei punti della nuvola sparsa e delle fotocamere riducendo progressivamente l’errore di riproiezione dei punti stessi. In 3DF Zephyr, Questo algoritmo viene sfruttato alla fine di ogni unione, così come al termine della prima fase di Structure from Motion.
La versione completa di 3DF Zephyr permette agli utenti di avviare manualmente più ottimizzazioni, aggiungendo vincoli 2D o 3D.
Dato che il bundle adjustment agisce sui parametri interni ed esterni delle immagini, è bene ricordare che solo la nuvola di punti sparsa verrà interessata dall’ottimizzazione. Qualunque altro elemento, come ad esempio nuvole di punti dense o mesh, verranno cancellate quando il processo di ottimizzazione è completo. Ecco perché è vivamente consigliato di avviare l’ottimizzazione delle immagini dopo la generazione della nuvola di punti sparsa, e prima di generare nuvole di punti dense o mesh.
Zephyr consente di impostare l’ottimizzazione delle immagini usando uno slider che definisce il grado di confidenza che l’utente ha dei vincoli 2D/3D che ha aggiunto nel progetto. Vale la pena notare che maggiore è la confidenza assegnata ai vincoli, minore è la confidenza che Zephyr avrà nei suoi punti di vincolo. Ciò significa che se si imposta la confidenza al 99%, la precisione dei vincoli sarà molto elevata, ma a scapito della precisione nelle aree del modello 3D non interessate dai vincoli 2D/3D.
In 3DF Zephyr, il processo di ottimizzazione delle immagini si basa sull’utilizzo dei punti di controllo o dei GCP (ground control points, quindi punti di controllo con coordinate rilevate sul campo tramite strumentazione GNSS o stazione totale) come vincoli per il bundle adjustment.
Usando punti di controllo, il bundle adjustment si concentrerà solo sulle posizioni XY (vincoli 2D) dei punti per ridurre l’errore di riproiezione.
Usando i GCP, il bundle adjustment coinvolgerà anche le coordinate associate a questi ultimi (vincoli 3D), che l’utente ha precedentemente importato. Si prega di notare che anche le distanze di controllo possono essere utilizzate come vincoli 3D, e questo è valido anche per le coordinate GPS delle immagini (meglio se RTK/PPK).
Riguardo i vincoli 2D, nel menu “Strumenti” (1) basta selezionare “Spazio di lavoro” (2) e poi “Ottimizza parametri fotocamere” (3).
Apparirà la finestra “Calcola compensazione a stelle proiettive” (4).
Zephyr permette di impostare il “Peso confidenza vincoli” (5), e dopo averlo impostato, basta cliccare sul pulsante “Ok” (6).
Riguardo i vincoli 3D, basta cliccare su “Allinea modello con vincoli 3D” (7), e la finestra “Allinea usando vincoli” (8) apparirà, permettendo così di scegliere i vincoli da utilizzare per l’ottimizzazione delle immagini (punti di controllo, distanze, o coordinate immagini). Cliccare infine il pulsante “Ok” (9).
Per avviare l’ottimizzazione delle immagini, il numero minimo di punti di controllo da impostare come vincoli è 3. Tuttavia, usare un numero Maggiore di punti di controllo è fortemente consigliato perchè favorisce il lavoro dell’algoritmo di bundle adjustment e aumenta l’accurateza del risultato finale, specialmente in scenari complessi o che richiedono un’elevata precisione.
Si dovrebbe aumentare la confidenza del bundle adjustment solo nel momento in cui aumentano anche i punti di controllo aggiunti al progetto. Altrimenti, si rischiano errori rilevanti nelle aree del modello 3D che non sono interessate dai vincoli.
Si consiglia inoltre di impostare alcuni punti di controllo come vincoli – colonna “CS” nella finestra “Allinea usando vincoli” (8) – e altri come punti check – colonna “CK” nella finestra “Allinea usando vincoli” (8) – in modo che si possibile monitorare l’errore metrico sul modello 3D.
Per approfondire la differenza tra vincoli e punti check in Zephyr, è possibile fare riferimento nella sezione FAQ del manuale utente.