MOD3D – un sistema per la ricostruzione tridimensionale
MOD3D è un sistema che, a partire da una sequenza di immagini di una scena,
ricostruisce gli oggetti tridimensionali presenti nella scena e scelti dall'utente nell'insieme
delle immagini.
Questa applicazione è stata sviluppata nell'ambito del progetto ENEA
"Biodiversità mediterranea". In questo progetto si aveva la necessità di
ricostruire delle formazioni subacquee biocostruite a partire da un filmato ripreso da un
operatore subacqueo.
Il tipo di ambiente da ricostruire ed il tipo e qualità delle immagini disponibili
hanno definito i vincoli sul tipo di metodologia di ricostruzione. In concreto il sistema presume
che le riprese vengano fatte in acqua e che nella scena sia presente un oggetto parallelepipedo
di riferimento.
Caratteristiche della scena da ricostruire
La scena subacquea da riprendere deve contenere un oggetto di riferimento rigorosamente
parallelepipedo, di dimensioni comparabili alle formazioni da ricostruire, e convenientemente
sollevato dal suolo. La sua posizione non deve assolutamente mutare fra immagine ed immagine e
devono esserne visibili due o tre facce in ogni immagine. Qui di seguito si riporta un esempio di
scena ricostruita in cui si vede l'oggetto di riferimento ed alcune formazioni ricostruite.
Le facce dell'oggetto di riferimento devono essere numerate (le facce laterali in senso
antiorario da 1 a 4, la faccia superiore come 6 e quella inferiore come 5) in modo da poterne
stabilirne l'orientamento senza ambiguità. Questo ordine di
numerazione è utilizzato all'interno di MOD3D e non deve essere cambiato.

Come input al processo di ricostruzione si devono avere almeno due, meglio se 10-20, immagini
a colori della scena e tutte della stessa dimensione. Le dimensioni delle immagini possono essere
qualsiasi, meglio se sono circa 800 x 600. Le immagini derivanti da una camera digitale DV hanno
lo una dimensione di 720 x 576 come stabilito dallo standard DV.
Organizzazione del lavoro
Una sessione di lavoro è suddivisa in step logici sequenziali. Seguendoli si passa
dalla selezione di una sequenza di immagini alla definizione degli oggetti da ricostruire alla
effettiva costruzione del modello tridimensionale e del suo utilizzo.
I passi di lavoro sono i seguenti:
- Scelta della sorgente delle immagini. Per iniziare il lavoro
si può sia continuare una sessione di lavoro salvata in precedenza, sia definire da dove
debbano essere caricate le immagini da selezionare ed utilizzare nel seguito del lavoro. Una
volta verificato lo stato del caricamento, si devono definire alcuni parametri globali come le
dimensioni dell'oggetto di riferimento ed alcune caratteristiche della camera utilizzata.
Da questa pagina si può anche lanciare la procedura di
calibrazione offline della camera. Questa procedura permette di calcolare i parametri
intrinseci della camera e quelli di distorsione delle sue lenti a partire da immagini di una
scacchiera piana. Si può così focalizzare l'algoritmo di calibrazione sul calcolo
della sola posizione ed orientamento della camera.
- Scelta delle immagini. A partire da una sequenza di
immagini si importano nella sessione di lavoro quelle più adatte.
- Filtraggio. Le immagini scelte vengono filtrate in modo da
mettere in risalto l'oggetto di calibrazione e le formazioni da ricostruire.
- Estrazione punti di riferimento. Con una procedura guidata
si marcano sull'immagine i vertici dell'oggetto di riferimento. Con questa informazione si
può passare alla calibrazione della camera. Si calcolano poi i parametri estrinseci
della camera, cioè la posizione della stessa rispetto al riferimento, e volendo, quelli
intrinseci, cioè le lunghezze focali.
- Verifica delle posizioni delle camere. In una scena
tridimensionale si verifica che le posizioni calcolate siano congruenti. Volendo a questo punto
si possono escludere dalla ricostruzione una o più camere e verificare i valori numerici
calcolati.
- Estrazione dei contorni degli oggetti. L'utente traccia su
ogni immagine i contorni degli oggetti che vuole ricostruire. In questo passo è anche
aiutato da una routine di snake (contorni attivi) che cerca di muovere il contorno
tracciato dall'utente verso il presumibile bordo dell'oggetto fotografato.
- Definizione del terreno. In questa fase si marcano dei punti
di riferimento sul terreno e se ne calcola la posizione nello spazio. Questi punti poi sono
utilizzati per definire una superficie che approssima il terreno reale.
- Eventuale raffinamento della calibrazione.
Questa funzionalità opzionale migliora la calibrazione delle camere sfruttando i vincoli
forniti da un oggetto visto da una coppia di camere. Il processo iterativo è molto lungo
per cui viene eseguito in un processo esterno all'applicazione.
- Creazione delle bounding box. Con le
informazioni caricate fino a questo punto il sistema calcola per ogni oggetto da ricostruire un
parallelepipedo che lo contiene. Dalla vista tridimensionale si può verificare la
bontà del calcolo.
- Ricostruzione tridimensionale. Ora con tutte le
informazioni a sua disposizione il sistema ricostruisce in tre dimensioni gli oggetti.
- Utilizzo del modello. In questa fase si possono eseguire
misurazioni sul modello ricostruito, esportare la scena 3D, importare un'altra scena 3D per
confronto e creare un file VRML per pubblicare la scena su una pagina Web, oltre a stampare la
scena o salvarla come immagine.
Comandi generali
In ogni passo sono presenti gli stessi comandi generali che si possono consultare nella pagina
dei comandi generali.
Presentazione dell'applicazione
Molte caratteristiche di aspetto dell'applicazione possono essere modificate agendo sul file
data/setup_data.v
La pagina di presentazione
La pagina di presentazione ha il solo scopo di accogliere l'utente e di visualizzare il numero
di versione corrente del software. Inoltre ci permette di indicare dove in ogni schermata
apparirà il nome del passo corrente.
Tener presente che l'interfaccia utente dell'applicazione fissa la dimensione della finestra a
1024 x 768 (valori stabiliti nel file data/setup_data.v) per evitare i problemi che si
presentano su monitors multipli.

Tecnologie e algoritmi
Alcune informazioni non strettamente indispensabili per l'uso di MOD3D, ma che facilitano la
comprensione degli algoritmi utilizzati. si trovano nelle sezioni: