Tutorial #A10 – Compensazione a stelle proiettive (bundle adjustment)

Compensazione a stelle proiettive

 

Benvenuti alla serie di tutorial dedicati a 3DF Zephyr
Questa pagina spiega è dedicata alla compensazione a stelle proiettive.
L’utilizzo della compensazione a stelle proiettive come passo aggiuntivo è disponibile unicamente in 3DF Zephyr Pro e 3DF Zephyr Aerial poichè è necessario l’utilizzo di punti di controllo, siano essi dalle immagini (vincoli 2D) o come informazione 3D (per esempio da punti di controllo a terra o con stazione totale)

 

  • Cos’è la compensazione a stelle proiettive?

La compensazione a stelle proiettive (o bundle adjustment) è una procedura di minimizzazione non lineare dell’errore che permette di aggiustare i punti e le camere minimizzando l’errore di riproiezione. Questa procedura viene eseguita automaticamente alla fine di ogni procedura di fusione con tutti i punti e le fotocamere e alla fine della procedura di structure from motion.
3DF Zephyr Pro e Aerial consentono di lanciare ulteriori processi di bundle adjustment utilizzando in input dei vincoli, siano essi 2D o 3D.
E’ importante notare che poichè la compensazione a stelle proiettive lavora sui parametri interni ed esterni delle fotocamere, solamente la nuvola di punti sparsi verrà modificata. Ogni altro elemento già presente nello spazio di lavoro, siano essi nuvole dense o mesh, non verrà minimamente influenzato da questa procedura. E’ pertanto consigliabile lanciare questa procedura dopo aver generato la sparsa, e di procedere alla generazione della densa solamente quando l’orientamento delle camere è soddisfacente.
Zephyr fornisce uno slider per controllare in maniera semplice il processo di compensazione a stelle proiettive semplicemente indicanto la fiducia dei vincoli utilizzati. E’ importante sottolineare come aumentare la fiducia nei vincoli, implica quindi minor confidenza da parte di zephyr nei punti generati automaticamente.
 

  • Ottimizza parametri fotocamere

Questa opzione utilizza unicamente i punti di controllo 2D come vincoli per il bundle adjustment. Questa è una procedura più debole rispetto all’utilizzo di vincoli 3D.
Dal menu “Strumenti” (1) seleziona “Spazio di lavoro” (2) e poi “Ottimizza parametri fotocamere” (3).
Verrà visualizzata la finestra “Calcola compensazione a stelle proiettive” (4).
Zephyr ti permette di scegliere il “Peso confidenza vincoli” (5) e, quando hai fatto, clicca su ““Ok” (6).
 

  • Scala modello con punti di controllo

L’utilizzo di vincoli 3D permetterà di guidare il processo di ricostruzione verso la soluzione corretta. E’ possibile lanciare una compensazione a stelle proiettive nel momento in cui si scala il modello con punti di controllo. Fai semplicemente click su “Allinea modello con vincoli 3D” (7).
Apparirà la finestra “Allinea i punti di controllo e le posizioni delle fotocamere” (8) e permetterà di scegliere vincoli e punti di controllo. Quando sei pronto fai click su “Ok” (9).
Il numero minimo di punti di controllo richiesti come vincolo è 3, tuttavia è molto consigliato l’utilizzo di un maggior numero di punti, soprattutto quando l’accuratezza è importante.
Assicuratevi di aumentare il valore dello slider unicamente quando aumentate congruamente il numero di punti di controllo usati come vincoli, altrimenti la geometria finale avrà solamente i punti generati in prossimità ai punti di controllo con un basso residuo.
Un utilizzo tipico di questa funzione, è la correzione di errori di “drifting”, in cui un lieve errore viene sommato fino a rendere “curva” una soluzione planare. Tipicamente, questo problema si pone quando si utilizzano lenti con una distorsione radiale molto pronunciata (per esempio fisheye).
Infine, assicuratevi di usare sempre un numero congruo di punti di controllo, e di usarne alcuni solo come vincoli ed altri solo come controllo, in modo da verificare con i residui la qualità (ed il miglioramento) della ricostruzione.
Impostare la confidenza dei vincoli al 99% (o valori simili) è generalmente una cattiva idea.