IsoStereo 3D: il sistema generale ed automatizzato per

IsoStereo 3D: il sistema generale ed automatizzato
per ricostruzione tridimensionale
Isomorph srl, Giugno 2008
Caratteristiche del programma:
IsoStereo 3D elabora immagini stereoscopiche e ricostruisce la scena fotografata in tre
dimensioni.
Le fotografie di input possono essere acquisite attraverso due foto camere montate su un
supporto appropriato oppure acquisite con una foto camera stereo. Il software include
inoltre un’accurata procedura di calibrazione altamente automatizzata, che permette
anche all’utente inesperto di ottenere una ricostruzione ad alta precisione.
IsoStereo 3D è dotato di una struttura “lineare” e per questa ragione l’aggiunta di nuove
funzionalità risulta molto semplice. In futuro, per esempio, di potrà effettuare una
ricostruzione basata su un numero di videocamere maggiore di 2.
IsoStereo 3D trova applicazione in campi quali: controllo qualità, rilievi topografici / di
cantiere, reverse engineering, sorveglianza, etc.
Figura 1: Esempi di sistemi fotografici stereo.
IsoStereo 3D ricostruisce scene tridimensionali identificando elementi geometrici
(segmenti) che vengono classificati dal programma in base alle loro proprietà geometriche
e cromatiche. La ricostruzione tridimensionale avviene quindi cercando corrispondenze
non ambigue tra segmenti provenienti dall’immagine di sinistra e segmenti provenienti
dall’immagine di destra, le cui classificazioni siano compatibili. In presenza di una
corrispondenza non ambigua il programma è in grado di calcolare accuratamente la
posizione 3D del segmento in questione.
Tipicamente le due camere sono allineante l’una rispetto all’altra in direzione orizzontale.
In questo caso la posizione di rette orizzontali non può essere ricostruita. In una prossima
1
versione del programma questa limitazione sarà superata grazie all’utilizzo di una terza
videocamera.
Il programma inoltre mette a disposizione dell’utente una funzionalità per la ricostruzione
manuale di singoli punti della fotografia.
Guida rapida al programma:
1) Elaborazione delle immagini
Caricamento
All’avvio del programma l’utente può inserire due immagini di input. Nel nostro esempio
usiamo le fotografie di un modello in scala di un’abitazione, come mostrato in figura 2.
Figura 2: IsoStereo 3d Processing: due immagini stereoscopiche pronte per essere elaborate
2
Depth range (Intervallo di profondità)
Facoltativamente, l’utente può scegliere di ricostruire solo oggetti posizionati ad una certa
distanza dalle camere, come mostrato in figura 3:
Figura 3: L’intervallo di profondità permette all’utente di ricostruire solo oggetti che stanno ad una certa
distanza ed escludere eventuali altri oggetti
Elaborate (Elaborazione)
Attraverso il pulsante “Elaborate”, l’utente può dare inizio alla fase di elaborazione delle
immagini. Il programma impiegherà tipicamente 3 secondi per l’elaborazione di immagini
con risoluzione 640*480 pixels utilizzando un PC Pentium 4 a 3 GHz e 1 GB di RAM.
Tutte le strutture non orizzontali presenti nell’immagine verranno ricostruire (dal momento
che le fotocamere hanno uno spiazzamento orizzontale) e saranno presentate all’utente
sottoforma di linee verdi sovrapposte all’immagine, come mostrato in figura 4. Il
programma visualizza invece come linee nere, quelle strutture che non sono state
ricostruite automaticamente (per esempio a causa di vincoli imposti dall’intervallo di
profondità).
Figure 4: Interfaccia di Analisi.
3
2) Analysis of the Images
Posizione degli oggetti nello spazio 3D
Quando l’utente fa click su una delle linee ricostruite, il programma visualizzerà la
posizione 3D del punto selezionato. La visualizzazione avverrà in formato testo nel
riquadro in basso dell’interfaccia di analisi (figura 5):
B
A
Figura 5: L’utente ispeziona la posizione 3D di un oggetto ricostruito
Quando è stato selezionando un punto nell’immagine di sinistra, verrà visualizzato (in
viola) anche il segmento a cui il punto appartiene. Nella figura sopra, questo segmento è
denominato “A”. Nel riquadro destro dell’interfaccia invece, il programma visualizza in
rosso il segmento “B” proveniente dall’altra immagine, a cui “A” è stato associato durante
la fase di elaborazione.
L’utente può quindi verificare manualmente la correttezza dell’associazione tra “A” e “B”.
Esistono scene dove una ricostruzione non-ambigua non è matematicamente possibile
(con solo due camere). Se l’utente trova che un segmento è stato associato
erroneamente, può correggerlo in modo manuale semplicemente trascinando il segmento
nell’immagine di destra alla posizione corretta. A quel punto il programma fornirà la la
nuova posizione 3D.
La figura 6 mostra il sistema di coordinate 3d usato per esprimere la posizione di un punto.
Le coordinate X, Y e Z sono espresse in millimetri.
4
Figure 6: Il sistema di coordinate 3d usato dal programma ha origine nel punto focale della fotocamera di
sinistra.
5
Calculate Distance (Distanza fra due punti)
Questa funzionalità permette di calcolare la distanza in millimetri tra due punti ricostruiti
(quindi colorati in verde) selezionati dall’utente.
Figura 7: distanza tra due punti.
Come in precedenza, il risultato del calcolo viene visualizzato nella parte inferiore
dell’interfaccia.
6
Choosing single points (Ricostruzione di singoli punti)
Attraverso questa funzionalità l’utente può ricostruire manualmente la posizione 3D di
singoli punti presenti nell’immagine. Questo è possibile selezionando con un click il punto
che si vuol ricostruire nel riquadro di sinistra e selezionando il punto corrispondente nel
riquadro di destra. Per garantire la più alta precisione possibile, il programma presenterà
all’utente un insieme delle possibili corrispondenze nell’immagine di destra (visualizzati
attraverso una linee viola). Questa procedura è mostrata in figura 8.
Left image
point
Selection of the corresponding
point in the right image
Figura 8: selezionando un singolo punto nel riquadro a sinistra, il programma mostrerà una lista di possibili
corrispondenze nell’immagine di destra. Quando l’utente effettua la selezione il programma ricostruirà la
posizione 3d del punto selezionato.
7
3) Calibrazione delle fotocamere
La procedura di calibrazione consiste nel fotografare una scacchiera da diverse posizioni e
angolature, come mostrato in figura 10:
Figura 10: una scacchiera viene fotografa in diverse posizioni e angolature
Figura 11: ricostruzione dei vertici della scacchiera
Il programma effettuerà l’identificazione dei vertici nelle immagini di calibrazione in modo
del tutto automatico. L’utente può verificare la correttezza della ricostruzione. Questa
procedure
si
appoggia
sulla
libreria
OpenCV
Calibration
Module
(
www.intel.com/technology/computing/opencv/ ) che è inclusa nel software IsoStereo 3D.
8