Bundle adjustment
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 (eccetto le versioni Lite e Free) consente 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.
- Utilizzo del menu “Spazio di Lavoro > 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.
- Utilizzo del bottone “Allinea modello con Vincoli 3D”
Analogamente, è possibile lanciare una compensazione a stelle proiettive nel momento in cui si scala il modello con punti di controllo. L’utilizzo di vincoli 3D permetterà di guidare il processo di ricostruzione verso la soluzione corretta.
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.