Ricostruzione 3D da immagini non rettificate

POLITECNICO DI MILANO
Facoltà di Ingegneria Industriale
Corso di Laurea in
Ingegneria Meccanica
SVILUPPO E QUALIFICAZIONE DI UN SISTEMA DI VISIONE PER
LA RICOSTRUZIONE TRIDIMENSIONALE DI OGGETTI
Relatore:
Prof. Emanuele Zappa
Tesi di Laurea di:
Stefano DALL’OLIO
Matr. 739594
Anno Accademico 2009 – 2010
Alla mia famiglia e a Federica.
Ringraziamenti
Desidero innanzitutto ringraziare il Prof. Emanuele Zappa per i preziosi aiuti datomi
nello svolgimento di questa mia tesi e per l'incredibile, sottolineo incredibile,
disponibilità dimostratami. Inoltre, ringrazio sentitamente il Ing. Diego Scaccabarozzi
che è stato sempre bendisposto a risolvere i miei dubbi di materia ingegneristica e il
Ing. Guido Micheli per i consigli fornitomi per alcune scelte universitarie, nonché il
Prof. Marco Bocciolone per l'impegno che mette nell'aiutare gli studenti a risolvere
situazioni complicate rendendo il regolamento universitario più flessibile e il Sig.
Morselli per la cordialità fuori dal comune nell'accogliere le richieste degli universitari.
Inoltre, vorrei esprimere la mia sincera gratitudine ai miei compagni di corso senza
cui sarebbe stato impensabile superare le mille peripezie affrontate durante il periodo
universitario.
Marco, Ema, Nicola, Rugge, Dami, Dario, Liuk, Max, Elia, Joele, con cui ho diviso i
primi tre anni universitari presso la sede di Bovisa sia nello studio che nei momenti di
svago. Non c'è stato mai un momento in cui il loro supporto mi sia mancato. In
particolare li ringrazio per i momenti indimenticabili passati insieme. Le battaglie
infinite per dimostrare la supremazia in videogame come COD o kart, oppure gli
interminabili minuti di tensione prima di un esame e gli interminabili consigli
informatici di Ema o gli scambi di idee non sempre troppo pacifici durante la
realizzazione dei progetti che tutti insieme ci siamo trovati a realizzare. Come non
citare la 2 ore in bicicletta a Villastanza: ultimi giri... Marco deve sbucare da dietro la
curva a momenti per passarmi la bicicletta e fare il cambio... possiamo ancora giocarci
la vittoria ma... passano 5 minuti ed arriva tutto scorticato perché è scivolato!!!
Oppure la ruota di Ema finita contro la parete di un aula del Politecnico. Gli "insulti"
amichevoli volati durante le discussioni di Marco e Rugge oppure le risate fatte alle
spalle di Rugge sulla sua situazione sentimentale. La pallina di carta di alluminio che
finisce in testa a un professore mentre Marco si immedesima in un battitore di
baseball. L'avventura in camper con Marco alla festa di Ema a Verona e il risveglio
con una bella multa sulla macchina.
Non posso non menzionare anche Teo e Gavi con cui ho affrontato l'avventura del
cambio di sede e in particolare quest'ultimo mi è stato da fondamentale aiuto negli
ultimi mesi in cui mi sono ritrovato da solo a seguire e sostenere gli ultimi esami.
E poi ringrazio i miei amici di una vita: Brugna e Zane con cui mi sono sempre
svagato alla sera e nelle vacanze, nello specifico Brugna per i racconti di fatti
accadutogli che, anche se già noti, non smettono mai di farmi ridere e Zane per le
sciate insieme e i fantomatici progetti da imprenditore che fanno sognare.
Ringraziamenti
Ho desiderio di ringraziare con affetto i miei genitori per il sostegno ed il grande
aiuto che mi hanno dato ed in particolare per essermi stati vicino in ogni momento
durante il periodo universitario, mia sorella Nicoletta per avermi aiutato con l'italiano
della tesi e insieme a mia sorella Valentina e ad il suo ragazzo Matteo per il supporto
che mi hanno offerto in momenti difficili.
Infine voglio dare un grandissimo abbraccio alla mia ragazza Federica che mi ha
sopportato nei numerosi momenti di nervosismo che si sono presentati ad esempio
prima degli esami e mi ha sempre regalato un sorriso e un affetto tale da farmi
superare tutto!
Un ringraziamento anche ai suoi famigliari Carla, Sandro e Giacomo che mi hanno
sempre accolto in casa loro con la cordialità che rende tutto più facile.
Pag. 2
Indice
Indice ..................................................................................................................................... 3
Indice delle figure ................................................................................................................ 5
Indice delle tabelle ............................................................................................................. 11
1.
Sommario ........................................................................................... 13
2.
Introduzione ...................................................................................... 15
3.
Stato dell’arte ..................................................................................... 19
3.1 Rettificazione ........................................................................................................ 21
4.
Situazione iniziale .............................................................................25
5.
Acquisizione delle immagini ............................................................27
6.
Calibrazione .......................................................................................29
6.1 Parametri intrinseci.............................................................................................. 30
6.2 Parametri estrinseci ............................................................................................. 32
7.
Elaborazione delle immagini ............................................................35
8.
Relazione tra gli scostamenti e la distanza dell’oggetto ..................37
9.
Punti notevoli nelle immagini...........................................................39
9.1 Algoritmo di Harris ............................................................................................. 40
9.2 Susan ...................................................................................................................... 45
10.
Ricerca delle corrispondenze ............................................................47
10.1 Immissione delle distanze iniziali ................................................................... 48
11.
Miglioramento dei risultati ............................................................... 51
11.1 Analisi zone uniformi ....................................................................................... 53
11.2 Proiezione e stampo.......................................................................................... 58
11.3 Ricerca su tre canali RGB ................................................................................ 60
11.4 Miglioramento dei dettagli ............................................................................... 65
11.5 Raffinamento delle corrispondenze ............................................................... 69
11.6 Eliminazione outlier ............................................................................................ 78
11.6.1 Distanza dalle rette epipolari ..................................................................... 78
11.6.2 Ransac ........................................................................................................... 86
11.7 Eliminazione manuale degli outlier .................................................................. 89
11.8 Ricerca di punti isolati ...................................................................................... 91
11.9 Applicazione in serie dei miglioramenti ........................................................ 93
12.
Confronti ............................................................................................97
12.1 Confronto con il caso rettificato .................................................................... 97
12.2 Confronto con i metodi di ricostruzione esistenti .................................... 101
12.2.1 Ricostruzione realizzata con il metodo qui proposto......................... 104
12.2.2 Confronto con un algoritmo denso elementare .................................. 106
12.2.3 Confronto con l’algoritmo ADCensus ................................................. 109
12.3 Confronto con il software commerciale PhotoModeler Scanner..................... 111
13.
Esempi di ricostruzione .................................................................. 115
Indice
13.1 Faccia ................................................................................................................. 115
13.2 Bassorilievo ....................................................................................................... 119
13.3 Mano .................................................................................................................. 120
13.4 Interruttore ....................................................................................................... 121
13.5 Scarpa................................................................................................................. 122
13.6 Bambola ............................................................................................................ 123
14.
Misurazioni effettuate sul 3D .......................................................... 125
14.1 Verifica geometrica ......................................................................................... 125
14.2 Verifica sulla misura ........................................................................................ 128
15.
Realizzazione di un 3D da più viste................................................ 133
16.
Software ............................................................................................ 143
17.
Note di sviluppo sul software.......................................................... 147
18.
Conclusioni e sviluppi futuri ........................................................... 151
Bibliografia........................................................................................................................ 155
Pag. 4
Indice delle figure
Figura 3.1 Ricerca delle corrispondenze degli algoritmi denso. In particolare ricerca in
immagini rettificate e quindi con rette epipolari orizzontali parallele. .............................. 19
Figura 3.2 Rappresentazione grafica dell'operazione di rettifica. ..................................................... 22
Figura 3.3 Partendo dall'alto una coppia di fotografie stereo non rettificata e affianco
alcune rette epipoalari evidenziate (convergenti) corrispondenti ai punti
rappresentati con una croce. Sotto le stesse immagini dopo la rettifica e in
evidenza le rette epipolari divenute parallele. ........................................................................ 24
Figura 4.1 Processo di elaborazione. ..................................................................................................... 25
Figura 5.1 Fujifilm REAL 3D W1. ........................................................................................................ 27
Figura 6.1 Esempi di fotografie utilizzate per la calibrazione. .......................................................... 29
Figura 6.2 Disposizione delle scacchiere rispetto all'obiettivo di sinistra. ...................................... 30
Figura 6.3 Rappresentazione della distorsione per l'obiettivo di sinistra e quello di
destra (sono evidenziate le curve a isodistorsione con riportato lo
scostamento in px). ..................................................................................................................... 31
Figura 6.4 Rappresentazione della posizione relativa tra i due obiettivi. ........................................ 32
Figura 6.5 Posizionamento delle scacchiere rispetto ad entrambi gli obiettivi. ............................. 33
Figura 7.1 Rappresentazione digitale delle immagini. ......................................................................... 35
Figura 8.1 Area dove si posiziona l'oggetto al variare della posizione del punto
corrispondente nelle immagini. ................................................................................................ 37
Figura 8.2 Variazione della distanza di un oggetto al variare dello scostamento del
punto corrispondente nell'immagine. ...................................................................................... 38
Figura 9.1 Immagine di esempio utilizzata per la scelta dell'algoritmo di
identificazione corner. ................................................................................................................ 39
Figura 9.2 Gradiente in orizzontale e in verticale ricavato dall'immagine di esempio. ................ 40
Figura 9.3 Prodotto tra le derivate Ix2 in direzione orizzontale prima e dopo il
filtraggio gaussiano...................................................................................................................... 41
Figura 9.4 Prodotto tra le derivate Iy2 in direzione verticale prima e dopo il filtraggio
gaussiano. ...................................................................................................................................... 41
Figura 9.5 Prodotto incrociato le derivate Ix·Iy in direzione orizzontale e verticale. .................. 42
Figura 9.6 Rappresentazione grafica del cim ottenuto mediante la formula di Harris
(k=0.03, 0.04, 0.05). .................................................................................................................... 42
Figura 9.7 Rappresentazione di come variano gli autovalori in presenza di diverse
discontinuità geometriche.......................................................................................................... 43
Figura 9.8 Rappresentazione del cim ottenuto utilizzando la formula di Noble........................... 43
Figura 9.9 Rappresentazione dei possibili casi di posizionamento del'area Usan. ........................ 46
Figura 10.1 Rappresentazione degli scostamenti al variare della distanza dell'oggetto
(rappresentata dalle frecce arancioni). ..................................................................................... 49
Figura 11.1 Coppia di fotografie della parete utilizzate per mostrare i risultati dei vari
metodi di miglioramento. .......................................................................................................... 51
Indice delle figure
Figura 11.2 Ricostruzione della parete senza alcun metodo migliorativo (vista
frontale). ........................................................................................................................................52
Figura 11.3 Ricostruzione della parete senza alcun metodo migliorativo (vista
laterale). .........................................................................................................................................52
Figura 11.4. Immagine con elevata uniformità. Zoom sull'area della guancia analizzata
in seguito. ......................................................................................................................................53
Figura 11.5 Ricostruzione 3D della zona guancia (vista dall'alto). ...................................................54
Figura 11.6 Ricostruzione 3D della zona guancia (vista frontale) . ..................................................54
Figura 11.7 Gradiente Orizzontale (w = 41). .......................................................................................55
Figura 11.8 Zone uniformi (in bianco) con finestra di 11 pixel........................................................56
Figura 11.9 Zone uniformi (in bianco) con finestra di 21 pixel........................................................57
Figura 11.10 Zone uniformi (in bianco) con finestra di 41 pixel. ....................................................57
Figura 11.11 Porzione del pattern random. ..........................................................................................58
Figura 11.12 Porzione del pattern composto da lettere. ....................................................................58
Figura 11.13 Pattern realizzato a mano. ................................................................................................59
Figura 11.14 Proiettore portatile 3M MPro-120. .................................................................................59
Figura 11.15 Impronta di scarpa su sabbia. ..........................................................................................60
Figura 11.16 Pattern di proiezione RGB. .............................................................................................61
Figura 11.17 Fotografia alla parete con pattern RGB. .......................................................................61
Figura 11.18 Ricostruzione della parete usando esclusivamente l'immagine in scala di
grigi (vista frontale). ....................................................................................................................63
Figura 11.19 Ricostruzione della parete usando esclusivamente l'immagine in scala di
grigi (vista laterale),......................................................................................................................63
Figura 11.20 Ricostruzione della parete analizzando oltre all’immagine in scala di grigi
anche separatamente i tre piani di colore (vista frontale). ...................................................64
Figura 11.21 Ricostruzione della parete analizzando oltre all’immagine in scala di grigi
anche separatamente i tre piani di colore (vista laterale), .....................................................64
Figura 11.22 Immagine originale e immagine filtrata con un filtro passa basso. ...........................65
Figura 11.23 Immagine filtrata con un filtro passa alto e immagine risultante con i
dettagli evidenziati. ......................................................................................................................66
Figura 11.24 Ricerca delle corrispondenze sull'immagine originale senza aumento dei
dettagli. ..........................................................................................................................................66
Figura 11.25 Ricerca delle corrispondenze sull'immagine filtrata.....................................................67
Figura 11.26 Ricostruzione della parete (vista frontale) senza filtraggio. ........................................68
Figura 11.27 Ricostruzione della parete (vista frontale) utilizzando il filtraggio per
migliorare la visibilità dei particolari. .......................................................................................68
Figura 11.28 Finestre ricavate dall'immagine di destra e di sinistra. ................................................69
Figura 11.29 Crosscorrelazione normalizzata. Si nota il massimo decentrato in rosso
scuro. .............................................................................................................................................70
Figura 11.30 Coppia di match, in particolare nell'immagine di destra è visibile il
vecchio punto (blu) e il nuovo (rosso). ...................................................................................70
Figura 11.31 Ricostruzione della parete (vista in sezione) senza l'utilizzo del
raffinamento. ................................................................................................................................71
Pag. 6
Indice delle figure
Figura 11.32 Ricostruzione della parete (vista in sezione) con l'utilizzo del
raffinamento................................................................................................................................. 72
Figura 11.33 Istogramma delle distanze dei punti tridimensionali dal piano di
regressione (analisi della parete). .............................................................................................. 73
Figura 11.34 Particolare dell’istogramma che rappresenta la distanza dei punti
tridimensionali dal piano di regressione (analisi della parete). ............................................ 73
Figura 11.35 Boxplot delle distanze dai piani di regressione della parete. ...................................... 74
Figura 11.36 Particolare dei boxplot delle distanze dai piani di regressione della
parete. ............................................................................................................................................ 74
Figura 11.37 Rappresentazione degli errori di ricostruzione della parete (in evidenza
una delle curve periodiche). ...................................................................................................... 75
Figura 11.38 Scostamenti lungo l'asse X e Y dell'immagine intorno alla distanza
dall'obiettivo di 0.64 m della parete. In direzione X aumentando la disparità
di un pixel tra le corrispondenze la distanza dall’obiettivo aumenta di 1.3mm,
mentre in Y la variazione di distanza è trascurabile. ............................................................. 76
Figura 11.39 Rappresentazione degli errori di ricostruzione della parete utilizzando la
correzione subpixel paraboloide. ............................................................................................. 77
Figura 11.40 Distanza d(j) tra il punto j-esimo e la retta epipolare. ................................................. 79
Figura 11.41 Vettore distanze d(j) dei punti dalla retta epipolare nel caso della parete. .............. 80
Figura 11.42 Distanza dalla retta epipolare con evidenziati in rosso le coppie di punti
considerate inlier con una soglia ricavata dal percentile 90% (nel caso della
parete). ........................................................................................................................................... 81
Figura 11.43 Istogramma delle distanze dalle rette epipolari delle corrispondenze
ricavate dalla parete. .................................................................................................................... 81
Figura 11.44 Boxplot delle distanze dalle rette epipolari ottenuto analizzando la
parete. Il secondo grafico è il particolare del primo e del quarto quartile. ....................... 82
Figura 11.45 Ricostruzione della parete (vista in sezione) considerando il percentile al
100%. Quindi senza eliminazione di outlier. ........................................................................... 83
Figura 11.46 Ricostruzione della parete (vista in sezione) con un percentile del 90%
della distanza dalle rette epipolari. ........................................................................................... 83
Figura 11.47 Ricostruzione della parete (vista in sezione) con un percentile del 80%
della distanza dalle rette epipolari. ........................................................................................... 84
Figura 11.48 Ricostruzione della parete (vista frontale) con un percentile del 90%
della distanza dalle rette epiplari. .............................................................................................. 85
Figura 11.49 Ricostruzione della parete (vista frontale) con un percentile del 80%
della distanza dalle rette epipolari. ........................................................................................... 85
Figura 11.50 Rette epipolari per le tre matrici fondamentali ricavate. ............................................. 87
Figura 11.51 Boxplot di confronto tra i metodi sopracitati basato sulle distanze dei
punti dal piano di regressione. .................................................................................................. 89
Figura 11.52 Ricostruzione 3D della parete (vista in sezione) senza l'eliminazione
manuale degli outlier..................................................................................................................... 90
Figura 11.53 Ricostruzione 3D della parete (vista in sezione) dopo l'eliminazione
manuale degli outlier..................................................................................................................... 90
Pag. 7
Indice delle figure
Figura 11.54 Ricostruzione della parete (vista in sezione) senza l'eliminazione dei
punti isolati. ..................................................................................................................................91
Figura 11.55 Ricostruzione della parete (vista in sezione) dopo l'eliminazione dei
punti isolati (percentile 90). .......................................................................................................91
Figura 11.56 Ricostruzione della parete (vista in sezione) dopo l'eliminazione dei
punti isolati considerando gruppi di al massimo 6 punti (percentile 90). .........................92
Figura 11.57 Schema dell'algoritmo di ricostruzione considerando tutti i metodi di
miglioramento proposti. ............................................................................................................93
Figura 11.58 Ricostruzione finale della parete applicando tutti i metodi di
miglioramento. .............................................................................................................................95
Figura 11.59 Istogramma degli scostamenti dai punti reali della parete. .........................................95
Figura 11.60 Rappresentazione grafica degli scostamenti rispetto alla parete reale. .....................96
Figura 12.1 Fotografie della parete rettificate con evidenziate due delle rette epipolari
orizzontali. ....................................................................................................................................97
Figura 12.2 Ricostruzione della parete utilizzando le fotografie precedentemente
rettificate. ......................................................................................................................................98
Figura 12.3 Istogramma degli scostamenti dai punti reali della parete. ...........................................99
Figura 12.4 Rappresentazione grafica degli scostamenti rispetto alla parete reale (caso
non rettificato). ......................................................................................................................... 100
Figura 12.5 Rappresentazione grafica degli scostamenti rispetto alla parete reale (caso
rettificato)................................................................................................................................... 100
Figura 12.6 Coppia di immagini Tsukuba (Middlebury dataset).......................................................... 101
Figura 12.7 Particolare dello sfondo (in giallo alcune zone a colore uniforme mentre
in rosso il pattern ripetitivo). .................................................................................................. 101
Figura 12.8 Dettaglio della maschera e dei coni. .............................................................................. 102
Figura 12.9 In bianco le zone a colore uniforme che rendono difficile la ricerca delle
corrispondenze. ........................................................................................................................ 103
Figura 12.10 Dettaglio di una occlusione presente tra i coni. ........................................................ 103
Figura 12.11 Ricostruzione prospettica ricavata con il metodo proposto. Per meglio
rappresentare gli oggetti si sono ingranditi i punti che li compongono
creando un effetto di sgretolamento sui bordi. .................................................................. 104
Figura 12.12 Ricostruzione della profondità dei vari oggetti sulle immagini di
partenza (a sinistra valori corretti ricavati ricostruendo la scena con 8
immagini scattate da più viste e di conseguenza con un numero ridotto di
occlusioni, mentre a destra profondità ottenute con il metodo proposto con
sole due immagini). .................................................................................................................. 105
Figura 12.13 Mesh della scena ricavata dalla nuvola di punti ottenuta con il metodo
proposto (a sinistra calcolata con Matlab, a destra tramite il software Geomagic
Studio v.12). ................................................................................................................................ 106
Figura 12.14 Ricostruzione usando la funzione costo SAD. ......................................................... 107
Figura 12.15 Ricostruzione usando la funzione costo SSD. .......................................................... 107
Figura 12.16 Ricostruzione usando la funzione costo NCC. ......................................................... 108
Figura 12.17 Differenza di ricostruzione tra i due metodi.............................................................. 109
Figura 12.18 Confronto tra il metodo proposto (a destra) e l'algoritmo ADCensus. .............. 110
Pag. 8
Indice delle figure
Figura 12.19 Coppia di immagini per il confronto con il software commerciale........................111
Figura 12.20 Ricostruzione dell'impronta con il metodo proposto. ..............................................112
Figura 12.21 Due viste della mesh con applicata la texture ricavate utilizzando il
metodo proposto. .....................................................................................................................112
Figura 12.22 Ricostruzione dell'impronta utilizzando il software PhotoModeler.......................113
Figura 12.23 Due viste della mesh con applicata la texture ricavate utilizzando il
software PhotoModeler. ..........................................................................................................114
Figura 13.1 Fotografia sinistra e destra della faccia...........................................................................115
Figura 13.2 Nuvola di punti ricavata dalla coppia di immagini della faccia..................................116
Figura 13.3 Nuvola di punti ricavata dalla coppia di immagini della faccia in scala di
grigi per evidenziare i dettagli. ................................................................................................117
Figura 13.4 Mesh della faccia..................................................................................................................118
Figura 13.5 Ricostruzione del bassorilievo. ........................................................................................119
Figura 13.6 Nuvola di punti del bassorilievo. ....................................................................................119
Figura 13.7 Ricostruzione della mano. ................................................................................................120
Figura 13.8 Nuvola di punti della mano. ............................................................................................120
Figura 13.9 Ricostruzione dell'interruttore. ........................................................................................121
Figura 13.10 Nuvola di punti dell'interruttore. ..................................................................................121
Figura 13.11 Ricostruzione della scarpa. .............................................................................................122
Figura 13.12 Nuvola di punti della scarpa. .........................................................................................122
Figura 13.13 Ricostruzione della bambola..........................................................................................123
Figura 13.14 Nuvola di punti della bambola. .....................................................................................123
Figura 14.1 Errore di planarità relativo alla ricostruzione di una parete. ......................................125
Figura 14.2 Scatola per la verifica geometrica. ...................................................................................126
Figura 14.3 Ricostruzione della scatola. ..............................................................................................126
Figura 14.4 Piani ricavi dalle due facce inferiori della scatola. ........................................................127
Figura 14.5 Metro per la verifica delle misure....................................................................................128
Figura 14.6 Ricostruzione tridimensionale del metro.......................................................................128
Figura 14.7 Particolare delle zone non ricostruite nelle due fotografie (vista frontale). ............129
Figura 14.8 Vista frontale della ricostruzione del metro con sovrapposta la texture
ricavata dalla fotografia originale............................................................................................129
Figura 14.9 Vista frontale ristretta (eliminando le zone intermedie tra i centimetri)
della ricostruzione con evidenziati i centimetri. ..................................................................130
Figura 14.10 Andamento delle distanze lungo il metro. ..................................................................131
Figura 14.11 Boxplot delle distanze tra i centimetri reali e quelli ricostruiti. (sopra
considerando anche l’outlier tra l’inizio del metro e il primo centimetro). ......................131
Figura 15.1 Pattern asimmetrico per ricavare i parametri di rototraslazione tra le
inquadrature dell'oggetto. ........................................................................................................133
Figura 15.2 Fotografia del pattern con evidenziate le ellissi trovate e in verde i pallini
ritenuti corretti. ..........................................................................................................................134
Figura 15.3 Orientamento stimato delle ottiche della fotocamera stereoscopica. In blu
è rappresentato l’asse Z perpendicolare al piano del sensore, in rosso e verde
rispettivamente gli assi X e Y delle immagini. .....................................................................135
Figura 15.4 Immagine sinistra e destra di due piatti sovrapposti. ..................................................138
Pag. 9
Indice delle figure
Figura 15.5 Ricostruzione dei piatti utilizzando una sola coppia di immagini. ........................... 138
Figura 15.6 Vista posteriore dei piatti (coppia di immagini stereo). ............................................. 139
Figura 15.7 Riconoscimento automatico del pattern a pallini nelle due immagini di
sinistra delle due viste. ............................................................................................................. 139
Figura 15.8 Orientazione stimata della fotocamera durante i due scatti (riferita
all’obiettivo di sinistra). ........................................................................................................... 140
Figura 15.9 Ricostruzione della scena sovrapponendo le due nuvole di punti ricavate
dalle due viste semplicemente mediante rototraslazione della seconda sulla
prima. .......................................................................................................................................... 140
Figura 15.10 Ricostruzione completa dei due piatti sovrapponendo le nuvole di punti
dalle due viste mediante rototraslazione e successivamente raffinando il
risultato con l'ICP. ................................................................................................................... 141
Figura 15.11 Ricostruzione della scena utilizzando due viste distinte. ......................................... 142
Figura 16.1 Schermata iniziale del programma. ................................................................................ 143
Figura 16.2 Schermata secondaria del programma con i parametri di analisi. ............................ 145
Pag. 10
Indice delle tabelle
Tabella 5.1 Specifiche della macchina fotografica Fujifilm REAL 3D W1. ................................... 28
Tabella 6.1 Parametri intrinseci di ciascun obiettivo. ......................................................................... 31
Tabella 8.1 Errore di ricostruzione al variare della lontananza dell'oggetto. .................................. 38
Tabella 9.1 Corner identificati con l’algoritmo di Harris al variare della dimensione
dell'area considerata e del valore di soglia di esclusione. ..................................................... 44
Tabella 9.2 Corner identificati con l’algoritmo di Susan al variare del valore di soglia
di esclusione. ................................................................................................................................ 46
Tabella 10.1 Esempio di identificazione delle corrispondenze. I massimi per riga
sono colorati, in particolare in giallo le corrispondenze accettate e in
arancione quella rifiutata. ........................................................................................................... 48
Tabella 11.1 Confronto dei risultati analizzando le immagini solamente in scala di
grigio o anche nei tre colori fondamentali separatamente................................................... 62
Tabella 11.2 Confronto dei risultati ottenuti dall'analisi della parete prima e il
filtraggio dell'immagine per aumentarne i dettagli. ............................................................... 67
Tabella 11.3 Valori statistici ottenuti dagli errori di distanza rispetto al piano di
regressione della parete. ............................................................................................................. 75
Tabella 11.4 Confronto dei risultati ottenuti dall'analisi della parete prima e dopo il
raffinamento delle corrispondenze. ......................................................................................... 77
Tabella 11.5 Media e deviazione standard della distanza dei punti dalle rette epipolari
nell’analisi della parete. ............................................................................................................... 82
Tabella 11.6 Confronto dei risultati ottenuti dall'analisi della parete prima e dopo
l'eliminazione degli outlier in base alla distanza dalle rette epipolari. .................................. 84
Tabella 11.7 Tabella di confronto dei risultati ottnuti dalle fotografie della parete con
e senza l'eliminazione degli outlier con il metodo Ransac 7 e 8. ........................................... 88
Tabella 11.8 Confronto tra il metodo Ransac e quello di eliminazione degli outlier
basato sulla distanza dalle rette epipolari (analisi della parete). Media e
deviazione standard sono da intendersi relativi alla ricostruzione 3D della
parete confrontata con il piano di regressione....................................................................... 88
Tabella 11.9 Confronto dei risultati ottenuti dall'analisi della parete prima e dopo
l'eliminazione manuale degli outlier. .......................................................................................... 90
Tabella 11.10 Confronto dei risultati ottenuti dall'analisi della parete prima e dopo
l'eliminazione degli outlier ricercando i punti isolati. ............................................................. 92
Tabella 11.11 Elenco delle operazioni eseguite applicando in serie i miglioramenti alle
immagini della parete.................................................................................................................. 94
Tabella 11.12 Dati statistici ottenuti dagli scostamenti dai punti reali della parete. ...................... 96
Tabella 12.1 Nuovi parametri intrinseci ed estrinseci dopo la rettificazione delle
immagini. ...................................................................................................................................... 98
Tabella 12.2 Confronto dei risultati ottenuti dall'analisi della parete utilizzando le
fotografie originali e rettificandole. .......................................................................................... 99
Tabella 12.3 Parametri dell'algoritmo proposto ottenuti analizzando la scena............................105
Indice delle tabelle
Tabella 13.1 Parametri dell'algoritmo proposto ottenuti analizzando la faccia. ......................... 116
Tabella 14.1 Coefficienti delle normali ai piani che rappresentano i due lati della
scatola. ........................................................................................................................................ 127
Tabella 14.2 Misurazioni effettuate sul 3D. ....................................................................................... 130
Pag. 12
Capitolo 1
1.
Sommario
Lo scopo di questo lavoro di tesi è lo sviluppo e la qualificazione di un sistema di
visione per la ricostruzione di oggetti utilizzando come supporto esclusivamente due
fotografie di quest’ultimo.
Analizzando i metodi esistenti di ricostruzione si è optato per una soluzione basata
sull’identificazione dei punti notevoli nelle fotografie che sono stati poi utilizzati
come base per la ricerca delle corrispondenze tra le due immagini.
Una volta compiuta la calibrazione del sistema di acquisizione e sviluppato il metodo
di triangolazione delle corrispondenze trovate si sono ricavati i primi risultati come
nuvole di punti 3D.
Quindi sono stati implementati vari algoritmi che hanno permesso di migliorare
notevolmente i risultati garantendo comunque una tempistica di calcolo ragionevole.
Da questi algoritmi è stato sviluppato un programma chiamato RECON3D che,
insieme ad una macchina fotografica digitale e ad un mini-proiettore a batteria,
costituisce un sistema di ricostruzione tridimensionale portatile, di facile utilizzo e
che non necessita di ulteriori calibrazioni.
Inoltre sono stati confrontati i risultati con gli algoritmi presenti in letteratura, con
uno dei migliori algoritmi di ricostruzione esistenti e con un software commerciale,
nonché sono stati verificati geometricamente e dimensionalmente i modelli
tridimensionali ottenuti dimostrando come l’accuratezza e la robustezza dei risultati
siano tali da permetterne un utilizzo anche ingegneristico.
Grazie alla flessibilità del programma RECON3D è stato anche possibile modificarlo
in modo da renderlo capace di analizzare anche più coppie di fotografie scattate
intorno all’oggetto così da realizzarne un modello 3D più completo.
The purpose of this thesis is the development and qualification of a vision system for the
tridimensional reconstruction of objects using only two photographs.
Analyzing the existing methods of reconstruction, I opted for a solution based on the identification in
the images of the significant points that were used as the basis for the search of correspondences
between the two images.
Indice delle tabelle
After the calibration of the acquisition system and after the development of the triangulation method
based on the correspondences, the first results were obtained as 3D point clouds.
So I have implemented several algorithms that have improved the results while still providing a
reasonable timeframe for the calculation.
From these algorithms I have developed a program called RECON3D, which, along with a digital
camera and a mini-projector battery powered, is a portable, easy to use three-dimensional
reconstruction system and it doesn't require additional calibrations.
In addition, the results were compared with the algorithms found in the literature, with one of the best
reconstruction algorithms and with an existing commercial software. Moreover the obtained
reconstructions have been tested geometrically and dimensionally showing how the accuracy and
robustness of the obtained results are such that permit to use RECON3D in engineering
environment.
Due to the flexibility of the program RECON3D, it was possible to modify the software to make it
able to analyze even more pairs of photographs taken around the object and so to achieve a more
complete 3D model.
Pag. 14
Capitolo 2
2.
Introduzione
In questa tesi viene affrontata la problematica della ricostruzione tridimensionale di
oggetti.
Attualmente esistono molte tecniche di ricostruzione che utilizzano apparecchiature
costose quali scanner laser, sensori a ultrasuoni o infrarossi. Al fine di ottenere un
metodo di ricostruzione mediante un sistema poco costoso si è indagato il campo
della computer-vision che necessita principalmente soltanto di immagini e quindi di una
semplice macchina fotografica.
Cercando in letteratura si sono presentati molti metodi di ricostruzione che possono
essere suddivisi in tre categorie [1].
La prima riguarda l'analisi fotometrica [15] che consiste nell’analizzare le varie
immagini scattate ad un oggetto illuminato da diverse fonti. Conoscendo la posizione
della luce rispetto alla fotocamera e analizzando come cambia l'intensità luminosa tra
le fotografie, si ottiene la superfice dell'oggetto. La principale limitazione di questo
approccio è che restituisce solo le derivate delle superfici e non la sua posizione
assoluta rispetto all'obiettivo.
La seconda categoria racchiude gli algoritmi basati sul principio che quanto un
oggetto è lontano dal punto di messa a fuoco, tanto i suo bordi risultano meno nitidi
[16]. Analizzando quindi la sfocatura è possibile ricavare la distanza dell'oggetto dalla
fotocamera. Ovviamente analizzando la sfocatura i dettagli vengono persi.
L’ultima categoria, sulla quale ci si é voluti concentrare, è la visione stereoscopica.
[19]. Questa emula la visione binoculare dell'uomo e degli animali. Il cervello,
analizzando le immagini dei due occhi, è in grado di ricavare le informazioni di
profondità e quindi di ricostruire l'ambiente tridimensionale che circonda il soggetto
stesso. Allo stesso modo gli algoritmi di stereoscopia, riconoscendo nelle due
fotografie lo stesso punto e valutando di quanto cambia la sua posizione, ne ricavano
la distanza dall'obiettivo. Applicando lo stesso procedimento a tutti i punti
dell'immagine si ricrea la profondità dell'intera scena.
La prima difficoltà che si affronta con un approccio stereoscopico riguarda la
calibrazione del sistema di acquisizione. A questo proposito si è fotografata da due
punti di vista differenti una scacchiera [23] di modo da ottenere sia i parametri propri
dell'obiettivo (parametri intrinseci [24]), sia la posizione relativa tra i due scatti. Per
evitare di ripetere la calibrazione ad ogni acquisizione si è optato per l'utilizzo di una
Capitolo 2
macchina fotografica già dotata di due obiettivi leggermente convergenti. Così
facendo gli stessi parametri ricavati valgono per ogni acquisizione.
Ma è nella ricerca dei punti corrispondenti tra le due immagini, il matching, che si
riscontrano le maggiori difficoltà. Questa può essere dovuta ad esempio alla presenza
di zone di colore uniforme, oppure a parti di oggetti visibili in una vista e nascoste
nell'altra, oppure a riflessi della luce che nascondo particolari.
Esistono vari metodi per effettuare il matching, ad esempio alcuni confrontano le aree
ricavate intorno ad ogni pixel delle due immagini [7], algoritmi più complessi
permettono anche di adattare la finestra di ricerca [8][9] a seconda della similarità con
punti vicini, altri ancora identificano prima dei punti significativi in una fotografia e li
ricercano poi nell'altra. Tutti i metodi trovati però necessitano che le immagini siano
rettificate, ovvero deformate in modo che la ricerca delle corrispondenze sia ridotta
ad un'analisi per righe. Questa deformazione, chiamata rettificazione[17], implica
necessariamente una perdita di informazioni e si è quindi deciso di evitarla.
Dato che si era interessati all'analisi di immagini di grandi dimensioni e alla
robustezza della ricostruzione, si è approfondito l'argomento di identificazione di
particolari geometrici, quali i corner, e si di questo si è basata la fase di ricerca delle
corrispondenze. In particolare per velocizzare la fase di calcolo non ci si è limitati alla
ricerca dei punti notevoli nell'altra immagine ma si sono confrontati direttamente i
punti notevoli di entrambe le immagini.
Conoscendo i parametri di calibrazione si è ulteriormente ridotta la ricerca dato che i
punti tra le fotografie sono legati dal vincolo epipolare. Inoltre, dopo aver analizzato
l’incertezza sulla ricostruzione in funzione della distanza degli oggetti dagli obiettivi,
ci si è limitato a ricercare le corrispondenze in un range specifico di disparità.
Si è implementato un algoritmo di raffinamento delle corrispondenze dal momento
che i punti identificati dal corner detection scelto [28] potevano non essere perfettamente
centrati sulla geometria.
Per incrementare il numero di corrispondenze si sono studiati vari metodi tra cui la
proiezione di un pattern RGB (composto da forme nei tre colori fondamentali) e la
tecnica dello stampo in sabbia. Le fotografie sono state quindi filtrate in modo da
rendere i dettagli ancora più evidenti.
Quindi sono state identificate le corrispondenze errate ed eliminate con vari metodi
quali il Ransac [35][36] e la distanza dalle rette epipolari [21].
Pag. 16
Introduzione
Dalle corrispondenze, tenendo anche conto delle distorsioni dovute alle ottiche degli
obiettivi, si è ricavata la nuvola dei punti che compongono la superfice dell'oggetto.
Mediante l'identificazione dei punti isolati si sono ulteriormente raffinati i risultati.
Tutti questi passi verranno descritti dettagliatamente nei capitoli seguenti con lo
scopo di dimostrarne l'accuratezza e correttezza mediante l'analisi di oggetti reali, in
particolare si è trattata ampiamente l'analisi di una parete che per la sua semplicità
geometrica ha permesso una rapida visualizzazione dei miglioramenti e un'analisi
statistica tale da giustificare le scelte effettuate.
Verrà inoltre riportato un confronto del metodo sviluppato con gli algoritmi basilari
presenti in letteratura, con il migliore degli algoritmi di ricostruzione stereoscopica
AdCensus [38] e con i risultati ottenuti con il software commerciale PhotoModeller
Studio, nonché un confronto con una ricostruzione partendo da immagini rettificate
per confermare le ipotesi effettuate su questo metodo. Queste comparazioni
dimostrano quanto le ricostruzioni ottenibili con il programma sviluppato fossero
veritiere, ragione per cui verranno riportate delle semplici analisi di natura geometrica
e misuristica effettuate sui risultati.
Per ultimo verrà riportato un ulteriore sviluppo applicato al programma per
permettere la ricostruzione di oggetti scattando più immagini intorno ad essi. In
questo modo è possibile realizzare un modello più completo.
Gli ultimi capitoli sono dedicati a descrivere il programma dal punto di vista sia
dell’utilizzatore e quindi la sua interfaccia grafica ed i parametri che è possibile
modificare, sia di un possibile sviluppatore che abbia bisogno di conoscere il
funzionamento delle principali parti che compongono il RECON3D.
Pag. 17
Capitolo 3
3.
Stato dell’arte
Gli algoritmi moderni mirati alla ricostruzione tridimensionale che utilizzano come
supporto la fotografia, si possono riunire in 4 categorie di analisi [1][2];
i.
ii.
iii.
iv.
riconoscimento di particolari e features
analisi completa delle immagini (denso)
analisi della sfuocatura
fotometrici
La prima categoria si occupa di riconoscere alcuni particolari facilmente distinguibili
nelle immagini come ad esempio spigoli e vertici [3]. Ricavate le geometrie in
entrambe le immagini, si cercano le corrispondenze tra di esse e se ne ricava il 3D
basandosi sulla disparità tra le coordinate dei punti. Il problema maggiore di questi
algoritmi si verifica quando voglio analizzare oggetti di colore uniforme su cui non è
possibile identificare discontinuità classificabili come entità geometriche. Per ovviare
a questo problema è possibile proiettare sull’oggetto un pattern oppure direttamente
spruzzare sulle superfici uniformi delle macchie random. Questo argomento
specifico è stato approfondito nel capitolo 11.2 Proiezione e stampo.
Figura 3.1 Ricerca delle corrispondenze degli algoritmi
denso. In particolare ricerca in immagini rettificate e
quindi con rette epipolari orizzontali parallele.
Capitolo 3
Al contrario gli algoritmi denso analizzano le immagini pixel per pixel [4]. Cercano
per ogni pixel di un immagine il corrispondente nell’altra fotografia considerando
un’area intorno ad esso, come in Figura 3.1.
L’area, chiamata finestra, può essere fissa ovvero con il pixel considerato vincolato
alla posizione centrale, oppure movibile [5][6]. Può variare la sua dimensione [7] e
non avere forma quadrata ma adattarsi all’immagine ed evitare le ambiguità dovute a
zone di colore uniforme[8][9]. L’adattamento può avvenire
sfruttando la
segmentazione delle immagini. Questa si occupa di riunire i pixel vicini dello stesso
colore in modo da utilizzare le aree trovate come finestre di osservazione univoche
[10][11]. Questo per permettere di trovare con maggiore robustezza il pixel
corrispondente.
Chiamando T la finestra di riferimento nell’immagine di sinistra di dimensioni m,n e
costruita intorno al pixel i,j e Id l’immagine di destra, il pixel corrispondente viene
trovato massimizzando una funzione costo [12][13] che può essere:
a. Somma delle differenze assolute (SAD).
∑ ∑| (
)
(
)|
)
(
))
b. Somma delle differenze quadrate (SSD)
∑ ∑( (
c. Cross correlazione normalizzata (NCC)
∑
(√∑
∑
∑
(
(
)
) ) (√∑
(
)
∑
(
) )
Altri algoritmi si basano sull’ipotesi che un punto di un oggetto, allontanandosi dal
punto di messa a fuoco, perda di nitidezza. Di conseguenza ricavando quanto è
sfuocato l’oggetto e a che distanza è la messa a fuoco è possibile recuperarne la
sagoma tridimensionale [14].
La ricostruzione fotometrica consiste nel ricavare, da più di tre scatti di un oggetto
dalla stessa vista ma muovendo la sorgente luminosa che illumina la scena, i
Pag. 20
Stato dell’arte
cambiamenti di intensità in ogni punto e quindi determinare la mappa delle derivate
(Conditio sine qua non é la conoscenza della posizione esatta della sorgente luminosa)
[15]. Sempre con la stessa tecnica è possibile ricostruire semplicemente le forme degli
oggetti a partire dall’analisi delle ombre [16].
Tutti questi metodi possiedono, tuttavia, degli svantaggi.
Il riconoscimento di particolari geometrici, come già sottolineato, non può avvenire
se l’oggetto è di colore uniforme.
Lo stesso vale per gli algoritmi denso che però nel particolare caso di quelli a finestra
variabile possono aumentare l’area di interesse fino a giungere ad una corrispondenza
corretta. Al tempo stesso però l’analisi di tutti i pixel comporta un tempo
computazionale molto elevato.
L’analisi di sfuocatura difficilmente porta a buoni risultati perché all’aumentare della
distanza dal fuoco la ricostruzione perde di accuratezza.
Infine l’algoritmo fotometrico anche se risulta il più veloce e nel complesso accurato,
richiede almeno 3 immagini scattate in 3 istanti temporali distinti. Inoltre questo
metodo restituisce solo la derivata delle superfici senza dare informazioni su salti di
piani. Infatti l’algoritmo fotometrico non sa distinguere oggetti separati come unitá
indipendenti ma li considera un unico oggetto.
Le tecniche di ricostruzione 3D più utilizzate sono gli algoritmi denso e quelli di
analisi dei particolari geometrici e presentano come prima fase la rettifica delle
immagini.
La rettificazione è un processo di trasformazione usato per proiettare le due
fotografie su un unico piano. Questa tecnica è comunemente utilizzata nella
ricostruzione stereo per semplificare la ricerca dei punti corrispondenti tra le
immagini [17][18].
3.1 Rettificazione
Considerando P0 e P0’ le matrici proiezione delle due fotocamere, ruotando queste
ultime intorno ai rispettivi centri ottici si vogliono ricavare due nuove matrici
proiezione Pn e Pn’ in modo che i piani focali così ottenuti risultino complanari [19].
In questo caso gli epipoli si dispongono all’infinito e in conseguenza le rette epipolari
risulteranno parallele [20][21][22]. Questo porta un notevole vantaggio alla successiva
fase di matching, infatti la ricerca delle corrispondenze si trasforma da un problema
bidimensionale (ovvero spostandosi sia verticalmente che orizzontalmente
nell’immagine) ad una ricerca per riga quindi monodimensionale.
Pag. 21
Capitolo 3
Per ottenere le rette epipolari orizzontali il nuovo asse X delle immagini così ruotate
deve essere parallelo alla linea di base passante per i centri ottici. Inoltre si vuole che
le coordinate verticali delle immagini siano le stesse così da avere una corrispondenza
riga-riga tra le due fotografie. E’ necessaria quindi una approssimazione, ovvero
considerare per entrambi gli scatti gli stessi parametri intrinseci della macchina
fotografica (si mantiene libera solo la coordinata orizzontale dei centri ottici).Per
parametri intrinseci si intendono le costanti che descrivono le caratteristiche di
ciascun obiettivo. Perciò viene considerata la stessa lunghezza focale e i piani delle
immagini risultano oltre che paralleli tra loro e rispetto alla linea di base, anche
complanari.
Figura 3.2 Rappresentazione grafica dell'operazione di
rettifica.
Le immagini così modificate sono equivalenti a due fotografie scattate solamente
traslando orizzontalmente la macchina fotografica (Figura 3.2). Di conseguenza
anche le matrici di proiezioni risultano le stesse a meno di uno spostamento
orizzontale dei centri ottici.
Le nuove matrici proiezione Pn e Pn’ risultano quindi dalle matrici di partenza P0 e P0’:
[ |
Pag. 22
̃]
[ |
̃]
( 3.1 )
Stato dell’arte
Dove la matrice dei parametri intrinseci K è la stessa per entrambe le camere. I centri
ottici ̃ e ̃ differiscono solo per una traslazione orizzontale. La matrice di R
rappresenta la rotazione e può essere rappresentata come
( 3.2 )
[
]
Dove
e
sono rispettivamente gli assi Xn, Yn e Zn del sistema di riferimento
della fotocamera. Si può quindi ricavare la matrice R semplicemente imponendo
come condizioni iniziali che:
i.
l’asse Xn sia parallelo alla linea di base
(̃
‖̃
ii.
̃)
( 3.3 )
̃‖
l’asse Yn risulti ortogonale a Xn e ad un versore arbitrario k, considerato
uguale al vettore unitario Z0 della fotocamera in posizione iniziale così da
rendere Yn ortogonale all’asse Z0
( 3.4 )
iii.
l’asse Z0 sia ortogonale a XnYn
( 3.5 )
Conoscendo quindi le nuove matrici di proiezione Pn e Pn’ si possono riorganizzare i
pixel delle immagini per ottenere le immagini rettificate.
Infatti per ogni punto reale M, il corrispondente pixel m0 nell’immagine non
rettificata è dato dalla relazione (a meno di un fattore di scala)
( 3.6 )
Mentre nell’immagine rettificata corrisponde al pixel di coordinate mn
( 3.7 )
Pag. 23
Capitolo 3
Il risultato è visibile in Figura 3.3.
Figura 3.3 Partendo dall'alto una coppia di fotografie
stereo non rettificata e affianco alcune rette epipoalari
evidenziate (convergenti) corrispondenti ai punti
rappresentati con una croce. Sotto le stesse immagini
dopo la rettifica e in evidenza le rette epipolari divenute
parallele.
Questo riposizionamento dei singoli pixel da un lato velocizza e migliora la ricerca
delle corrispondenze tra le immagini che ora avviene solamente in orizzontale,
dall’altro può creare delle condizioni di ambiguità portando l’algoritmo a situazioni
erronee nel successivo matching. Infatti rettificando le immagini i pixel vengono
spostati e riposizionati. Questo provoca zone vuote che devono essere invece
riempite interpolando i valori dei punti vicini. E’ possibile che un pixel non capiti
esattamente in una cella della matrice immagine e che quindi il suo valore di intensità
debba essere pesato tra le celle circostanti. Tutte queste approssimazioni possono
dare poi luogo a false corrispondenze e a successive difficoltà nella ricerca delle
corrispondenze, motivo per cui si é deciso di evitare la rettificazione consapevole che
questo potesse portare a successive difficoltà nella ricerca delle corrispondenze.
Pag. 24
Capitolo 4
4.
Situazione iniziale
Analizzando i vari metodi descritti precedentemente nel capitolo 3 “Stato dell’arte” si
è scelta una sequenza iniziale di operazioni (Figura 4.1). Dopo la calibrazione, come
si è già detto, si è scartata la fase di rettifica delle immagini e si è optato per l’utilizzo
di un algoritmo di identificazione di tipo features; questo per assicurare alla
ricostruzione una migliore robustezza e un tempo di calcolo ragionevole poichè
l’analisi pixel per pixel delle immagini catturate (ovvero fotografie a 10Mpx) sarebbe
stata impensabile.
Si è passati quindi alla fase di triangolazione e di post-elaborazione.
Figura 4.1 Processo di elaborazione.
Capitolo 5
5.
Acquisizione delle immagini
Per acquisire le immagini si è scelto l’utilizzo della fotocamera Fujifilm FinePix 3D
W1. E’ dotata di due obiettivi che catturano simultaneamente le due fotografie. Il
vantaggio nell’utilizzare un sistema come questo è che una volta calibrato e
conseguentemente ricavati tutti i parametri estrinseci tra i due sensori CCD questi
rimangono costanti. Al contrario utilizzando due webcam o due macchine
fotografiche separate, a meno di non tenerle fisse nella stessa posizione relativa, la
calibrazione sarebbe dovuta essere ripetuta ad ogni acquisizione.
Figura 5.1 Fujifilm REAL 3D W1.
La macchina fotografica utilizzata (Figura 5.1) scatta le due fotografie ma non realizza
alcun modello 3D. Semplicemente, tramite il suo schermo LCD lenticolare, permette
all’utente di visualizzare l’immagine in tre dimensioni mostrando separatamente ai
due occhi la fotografia corrispondente. I due obiettivi sono dotati di sensori CCD da
10Mpx distanti 77mm. La coppia di immagini sono salvate come un unico file .MPO
e successivamente nuovamente separate utilizzando il software STEREO PHOTO
MAKER. Le due fotografie quindi sono state importate all’interno dell’ambiente di
sviluppo del software di calcolo numerico MATLAB.
Capitolo 5
Tabella 5.1 Specifiche della macchina fotografica
Fujifilm REAL 3D W1.
Modello
FinePix REAL 3D W1
Numero effettivo
di pixel
10.0 millioni pixel
Sensore CCD
1/2.5-inch CCD x2
Dimensioni delle
immagini
L: 4:3 3,648 x 2,736 / L: 3:2 3,648 x 2,432 / M: 4:3 2,592 x 1,944
/ S: 4:3 2,048 x 1,536 pixel / S: 16:9 1,920 x 1,080 pixel
Lenti
Fujinon 3x Zoom ottico, F3.7(W) - F4.2(T)
Lunghezza focale
f=6.3 - 18.9mm, equivalente a 35.0 - 105.0mm di una fotocamera
da 35mm
Apertura
Wide: F3.7 / F5 / F8, Telephoto: F4.2 / F5.6 / F9
Sensitivity
Auto / Equivalent to 100 / 200 / 400 / 800 / 1600 (Standard
Output Sensitivity)
Velocità
dell’otturatore
Night: 1/8sec. - 1/500sec.
Night (Tripod): 3sec. - 1/500sec.
Manual: 1/2sec. - 1/1000sec.
AUTO: 1/4sec. - 1/1000sec.
Bilanciamento del
bianco
Pag. 28
Automatico
Predefinito: Fine, Shade, Fluorescent light (Daylight), Fluorescent
light (Warm white), Fluorescent light (Cool white), Incandescent
light, Underwater lighting
Capitolo 6
6.
Calibrazione
Utilizzando il Matlab Calibration Toolbox (ovvero un toolbox di calibrazione) [23] sono
stati stimati i parametri principali della macchina fotografica stereoscopica.
Esistono in letteratura diverse tecniche per effettuare la calibrazione di un sistema
stereoscopico. Tipicamente però questa operazione viene eseguita con tecniche
basate sull’utilizzo di pattern geometrici [2] dei quali sono note con precisione le
caratteristiche (dimensione e posizione delle features presenti nel pattern, etc.). In
questo caso specifico la calibrazione è avvenuta stampando e fotografando una
scacchiera (Figura 6.1) di cui si conosceva la dimensione esatta dei quadretti, inclinata
in vario modo. Il toolbox ha identificato la posizione dei vertici dei quadretti da cui ha
ottenuto l’angolazione della scacchiera ad ogni scatto. Successivamente ne ha ricavato
i coefficienti intrinseci ed estrinseci della macchina fotografica.
Più immagini vengono scattate e più il risultato della calibrazione risulta corretto e
con un’approssimazione inferiore. Per calibrare la macchina fotografica stereoscopica
si è visto che utilizzando 34 fotografie si giungeva a convergenza.
Figura 6.1 Esempi di fotografie utilizzate per la
calibrazione.
Capitolo 6
6.1 Parametri intrinseci
Sono i parametri di ciascun oculare della macchina fotografica [24][25].
Comprendono:
i.
ii.
iii.
iv.
Centro ottico (punto principale) C : corrisponde al punto in cui un raggio
luminoso, attraversandolo, non subisce alcuna deviazione e risulta quindi
perpendicolare al sensore.
Lunghezza focale fc: è la distanza tra il centro ottico dell’obiettivo e il sensore
alla quale viene messa a fuoco l’immagine di un punto posto all’infinito.
Aberrazioni kc: sono le distorsioni che si verificano a causa del fatto che le
lenti che compongono l’ottica sono curve.
Coefficiente di inclinazione α: indica l’angolo tra l’asse x e y dei pixel che
compongono il sensore.
Figura 6.2 Disposizione delle scacchiere rispetto
all'obiettivo di sinistra.
I valori ottenuti dalla calibrazione dei due obiettivi separatamente sono riportati in
Tabella 6.1 divisi per i due obiettivi..
Pag. 30
Calibrazione
Tabella 6.1 Parametri intrinseci di ciascun obiettivo.
Obiettivo sinistra
Obiettivo destra
Centro Ottico: C_sinistra[px] = [1823.5 Centro Ottico: C_destra[px] = [1823.5
1367.5]
1367.5]
Lunghezza focale: f_sinistra[px] = [4254.7 Lunghezza focale: f_destra[px] = [4297.1
4321.5]
4362.9]
Distorsione: kc_sinistra = [-0.1054 0.11 - Distorsione: kc_destra = [-0.0792 0.0179
0.0018 -0.0035 0]
0.0026 -0.0038 0]
Inclinazione: α_sinistra = [ 0.00000 ] => Inclinazione: α_destra = [ 0.00000 ] =>
angolo 90°
angolo 90°
La focale delle due ottiche risulta molto simile e il coefficiente di inclinazione pari a 0
comporta che i pixel che compongono l’obiettivo siano perfettamente quadrati. La
distorsione è rappresentata graficamente in Figura 6.3.
Figura 6.3 Rappresentazione della distorsione per
l'obiettivo di sinistra e quello di destra (sono evidenziate
le curve a isodistorsione con riportato lo scostamento in
px).
Le frecce blu indicano lo scostamento effettivo di un pixel dovuto alla distorsione
della lente. Per entrambe le lenti lo scostamento massimo è di 45 pixel.
La fotocamera ha un sensore di ½.5”che è largo 5.76mm e alto 4.29mm. Se le foto
hanno una risoluzione di 3648px X 2736px risulta quindi che la distanza focale in
millimetri sia:
Pag. 31
Capitolo 6
( 6.1 )
( 6.2 )
Le distanze focali sono da ritenersi corrette perché rientrano nei limiti riportati dal
datasheet della macchina fotografica (f=6.3 - 18.9mm).
6.2 Parametri estrinseci
Combinando le fotografie utilizzate per la calibrazione distinta tra le due camera
(Figura 6.5), si sono ricavati i parametri estrinseci di queste [24][25].
Questi indicano la posizione relativa tra i due obiettivi e sono la matrice di rotazione
e il vettore traslazione.
Rotazione:
Traslazione [m]:
[
]
[
]
( 6.3 )
( 6.4 )
E’ da notare che la rotazione avviene quasi esclusivamente lungo l’asse verticale,
indice che gli obiettivi sono leggermente convergenti (Figura 6.4), mentre la
traslazione è principalmente in orizzontale e corrisponde a 77mm.
Entrambi i risultati sono stati verificati sia empiricamente scattando delle fotografie
di riferimento, sia controllando i dati tecnici della macchina fotografica.
Figura 6.4 Rappresentazione della posizione relativa tra i
due obiettivi.
Pag. 32
Calibrazione
Figura 6.5 Posizionamento delle scacchiere rispetto ad
entrambi gli obiettivi.
Pag. 33
Capitolo 7
7.
Elaborazione delle immagini
Le immagini vengono visualizzate da MATLAB come matrici tridimensionali di
valori delle cui celle rappresentano il livello di intensità dei colori fondamentali di
ciascun pixel (Figura 7.1).
Figura 7.1 Rappresentazione digitale delle immagini.
Una volta importate le immagini inizia la fase di pre-processing dove si richiede
all’utente l’inserimento dei parametri di analisi.
MATLAB (abbreviazione di Matrix Laboratory) è un ambiente per il calcolo numerico
e l'analisi statistica che comprende anche l'omonimo linguaggio di programmazione
creato dalla MathWorks. MATLAB consente di manipolare matrici, visualizzare
funzioni e dati, implementare algoritmi, creare interfacce utente ed interfacciarsi con
altri programmi. Nonostante sia specializzato nel calcolo numerico, un toolbox
permette a MATLAB l’importazione e l’elaborazione di immagini. MATLAB è usato
da milioni di persone nell'industria e nelle università.
Capitolo 8
8.
Relazione tra gli scostamenti e la distanza
dell’oggetto
Si possono fare alcune considerazioni riguardo allo scostamento di un punto (pixel
nel sistema di coordinate immagine) tra le due immagini. Si consideri un oggetto reale
e si immagini che questo risulti nell’immagine di sinistra in corrispondenza del centro
ottico. Ora se si varia la distanza dell’oggetto dalla camera di sinistra ortogonalmente
al sensore, il pixel relativo non subirà alcun spostamento (Figura 8.1). Al contrario il
pixel corrispondente nell’immagine di destra si scosterà in verticale ed in orizzontale
proporzionalmente alla distanza dell’oggetto.
Figura 8.1 Area dove si posiziona l'oggetto al variare
della posizione del punto corrispondente nelle
immagini.
In Figura 8.2 è rappresentata questa relazione basandosi sui parametri di calibrazione
ricavati precedentemente. Si può notare che se gli scostamenti sono nulli, ovvero se
anche nell’immagine di destra il pixel si trova in corrispondenza del centro ottico,
l’oggetto si trova ad una distanza di 2000mm. La validità di questo valore è
confermato dal datasheet della macchina fotografica (Tabella 5.1) sotto la voce punto
di convergenza. Inoltre risulta evidente che all’aumentare dello scostamento
orizzontale in X la distanza dell’oggetto aumenta esponenzialmente (lo scostamento
Y verticale è legato allo scostamento in X dato che le immagini non sono rettificate e
quindi le rette epipolari non sono parallele). Questo comporta che se nella fase di
ricerca delle corrispondenze l’algoritmo ha una deviazione standard dalla posizione
esatta del pixel corrispondente di 3 pixel per oggetti vicini (circa 1000 mm di distanza
dall’obiettivo) significa un errore di circa 15mm mentre per un oggetto a 2000mm
Capitolo 8
l’errore sarà di quasi 70mm. La percentuale dell’errore sulla distanza aumenta dal
1.2% al 3.23% (Tabella 8.1).
Per contenere il più possibile l’errore sulla stima della profondità entro i 10 mm si è
deciso di utilizzare questa fotocamera per oggetti entro gli 800mm di distanza.
Questa ipotesi è normalmente assunta dagli algoritmi moderni. Nel caso si volessero
analizzare oggetti più lontani sarebbe necessario un sistema composto da due
telecamere disposte ad una distanza relativa maggiore.
Tabella 8.1 Errore di ricostruzione al variare della
lontananza dell'oggetto.
Distanza
dall’obiettivo
[mm]
1002
2009
5173
10028
Range di distanza
rilevata
[mm]
(considerando 3
pixel di dev. std.)
990÷1014
1946÷2076
4777÷5640
8825÷12290
Range di errore % media di errore
[mm]
sulla distanza
12<x<12
63<x<67
396<x<467
1203<x<2262
4
4
x 10
x 10
9
9
8
8
7
7
6
6
Distanza dal sensore [mm]
Distanza dal sensore [mm]
±1.197
±3.23
±8.34
±17.27
5
4
3
2
5
4
3
2
X: 0
X: 0
Y: 0
1
Y: 0
1
Z: 2000
0
-100
-50
0
50
Scostamento in X [px]
Z: 2000
100
0
-100
-50
0
Figura 8.2 Variazione della distanza di un oggetto al
variare dello scostamento del punto corrispondente
nell'immagine.
Pag. 38
50
Scostamento in Y [px]
100
Capitolo 9
9.
Punti notevoli nelle immagini
Le immagini analizzate sono di grandi dimensione (la risoluzione è pari a 3648x2736
pixel). Per questo un algoritmo del tipo area-based che confrontasse ogni area ritagliata
dall’immagine di destra con ogni area nell’immagine di sinistra sarebbe stato
impensabile con tempi di calcolo notevoli. Per questo è stata preferita una soluzione
features-based. In particolare si è deciso di analizzare le immagini mettendo in evidenza
i corner che le compongono e che risultano facilmente identificabili in entrambe le
immagini. Nella letteratura ci sono molti sistemi di identificazione dei corner. I più
utilizzati sono [26]:
i.
Algoritmo di HARRIS.
ii.
Algoritmo di SUSAN.
Sui più moderni articoli di ricostruzione stereoscopica si fa riferimento anche
all’algoritmo SIFT (Scale-invariant feature transform) [40] che permette di rilevare e
descrivere caratteristiche, o feature, locali in immagini. Dato che può essere utilizzato
per riconoscere lo stesso oggetti tra più fotografie, è stato testato per verificare se
potesse essere utilizzato per la ricerca delle corrispondenze. I risultati si sono rivelati
molto buoni ma il numero di punti di riconoscimento dell’oggetto erano così pochi
che è stato deciso di scartarlo dato che non avrebbe permesso una ricostruzione
superficiale sufficientemente densa di punti.
Per mostrare le differenze tra questi metodi si è utilizzata come immagine di partenza
quella visibile in Figura 9.1.
Figura 9.1 Immagine di esempio utilizzata per la scelta
dell'algoritmo di identificazione corner.
Capitolo 9
9.1 Algoritmo di Harris
Innanzitutto Harris [27][28] calcola il gradiente dell’immagine in direzione
orizzontale
e in direzione verticale
utilizzando l’operatore di Prewitt. Questo
utilizza 2 kernels 3×3 che vengono convoluti con l’immagine originale I per calcolare
con approssimazione le derivate.
[
[
( 9.1 )
]
]
( 9.2 )
Figura 9.2 Gradiente in orizzontale e in verticale
ricavato dall'immagine di esempio.
Quindi si calcolano i prodotti delle derivate Ix2, Iy2 e il prodotto incrociato Ix·Iy sui
quali viene applicato un filtro gaussiano per ridurre l’eventuale rumore presente
(Figura 9.3, Figura 9.4 e Figura 9.5).
Pag. 40
Punti notevoli nelle immagini
Figura 9.3 Prodotto tra le derivate Ix2 in direzione
orizzontale prima e dopo il filtraggio gaussiano.
Figura 9.4 Prodotto tra le derivate Iy2 in direzione
verticale prima e dopo il filtraggio gaussiano.
Pag. 41
Capitolo 9
Figura 9.5 Prodotto incrociato le derivate Ix·Iy in
direzione orizzontale e verticale.
Si procede quindi all’estrazione dei corner. Questa può avvenire utilizzando due
formule distinte. La prima è quella originale di Harris. Prevede l’inserimento di un
parametro k che comunemente viene assunto uguale a 0.04 (Figura 9.6).
(
Dove (
)
(
( 9.3 )
)
) è il determinate della matrice
*
+.
Il rapporto tra gli autovalori λ1 e λ2 della matrice M varia in funzione della presenza di
un bordo orizzontale o verticale o di un corner (Figura 9.7).
Figura 9.6 Rappresentazione grafica del cim ottenuto
mediante la formula di Harris (k=0.03, 0.04, 0.05).
Pag. 42
Punti notevoli nelle immagini
Figura 9.7 Rappresentazione di come variano gli
autovalori in presenza di diverse discontinuità
geometriche.
Noble[27] invece riferisce la formula seguente che permette di trovare un numero
maggiore di corner senza dover configurare alcun parametro a priori (eps indica la
precisione della macchina su cui si esegue il programma) (Figura 9.8).
( 9.4 )
Figura 9.8 Rappresentazione del cim ottenuto
utilizzando la formula di Noble.
Pag. 43
Capitolo 9
Quindi viene impostato il raggio della regione considerata per la soppressione dei
non massimi. In pratica un pixel che non risulta un massimo locale della regione non
viene considerato candidato a corner e viene scartato. Si imposta anche il valore di
soglia che stabilisce il limite per scartare un candidato corner o per ritenerlo tale
(Tabella 9.1).
Tabella 9.1 Corner identificati con l’algoritmo di Harris
al variare della dimensione dell'area considerata e del
valore di soglia di esclusione.
Soglia = 1000
Soglia = 2500
Raggio = 5 pixel
Raggio = 3 pixel
Raggio = 1 pixel
Soglia = 500
Ovviamente tenere un raggio ed una soglia bassa garantisce un alto numero di corner
ma con il rischio di ritenere corner pixel leggermente diversi da quelli intorno a causa
del rumore. Al fine di garantire una certa robustezza (un numero eccessivo di punti
può portare ad ambiguità nella successiva ricerca di corrispondenze) in questa fase di
ricerca si è scelto un valore di raggio pari a 3 pixel e di soglia pari a 1300 pixel. Si è
Pag. 44
Punti notevoli nelle immagini
comunque previsto la possibilità di settare i valori di raggio e soglia tra le variabili di
input del programma. Così facendo è possibile utilizzare al massimo delle potenzialità
l’algoritmo di Harris nel caso l’oggetto da ricostruire sia particolarmente ricco di
dettagli e le fotografie siano di buona qualità con un ridotto rumore presente.
9.2 Susan
L’algoritmo di identificazione di corner Smallest Univalue Segment Assimilating Nucleus [30]
si basa sul fatto che ogni pixel dell’immagine ha associata un area circostante di simile
luminosità. L’algoritmo posiziona una maschera circolare intorno ad un pixel e
compara la luminosità dei pixel intorno con quella del pixel centrale (chiamato nucleus
della maschera). L’area composta dai pixel a simile luminosità viene chiamata Usan
area.
Considerando M la maschera intorno al pixel centrale m0 e chiamando m i pixel
intorno a quest’ultimo tali che
, l’operazione di confronto della luminosità può
essere riscritta come:
( ( )
( )
(
( 9.5 )
))
Dove t è il raggio della maschera. Si sommano quindi il numero dei pixel a simile
luminosità così da definire l’area Usan.
( )
( 9.6 )
∑ ( )
Si compara quindi n(M) con il valore di soglia geometrico g che normalmente viene
impostato a metà del massimo valore che n può assumere (nmax/2).
Se si è in presenza di un corner la Usan area sarà meno della metà della maschera
(Figura 9.9).
( )
{
( )
( )
( 9.7 )
Si ripete la stessa procedura considerando tutti gli altri pixel dell’immagine come
nucleus.
Pag. 45
Capitolo 9
Nucleus della maschera
Maschera
Pixel nella maschera con la
stessa luminosità del nucleus
(Usan area)
Figura 9.9 Rappresentazione dei possibili casi di
posizionamento del'area Usan.
In Tabella 9.2 si vede chiaramente come all’aumentare della soglia di esclusione dei
corner i risultati si ripuliscano dai falsi corner dovuti al rumore (ad esempio sulla parete
di sfondo). Al tempo stesso però con una soglia pari a 10, quando ormai non vi sono
più outlier, il numero dei corner trovati è nettamente inferiore a quelli restituiti
dall’algoritmo di Harris.
Questo algoritmo restituisce buoni risultati in presenza di rumore dato che,
utilizzando un valore di soglia sufficientemente alto, non lavora sulle derivate
dell’immagine e quindi non necessita di alcun filtro. Al tempo stesso questa sua
caratteristica non gli fa ricavare corner dove vi sono dettagli ad alta frequenza ma solo
dove sono presenti dei salti netti di intensità del colore. Per questo restituisce meno
corner rispetto all’algoritmo di Harris.
Tabella 9.2 Corner identificati con l’algoritmo di Susan
al variare del valore di soglia di esclusione.
Soglia = 2
Pag. 46
Soglia = 5
Soglia = 10
Capitolo 10
10. Ricerca delle corrispondenze
Una volta trovati separatamente i punti notevoli nelle due immagini (corner) con il
metodo descritto precedentemente si procede all’identificazione delle
corrispondenze. Come spiegato precedentemente l’algoritmo di matching compara i
punti ricavati con il corner detection nelle due immagini (p1 per al fotografia di sinistra e
p2 per quella di destra) e verifica quali siano quelli corrispondenti.
Innanzitutto il programma scarta i punti notevoli troppo vicini al bordo delle
immagini intorno ai quali è quindi impossibile costruire la finestra di correlazione.
Per ciascuno dei punti rimasti per entrambe le immagini si costruisce quindi la
finestra di osservazione w.
Considerando poi la finestra w1 costruita su un punto dell’immagine di sinistra e la
finestra w2 di un punto di quella di destra che però sia a una distanza compresa tra
dmin e dmax (distanza minima e massima di analisi immessa dall’utente a inizio
programma) si effettua la correlazione.
La finestra w1 e w2 viene normalizzata.
[
]
[
‖[
]
]‖
( 10.1 )
[
]
[
‖[
]
]‖
( 10.2 )
La funzione di correlazione usata è
∑[
] [
]
( 10.3 )
Viene quindi costruita una matrice in cui le colonne si riferiscono ai punti notevoli
dell’immagine di destra, mentre le righe riguardano i punti dell’immagine di sinistra.
Nelle celle vengono inseriti i valori di correlazione cor rispettivamente alla colonna e
alla riga considerata.
Capitolo 10
Tabella 10.1 Esempio di identificazione delle
corrispondenze. I massimi per riga sono colorati, in
particolare in giallo le corrispondenze accettate e in
arancione quella rifiutata.
P1destra P2destra P3destra P4destra P5destra
P1sinistra
0
1
3
2
0
P2sinistra
0
0
2
6
3
P3sinistra
0
0
0
7
4
Il massimo per righe della matrice corrisponde alla correlazione del punto a sinistra
rispetto ai punti dell’immagine di destra (evidenziati in Tabella 10.1 come celle
colorate). Per eliminare i possibili outlier si considerano anche i massimi per colonne
ovvero le corrispondenze dei punti dell’immagine di destra rispetto a quelli di sinistra.
Se i massimi per colonne e per righe corrispondono allora la coppia di punti a cui si
riferiscono è assunta come corrispondenza (celle colorate in giallo), altrimenti la
coppia viene scartata (cella in arancione).
10.1 Immissione delle distanze iniziali
Per migliorare i risultati restituiti dall’algoritmo di ricerca delle corrispondenze
all’avvio del programma si richiede all’utente di cliccare sul punto più vicino e su
quello più lontano rispetto agli obiettivi (in entrambe le fotografie).
Entrambe le richieste saranno utili alla successiva fase di ricerca delle corrispondenze.
Infatti ridurre l’area di ricerca permette di ridurre le possibili false corrispondenze e al
tempo stesso velocizzare il matching. Allo stesso modo indicare la minima e la
massima profondità dell’oggetto permette di ricavare dai parametri di calibrazione il
minimo e il massimo scostamento tra i pixel corrispettivi tra le due immagini (minima
e massima disparità) e quindi migliorare la qualità dell’algoritmo e infine contenere gli
errori nella stima della profondità dell’oggetto.
Più nello specifico chiamando SX e DX i vettori delle coordinate dell’oggetto più
vicino all’obiettivo per la coppia di immagini originali (non ritagliate) e allo stesso
modo dx e sx per l’oggetto più lontano, è possibile ricavare gli spostamenti effettivi
minimi e massimi delle corrispondenze nelle zone delle immagini considerate.
E’ stato di conseguenza necessario tenere conto della convergenza degli obiettivi.
Pag. 48
Ricerca delle corrispondenze
Si è immaginato di volere trovare la distanza di un oggetto disposto in
corrispondenza del centro ottico della camera di sinistra (Figura 8.2). Per distanze
molto ridotte e fino all’intersezione con la retta perpendicolare al sensore di destra
passante per il centro ottico lo scostamento nell’immagine di destra è positivo. In
corrispondenza del centro ottico di destra la disparità è nulla. Inoltre all’aumentare
ulteriormente della distanza la disparità assume un valore negativo con andamento
esponenziale. Se quindi l’oggetto lontano e quello vicino si trovano entrambi oltre il
punto X (Figura 10.1) o entrambi prima del punto X, la distanza minima e massima
di ricerca risulta il valore minimo e massimo degli scostamenti in valore assoluto.
Altrimenti se ci si trova con un range di profondità a cavallo del punto X la distanza
minima di ricerca è nulla mentre quella massima equivale alla disparità massimo in
modulo.
L’area di ricerca risulta quindi definita dal valore minimo e massimo di disparità
incrementato della dimensione della finestra di ricerca ritagliata intorno ai corner.
X
Centro ottico
di sinistra
Fotografia sinistra
Centro ottico
di destra
Fotografia destra
Figura 10.1 Rappresentazione degli scostamenti al
variare della distanza dell'oggetto (rappresentata dalle
frecce arancioni).
Pag. 49
Capitolo 11
11. Miglioramento dei risultati
Dai primi risultati ottenuti (Figura 11.2 e Figura 11.3) si è notato molto rumore
difficilmente eliminabile con qualche algoritmo successivo alla ricostruzione 3D.
Si sono quindi studiati dei metodi per ridurre gli outlier direttamente nelle fasi di
processo.
I metodi riportati di seguito sono stati verificati, applicandoli all’analisi della coppia di
fotografie che ritraggono una semplice parete (Figura 11.17). In questo modo è stato
possibile verificare facilmente sia visivamente (osservando i risultati della
ricostruzione tridimensionale) sia matematicamente (analizzando gli scostamenti dal
piano di regressione che simboleggiava la parete reale) quale fosse l’effettivo
vantaggio nell’utilizzo di questi algoritmi.
Per i primi due metodi (11.1 Analisi zone uniformi e 11.2 Proiezione e stampo) sono
state riportate le assunzioni e alcuni esempi di casi particolari per meglio
esemplificare il fenomeno. Per i successivi algoritmi di miglioramento sono riportate
le ipotesi iniziali, l’implementazione e i risultati ottenuti, applicandoli all’analisi della
parete (Figura 11.1, Figura 11.2 e Figura 11.3) riportando anche i dati senza la loro
applicazione per un rapido confronto.
Alla fine di questo capitolo si è provato ad utilizzare tutti i metodi qui descritti in
serie alle fotografie della parete e ne sono stati riportati i risultati complessivi.
Figura 11.1 Coppia di fotografie della parete utilizzate
per mostrare i risultati dei vari metodi di miglioramento.
Capitolo 11
Figura 11.2 Ricostruzione della parete senza alcun
metodo migliorativo (vista frontale).
Figura 11.3 Ricostruzione della parete senza alcun
metodo migliorativo (vista laterale).
Pag. 52
Miglioramento dei risultati
11.1 Analisi zone uniformi
Per aiutare l’utilizzatore a comprendere se il programma possa dare buoni risultati
con le fotografie utilizzate e con la dimensione della finestra w scelta, si effettua una
analisi delle zone uniformi Il problema principale di un algoritmo basato
sull’identificazione di corner è la presenza di aree nelle immagini senza alcuna
discontinuità.
Figura 11.4. Immagine con elevata uniformità. Zoom
sull'area della guancia analizzata in seguito.
In Figura 11.4 si nota bene come la ricerca di corner sulla guancia possa portare
pochissimi riferimenti e comunque la scelta delle corrispondenze tra i corner trovati
sarebbe comunque molto difficile. Questo perché le finestre che si ricaverebbero
intorno ai corner sarebbero pressochè uniformi e dello stesso colore e quindi la
funzione di correlazione cor restituirebbe valori molto simili. La matrice di
correlazione risulterebbe quindi composta da valori non chiaramente distinti e la
ricerca del massimo porterebbe ad un match errato.
Di seguito è mostrato il 3D ottenuto dalla zona della guancia (Figura 11.5 e Figura
11.6). Come si era ipotizzato risultano:
i.
Pochi punti dati dalla difficoltà di trovare dei corner
Pag. 53
Capitolo 11
ii.
Molti outlier causati dalla difficoltà nella correlazione (outlier distanti anche
17mm rispetto alla loro corretta posizione).
Figura 11.5 Ricostruzione 3D della zona guancia (vista
dall'alto).
Figura 11.6 Ricostruzione 3D della zona guancia (vista
frontale) .
Pag. 54
Miglioramento dei risultati
Per aiutare l’utente a visualizzare le zone ad elevata uniformità si è utilizzata una
funzione basata sul gradiente di intensità.
Si calcola dapprima il gradiente orizzontale. Per fare questo si calcola la differenza diff
tra due pixel dell’immagine successivi (orizzontalmente) per ciascun canale RGB k.
( )
(
)
(
)
( 11.1 )
Si fa la media delle differenze quadrate sui tre canali RGB.
∑
( )
( 11.2 )
Il valore così ottenuto si inserisce nella cella (i,j+1) della matrice gradiente orizzontale
gradOriz (ha dimensioni uguali all’immagine considerata.).
Se gradOriz(i,j)<gradOriz(i,j+1), ovvero se l’intensità aumenta spostandoci verso
destra, allora si ricopia anche nella cella (i,j) il valore sum.
In Figura 11.7 è mostrato il gradiente orizzontale (matrice gradOriz) ricavato
dall’immagine precedente. Si nota chiaramente che dove vi è un salto di intensità dei
colori il gradiente è più chiaro (ad esempio sui contorni della faccia), mentre dove il
colore nell’immagine di partenza era più uniforme, risulta una zona scura anch’essa
uniforme.
Figura 11.7 Gradiente Orizzontale (w = 41).
Pag. 55
Capitolo 11
Si considera quindi la dimensione w della finistra con cui, secondo l’utente, è corretto
effettuare il matching. Per ogni cella della finestra gradOriz si ritaglia una finestra wxw e
si calcola la media quadrata dei valori al suo interno. Se questa è minore di un
predeterminato valore di soglia, alla cella intorno a cui è stata costruita la finestra
viene assegnato il valore 255 (ovvero il colore bianco) altrimenti il colore nero (valore
0).
Con questo metodo è facile vedere come al crescere delle dimensioni della finestra di
osservazione le zone non uniformi (bianche) aumentano di dimensione (Figura 11.8,
Figura 11.9 e Figura 11.10), per cui nella fase di matching le aree considerate attorno ai
corner saranno sufficientemente grandi da evitare ambiguità.
Questa rappresentazione delle zone uniformi aiuta a comprendere quale dimensione
della finestra per il matching sia più adatto per la ricostruzione dell’oggetto. E’
importante sottolineare che un valore eccessivo di w comporta alti tempi di calcolo.
Dalle analisi effettuate si è visto che finestre di 41x41 pixel risultano il miglior
compromesso tra accuratezza e tempi di processo.
Figura 11.8 Zone uniformi (in bianco) con finestra di 11
pixel.
Pag. 56
Miglioramento dei risultati
Figura 11.9 Zone uniformi (in bianco) con finestra di 21
pixel.
Figura 11.10 Zone uniformi (in bianco) con finestra di
41 pixel.
Pag. 57
Capitolo 11
11.2 Proiezione e stampo
Nel caso l’oggetto sia di colore particolarmente uniforme o l’aumento delle
dimensioni della finestra provochi un tempo di calcolo eccessivo nella fase di
matching, è possibile proiettare sull’oggetto un pattern così da eliminare le omogeneità
di colore [31][32]. Si sono sperimentati differenti tipi di pattern:
i.
Pattern random ricavato da una superficie spruzzata con una bomboletta spray
(Figura 11.11). Nelle prove è risultato poco denso e quindi il numero di punti
restituiti è esiguo. Inoltre nei casi in cui l’oggetto aveva un’estensione di
profondità elevata e quindi la ricerca delle corrispondenze doveva essere fatta
in un’area molto grande, si sono presentati problemi di ambiguità dati dalla
ridotta varietà di forma dei puntini.
Figura 11.11 Porzione del pattern random.
ii.
Pattern composto da caratteri disposti casualmente (Figura 11.12). Non ha
dato buoni risultati perché la distanza tra le lettere crea spazi senza
corrispondenze nella ricostruzione. Inoltre la dimensione delle lettere non ha
permesso la proiezione sull’oggetto riducendo la dimensione del pattern (per
cercare di rendere più fitta la nuvola dei corner) dato che si riduce ad un
pattern uniforme.
Figura 11.12 Porzione del pattern composto da lettere.
Pag. 58
Miglioramento dei risultati
iii.
Pattern realizzato a mano (Figura 11.13). Si è rivelato il migliore con un grande
numero di corrispondenze trovate, poche ambiguità nei match e la
particolarità di poter essere proiettato sull’oggetto sia molto ingrandito che
ridotto.
Figura 11.13 Pattern realizzato a mano.
Per rendere il sistema portatile si è utilizzato il proiettore portatile 3M MPro-120
(Figura 11.13).
Figura 11.14 Proiettore portatile 3M MPro-120.
I principali vantaggi di questo proiettore sono la ridotta dimensione e l’alimentazione
a batteria dato che il fascio luminoso è generato da un Led con un consumo molto
basso. Ovviamente l’intensità luminosa prodotta è proporzionale alle dimensioni e
quindi il 3M MPro risulta utilizzabile solo in ambienti quasi bui.
Una alternativa alla proiezione è l’utilizzo di terriccio sul quale viene premuto
l’oggetto come in Figura 11.15. Il vantaggio principale è che il terriccio per sua natura
è composto da più materiali a colori diversi. Questa sua caratteristica equivale
Pag. 59
Capitolo 11
all’utilizzare un pattern random e quindi facilita le corrispondenze. Estratto l’oggetto
dalla terra si fotografa l’impronta lasciata e si procede nell’analisi. Le ricostruzioni
sono accurate e non necessitano di un ambiente scuro (cfr. Proiezione) ma si
perdono i dettagli più piccoli dato che la terra non riesce a riprodurre gli spigoli vivi e
le piccole cavità. Inoltre è necessario avere a disposizione del terriccio che può non
essere così facile in determinate situazioni.
Figura 11.15 Impronta di scarpa su sabbia.
11.3 Ricerca su tre canali RGB
Inizialmente le immagini erano state convertite in scala di grigi (perdendo quindi
informazioni sui colori) prima di essere analizzate. Per aumentare il numero di
corrispondenze si è deciso di considerarle scomposte nei singoli canali di colore
(RGB). Si sono quindi cercati i corner e le corrispondenze per ciascun canale
separatamente.
In realtà le corrispondenze trovate in questo modo sono poche di più ma
sicuramente non in numero tale da giustificare un tempo di calcolo 3 volte maggiore
(dato che l’analisi viene ripetuta per ciascun canale RGB).
Utilizzare invece il pattern di proiezione traslato di qualche pixel rispetto all’orizzontale
sui tre piani RGB (Figura 11.16) e analizzare le fotografie acquisite separatamente
per i tre colori ha permesso un notevole aumento della quantità dei punti identificati.
Infatti con questa soluzione è possibile con una unica fotografia ottenere
l’equivalente di tre acquisizioni spostando il proiettore (con pattern in scala di grigi).
Pag. 60
Miglioramento dei risultati
Figura 11.16 Pattern di proiezione RGB.
Figura 11.17 Fotografia alla parete con pattern RGB.
Pag. 61
Capitolo 11
In Tabella 11.1 sono riportati i risultati utilizzando le fotografie di una parete (Figura
11.17) con proiettato il pattern RGB e analizzando le fotografie dapprima
trasformate in scala di grigi e poi utilizzando sia la scala di grigi che i tre colori
separatamente.
Dalle analisi si è visto che analizzare i colori separatamente ha portato comunque ad
un numero di corrispondenze ripetute maggiore, per cui si sono evidenziate le
percentuali e il numero di match unici.
Le corrispondenze ripetute nell’analisi in scala di grigi risultano dal fatto che, come
spiegato precedentemente nel capitolo 10, la ricerca di corrispondenze è stata ridotta
entro un range di disparità che corrisponde ad una fascia dell’immagine in cui cercare
il match. Queste fasce, realizzate per ogni punto fornito dal corner detector, si
sovrappongo e possono quindi dare luogo a corrispondenze ripetute.
Tabella 11.1 Confronto dei risultati analizzando le
immagini solamente in scala di grigio o anche nei tre
colori fondamentali separatamente.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di
match
errati
% match
corretti
Tempo
operazione
[s]
Scala di
grigi
24538
18913
77.08
2222
88.25
152
Scala di
grigi +
RGB
99477
59222
59.53
7165
87.90
623
Si nota che il numero di punti ricavati aumenta di 4 volte (grigio, rosso, verde e blu)
ma anche i tempi di calcolo e il numero di outlier(che però restano proporzionali al
numero di corrispondenze). Nel secondo caso appare anche un 40% circa di match
ripetuti.
Nonostante l’aumento degli outlier, dalle figure successive (Figura 11.18, Figura 11.19,
Figura 11.20 e Figura 11.21) è chiaramente visibile che l’aumento degli inlier rende la
nuvola di punti dell’oggetto molto più densa e quindi permette una ricostruzione più
dettagliata.
Pag. 62
Miglioramento dei risultati
Figura 11.18 Ricostruzione della parete usando
esclusivamente l'immagine in scala di grigi (vista
frontale).
Figura 11.19 Ricostruzione della parete usando
esclusivamente l'immagine in scala di grigi (vista
laterale),
Pag. 63
Capitolo 11
Figura 11.20 Ricostruzione della parete analizzando
oltre all’immagine in scala di grigi anche separatamente i
tre piani di colore (vista frontale).
Figura 11.21 Ricostruzione della parete analizzando
oltre all’immagine in scala di grigi anche separatamente i
tre piani di colore (vista laterale),
Pag. 64
Miglioramento dei risultati
11.4 Miglioramento dei dettagli
È stato poi utilizzato anche un algoritmo per aumentare i dettagli nelle immagini
acquisite. In questo modo è possibile mettere maggiormente in evidenza le
discontinuità nelle fotografie aumentando così il numero di riferimenti riscontrati
dall’identificatore di corner.
Questa funzione è basata sul filtrare le immagini [33]. Si effettua un filtro mediano
dell’immagine considerando per ogni pixel un’area wxw intorno e mediando i valori al
suo interno. Si ottiene così un’immagine con meno dettagli (filtro passa basso) come
in Figura 11.22b.
Figura 11.22 Immagine originale e immagine filtrata con
un filtro passa basso.
Si sottrae quindi dall’immagine originale quella appena filtrata e il risultato è una
rappresentazione dei soli dettagli ad alta frequenza (filtro passa alto) visibili in Figura
11.23a. Infine si somma quest’ultima con l’immagine iniziale così da aumentare la
percezione dei dettagli (Figura 11.23b).
Utilizzando questo miglioramento è stato possibile aumentare il numero di corner
trovati e migliorare la qualità delle corrispondenze rendendo più sicura la
correlazione.
Pag. 65
Capitolo 11
Figura 11.23 Immagine filtrata con un filtro passa alto e
immagine risultante con i dettagli evidenziati.
Riprendendo l’immagine della faccia e in particolare la zona della guancia (Figura
11.4), è facile osservare che il numero di match aumenta notevolmente nel caso
dell’immagine filtrata (Figura 11.25) rispetto a quella originale(Figura 11.24).
Figura 11.24 Ricerca delle corrispondenze sull'immagine
originale senza aumento dei dettagli.
Pag. 66
Miglioramento dei risultati
Figura 11.25 Ricerca delle corrispondenze sull'immagine
filtrata.
In Figura 11.26 e in Figura 11.27 si vede chiaramente come dalla ricostruzione della
parete con questo algoritmo il numero di match unici aumenti (da 18913 a 21688 in
Tabella 11.2)
Tabella 11.2 Confronto dei risultati ottenuti dall'analisi
della parete prima e il filtraggio dell'immagine per
aumentarne i dettagli.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di
match
errati
% match
corretti
Tempo
operazione
[s]
Senza
filtraggio
24538
18913
77.08
2222
88.25
0
Filtrato
28170
21688
76.98
2638
87.83
12
Pag. 67
Capitolo 11
Figura 11.26 Ricostruzione della parete (vista frontale)
senza filtraggio.
Figura 11.27 Ricostruzione della parete (vista frontale)
utilizzando il filtraggio per migliorare la visibilità dei
particolari.
Pag. 68
Miglioramento dei risultati
11.5 Raffinamento delle corrispondenze
Come riportato precedentemente l’algoritmo di matching ricerca le coppie con indice
di correlazione maggiore esclusivamente tra i corner trovati da Harris.
In realtà i corner trovati possono risultare non perfettamente centrati e differire di
qualche pixel. Questo non riduce l’affidabilità nella ricerca delle corrispondenze ma
nella successiva triangolazione può portare a ricavare profondità errate anche di
qualche centimetro (8 Relazione tra gli scostamenti e la distanza dell’oggetto).
Si è quindi deciso di migliorare il posizionamento nelle immagini dei punti di
corrispondenza.
Considerata la prima coppia di corner trovati si ritiene principale il punto
sull’immagine di sinistra e si ritaglia intorno ad esso un’area w x w (Figura 11.28a).
Intorno al corrispettivo punto sulla fotografia di destra si ritaglia una finestra 2w x 2w
(Figura 11.28b).
Figura 11.28 Finestre ricavate dall'immagine di destra e
di sinistra.
Si è quindi effettuata la cross-correlazione normalizzata tra le due finestre e si è
trovata una matrice con il massimo leggermente spostato in alto e a sinistra visibile in
Figura 11.29.
Pag. 69
Capitolo 11
Figura 11.29 Crosscorrelazione normalizzata. Si nota il
massimo decentrato in rosso scuro.
Si è quindi ricavato il valore di scostamento del massimo della crosscorrelazione dal
centro e si è di conseguenza spostato il punto di match dell’immagine di destra della
stessa quantità. In Figura 11.30 è rappresentato il punto nell’immagine di sinistra
tenuto fisso e nell’immagine di destra il vecchio punto in rosso e il nuovo in blu. È
subito visibile come il nuovo punto abbia un posizionamento più preciso.
Figura 11.30 Coppia di match, in particolare
nell'immagine di destra è visibile il vecchio punto (blu) e
il nuovo (rosso).
Pag. 70
Miglioramento dei risultati
La stessa procedura viene effettuata usando come riferimento i punti, restituiti dalla
correlazione e non riposizionati, dell’immagine di destra. Il risultato finale quindi è un
numero di corrispondenze doppio rispetto a quello ottenuto dal semplice matching.
Nella Figura 11.31 è mostrata la ricostruzione 3D di una parete vista in sezione. Si
nota chiaramente che il 3D senza raffinamento presenta una maggior dispersione dei
punti che compongono l’oggetto, cioè la parete al posto che essere rappresentata
come una lama presenta uno spessore di circa 2mm.
Figura 11.31 Ricostruzione della parete (vista in sezione)
senza l'utilizzo del raffinamento.
Utilizzando il raffinamento lo spessore della parete si riduce a circa 0.5mm (Figura
11.32). Inoltre gli outlier si allontano ulteriormente dall’oggetto. Questo rende più
facile la loro eliminazione con i metodi descritti successivamente ritrovandosi isolati
rispetto alla nuvola dei punti che compone l’oggetto.
Pag. 71
Capitolo 11
Figura 11.32 Ricostruzione della parete (vista in sezione)
con l'utilizzo del raffinamento.
Con la regressione è possibile approssimare i punti trovati con un piano.
L’istogramma delle distanze dei punti rispetto al piano (Figura 11.33 e Figura 11.34)
mostra come per entrambi i casi la distribuzione dei punti sia gaussiana e quindi non
dovuta a errori sistematici dovuti a inesattezze nel codice dell’algoritmo.
Utilizzando il raffinamento i punti si concentrano a distanze inferiori, questo è indice
di una buona approssimazione del piano che simboleggia la parete reale.
Nei boxplot in Figura 11.35e in Figura 11.36 si vede chiaramente come i punti nel caso
raffinato abbiano una dispersione intorno allo zero molto ridotta, al contrario gli
outlier risultano più distanti e più facilmente eliminabili.
Pag. 72
Miglioramento dei risultati
Figura 11.33 Istogramma delle distanze dei punti
tridimensionali dal piano di regressione (analisi della
parete).
Figura 11.34 Particolare dell’istogramma che
rappresenta la distanza dei punti tridimensionali dal
piano di regressione (analisi della parete).
Pag. 73
Capitolo 11
Figura 11.35 Boxplot delle distanze dai piani di
regressione della parete.
Figura 11.36 Particolare dei boxplot delle distanze dai
piani di regressione della parete.
Pag. 74
Miglioramento dei risultati
In Tabella 11.3 sono visualizzate la media e la deviazione standard nei due casi a
riprova delle affermazioni fatte precedentemente sui boxplot.
Tabella 11.3 Valori statistici ottenuti dagli errori di
distanza rispetto al piano di regressione della parete.
Media [m]
Deviazione standard [m]
Senza raffinamento
3.68e-16
7.6e-3
Raffinato
-1.96e-16
8.7e-3
In successive analisi, applicando gli algoritmi descritti in questo capitolo in serie alle
immagini della parete e rappresentando gli errori di stima dei punti tridimensionali
rispetto al piano di regressione che rappresenta la parete reale (Figura 11.37) si è
notata la presenza di una componente periodica sotto forma di un onda circolare. Le
onde hanno un’altezza di ±0.7 mm.
Figura 11.37 Rappresentazione degli errori di
ricostruzione della parete (in evidenza una delle curve
periodiche).
Pag. 75
Capitolo 11
Si è ipotizzato che queste onde fossero dovute allo scarto di pixel ovvero al vincolo
nella ricerca delle corrispondenze di considerare pixel interi.
Sono stati analizzati gli errori dovuti allo scarto di pixel tenendo come distanza di
riferimento dall’obiettivo i 640 mm della parete nella parte centrale utilizzando i
grafici in Figura 11.38. Se si sbaglia una corrispondenza di un pixel in direzione X si
commette un errore nella stima della distanza di 1.3 mm mentre in direzione Y
l’errore è trascurabile (0.1 mm dato che considerando la direzione verticale i due
obiettivi sono pressoché paralleli).
La crosscorrelazione nel raffinamento restituisce una posizione più corretta della
corrispondenza in pixel interi. Di conseguenza l’errore massimo di posizione della
corrispondenza risulta pari a ± 0.5px ovvero in direzione X di 1.3 mm·0.5=0.65 mm
che corrisponde alla mezza altezza dell’onda.
Si è introdotta quindi nell’individuazione del massimo di cross-correlazione l’analisi
del subpixel.
Questa è stata fatta interpolando con un paraboloide i pixel intorno al valore massimo
e considerando la posizione della corrispondenza non più il pixel intero di massimo
ma il massimo della superficie interpolata. In Figura 11.39 è visibile il risultato in cui
si nota che le onde periodiche sono scomparse e l’errore di ricostruzione si è ridotto
da ±3.85mm a ±3.45mm.
Figura 11.38 Scostamenti lungo l'asse X e Y
dell'immagine intorno alla distanza dall'obiettivo di 0.64
m della parete. In direzione X aumentando la disparità
di un pixel tra le corrispondenze la distanza
dall’obiettivo aumenta di 1.3mm, mentre in Y la
variazione di distanza è trascurabile.
Pag. 76
Miglioramento dei risultati
Figura 11.39 Rappresentazione degli errori di
ricostruzione della parete utilizzando la correzione
subpixel paraboloide.
In Tabella 11.4 sono riportati i confronti tra i risultati ottenuti nel caso raffinato e
quello non raffinato ottenuti dalla fotografia della parete.
Tabella 11.4 Confronto dei risultati ottenuti dall'analisi
della parete prima e dopo il raffinamento delle
corrispondenze.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di
match
errati
% match
corretti
Tempo
operazione
[s]
Senza
raffinamento
24538
18913
77.08
2222
88.25
0
Raffinato
(subpixel)
49076
37468
76.34
5131
86.31
448
Pag. 77
Capitolo 11
11.6 Eliminazione outlier
Per eliminare gli outlier direttamente dalle corrispondenze ottenute con la fase di
matching si sono provati due algoritmi:
i.
ii.
Distanza dalle rette epipolari
Ransac [35][36]
11.6.1 Distanza dalle rette epipolari
Questo algoritmo si basa sulla matrice fondamentale ottenuta dai parametri di
calibrazione [34].
La matrice fondamentale si ricava come dalla matrice di rotazione, di traslazione e
dalla matrice di calibrazione dei parametri intrinseci delle due camere.
[
( 11.3 )
]
{
( 11.4 )
}
Da cui si ricava la matrice di traslazione.
( )
[ ( )
( )
( 11.5 )
( )
( )]
[
]
( )
Le matrici dei parametri intrinseci per le due fotocamere sono:
⌈
⌈
⌉
⌉
La matrice fondamentale si ottiene come:
Pag. 78
( 11.6 )
( 11.7 )
Miglioramento dei risultati
(
)
(
)
[
]
( 11.8 )
I coefficienti della retta epipolare sull’immagine di destra si ottengono moltiplicando
le coordinate di un punto nell’immagine di sinistra per la matrice fondamentale e
corrispondono al luogo dei punti corrispondenti al punto considerato al variare della
distanza dalla telecamera.
( 11.9 )
Si calcola la distanza tra la retta epipolare e il punto corrispondente
considerato nell’immagine di destra.
|∑
√
|
( )
a quello
( 11.10 )
( )
Se si esegue le operazioni per tutte le j-esime coppie di corrispondenze si ottiene un
vettore distanza d(j) (Figura 11.40).
Figura 11.40 Distanza d(j) tra il punto j-esimo e la retta
epipolare.
Pag. 79
Capitolo 11
Tramite un valore di soglia si decide la distanza dalla retta epipolare oltre la quale il
punto è da considerarsi un outlier.
Ad esempio in Figura 11.41 è mostrato il grafico delle distanze d(j) riferite alla parete
precedentemente analizzata nel paragrafo 11.3 Ricerca su tre canali RGB.
Figura 11.41 Vettore distanze d(j) dei punti dalla retta
epipolare nel caso della parete.
Per avere delle distanze dalle rette epipolari non influenzate dalla distorsione delle
lenti è necessario riposizionare i punti tenendo conto dei parametri di distorsione
radiale e tangenziale ricavati dalla calibrazione.
Il valore di soglia si è ottenuto con il metodo dei percentili, in particolare con varie
analisi si sono ottenuti dei buoni risultati considerando soglia la distanza entro cui
sono disposti il 90% dei punti
L’analisi dei percentili restituisce un valore limite per il caso esaminato della parete di
14.17 pixel. Nella Figura 11.42 sono mostrati in rosso gli inlier. Si può facilmente
notare che i 10% dei punti considerati quindi outlier risultano distanti dalla nuvola
degli inlier e quindi il risultato è da considerarsi corretto.
In Figura 11.43 è rappresentato l’istogramma delle distanze che ha forma gaussiana
per cui si può ritenere che le distanze siano dovuti ad errori di stima casuali.
Pag. 80
Miglioramento dei risultati
Figura 11.42 Distanza dalla retta epipolare con
evidenziati in rosso le coppie di punti considerate inlier
con una soglia ricavata dal percentile 90% (nel caso
della parete).
Figura 11.43 Istogramma delle distanze dalle rette
epipolari delle corrispondenze ricavate dalla parete.
Pag. 81
Capitolo 11
La lontananza degli outlier dagli inlier è facilmente visibile nel boxplot in Figura 11.44,
mentre in Tabella 11.5 sono riportati i corrispondenti valori di media e deviazione
standard.
Figura 11.44 Boxplot delle distanze dalle rette epipolari
ottenuto analizzando la parete. Il secondo grafico è il
particolare del primo e del quarto quartile.
Tabella 11.5 Media e deviazione standard della distanza
dei punti dalle rette epipolari nell’analisi della parete.
Distanza dei punti dalle rette
epipolari
Media [px]
Deviazione standard [px]
0.32
7.98
Di seguito è riportato la ricostruzione della parete utilizzando questa tecnica. Si può
notare che il contributo degli outlier è diminuito considerevolmente(Figura 11.45,
Figura 11.46 e Figura 11.48). Sono riportati anche i risultati ottenuti considerando un
percentile di 80% (Figura 11.47 e Figura 11.49).
Pag. 82
Miglioramento dei risultati
Figura 11.45 Ricostruzione della parete (vista in sezione)
considerando il percentile al 100%. Quindi senza
eliminazione di outlier.
Figura 11.46 Ricostruzione della parete (vista in
sezione) con un percentile del 90% della distanza dalle
rette epipolari.
Pag. 83
Capitolo 11
Figura 11.47 Ricostruzione della parete (vista in sezione)
con un percentile del 80% della distanza dalle rette
epipolari.
Tabella 11.6 Confronto dei risultati ottenuti dall'analisi
della parete prima e dopo l'eliminazione degli outlier in
base alla distanza dalle rette epipolari.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di
match
errati
% match
corretti
Tempo
operazione
[s]
Senza
riduzione
degli
outlier
24538
18913
77.08
2222
88.25
0
Ridotto
(90%)
22085
16903
76.53
1733
89.74
55
Ridotto
(80%)
19630
15059
76.71
1533
89.82
55
Dalla Tabella 11.6 al diminuire del percentile aumenta la percentuale di match
corretti, infatti, come si può vedere nella Figura 11.48 e nella Figura 11.49, il numero
di outlier si riduce mentre la nuvola dei punti che costituisce l’oggetto rimane
pressoché invariata. Tuttavia si può notare che utilizzando il percentile 80 l’algoritmo
comincia a eliminare anche alcuni punti corretti (angolo in basso a sinistra e in alto a
destra) e quindi sarebbe controproducente ridurre ulteriormente il percentile
considerato.
Pag. 84
Miglioramento dei risultati
Figura 11.48 Ricostruzione della parete (vista frontale)
con un percentile del 90% della distanza dalle rette
epiplari.
Figura 11.49 Ricostruzione della parete (vista frontale)
con un percentile del 80% della distanza dalle rette
epipolari.
Pag. 85
Capitolo 11
11.6.2 Ransac
Per eliminare le corrispondenze errate si è implementato anche l’algoritmo Ransac
(RANdom SAmple Consensus) [35][36]. Si tratta di un metodo iterativo per la stima dei
parametri di un modello matematico a partire da un insieme di dati contenente outlier.
E’ un algoritmo non deterministico nel senso che produce un risultato corretto solo
con una data probabilità, che aumenta al crescere delle iterazioni consentite.
L’algoritmo è stato pubblicato per la prima volta da Fischer e Bolles nel 1981 [35] e
risulta realizzato come segue.
Dato un problema di adeguamento dei dati ad un parametro x si stima questo
parametro assumendo che:
i.
ii.
iii.
iv.
v.
Il parametro considerato sia la matrice fondamentale F che permette di
ottenere il luogo dei punti in un’immagine corrispondenti ad un punto
nell’altra immagine. In particolare il luogo dei punti è una retta (retta
epipolare) lungo la quale la corrispondenza si sposta al variare della distanza
dalla fotocamera.
Il parametro possa essere stimato da N dati.
Sono presenti in totale M dati.
La probabilità che i dati selezionati a caso dai dati totali permettano una stima
accurata del parametro è pg.
La probabilità che l’algoritmo restituisca una stima errata del parametro è pfail.
Quindi l’algoritmo procede elaborando le seguenti azioni:
i.
ii.
iii.
iv.
Seleziona N dati a caso dagli M dati totali.
Stima il parametro x.
Stima quanti dati (di M) siano concordi con il parametro stimato utilizzando
una tolleranza impostata dall’utente. K è il numero di inlier.
Se K è sufficientemente grande si accetta il risultato e si termina l’esecuzione,
altrimenti si ripetono i passaggi precedenti scegliendo altri N dati per L volte.
Se si considera:
i.
ii.
iii.
iv.
pfail = probabilità di L fallimenti consecutivi nella stima del parametro.
pfail = (probabilità che un tentativo di stima sia errato)L
pfail = (1- probabilità che un tentativo di stima sia corretto)L
pfail = (1-(probabilità che un dato casuale sia un inlier)N)L
v.
pfail = (
vi.
L può essere stimato come
Pag. 86
(
) )
(
(
)
(
) )
Miglioramento dei risultati
Sono stati provati due differenti approcci a questo algoritmo, ovvero Ransac
considerando N=7 e N=8 utilizzando le corrispondenze trovate precedentemente
corrette dalla aberrazione.
La matrice fondamentale così ottenuta nei due casi è:
[
[
]
]
( 11.11 )
( 11.12 )
Si può notare che le due matrici differiscono un poco tra di loro e rispetto alla
matrice ricavata dai parametri di calibrazione F (vedi 11.6.1 Distanza dalle rette
epipolari).
Graficando le rette epipolari (Figura 11.50) per le tre matrici fondamentali ottenute, si
ha che la F7 e la F8 non sono corrette infatti risultano estremamente inclinate.
Questo implicherebbe che le due camere fossero ruotate notevolmente l’una rispetto
all’altra. Cosa che invece dai parametri di calibrazione non risulta.
Figura 11.50 Rette epipolari per le tre matrici
fondamentali ricavate.
Si è comunque applicato questo algoritmo all’analisi delle fotografie della parete. In
Tabella 11.7 sono riportati i risultati ottenuti senza alcuna eliminazione degli outlier e
con il Ransac 7 e 8.
Pag. 87
Capitolo 11
Tabella 11.7 Tabella di confronto dei risultati ottnuti
dalle fotografie della parete con e senza l'eliminazione
degli outlier con il metodo Ransac 7 e 8.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di
match
errati
% match
corretti
Tempo
operazione
[s]
Senza
riduzione
outlier
24538
18913
77.08
2222
88.25
0
Ransac 7
22069
16886
76.51
1826
89.13
15
Ransac 8
24227
18622
76.86
1965
89.44
17
Nonostante la non correttezza delle matrici fondamentali ricavate con il Ransac 7 e 8,
entrambi gli algoritmi restituiscono dei buoni risultati. Utilizzando il metodo a 8 punti
la percentuale di corrispondenze corrette è maggiore e anche il numero di match unici
a scapito di un irrilevante aumento dei tempi di calcolo. Si sono quindi paragonati i
due algoritmi Ransac al metodo delle distanze dalle rette epipolari (percentile 80 e 90)
in Tabella 11.8. Per far questo si sono ricavati gli scostamenti dei punti dal piano di
regressione che rappresenta la parete.
Tabella 11.8 Confronto tra il metodo Ransac e quello di
eliminazione degli outlier basato sulla distanza dalle rette
epipolari (analisi della parete). Media e deviazione
standard sono da intendersi relativi alla ricostruzione
3D della parete confrontata con il piano di regressione.
Media [m]
Deviazione standard [m]
Ransac 7
6.43e-16
4.6e-3
Ransac 8
7.78e-16
4.7e-3
Distanza dei punti dalle
rette epipolari 90%
-5.33e-16
3.9e-3
Distanza dei punti dalle
rette epipolari 80%
0.10e-16
3.8e-3
Pag. 88
Miglioramento dei risultati
Gli algoritmi basati sulla distanza dalle rette epipolari anche se implicano dei tempi di
calcolo maggiori, restituiscono dei risultati con deviazioni standard minori, indice di
una migliore eliminazione degli outlier, oltre a una maggiore percentuale di match
corretti. Inoltre, come è possibile osservare in Figura 11.55 utilizzando il metodo
della distanza dalle rette epipolari gli outlier, ovvero i punti lontani dalla nuvola della
parete sono molto più separati dagli altri e questo permette una più facile
eliminazione con i metodi descritti in seguito.
Figura 11.51 Boxplot di confronto tra i metodi
sopracitati basato sulle distanze dei punti dal piano di
regressione.
11.7 Eliminazione manuale degli outlier
Per migliorare ulteriormente i risultati, una volta mostrata la ricostruzione viene
chiesto all’utente quale intervallo di lontananza rispetto alla fotocamera considerare.
Di conseguenza vengono eliminati tutti i valori che risultano oltre a questi limiti. In
Figura 11.53 e in Tabella 11.9 sono visualizzati i risultati di questa tecnica.
Ovviamente il numero di outlier diminuisce lasciando intatto il numero di
corrispondenze corrette.
Questa fase richiede un minimo costo computazionale e, nonostante la sua
semplicità, rende le successive ricerche degli outlier molto più efficaci.
Pag. 89
Capitolo 11
Figura 11.52 Ricostruzione 3D della parete (vista in
sezione) senza l'eliminazione manuale degli outlier.
Figura 11.53 Ricostruzione 3D della parete (vista in
sezione) dopo l'eliminazione manuale degli outlier.
Tabella 11.9 Confronto dei risultati ottenuti dall'analisi
della parete prima e dopo l'eliminazione manuale degli
outlier.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di
match
errati
% match
corretti
Tempo
operazione
[s]
Senza
eliminazione
24538
18913
77.08
2222
88.25
0
Eliminato
24148
18546
76.80
1854
90
(5) utente
Pag. 90
Miglioramento dei risultati
11.8 Ricerca di punti isolati
Ipotizzando che gli outlier si trovino ad avere intorno ad essi dei punti più distanti
rispetto alla distanza media della nuvola di inlier, si è proceduto alla loro
identificazione ed eliminazione.
Per mostrare la correttezza di questa ipotesi si è applicato l’algoritmo di eliminazione
dei punti isolati alla ricostruzione della parete (Figura 11.55).
Il valore di soglia per definire la distanza massima degli inlier si è ottenuto come
precedentemente per mezzo del percentile 90%.
Figura 11.54 Ricostruzione della parete (vista in sezione)
senza l'eliminazione dei punti isolati.
Figura 11.55 Ricostruzione della parete (vista in sezione)
dopo l'eliminazione dei punti isolati (percentile 90).
Pag. 91
Capitolo 11
Dato che però, come è visibile in Figura 11.55, è possibile che gli outlier si trovino in
gruppo, allora la distanza dal punto più vicino sarebbe simile alla media delle distanze
tra gli inlier. Perciò si è previsto una variabile che rappresenti il numero massimo di
punti da considerare per verificare la distanza minima del gruppo di inlier rispetto ai
punti adiacenti. Questa aggiunta all’algoritmo ha permesso l’eliminazione quasi
completa degli outlier come è visibile in Figura 11.56.
Figura 11.56 Ricostruzione della parete (vista in sezione)
dopo l'eliminazione dei punti isolati considerando
gruppi di al massimo 6 punti (percentile 90).
Tabella 11.10 Confronto dei risultati ottenuti dall'analisi
della parete prima e dopo l'eliminazione degli outlier
ricercando i punti isolati.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di i
errati
% match
corretti
Tempo
operazione
[s]
Senza
eliminazione
punti isolati
24538
18913
77.08
2222
88.25
0
Punti isolati
eliminati
22388
16783
74.96
132
99.21
93
Pag. 92
Miglioramento dei risultati
11.9 Applicazione in serie dei miglioramenti
Riprendendo le fotografie della parete e applicando i miglioramenti in serie (Figura
11.57) il risultato è molto buono (Figura 11.58).
La deviazione massima dei punti è di 3.8mm (Figura 11.60). Se si considera che la
parete è a 64mm significa che l’errore massimo è il 6.25% della distanza dell’oggetto.
I tempi di calcolo sono alti (Tabella 11.11) ma questo è dovuto per lo più al fatto che
come linguaggio di programmazione si è scelto il Matlab. In molte funzioni (come ad
esempio nella ricerca di punti isolati) si cicla su tutte le corrispondenze prese
singolarmente più volte. In Matlab questo implica lunghi tempi di processo.
Identificazione zone a colore
uniforme
Proiezione
oppure stampo
Miglioramento dei dettagli
Ricerca su tre canali RGB
Raffinamento delle
corrispondenze
Eliminazione degli outlier
(rette epipolari o Ransac)
Eliminazione corrispondenze
ripetute
Eliminazione manuale
Eliminazione punti isolati
Figura 11.57 Schema dell'algoritmo di ricostruzione
considerando tutti i metodi di miglioramento proposti.
Il raffinamento aumenta il numero di outlier ma rende la nuvola dell’oggetto più densa
e al tempo stesso riduce di molto la deviazione degli scostamenti dei punti
dall’oggetto reale.
Pag. 93
Capitolo 11
In Figura 11.60 si nota come gli errori aumentino allontanandosi dalla zona centrale
dell’immagine. Questo perché nonostante sia stata corretta l’aberrazione delle lenti la
distorsione è stata stimata durante la calibrazione con una certa incertezza che ha
portato a questo errore.
Tabella 11.11 Elenco delle operazioni eseguite
applicando in serie i miglioramenti alle immagini della
parete.
N° di
match
totale
N° di
match
unici
% di
match
unici
N° di
match
errati
% match
corretti
Tempo
operazione
[s]
Miglioramento
dei dettagli
-
-
-
-
-
93
Ricerca
in
scala di grigi e
sui tre canali
RGB
112735
68329
60.61
8375
87.74
845
Raffinamento
206222
143512
69.59
17160
88.04
2496
Eliminazione
outlier 90%
185598
128142
69.04
13014
89.84
1102
Triangolazione
Rimozione
punti doppi
nel 3D
128142
-
-
13014
89.84
1
Eliminazione
manuale
127919
-
-
12792
90
(5)
Punti
90%
115127
-
-
0
100
1726
isolati
6268
Pag. 94
Miglioramento dei risultati
Figura 11.58 Ricostruzione finale della
applicando tutti i metodi di miglioramento.
parete
Figura 11.59 Istogramma degli scostamenti dai punti
reali della parete.
Pag. 95
Capitolo 11
Tabella 11.12 Dati statistici ottenuti dagli scostamenti
dai punti reali della parete.
Errore di ricostruzione rispetto
alla parete reale
Media [m]
Deviazione standard [m]
0.36e-16
9.6e-4
Figura 11.60 Rappresentazione grafica degli scostamenti
rispetto alla parete reale.
Pag. 96
Capitolo 12
12. Confronti
In questo capitolo si è confrontato l’algoritmo studiato con quelli esistenti. In
particolare si sono considerate nuovamente le immagini della parete e si sono
analizzate dopo averle rettificate per verificare se l’ipotesi fatta inizialmente sulla non
piena correttezza dell’applicazione della rettificazione, fosse corretta. Sono quindi
stati riportati i dati per un confronto con l’algoritmo proposto.
Utilizzando poi i dati presenti in un particolare database si è confrontato il metodo
studiato con i risultati restituiti dagli algoritmi denso standard e dal miglior algoritmo
oggi esistente.
Infine si è verificato quale fosse l’accuratezza della ricostruzione in relazione ad un
software di ricostruzione commerciale e con un esempio pratico.
12.1 Confronto con il caso rettificato
Si è considerata la stessa coppia di immagini della parete e si sono rettificate
eliminando anche le distorsioni delle lenti. Si sono così ottenute due fotografie in cui
la corrispondenza tra i corner si sarebbe dovuta cercare esclusivamente lungo
l’orizzontale (essendo ora le rette epipolari orizzontali come in Figura 12.1).
Figura 12.1 Fotografie della parete rettificate con
evidenziate due delle rette epipolari orizzontali.
Rettificando le immagini cambiano di conseguenza tutti i parametri intrinseci ed
estrinseci. In particolare in Tabella 12.1 la focale diventa uguale per entrambi gli
obiettivi, le rotazioni si annullano e resta solo la traslazione lungo l’asse X
(orizzontale).
Capitolo 12
Tabella 12.1 Nuovi parametri intrinseci ed estrinseci
dopo la rettificazione delle immagini.
Obiettivo di sinistra
Obiettivo di destra
Centro Ottico: C_sinistra[px] = [1893.6 Centro Ottico: C_destra[px] = [2.0891
1368.8]
1368.8]
Lunghezza focale: f_sinistra[px] = Lunghezza focale: f_destra[px] = [4195
[4195 4195]
4195]
Distorsione: kc_sinistra = [0 0 0 0 0]
Distorsione: kc_destra = [0 0 0 0 0]
Inclinazione: α_sinistra = [ 0.00000 ] Inclinazione: α_destra = [ 0.00000 ] =>
=> angolo 90°
angolo 90°
Rotazione:
Traslazione [m]:
[
]
[
]
In Figura 12.2 è rappresentata la ricostruzione della parete utilizzando le immagini
rettificate. La ricostruzione risulta buona come si può dedurre dal parallelismo delle
zone colorate che rappresentano una distanza costante dall’obiettivo.
Figura 12.2 Ricostruzione della parete utilizzando le
fotografie precedentemente rettificate.
Pag. 98
Esempi di ricostruzione
L’istogramma degli scostamenti dei punti ricostruiti rispetto alla parete reale (Figura
12.3) è confrontabile a quello ricavato dal caso non rettificato (Figura 11.59) sia per
larghezza della curva, sia per numero di punti nelle classi.
Figura 12.3 Istogramma degli scostamenti dai punti reali
della parete.
Tabella 12.2 Confronto dei risultati ottenuti dall'analisi
della parete utilizzando le fotografie originali e
rettificandole.
N° di match
Non rettificato
115127
Rettificato
110728
Errore
massimo e
minimo [m]
3.92e-3
-3.52e-3
3.68e-3
-3.86e-3
Media
dell’errore [m]
Deviazione
standard
dell’errore [m]
0.3652e-16
9.6037e-4
-0.15625e-16
9.7673e-4
La deviazione standard dell’errore rispetto alla parete reale mostra che utilizzando le
immagini non rettificate il risultato è di poco migliore (Tabella 12.2). Al tempo stesso
si hanno un maggior numero di corrispondenze e si evitano i tempi dovuti alla
rettificazione delle immagini.
Anche nel caso rettificato la non perfetta stima e successiva correzione
dell’aberrazione porta un maggiore errore sulle zone estreme dell’immagine (Figura
12.5).
Pag. 99
Capitolo 12
Figura 12.4 Rappresentazione grafica degli scostamenti
rispetto alla parete reale (caso non rettificato).
Figura 12.5 Rappresentazione grafica degli scostamenti
rispetto alla parete reale (caso rettificato).
Pag. 100
Esempi di ricostruzione
12.2 Confronto con i metodi di ricostruzione esistenti
Nel Middlebury dataset [37] sono presenti alcune coppie di immagini che ritraggono
vari oggetti. Queste vengono usualmente utilizzate dai programmatori per testare i
loro algoritmi.
Le immagini scelte (Figura 12.6) sono già corrette di eventuali distorsioni e sono
rettificate. Questo perché come scritto nel capitolo “Stato dell’arte” gli algoritmi
moderni si basano appunto sull’analisi di immagini rettificate.
Figura 12.6 Coppia di immagini Tsukuba (Middlebury
dataset).
Dapprima si è ottenuta una ricostruzione utilizzando le tre principali funzioni costo
(cfr. paragrafo “Stato dell’arte”). Si sono quindi confrontati i risultati ottenuti con il
migliore dei metodi moderni testati con questo dataset, ovvero l’ADCensus [38].
Le due fotografie hanno alcune caratteristiche che ne rendono difficile la
ricostruzione. Innanzitutto lo sfondo presenta sulla sinistra zone di colore uniforme
molto marcate mentre sulla destra la griglia di legno che costituisce un pattern
ripetitivo e può facilmente dar luogo a errori (Figura 12.7).
Figura 12.7 Particolare dello sfondo (in giallo alcune
zone a colore uniforme mentre in rosso il pattern
ripetitivo).
Pag. 101
Capitolo 12
La maschera è l’oggetto con più caratteristiche riconoscibili quindi è più facile da
ricostruire correttamente (Figura 12.8-a).
Figura 12.8 Dettaglio della maschera e dei coni.
I coni in Figura 12.8-b, anche se sono disposti su un tavolo di colore chiaro che
facilita il riconoscimento dei contorni, risultano difficili da ricostruire dato che le
macchie sulla loro superficie non sono sufficienti a rendere univoche le
corrispondenze.
La tazza sulla destra presenta anche essa delle macchie che rendono più robusta la
ricostruzione ma le astine che contiene sono di colore uniforme e molto sottili.
In Figura 12.9 è riportata la mappa delle zone uniformi che compongono le immagini
e che quindi rendono difficili le corrispondenze.
Nella scena sono disposti 19 oggetti su piani diversi. Questo porta a una notevole
presenza di occlusioni ovvero a zone visibili da un obiettivo e non dall’altro. Ad
esempio in Figura 12.10 è mostrato come la punta di un cono in primo piano vada a
nascondere due parti differenti di un altro cono a seconda del punto di vista da cui è
scattata la fotografia. Di conseguenza la parte centrale del logo parzialmente nascosto
non può essere ricostruita perché non si può trovare la corrispondenza tra le due
immagini e nel 3D darà luogo ad una occlusione. Lo stesso discorso vale per tutti gli
altri oggetti disposti su più piani.
Pag. 102
Esempi di ricostruzione
Figura 12.9 In bianco le zone a colore uniforme che
rendono difficile la ricerca delle corrispondenze.
Figura 12.10 Dettaglio di una occlusione presente tra i
coni.
Pag. 103
Capitolo 12
12.2.1 Ricostruzione realizzata con il metodo qui proposto
Utilizzano tutti gli accorgimenti descritti nel Capitolo 11 si è ricostruita la scena
relativa alle immagini (Figura 12.11). Purtroppo le immagini (1800x1500 px) presenti
nel dataset non hanno una risoluzione sufficiente a mostrare le reali capacità del
programma ma comunque permettono una buona stima dei dettagli principali.
Figura 12.11 Ricostruzione prospettica ricavata con il
metodo proposto. Per meglio rappresentare gli oggetti si
sono ingranditi i punti che li compongono creando un
effetto di sgretolamento sui bordi.
Dai risultati in Figura 12.11 si riconoscono facilmente le forme degli oggetti che
compongono le due fotografie. Da notare come i vari piani di profondità siano stati
ricostruiti correttamente e come il numero di pixel errati sia veramente ridotto.
In Figura 12.12 sono rappresentati i valori di profondità dei vari oggetti direttamente
sulle immagini di partenza così da poterli confrontare con i valori reali (disponibili el
database).
Pag. 104
Esempi di ricostruzione
Figura 12.12 Ricostruzione della profondità dei vari
oggetti sulle immagini di partenza (a sinistra valori
corretti ricavati ricostruendo la scena con 8 immagini
scattate da più viste e di conseguenza con un numero
ridotto di occlusioni, mentre a destra profondità
ottenute con il metodo proposto con sole due
immagini).
Dato che l’algoritmo analizza solo le zone dove sono identificabili delle discontinuità
di colore, in questo caso dove la risoluzione delle fotografie è ridotta non è capace di
creare una nuvola di punti sufficientemente fitta da evidenziare i dettagli più fini.
Questa caratteristica dell’algoritmo proposto porta anche a non avere abbastanza
corrispondenze per ricostruire i bordi degli oggetti in modo ottimale.
In Tabella 12.3 sono riportatati il numero di corrispondenze trovate e il tempo
impiegato.
Tabella 12.3 Parametri dell'algoritmo proposto ottenuti
analizzando la scena.
Corrispondenze trovate
163920
Tempo impiegato (s)
5341
Pag. 105
Capitolo 12
Creando una mesh (Figura 12.13) a partire dalla nuvola di punti ricavata è possibile
visualizzare un numero maggiore di dettagli. D’altra parte si evidenzia come la mesh
vada a rovinare i contorni degli oggetti nel tentativo di compensare le zone occluse.
La mesh permette di osservare con più chiarezza i particolari trovati come ad
esempio la maschera o il manico della tazza.
Figura 12.13 Mesh della scena ricavata dalla nuvola di
punti ottenuta con il metodo proposto (a sinistra
calcolata con Matlab, a destra tramite il software Geomagic
Studio v.12).
12.2.2 Confronto con un algoritmo denso elementare
Per elementare si è inteso un algoritmo basato sul confronto delle finestre ricavate
introno a tutti i pixel utilizzando come algoritmo di ricerca delle corrispondenze quelli
base ovvero SAD, SSD e NCC [12][13].
La ricostruzione tridimensionale utilizzando questo tipo di approccio risulta
semplificata dal fatto che le immagini sono rettificate e quindi le rette epipolari sono
disposte orizzontalmente parallele tra loro. Dato che questi algoritmi sono scritti
usando Matlab è stato possibile fare un confronto dei tempi di calcolo rispetto
all’algoritmo proposto (Tempo 5341s).
i.
Somma delle differenze assolute (SAD) (Tempo 9325s)
∑ ∑| (
Pag. 106
)
(
)|
( 12.1 )
Esempi di ricostruzione
Figura 12.14 Ricostruzione usando la funzione costo
SAD.
ii.
Somma delle differenze quadrate (SSD) (Tempo 10081s)
∑ ∑( (
)
(
))
( 12.2 )
Figura 12.15 Ricostruzione usando la funzione costo
SSD.
Pag. 107
Capitolo 12
iii.
Cross-correlazione normalizzata (NCC) (Tempo 11929s)
∑
(√∑
∑
∑
(
(
)
) ) (√∑
(
)
∑
(
) )
( 12.3
)
Figura 12.16 Ricostruzione usando la funzione costo
NCC.
Utilizzando gli algoritmi classici di ricostruzione stereo si nota chiaramente che il
rumore è elevato soprattutto nel caso del NCC. Inoltre si presentano notevoli
difficoltà nella ricerca delle corrispondenze delle sfondo dove vi è sulla sinistra la
zona a colore uniforme mentre sulla destra la grata che costituisce un pattern
ripetitivo. Infine i tempi di calcolo sono notevoli, anche di un ordine di grandezza
maggiore rispetto all’algoritmo proposto, senza contare il tempo necessario a
rettificare le immagini che per il metodo presentato risulta nullo.
Per migliorare i risultati sarebbe necessario filtrarli (come per altro molti algoritmi
richiedono) in modo così da ridurre il rumore. Al contrario il programma studiato
esclude qualunque fase di filtraggio effettuata dopo la ricostruzione per evitare
modifiche errate delle corrispondenze trovate.
Infine i risultati ricavati con gli algoritmi classici non considerano il fatto che gli
obiettivi siano pinhole e che quindi le ricostruzioni debbano essere prospettiche cosa
che invece il RECON3D tiene presente (Figura 12.11). Nel paragrafo successivo è
riportato un piccolo approfondimento su questa differenza.
Pag. 108
Esempi di ricostruzione
12.2.3 Confronto con l’algoritmo ADCensus
Di seguito è riportato il confronto tra i risultati ottenuti con l’algoritmo proposto in
questa tesi e il migliore tra gli algoritmi di ricostruzione stereo ovvero l’ADCensus
[38]. Purtoppo di questo algoritmo non si ha conoscenza di che tipo di analisi utilizzi
dato che non vi è materiale bibliografico relativo ad esso.
La principale differenza è che il metodo ADCensus non tiene conto che i due
obiettivi abbiano un cono di visione ma considera le immagini catturate con un
sensore largo quanto la scena. Infatti la tazza nella ricostruzione mediante ADCensus
risulta spostata a destra rispetto alla maschera mentre nella realtà è davanti alla
maschera, come correttamente ricostruito con il nostro algoritmo.
Di conseguenza l’ADCensus ritiene gli oggetti in primo piano, che nell’immagine
risultano delle stesse dimensione di quelli dietro, tali anche nella ricostruzione. Al
contrario il RECON3D tiene conto delle differenze di altezze in funzione della
lontananza dall’obiettivo.
Per comparare i risultati si è comunque rappresentata la ricostruzione con il
programma proposto sull’immagine di destra, come si era fatto precedentemente per
confrontare i risultati dei metodi classici.
MASCHERA
TAZZA
SENSORE
Metodo proposto
ADCensus
Figura 12.17 Differenza di ricostruzione tra i due
metodi.
Pag. 109
Capitolo 12
L’algoritmo ADCensus risulta più accurato nella ricostruzione dei dettagli (Figura
12.18) ma questo deriva solo dal fatto che analizza tutti i pixel (2536114) mentre il
nuovo algoritmo considera solo i punti di discontinuità (163920) e quindi non riesce
a ricostruire totalmente le superfici. Come spiegato nella fase introduttiva si è optato
per un’analisi non pixel per pixel ma basata su regioni di discontinuità per permettere
di lavorare con immagini ben più grandi di quelle utilizzate nella comparazione
Middelbury. Di conseguenza i risultati risentono di questa scelta.
Inoltre il metodo proposto è realizzato per lavorare su immagini non rettificate e
cerca le corrispondenze anche spostandosi verticalmente a differenza dell’ADCensus
che analizza scostamenti solo orizzontali, per cui può portare ad un numero
maggiore di corrispondenze errate successivamente eliminate con le tecniche
descritte ma che comunque riducono di densità la nuvola di punti trovati.
Da notare che il metodo proposto restituisce correttamente le occlusioni (in nero
nella Figura 12.18), mentre l’ADCensus non le mostra. Questo perché probabilmente
l’algoritmo in una successiva elaborazione interpola i risultati per riempire le zone
occluse Nel programma proposto si è evitata questa soluzione per non dar luogo a
false ricostruzioni.
Un’altra possibilità è che, a differenza delle modalità di analisi riportate come
vincolanti nel dataset Midelbury (che obbliga all’uso di sole 2 immagini per
ricostruzione), i risultati riferiti all’ADCensus sono da attribuirsi ad analisi effettuate
sulle 8 fotografie scattate alla scena da altrettanti punti di vista. Questo spiegherebbe
il fatto della ricostruzione corretta delle occlusioni, ma al tempo stesso mostrerebbe
come il programma proposto abbia una qualità di ricostruzione già molto elevata con
solo 2 immagini.
Figura 12.18 Confronto tra il metodo proposto (a
destra) e l'algoritmo ADCensus.
Pag. 110
Esempi di ricostruzione
12.3 Confronto con il software commerciale PhotoModeler
Scanner
Il software commerciale PhotoModeler Scanner è un programma che ricava la scena in tredimensioni a partire da 2 fotografie.
Questo programma richiede l’immissione dei parametri di calibrazione degli obiettivi,
quindi la coppia di immagini scattate. Per potere fare un confronto con questo
software al massimo delle sue potenzialità si sono utilizzate due immagini del suo
tutorial (Figura 12.19). Le immagini rappresentano una impronta in un terreno
sabbioso. La principale difficoltà risulta nel fatto che nonostante il terriccio
componga una texture random, i granelli sono così fini che è possibile che la
correlazione porti a risultati sbagliati.
Anche in questo caso le immagini non sono della dimensione per cui l’algoritmo
proposto è stato pensato, ma sono più piccole (2848 x 2136 px).
Figura 12.19 Coppia di immagini per il confronto con il
software commerciale.
Prima di iniziare l’analisi di qualsiasi coppia di immagini il programma commerciale
richiede i parametri intrinseci dei due obiettivi. Questi possono essere inseriti
manualmente o ricavati con una procedura di calibrazione simile a quella effettuata
per l’algoritmo proposto. I parametri intrinseci servono per la fase di rettifica e
eliminazione delle distorsioni che anche qui, come negli algoritmi già nominati, è
richiesta per l’analisi.
E’ da notare la presenza di 4 bande di carta intorno all’impronta. Questo perché
PhotoModeler le utilizza per ricavare i riferimenti base tra le due immagini e i parametri
estrinseci. Per far questo l’utente è obbligato adattando alcuni parametri a fare
Pag. 111
Capitolo 12
riconoscere al software questi particolari pattern, il loro orientamento e la loro
posizione.
Figura 12.20 Ricostruzione dell'impronta con il metodo
proposto.
Figura 12.21 Due viste della mesh con applicata la texture
ricavate utilizzando il metodo proposto.
Pag. 112
Esempi di ricostruzione
Il programma quindi richiede la zona da analizzare, in questo caso l’impronta, e la
dimensione della mesh da utilizzare.
In Figura 12.20 e in Figura 12.21 è riportata la ricostruzione dell’impronta con
l’algoritmo proposto. In particolare la prima immagine è stata ottenuta applicando
una mesh alla nuvola di punti per facilitare la visualizzazione dei dettagli (dato che la
mesh interpola i punti ricostruiti si sono persi gli spigoli vivi) mentre nella seconda
immagine si è applicata direttamente la fotografia di partenza così da ottenere un
modello più realistico.
Il metodo proposto ricostruisce correttamente la forma e le dimensioni
dell’impronta. Elimina automaticamente qualsiasi outlier e restituisce anche il modello
tridimensionale con la mesh applicata.
Di seguito (Figura 12.22 e Figura 12.23) sono riportati i risultati ottenuti con il software
commerciale. Come si vede alcuni particolari sono ricavati con maggiore accuratezza
anche se PhotoModeler fa una post-elaborazione dei punti basata sulla colorazione
delle fotografie di partenza. Questo, come già precedentemente detto, è stato evitato
nel metodo realizzato per evitare qualsiasi falso risultato.
Si può quindi dire che il risultato ottenuto con il software commerciale è comparabile a
quello proposto ma necessita di tutta la fase di preparazione (stampa dei pattern,
posizionamento, identificazione, orientamento e rettifica delle immagini) che il
metodo sviluppato non richiede.
Figura 12.22 Ricostruzione dell'impronta utilizzando il
software PhotoModeler.
Pag. 113
Capitolo 12
Figura 12.23 Due viste della mesh con applicata la
texture ricavate utilizzando il software PhotoModeler.
Pag. 114
Capitolo 13
13. Esempi di ricostruzione
Di seguito sono riportati altri esempi di ricostruzione effettuati applicando il
programma sviluppato RECON3D.
Sono riportate le nuvole di punti dell’oggetto sia a colori per meglio mostrare le
distanze dall’obiettivo, sia in scala di grigi per una migliore rappresentazione della
profondità dei dettagli.
13.1 Faccia
Per provare le effettive prestazioni dell’algoritmo proposto si è optato per la
ricostruzione di una faccia.
Dato che il colore della faccia è uniforme si è deciso di proiettare su di essa un
pattern a colori RGB per facilitare le corrispondenze (Figura 13.1). Le immagini sono
state scattate con una risoluzione di 10Mpx (3648 x 2736 px).
Figura 13.1 Fotografia sinistra e destra della faccia.
Dalla ricostruzione in Figura 13.2 e in Figura 13.3 si notano le occlusioni in
corrispondenza del collo e della parte destra del naso. La ricostruzione presenta
pochissimi outlier per lo più nella zona dei capelli dovuti al fatto che la proiezione sui
capelli non è risultata chiara e ben definita. La nuvola di punti è molto densa grazie
all’aver analizzato le immagini oltre che in scala di grigi anche per ciascun canale rgb.
Capitolo 13
Dato che il numero di corrispondenze trovate è elevato, anche il tempo di analisi si è
rilevato notevole come si può leggere in Tabella 13.1.
Tabella 13.1 Parametri dell'algoritmo proposto ottenuti
analizzando la faccia.
Corrispondenze trovate
94580
Tempo impiegato (s)
8813
Figura 13.2 Nuvola di punti ricavata dalla coppia di
immagini della faccia.
Pag. 116
Esempi di ricostruzione
Figura 13.3 Nuvola di punti ricavata dalla coppia di
immagini della faccia in scala di grigi per evidenziare i
dettagli.
Si è utilizzato un software esterno (Geomagic Studio v.12) per creare una superficie a
partire dai punti ricavati tramite l’algoritmo proposto. La ricostruzione risulta ricca di
particolari (Figura 13.4). Si notano ad esempio le cavità nasali, le labbra, i lineamenti
sulla fronte e intorno alla bocca.
Questo esempio mostra come con semplicemente due fotografie scattate
contemporaneamente sia possibile ottenere le superfici che compongono l’oggetto.
Pag. 117
Capitolo 13
Figura 13.4 Mesh della faccia.
Pag. 118
Esempi di ricostruzione
13.2 Bassorilievo
Figura 13.5 Ricostruzione del bassorilievo.
La nuvola dei punti non presenta praticamente nessun outlier interno al bassorilievo. I
dettagli sono tutti ricostruiti a partire dalle balze della gonna fino ai due lacci della
cintura subito sopra. Avendo usato un pattern a pallini il numero di punti non è
elevato ma comunque sufficiente a ottenere le superfici. In corrispondenza delle
braccia al centro della ricostruzione si possono osservare chiaramente le zone scure
dovute alle occlusioni.
Figura 13.6 Nuvola di punti del bassorilievo.
Pag. 119
Capitolo 13
13.3 Mano
Figura 13.7 Ricostruzione della mano.
La superfice della mano è ricostruita per intero. Si notano anche le pieghe dovute alla
posizione semi raccolta delle dita. Il contorno della mano è frastagliato dato che i
bordi non sono netti ma arrotondati e quindi su di essi il pattern si allunga perdendo
di definizione e luminosità non permettendo così una buona ricostruzione. Anche lo
sfondo è stato ricostruito. Il numero di outlier è esiguo esterno alla mano.
Figura 13.8 Nuvola di punti della mano.
Pag. 120
Esempi di ricostruzione
13.4 Interruttore
Figura 13.9 Ricostruzione dell'interruttore.
Nella ricostruzione si nota il foro della presa telefonica (a sinistra) e l’interruttore
inclinato sulla destra. Anche il santino soprastante la placchetta è stato ricostruito
insieme ad un piccolo bassorilievo nonostante il suo spessore fosse di solo mezzo
millimetro.
Figura 13.10 Nuvola di punti dell'interruttore.
Pag. 121
Capitolo 13
13.5 Scarpa
Figura 13.11 Ricostruzione della scarpa.
Dalla nuvola di punti si nota come anche i lacci siano stati ricostruiti e pure il logo
della marca nonostante fosse di colore scuro. La parte inferiore della suola essendo
scura non ha permesso la sua ricostruzione risultando al programma omogenea e
priva di punti notevoli identificabili.
Figura 13.12 Nuvola di punti della scarpa.
Pag. 122
Esempi di ricostruzione
13.6 Bambola
Figura 13.13 Ricostruzione della bambola.
L’elevata distanza tra i punti ricostruiti deriva dal fatto che la bambola è alta solo
10cm e il proiettore non poteva essere posizionato così vicino da ridurre la
dimensione del pattern. Si notano comunque le concavità in corrispondenza degli
occhi e la ricostruzione della convessità della gonna anche sui bordi dove diventa
tangente alla vista.
Figura 13.14 Nuvola di punti della bambola.
Pag. 123
Capitolo 14
14. Misurazioni effettuate sul 3D
Verificata l’accuratezza del metodo proposto confrontandolo con altri algoritmi e
software, si è voluto analizzare quanto fosse precisa la ricostruzione in termine di
misurazioni e geometrie.
Per far questo si sono analizzati alcuni campioni.
14.1 Verifica geometrica
Nel paragrafo “Errore. L'origine riferimento non è stata trovata.” è stata
analizzata la ricostruzione di una parete. Come è possibile osservare nella Figura 14.1
l’errore di planarità aumenta spostandosi verso gli estremi dell’immagine. Questo è
dovuto per lo più a una non ottimale stima dei parametri di aberrazione delle lenti e
di conseguenza a una correzione delle distorsioni non precisa. Comunque gli
scostamenti dovuti alla non perfetta planarità nella ricostruzione risultano di ± 3.8
mm per una superficie larga 350 mm e ad una distanza di 655 mm dall’obiettivo.
Quindi tutto sommato un errore di planarità accettabile.
Figura 14.1 Errore di planarità relativo alla ricostruzione
di una parete.
Capitolo 15
Si è quindi voluto testare quanto fosse accurato l’algoritmo nella ricostruzione di
figure geometriche.
Per questo si è fotografata una scatola una volta verificato che l’angolo tra i suoi lati
fosse effettivamente di 90°. In realtà misurandolo si è notato che la scatola era
leggermente romboidale e che quindi l’angolo era di 89° con una incertezza di ±0.5°
dovuta allo strumento di misura utilizzato.
Figura 14.2 Scatola per la verifica geometrica.
Figura 14.3 Ricostruzione della scatola.
Pag. 126
Misurazioni effettuate sul 3D
La ricostruzione ottenuta presenta qualche outlier (Figura 14.3) nelle zone che
compongono lo sfondo. La parte superiore della scatola è risultata la più difficile da
ricostruire dato che a causa dell’eccessiva inclinazione rispetto alla proiezione il
pattern risulta estremamente allungato, sfuocato e di conseguenza meno nitido.
L’algoritmo ha quindi restituito meno punti ma comunque corretti.
Per valutare se effettivamente le due facce inferiori della scatola fossero state
ricostruite con un angolo di 89° si è importata la nuvola di punti ricavata nel software
Geomagic Studio v.12. Qui si sono approssimati le due superfici con due piani in Figura
14.4. Da questi due piani sono state ricavate le normali visibili in Tabella 14.1.
Figura 14.4 Piani ricavi dalle due facce inferiori della
scatola.
Tabella 14.1 Coefficienti delle normali ai piani che
rappresentano i due lati della scatola.
Normale al piano
Piano di SINISTRA
Piano di DESTRA
0.647, -0.763, 0.004
-0.755, -0.654, 0.046
Di conseguenza conoscendo le normali ai due piani è possibile calcolare l’angolo θ tra
di loro.
Pag. 127
Capitolo 15
( 14.1 )
|
| |
|
Dato che l’incertezza sulla misurazione manuale è stata di ±0.5° si può dire che
l’algoritmo restituisce correttamente anche le geometrie.
14.2 Verifica sulla misura
Per effettuare questa analisi si è fotografato un metro (Figura 14.5). Si è quindi
ottenuto il 3D e applicato su di esso la texture per avere dei riferimenti reali.
Figura 14.5 Metro per la verifica delle misure.
Dalla ricostruzione in Figura 14.6 si osserva che la ricostruzione ottenuta presenta
quasi nessun outlier. Infatti il metro è stato ricostruito con una accuratezza sulla
profondità di ± 0.5 mm. Nella vista frontale della ricostruzione (Figura 14.7) si nota
come le zone di colore uniforme tra i numeri della scala millimetrata non siano state
ricostruite. Questo era stato già messo in evidenza nella pre-analisi delle zone
uniformi.
Figura 14.6 Ricostruzione tridimensionale del metro.
Pag. 128
Misurazioni effettuate sul 3D
Figura 14.7 Particolare delle zone non ricostruite nelle
due fotografie (vista frontale).
In Figura 14.8 si può osservare che anche lungo la scala millimetrata (che
rappresenterebbe un pattern ripetitivo) la ricostruzione è risultata efficace. Questo
grazie alla flessibilità dell’algoritmo proposto che permette di modificare la
dimensione della finestra di osservazione permettendo di creare zone di
corrispondenza univoche.
Ricentrando la ricostruzione del metro in modo da farlo partire ad X=0 è stato
possibile verificare le misurazioni.
Come si può vedere in Figura 14.9 i centimetri della fotografia corrispondono a quelli
ricostruiti con una buona approssimazione. Si è quindi svolta un’ulteriore analisi.
Figura 14.8 Vista frontale della ricostruzione del metro
con sovrapposta la texture ricavata dalla fotografia
originale.
Pag. 129
Capitolo 15
Figura 14.9 Vista frontale ristretta (eliminando le zone
intermedie tra i centimetri) della ricostruzione con
evidenziati i centimetri.
Si sono ricavati i punti nel 3D corrispondenti ad ogni centimetro in particolare dal
centimetro 0 al 10 (in Tabella 14.2). Conoscendo quindi le coordinate xyz dei punti si
sono ricavate le distanze relative.
√(
)
(
)
(
( 14.2 )
)
Tabella 14.2 Misurazioni effettuate sul 3D.
Centimetro
X [m]
Y [m]
Z [m]
Distanza dal centimetro
precedente [mm]
0
1
2
3
4
5
6
7
8
9
10
0
0.0095
0.0197
0.0296
0.0399
0.0499
0.0600
0.0701
0.0799
0.0901
0.0999
0.0058
0.0062
0.0062
0.0062
0.0062
0.0062
0.0062
0.0062
0.0062
0.0061
0.0061
0.2576
0.2579
0.258
0.258
0.2584
0.2583
0.2586
0.2588
0.2587
0.2587
0.2589
9.49
10.20
9.96
10.26
10.00
10.14
10.02
9.89
10.02
9.89
Pag. 130
Misurazioni effettuate sul 3D
Distanza tra i punti [m]
Distanze
0.0103
0.0102
0.0101
0.01
0.0099
0.0098
0.0097
0.0096
0.0095
0.0094
1
2
3
4
5
6
7
8
9
10
Centimetri sul metro
Figura 14.10 Andamento delle distanze lungo il metro.
Dal grafico in Figura 14.10 l’algoritmo ricostruisce le distanze con una buona
precisione, infatti le grandezze variano con una deviazione standard di 0.13 mm e una
media di 10.02 mm (Figura 14.11). La distanza tra l’inizio del metro e il primo
centimetro è da considerarsi un outlier dato che la cima del metro è risultata rovinata e
poco accurata a causa dell’applicazione di un cappuccio protettivo di metallo che
sfalsa la misura.
Si può quindi affermare che le misurazioni effettuate con questo algoritmo riportano
risultati più che accettabili.
Figura 14.11 Boxplot delle distanze tra i centimetri reali
e quelli ricostruiti. (sopra considerando anche l’outlier tra
l’inizio del metro e il primo centimetro).
Pag. 131
Capitolo 15
15. Realizzazione di un 3D da più viste
Utilizzando solamente una coppia di fotografie è possibile realizzare la ricostruzione
dell’oggetto esclusivamente per i punti visti da entrambi gli obiettivi. Al contrario
scattando delle coppie di fotografie da più punti di vista intorno all’oggetto è
possibile ricostruire il 3D dell’oggetto per un angolo di visuale maggiore.
Il problema consiste nello stimare le posizioni relative tra i vari scatti. Una possibilità
sarebbe di ruotare l’oggetto di fronte alla macchina fotografica e annotarne gli angoli
di spostamento. Questo ad esempio per oggetti grandi non può essere effettuato e
inoltre richiede un’attrezzatura (tavola girevole e strumenti di misura) non facilmente
trasportabili o reperibili. Alternativamente si può posizionare vicino all’oggetto la
scacchiera usata per la calibrazione e spostare la camera intorno all’oggetto. Il
problema è che il tool di calibrazione utile a ricavare i parametri di rototraslazione
necessita che tutti i vertici dei quadratini che compongono la scacchiera siano visibili.
Muovendo la fotocamera è possibile che parti della scacchiera vengono coperte
dall’oggetto fotografato.
Si è quindi scelto di utilizzare un pattern asimmetrico composto da pallini (Figura
15.1) che permettesse di ricavare i parametri di rotazione e traslazione relative tra le
inquadrature senza la necessità che il pattern sia totalmente visibile.
Figura 15.1 Pattern asimmetrico per ricavare i parametri
di rototraslazione tra le inquadrature dell'oggetto.
Capitolo 15
Considerando una fotografia attraverso un algoritmo di ricerca delle ellissi e quindi
dei relativi centri si ricava la mappatura del pattern nelle immagini (Figura 15.2).
Questo è ottenuto binarizzando la fotografia e successivamente analizzando le zone
nere. È possibile che vengano riconosciuti parte del pattern anche altri oggetti nella
foto. L’algoritmo di omografia compara i pallini trovati al modello piano del pattern
(precedentemente fornito al programma) e restituisce l’orientamento del pattern
nell’immagine scartando i pallini errati.
In particolare in Figura 15.2 alcune zone dello sfondo di legno sono state
riconosciute come ellissi ma comunque poi scartate, mentre i pallini centrali del
pattern, resi più chiari dal riflesso della luce, sono stati tralasciati ma successivamente
stimati basandosi sugli altri pallini.
Figura 15.2 Fotografia del pattern con evidenziate le
ellissi trovate e in verde i pallini ritenuti corretti.
Conoscendo quindi la disposizione del pattern è possibile ricavare l’orientamento della
fotocamera rispetto al riferimento di fotocamera perfettamente perpendicolare al
pattern.
Pag. 134
Realizzazione di un 3D da più viste
Applicando lo stesso metodo anche alle altre immagini si ottengono le matrici di
rotazione e di traslazione di ogni scatto.
Per verificare la correttezza del metodo si è fotografato il pattern con la macchina
fotografica stereoscopica di cui si conoscono già le matrici di rototraslazione tra le
ottiche. Al programma sono stati quindi passati i parametri intrinseci ricavati dalla
calibrazione per correggere le immagini dalle distorsioni dovute agli obiettivi. Lo
scopo di questa analisi è stato quello di confrontare le rototraslazioni calibrate con la
scacchiera con quelle ricavate dal pattern a pallini.
Figura 15.3 Orientamento stimato delle ottiche della
fotocamera stereoscopica. In blu è rappresentato l’asse
Z perpendicolare al piano del sensore, in rosso e verde
rispettivamente gli assi X e Y delle immagini.
I parametri stimati rispetto al sistema di riferimento posto nell’origine, rappresentati
in Figura 15.3, risultano:
Pag. 135
Capitolo 15
OBIETTIVO DI SINISTRA
[
Rotazione assoluta:
]
[
Traslazione assoluta [m]:
( 15.1 )
( 15.2 )
]
OBIETTIVO DI DESTRA
[
Rotazione assoluta:
Traslazione assoluta [m]:
( 15.3 )
]
[
( 15.4 )
]
Si sono quindi ricavate le rototraslazioni relative tra le ottiche:
i.
Rotazione relativa:
i.
Traslazione relativa [m]:
[
]
[
( 15.5 )
( 15.6 )
]
Di seguito sono riportati i valori corretti di rototraslazione ricavati con la calibrazione
con scacchiera (6.2 Parametri estrinseci).
Rotazione:
Traslazione [m]:
[
]
[
]
( 15.7 )
( 15.8 )
I valori sono comparabili con quelli ottenuti dalla calibrazione stereoscopica anche se
non perfettamente uguali.
Pag. 136
Realizzazione di un 3D da più viste
Si è quindi sperimentato il pattern a pallini per ricavare il 3D di un oggetto utilizzando
più viste. Fotografato l’oggetto più volte e ricavate le rototraslazioni tra gli scatti
dell’obiettivo di destra si ottiene una mappatura completa delle pose delle immagini.
Questo permette di rototraslare i punti tridimensionali ottenuti dalla ricostruzione e
riposizionarli rispetto al primo scatto.
Compiendo alcune prove si è però notato che il leggero scarto tra i valori reali di
rototraslazione e quelli ricavati con il pattern a pallini non permettono una
sovrapposizione delle nuvole di punti ricavata da più viste in modo soddisfacente.
Per ovviare alla bassa accuratezza delle matrici di trasformazione ricavate si è
utilizzato l’algoritmo ICP (Iterative Closest Point) [29]. Questo metodo permette di
ricavare la rototraslazione relativa tra due nuvole di punti minimizzando le distanze
tra i punti che le compongono. Questo avviene con un processo iterativo composto
dai seguenti passaggi:
i.
ii.
iii.
iv.
Associazione dei punti tra le nuvole utilizzando un criterio di vicinanza
Stimare i parametri di trasformazione per mezzo di una funzione di costo ai
minimi quadrati
Trasformare i punti applicando i parametri di trasformazione appena ricavati
Iterare il processo dal primo passaggio fino a che non si giunge a
convergenza.
Affinchè il metodo ICP porti buoni risultati è necessario che le nuvole di punti
all’inizio dell’analisi siano già abbastanza vicine. Per questo la rototraslazione delle
nuvole effettuata per mezzo del pattern a pallini si integra perfettamente all’algoritmo
ICP predisponendo le due nuvole per la successiva sovrapposizione.
Di seguito è riportato un esempio di applicazione di questo metodo usando come
immagini di partenza una coppia di fotografie di due piatti sovrapposti (Figura 15.4).
Lo scopo di questa ricostruzione era di ottenere il 3D dei due piatti con sufficienti
particolari da permettere poi ad esempio il confronto delle dimensioni tra i due piatti.
Pag. 137
Capitolo 15
Figura 15.4 Immagine sinistra e destra di due piatti
sovrapposti.
Dalla ricostruzione tridimensionale (Figura 15.5) usando solamente la coppia di
fotografie in Figura 15.4 si nota che il piatto in secondo piano è quasi totalmente
nascosto dal primo non permettendo quindi di ricavarne sufficienti dettagli. Inoltre
anche il piatto in primo piano è rappresentato da una nuvola non omogenea con
ampie zone senza punti, in particolare in corrispondenza dei riflessi della luce.
Figura 15.5 Ricostruzione dei piatti utilizzando una sola
coppia di immagini.
Pag. 138
Realizzazione di un 3D da più viste
Si è quindi scattata un’altra coppia di fotografie prese dalla vista opposta in Figura
15.6.
Figura 15.6 Vista posteriore dei piatti (coppia di
immagini stereo).
Mediante l’auto calibrazione basata sul pattern a pallini posto affianco ai piatti si sono
ricavati i parametri di rototraslazione relativi tra le due coppie di scatti. In Figura 15.7
sono evidenziati con delle ellissi verdi i pallini riconosciuti automaticamente
dall’algoritmo mentre in rosso i pallini nascosti dai piatti ma comunque di cui è stata
stimata la posizione. Dal riconoscimento del pattern si è stimata la posizione della
fotocamera durante i due scatti (Figura 15.8).
Figura 15.7 Riconoscimento automatico del pattern a
pallini nelle due immagini di sinistra delle due viste.
Pag. 139
Capitolo 15
Figura 15.8 Orientazione stimata della fotocamera
durante i due scatti (riferita all’obiettivo di sinistra).
Si è quindi ricavato il 3D dalla seconda coppia di fotografie e rototraslando i punti
per mezzo delle matrici di trasformazione stimate con il pattern si sono sovrapposte
le nuvole di punti della prima vista e della seconda. Come si può osservare in Figura
15.9 anche se l’orientamento delle nuvole è corretto, queste non si sovrappongono
lasciando uno spazio tra di esse. Si è quindi utilizzato l’algoritmo ICP per raffinare il
posizionamento.
Figura 15.9 Ricostruzione della scena sovrapponendo le
due nuvole di punti ricavate dalle due viste
semplicemente mediante rototraslazione della seconda
sulla prima.
Pag. 140
Realizzazione di un 3D da più viste
L’algoritmo ICP ha riportato le nuvole nella corretta posizione iterando in questo
caso 12 volte. Il tempo necessario per questa operazione è stato di soli 37 secondi
grazie al fatto che le nuvole di punti erano già molto vicine. Il risultato è visibile in
Figura 15.10.
Con questo metodo è stato possibile ricostruire in parte anche il piatto in secondo
piano (Figura 15.11) e migliorare i dettagli di quello in primo piano. Ovviamente è
possibile utilizzare altre viste per migliorare ulteriormente i risultati arricchendoli di
dettagli.
Figura 15.10 Ricostruzione completa dei due piatti
sovrapponendo le nuvole di punti dalle due viste
mediante rototraslazione e successivamente raffinando
il risultato con l'ICP.
Pag. 141
Capitolo 15
Figura 15.11 Ricostruzione della scena utilizzando due
viste distinte.
Pag. 142
Capitolo 16
16. Software
Il programma RECON3D è dotato di un’interfaccia grafica chiara.
All’avvio viene visualizzata la schermata in Figura 16.1 che mostra sulla colonna di
sinistra i 3 pulsanti per la calibrazione (intrinseca ed estrinseca) mentre sulla destra le
4 opzioni di analisi.
i.
ii.
iii.
iv.
Standard (two images): consiste nella ricostruzione di oggetti partendo da
un’unica coppia di fotografie.
Multi pairs of images (same view point): ricava la ricostruzione di un oggetto da più
coppie di immagini scattate sempre dalla stessa posizione. Questa opzione
risulta utile se si vuole avere una nuvola di punti molto densa e quindi si
proietta sull’oggetto un pattern che viene progressivamente spostato ad ogni
successivo scatto.
Multi pairs of images (different view points): è la ricostruzione tridimensionale
ottenuta scattando più coppie di immagini cambiando di posizione. Questa
opzione è preferibile nel caso si voglia realizzare un 3D completo dell’oggetto
ruotandogli anche attorno. Le posizioni relative tra gli scatti possono essere
ricavate posizionando sulla scena la stessa scacchiera usata per la calibrazione
e seguendo una procedura simile.
Auto multi pairs of images (different view points): è l’equivalente del punto
precedente mate ricavando le posizioni relative tra gli scatti automaticamente
con il pattern a pallini illustrato nel Capitolo 0.
Figura 16.1 Schermata iniziale del programma.
Scelta la modalità di analisi appare la schermata con i parametri (Figura 16.2).
i.
ii.
iii.
Pairs of images: numero di coppie di fotografie da analizzare.
Corners threshold: valore di soglia per l’identificazione dei corner.
Match window: dimensione della finestra costruita intorno ai corner e utilizzata
per la ricerca delle corrispondenza (deve avere valore dispari).
Capitolo 16
iv.
v.
vi.
vii.
viii.
ix.
x.
xi.
xii.
xiii.
xiv.
xv.
Corners radius: distanza minima tra corner adiacenti.
Outliers threshold: percentuale di corrispondenze ritenute inlier nell’analisi delle
distanze dalle rette epipolari.
Distance threshold: percentuale di corrispondenze ritenute inlier nell’analisi dei
punti isolati.
Distance iterations: numero di punti adiacenti da considerare nell’analisi dei
punti isolati.
Real pattern dimension [m]: dimensione nominale del pattern nel caso si voglia
utilizzare la calibrazione estrinseca mediante analisi del pattern automatica.
Harris: menu a tendina che permette l’utilizzo di identificazione corner di
Harris o Susan.
Correlation: menu a tendina per la scelta di utilizzare come algorimto di ricerca
delle corrispondenze quello implimentato in questa tesi o la SIFT.
Distance from epipolar lines: menu a tendina che permette la scelta dell’algoritmo
di eliminazione outlier tra il Ransac 7,Ransac 8 ola distanza dalle rette epipolari.
RGBmode: per attivare la ricerca sui tre canali rgb separatamente oltre a quella
in scala di grigi.
Display corner: permette durante la ricerca delle corrispondenze di vedere
effettivamente quali corner il programma prende in considerazione.
Rectified images: si spunta nel caso le immagini siano rettificate e di
conseguenza implica una modifica dei parametri estrinseci e di distorsione.
Auto calibration: nel caso si voglia utilizzare la calibrazione automatica con il
pattern a pallini.
Una volta impostati tutti i parametri cliccando su “Start Recostruction” e identificate le
immagini da analizzare il programma inizia la ricostruzione e restituisce oltre al
numero di corrispondenze trovate e al tempo impiegato varie figure raffiguranti la
nuvola di punti, la mesh applicata su di essa, un 3D realistico con applicata la texture
dell’oggetto e altri grafici per monitorare il progresso dell’analisi.
Pag. 144
Software
Figura 16.2 Schermata secondaria del programma con i
parametri di analisi.
Pag. 145
Capitolo 17
17. Note di sviluppo sul software
Il programma sviluppato si trova all’interno della cartella RECON3D sul DVD.
Le sottocartelle sono:
i.
Calibration: contiene i toolbox di calibrazione. In particolare nella cartella
CALIBRAZIONE FINEPIX3D sono contenute le immagini originarie
scattate con la scacchiera di calibrazione (ORIGINAL). Dato che la stima del
centro ottico non è robusta si sono analizzate le scacchiere lasciando libero il
centro ottico cc e imponendolo al centro dell’immagine. Le cartelle GIUSTI
e CORRETTI corrispondono a queste due situazioni. In particolare
imponendo il cc=0 i risultati sono notevolmente migliorati.
Nelle sottocartelle L e R sono divise le immagini per l’obiettivo di destra (R)
e quello di sinistra (L) e sono anche salvati i file di calibrazione rispettivi
Calib_Result dei parametri intrinseci. Questi sono quindi stati copiati
(modificando i nomi) nella cartella STEREO e quindi analizzati per ricavare i
parametri estrinseci della macchina fotografica nel file Calib_Result_Stereo.
Nella cartella RECTIFIED è presente il file con i parametri estrinseci ed
intrinseci relativi alla calibrazione nel caso si siano rettificate e immagini.
ii.
Function: contiene le funzioni implementate per il programma di ricostruzione
stereo.
In fondo al capitolo è riportato uno schema di funzionamento.
iii.
Pattern: al suo interno vi sono tutti i file relativi ai pattern di proiezione
utilizzati e ai pattern di calibrazione (scacchiera e pallini).
In particolare si ricorda di stampare i pattern di calibrazione mantenedo le
dimensioni originali e non riadattandoli ai fogli di stampa, altrimenti è
necessario reimpostare le dimensioni reali nel programma.
iv.
stphmkre421all: contiene il programma necessario a scomporre i file MPO
prodotti dalla macchina fotografica in immagine di sinistra e destra.
E’ sufficiente trascinare i file MPO nella schermata del programma e poi
salvare come Save Left/Right Images.
Capitolo 17
v.
Varie: cartella che comprende molte funzioni scaricate e richiamate dal
programma di ricostruzione. In particolare si ricordano:
-
vi.
vii.
Allfns: contiene alcune funzioni molto utili per graficare e verificare i
parametri della fotocamera e le rototraslazioni.
AutoPatternCalib: programma di stima automatica delle rototraslazioni
utilizzando il pattern a pallini.
-ICP-finite: per riallineare nuvole di punti distinte.
Susan_c_program: susan corner detection (non funziona su matlab 64bit).
Trismooth: levigatura di mesh.
Recon3D_gui: file di avvio dell’interfaccia grafica del programma.
Calib_Results_left e _stereo: parametri della fotocamera.
Il programma si avvia avviando il file recon3d_gui. Questo permette la
visualizzazione dell’interfaccia grafica in Figura 16.1. Si ricorda che avviando il
programma in questa maniera non sarà possibile interrompere l’analisi senza perdere
tutti i dati fin a quel punto analizzati.
Per questo si consiglia, almeno nelle prime fasi di debug, per avere un miglior
controllo del processo di modificare le variabili all’interno del file Functions/recon3D.
Il file recon3D è il main file del programma.
La prima parte DATA è riservata alle variabili di analisi. Il COMPLETE DATA è
riservato al completamento dei dati con i parametri di calibrazione a seconda che le
immagini siano rettificate o no e che si stia utilizzando una autocalibrazione nel caso
della ricostruzione con più viste.
I dati di inizializzazione sono:
i. thresh: valore di soglia di per il corner detection Harris.
ii. threshF: valore di soglia (percentuale) per l’eliminazione degli outlier nell’analisi
Ransac o nell’analisi della distanza dalle rette epipolari.
iii. threshDist: valore di soglia (percentuale) per l’eliminazione dei punti isolati.
iv. iterDist: numero di punti che compongono un gruppo isolato dalla nuvola di
punti.
v. nonmaxrad: raggio di soppressione dei non massimi per l’algorimto di Harris.
vi. w: finestra di ricerca delle corrispondenze (dispari).
vii. displ: variabile booleana per mostrare o no i punti identificati da Harris.
viii. correl: tipo di correlazione da utilizzare:
-1 correlazione normalizzata
-2 correlazione utilizzando fase monogenica
-3 sift
ix. cornerDect: identifica quale tipo di corner detection utilizzare:
Pag. 148
Note di sviluppo sul software
x.
xi.
xii.
xiii.
xiv.
xv.
xvi.
xvii.
xviii.
xix.
-1 Harris
-2 Susan
prevDmax: tipo di pre-analisi
-0 preAnalysis
-1 rangeDisparity
-2 inputDist
rgbMode: variabile booleana che identifica se analizzare l’immagine solo in
scala di grigi o anche nei tre colori fondamentali distinti.
Ransac: identifica se usare l’algoritmo Ransac per eliminare gli outlier o la
distanza dalle rette epipolari.
rectified: variabile booleana che indica se si utilizzano immagini rettificare.
autoCaliib: variabile booleana che indica se si utilizza l pattern a pallini per
l’auto calibrazione delle viste.
imNum: numero di coppie di immagini da analizzare.
multiAuto: variabile booleana che indica se si utilizza l’autocalibrazione di più
punti.
imPos: variabile booleana che indica se si usa più di una vista.
dimReal: dimensione reale del pattern a pallini misurata tra due dei segmenti
tracciati sul pattern a sinistra.
scaleFactor: nel caso si vogliano scalare le immagini.
Il PROCESS si occupa dell’analisi vera e propria:
i.
ii.
iii.
iv.
v.
vi.
vii.
viii.
ix.
x.
xi.
xii.
xiii.
xiv.
xv.
imRead: lettura delle immagini.
textureLessRegion: analisi delle zone uniformi.
enchanceImg: miglioramento dei dettagli.
imReduce: coordinate delle zona da analizzare nelle due immagini.
showWindow: rappresenta la finestra di ricerca di dimensioni w sovrapposta
all’immagine.
preAnalysis e rangeDisparity: funzioni che ricavano dalle immagini in
automatico l’oggetto più vicino e quello più lontano (non ottimizzate).
inputDist: inserimento manuale del punto più vicino e più lontano.
curveTriang: analisi del possibile errore di ricostruzione in funzione della
distanza dell’oggetto dall’obiettivo.
redDist: stabilisce il range di ricerca (disparità) tra i punti delle immagini.
imCorrelationMOD: ricerca delle corrispondenze.
refineInliers: raffinamento delle corrispondenze.
equalizeRGB: tentativo di equalizzazione dei colori (non implementato).
imReduceRGB: come imReduce ma su un piano di colore.
dispPutative: mostra le corrispondenze sull’immagine di sinistra.
findOutliers: scarta le corrispondenze errate basandosi sulla distanza dalle rette
epipolari.
Pag. 149
Capitolo 17
xvi.
xvii.
xviii.
xix.
xx.
xxi.
findFund: ricava la matrice fondamentale dalle corrispondenze utilizzando
l’algoritmo Ransac e elimina le corrispondenze errate basandosi sulla matrice
fondamentale trovata.
triangulation: triangola le corrispondenze e mostra la prima ricostruzione 3D.
multiCalibOR: ricava i parametri di rototraslazione da più viste utilizzando la
scacchiera.
multiRecon3D: ricostruisce il 3D dell’oggetto da più viste.
posRecon3D: ricostruisce il 3D dell’oggetto da più scatti dalla stessa vista
magari spostando il pattern proiettato sull’oggetto.
multiRecon3Dauto: ricostruisce il 3D dell’oggetto utilizzando più viste e il
pattern a pallini per l’auto calibrazione.
Il POST PROCESSING si occupa dell’elaborare i risultati per ottenere dei migliori
risultati:
i. outliersZ: eliminazione manuale degli outlier.
ii. distOutliers: eliminazione degli outlier basata sulla vicinanza tra i punti.
iii. savePoints: salva la nuvola di punti 3D come file .txt che presenta un elenco
dei punti nelle loro coordinate xyz e come file .obj leggibile da quasi tutti i
software fem.
iv. pointsCloud: mostra la nuvola 3D definitiva.
v. disparity: mostra la mappa di disparità anche nel sistema di riferimento
dell’immagine.
vi. warping: restituisce l’immagine di sinistra deformata pronta ad essere applicata
alla nuvola 3D.
vii. surfaceWarp: applica l’immagine di sinistra deformata alla nuvola di punti e la
mostra.
viii. pointsCloudColor: mostra la nuvola dei punti tridimensionale colorando ciascun
punto con il colore corrispondente ricavato dall’immagine iniziale.
ix. Delaunay e TriRep: funzioni necessarie alla creazione della mesh a prtire dalla
nuvola di punti.
Pag. 150
Capitolo 18
18. Conclusioni e sviluppi futuri
Visti i risultati ottenuti si può affermare che questo programma sia una valida
soluzione per la ricostruzione tridimensionale di oggetti.
Senza dubbio uno dei vantaggi maggiori è la portabilità dell’apparato di acquisizione.
Infatti questo consta esclusivamente della macchina fotografica stereoscopica ed
eventualmente anche del proiettore portatile o di qualunque altro sistema che
permetta di ridurre l’omogeneità nel colore di un oggetto (per esempio una
bomboletta spray, o, come visto nel paragrafo 11.2 Proiezione e stampo, uno
quantitativo di terra).
Inoltre risulta di notevole importanza il fatto che il proiettore possa essere orientato
indipendentemente dalla macchina fotografica e che il setup di quest’ultima sia nullo,
dato che la calibrazione viene fatta una volta soltanto e risulta valida per qualsiasi
oggetto fotografato.
Un altro fattore a favore di questo metodo è il fatto che le due fotografie vengono
scattate in contemporanea e quindi non è necessario che l’oggetto sia fermo.
I tempi di calcolo si aggirano intorno all’ora. Restando comunque ragionevoli ma
senza dubbio potranno essere ridotti riscrivendo alcune funzioni che richiedono di
ciclare per molte volte in altri linguaggi di programmazione, come ad esempio il C.
Si è visto anche che con i metodi di miglioramento utilizzati il programma genera
ricostruzioni tridimensionali praticamente prive di outlier.
Inoltre l’accuratezza di ricostruzione si è mostrata molto elevata garantendo
un’incertezza di meno di un millimetro per un oggetto posto a 650mm dalla
macchina fotografica (riferito alla ricostruzione della parete) o di addirittura una
deviazione standard di meno di 0.15mm nel caso dell’analisi del metro posto a
260mm dagli obiettivi.
La scelta di utilizzare un algoritmo basato sul rilevamento dei corner ha limitato la
ricostruzione a fotografie ricche di particolari o altrimenti ha obbligato all’utilizzo di
metodi alternativi per aumentare artificialmente questa caratteristica (proiettore,…)
ma al tempo stesso ha permesso l’analisi di immagini di grande dimensioni senza
richiedere un apparato hardware oltre ai normali computer oggi in commercio.
Nella fase di confronto dei risultati si è visto come:
Capitolo 18
i.
Rispetto all’analisi di immagini rettificate, RECON3D riporta risultati
leggermente migliori e al tempo stesso evita la fase di rettifica e il tempo che
sarebbe necessario a completarla.
ii.
Rispetto agli algoritmi denso classici i risultati sono notevolmente migliori e i
tempi di calcolo anche di un ordine di grandezza minore.
iii.
Rispetto al migliore degli algoritmi moderni di ricostruzione (ADCensus) i
risultati sono di qualità leggermente inferiore, soprattutto sui bordi degli
oggetti) ma si è visto che questo è dovuto a vari fattori quali:
- bassa risoluzione delle immagini di confronto che ha ridotto il numero di
corner rilevati e conseguentemente la densità della nuvola di ricostruzione.
- probabile post elaborazione dei risultati degli algoritmi moderni o utilizzo di
più coppie di immagini per lo stesso oggetto, per cui risultano ricostruite da
questi zone che nelle due fotografie analizzate risultano occluse.
Al tempo stesso però il RECON3D è capace di ricostruire gli oggetti
prospetticamente mentre l’ADCensus non tiene conto del fatto che gli
obiettivi siano pinhole.
iv.
Rispetto al software commerciale l’accuratezza dei dettagli è comparabile ma
PhotoModeler Scanner richiede la rettifica delle immagini, un setup particolare
prima dello scatto con il posizionamento di particolari pattern nella scena in
posizioni predefinite che rendono il suo uso macchinoso.
Infine RECON3D grazie alla sua modulabilità permette di ricostruire gli oggetti non
solo frontalmente ma anche scattando ulteriori fotografie intorno all’oggetto. L’unico
requisito per avere una ricostruzione completa è quello di posizionare nella scena un
pattern a pallini, anche parzialmente coperto, per consentire al programma di ricavare
in modo automatico le posizioni della macchina fotografica al momento degli scatti.
Infine è stato dimostrato che le ricostruzione sono accurate sia da un punto di vista
geometrico che dimensionale permettendo l’utilizzo di RECON3D anche in ambito
ingegneristico.
Un’idea che è stata in parte sviluppata ma non è qui riportata data la sua non
compiutezza è stata quella di combinare l’accuratezza di ricostruzione dei dettagli
della fotometria con la precisione dimensionale di questo programma in modo da
adagiare le superfici ricche di particolari (della fotometria) sui punti chiave a distanza
corretta ricavati con RECON3D. Questo potrebbe essere uno degli sviluppi futuri di
questa tecnica che senza dubbio può facilitare l’ingegneria in vari ambiti; ad esempio
nel CAD la modifica di componenti esistenti potrebbe essere realizzata senza doverli
misurare e ridisegnare ma semplicemente fotografandoli e importando all’interno del
Pag. 152
Note di sviluppo sul software
software di progettazione la ricostruzione virtuale ottenuta. Anche l’analisi di
vibrazioni o di carico di parti meccaniche per mezzo di un software FEM potrebbe
avvenire semplicemente caricando la mesh che RECON3D fornisce.
Un passo verso queste possibilità è già stato fatto integrando nelle modalità di
salvataggio della nuvola di punti tridimensionale il formato .obj ovvero uno dei
formati più utilizzati di interscambio dati tra i software di grafica 3D.
Pag. 153
Bibliografia
[1] S. Mattoccia, Stereo Vision: Algorithms and Applications, DEIS - Università di
Bologna, 2009
[2] E. Trucco e A. Verri, Introductory Techniques for 3-D Computer Vision, Prentice Hall,
1998
[3] C. J. Taylor, Surface reconstruction from feature based stereo, Computer Vision, Proceedings,
Ninth IEEE International Conference on, pagg.184-190, vol. 1, 2003
[4] D. Scharstein and R. Szeliski. A taxonomy and evaluation of dense two-frame stereo
correspondence algorithms, IJCV, pagg. 7–42, 2002.
[5] O. Veksler, Fast variable window for stereo correspondence using integral images, Proc. Conf.
on Computer Vision and Pattern Recognition, CVPR 2003
[6] Y. Boykov, O. Veksler e R. Zabih, A variable window approach to early vision, IEEE
Trans. PAMI 20(12), pagg. 1283–1294, 1998
[7] S. Chan, Y. Wong e J. Daniel, Dense stereo correspondence based on recursive adaptive size
multi-windowing, Proc. Image and Vision Computing New Zealand, vol. 1, pagg. 256–
260, IVCNZ, 2003
[8] Y. Xu, D. Wang, T. Feng e H. Shum, Stereo computation using radial adaptive windows,
Proc. Int. Conf. on Pattern Recognition, vol. 3, pagg. 595–598, ICPR, 2002
[9] C. Demoulin e M. Van Droogenbroeck, A method based on multiple adaptive windows
to improve the determination of disparity maps, Proc. IEEE Workshop on Circuit, Systems
and Signal Processing, pagg. 615–618, 2005
[10] M. Gerrits e P. Bekaert, Local Stereo Matching with Segmentation-based Outlier Rejection,
Proc. Canadian Conf. on Computer and Robot Vision, pagg. 66-66, CRV, 2006
[11] F. Tombari, S. Mattoccia e L. Di Stefano, Segmentation-based adaptive support for
accurate stereo correspondence, PSIVT, 2007
[12] F. Tombari, S. Mattoccia, L. Di Stefano e E. Addimanda, Classification and
evaluation of cost aggregation methods for stereo correspondence, IEEE International
Conference on Computer Vision and Pattern Recognition, CVPR, 2008
Bbliografia
[13] D. Scharstein e R. Szeliski, A taxonomy and evaluation of dense two-frame stereo
correspondence algorithms, International Journal of Computer Vision, vol. 47(1/2/3),
pagg. 7-42, 2002.
[14] P. Favaro, e S. Soatto, S., A variational approach to scene reconstruction and image
segmentation from motion-blur cues, Computer Vision and Pattern Recognition, IEEE
Computer Society Conference on , pagg. 631-637, vol. 1, CVPR, 2004
[15] R. J. Woodham, Photometric method for determining surface orientation from multiple
images, Optical Engineerings, pagg. 139-144, vol. 19, 1980
[16] B. K. P. Horn, Obtaining shape from shading information, B. K. P. Horn and M. J.
Brooks, eds., Shape from Shading, pagg. 121–171, MIT Press, 1989
[17] W. Wu, Rectification of Stereoscopic Video for Planar Catadioptric Stereo Systems, Circuits
and Systems for Video Technology, IEEE Transactions, pagg. 686-698, vol. 17, arg.
6, 2007
[18] C. Loop e Z. Zhang, Computing rectifying homographies for stereo vision, Computer
Vision and Pattern Recognition, 1999
[19] S. Mattoccia, Introduzione alla Visione Stereo, Università di Bologna, 2009
[20] R. Hartley e A. Zisserman, Multiple View Geometry in computer vision, Cambridge
University Press, 2000
[21] G. Xú e Z. Zhang, Epipolar geometry in stereo, motion, and object recognition: a unified
approach, Kluwer Academic Publishers, 1996
[22] O. Faugeras e Q. T. Luong, The geometry of multiple Images, The Mit Press,
Cambridge, 1993
[23]
J.
Y.
Bouguet,
Camera
Calibration
http://www.vision.caltech.edu/bouguetj/calib_doc/
Toolbox
for
Matlab,
[24] Z. Zhang, Flexible Camera Calibration by Viewing a Plane from Unknown Orientations,
Seventh International Conference on Computer Vision, vol. 1, ICCV, 1999
[25] R. Hartley e A. Zisserman, Multiple View Geometry in Computer Vision, Cambridge
University Press, pagg. 155–157, 2003
[26] P. Tissaimayagam e D.Suter, Assessing the performance of corner detectors for point feature
tracking applications, Image and Vision Computing, pagg. 663-679, vol. 22, arg. 8, 2004
Pag. 156
Bibliografia
[27] A. Masiero, Lezione sull'Harris corner detector, Dipartimento di Ingegneria
dell’Informazione, Università di Padova, 2007
[28] Harris, C. e M. Stephens, A combined corner and edge detector, Fourth Alvey Vision
Conference, pagg.147-151, 1988
[29] J. P. Costella, A superior edge detection gradient operator, Ashwood, 2010
[30] S. Smith e M. Brady, SUSAN-A New approach to low level image processing, Internal
Journal of Computer Vision, pagg. 45-78, vol. 23, arg. 1, 1997
[31] D. Scharstein e R. Szeliski, High-accuracy stereo depth maps using structured light, IEEE
Conference on Computer Vision and Pattern Recognition, vol. 1, pagg. 195-202,
CVPR, 2003
[32] Li Zhang, Brian Curless e Steven M. Seitz, Spacetime Stereo: Shape Recovery for
Dynamic Scenes, IEEE Computer Society Conference on Computer Vision and
Pattern Recognition,pagg. 367-374, CVPR, 2003
[33] A. Ansar, A. Castano e L. Matthies, Enhanced real-time stereo using bilateral filtering,
IEEE Conference on Computer Vision and Pattern Recognition, 2004
[34] R.I.Hartley e A. Zisserman, Multiple View Geometry in Computer Vision, Cambridge
University Press, 2000
[35] M. A. Fischler e R. C. Bolles, Random Sample Consensus: a Paradigm for Model Fitting
with Applications to Image Analysis and Automated Cartography, Comm. of the ACM 24,
pagg. 381–395, 1981
[36] D. Nistér, Preemptive RANSAC for live structure and motion estimation, Machine Vision
and Applications, Springer Berlin / Heidelberg, pagg. 321-329, vol. 16, arg. 5, 2005
[37]
D.
Scharstein
e
R.
http://vision.middlebury.edu/stereo/eval/
Szeliski,
Middlebury
Dataset,
[38] Anonymous. (n.d.), Accurate and efficient stereo matching with AD-census measure, crossbased regions and multi-step refinement, CVPR, 2011
[39] K. S. Arun, T. S. Huang e S.D. Blostein, Last square fitting of two 3-D point sets,
IEEE Trans. Patt. Anal. Machine Intell., pagg. 698-700, vol. 5, 1987
[40] D. Lowe, Object recognition from local scale-invariant features, International Conference
on Computer Vision, pagg. 1150-1157, 1999
Pag. 157