My Thesis

  • 1,244 views
Uploaded on

description of the camera calibration, epipolar geometry, trifocal geometry, multifocal geometry

description of the camera calibration, epipolar geometry, trifocal geometry, multifocal geometry

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,244
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
21
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Studio e applicazione di tecniche di visione arti- ficiale per la stima della posizione della camera MASSIMO FERRARA
  • 2. Indice Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Concetti base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 La gerarchia delle Geometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Geometria proiettiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.1 introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3.2 Spazio Proiettivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.3.2.1 La base proiettiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.2.2 Trasformazioni proiettive . . . . . . . . . . . . . . . . . . . . . . . 16 2.3.2.3 Lo spazio P2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.2.4 Lo spazio P3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3.3 Coniche e quadriche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3.4 Conica assoluta e quadrica duale assolute . . . . . . . . . . . . . . . . 20 2.4 Sommario delle gerarchie delle geometrie rivisitate . . . . . . . . . . . . . . 22 2.4.1 Geometria proiettiva in P3 . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4.2 Geometria proiettiva orientata . . . . . . . . . . . . . . . . . . . . . . . 23 2.4.3 Geometria affine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.4.4 Geometria euclidea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4.5 Sommario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Modello camera e viste multiple ....................... 27 3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Modello della camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.1 Parametri intrinseci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.2 Parametri estrinseci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.3 Modello completo della matrice di proiezione prospettica . . . . . . . 33 3.2.4 Distorsione radiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3 Calibrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.3.1 Stima della matrice di proiezione prospettica . . . . . . . . . . . . . . 35 3.4 Geometrie stereo e a viste multiple . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.1 Collineazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.4.2 Geometria epipolare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4.3 Geometria epipolare riveduta . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4.4 Ricostruzione del moto della struttura . . . . . . . . . . . . . . . . . . 42 3.4.5 Estrazione dei punti salienti . . . . . . . . . . . . . . . . . . . . . . . . . 43 3
  • 3. 4 Indice 3.4.6 Corrispondenza dei punti salienti . . . . . . . . . . . . . . . . . . . . . 45 3.4.7 Stratificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.4.7.1 Ricostruzione da proiettiva ad euclidea . . . . . . . . . . . . . . . 48 3.4.8 Autocalibrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.4.9 Tensore trifocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4.9.1 Vettori controvarianti . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.9.2 Vettori covarianti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.9.3 Speciali tensori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4.9.4 Matrice fondamentale versus tensore bifocale . . . . . . . . . . . 55 3.4.9.5 Geometria Trifocale . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4.9.6 Estrazione della matrice fondamentale . . . . . . . . . . . . . . . 59 4 Stime sulle viste Multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.1 introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.2 Stime della matrice fondamentale . . . . . . . . . . . . . . . . . . . . . . . . . 61 4.2.1 Stime lineari della matrice fondamentale . . . . . . . . . . . . . . . . . 62 4.2.2 Stime non lineari della matrice fondamentale . . . . . . . . . . . . . . 63 4.2.3 Robustezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.3 Stime del tensore trifocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.3.1 Stime lineari del tensore trifocale . . . . . . . . . . . . . . . . . . . . . . 67 4.3.2 Stime non lineari del tensore trifocale . . . . . . . . . . . . . . . . . . . 68 4.3.3 Robustezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5 Applicazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.1 .............................................. 71
  • 4. Capitolo 1 introduzione Nel ventesimo secolo un grande interesse dalla comunità scientifica ha avuto lo studio e le applicazioni di tecniche geometriche ed algoritmiche nel campo della visione artificiale. Le motivazioni ovviamente sono state da ricercare nei più sva- riati campi, ad esempio quello medico, quello industriale ed non ultimo quello dell’intrattenimento, tanto per citarne alcuni. Più recentemente, visto la larga dif- fusione di personal computer dalle crescenti capacità elaborative, l’interesse si è focalizzato sulla ricostruzione di modelli 3D provenenti da immagini acquisite tra- mite video camere. Lavori da ritenersi in tal senso pioneristici sono stati ad esempio [LH81], [TH84]. Da allora tanto si è fatto sia dal punto di vista teorico, ricordiamo ad esempio [Fau93], [HT03], ma pure dal punto punto di vista pratico ed in tal senso software risultati apprezzabili, alcuni dei quali anche di carattere commerciale, sono [pbESI], [pbR]. Come è possibile immaginare, la stima della geometria della scena e del movimento della camera, comunemente chiamati assieme structure from motion, è soggetta a svariate problematiche; comune- mente per esempio, vi sono errori di valutazione delle rotazioni e delle traslazioni, da attribuire al movimento della camera se questa ultima poggia su meccanismi moventi, nonchè quelle inerenti alla calibrazione dei paramtretri intrinseci della camera come la lunghezza focale. Oggi non considerare quest’ultimo aspetto ha dato notevole stimolo per un settore di ricerca piuttosto attivo denominato unca- librated structure from motion. La ricostruzione che deriva da una sequanza non calibrata di immagini si basa solamente sulla teoria delle trasformazioni proit- tive, che nel caso di due sole immagini fisse provenienti da due camere come in [Fau92] e [Har92], può considerarsi come una condizione necessaria di conoscenza per questa disciplina. Malgrado ciò le trasformazioni proiettive sono affette da svantaggi, ad esempio non si ha pieno significato nella misurazione degli angoli e delle distanza, per cui bisogna passare da una ricostruzione proiettiva ad una rico- struzione metrica. La stima di queste trasformazioni proiettive da immagini pone quindi il problema della self-calibration che riguarda sia i parametri intrinseci della camera che la trasformazione dalla ricostruzione proiettiva nella ricostru- zione affine per determinare la posizione del piano a infinito. Primi lavori su tali problematiche sono stati i lavori [MF92] dove si dimostra come sia possibile da una camera in movimanto liberamente, osservando la scena sconosciuta, estrarre i parametri intrinseci. Poi altri hanno proprosto miglioramenti come in [Har94a], [FLM92], [HA96] e [Tri96] introducendo concetti come absolute quadric. Si può sicuramente dire e non per ultimo come importanza, che l’approccio della auto- calibrazione da una sequenza non calibrata di immagini, risulta molto sensibile al 5
  • 5. 6 introduzione rumore, e da nella fase del processo di ricostruzione degli errori non trascurabili tanto che tutti gli autori degli articoli [HA97], [HA98], [PKG98] e [PKG99] a testimonianza delle difficoltà riscontrate, mettono delle limitazioni sulla variabilità dei parametri intrinseci e del moviento della camera. La stima della posizione della camera giacchè in buona sostanza può essere visto come un pro- blema “inverso” di ricostruzione 3D, presenta le stesse problematiche suddette.
  • 6. Capitolo 2 Concetti base B iso g n a p e rò t en ere p rese nte ch e u n a rg o m ento m a tem a t ico n o n p u ò m a i e ssere co n sid e ra to e sa u rito fi n o a q u a n d o n o n è d iventa to intu itiva m e nte ev id e nte e ch e p ro c ed e re a n a litic a m e nte sig n ifi ca co m p ie re u n p a sso im p o rta ntissim o m a so lo u n p rim o p a sso . Fe lix K L E IN 2.1 Introduzione In questo capitolo daremo alcuni concetti base su cui si fondano i problemi di ricostruzione di un oggetto del mondo reale attraverso concetti di geometria pro- iettiva. Metteremo in risalto le principali differenze con il modo usuale di rappre- sentazione nella geometria euclidea. Tali differenze risultano bene evidenti se si considera ad esempio la rappresentazione di un cubo per il quale in vista prospet- tica, stessi angoli e misure di lati possono apparire decisamente differenti: Figura 2.1. : Esempio di effetto prostettico 2.2 La gerarchia delle Geometrie Un famoso programma detto di Erlangen proposto da F. Klein 1872 propone lo studio di tutte le geometrie come spazi di punti e dei gruppi di trasformazioni che su essi non cambiano la struttura di spazio. Le proprietà invarianti del gruppo di 7
  • 7. 8 Concetti base trasformazione sono i teoremi e una geometria può essere descritta completamente da un insieme di assiomi fondamentali come definizioni di punto, di linea, di parallelismo, ecc... che danno la struttura di spazio. Alternativamente è possibile caratterizzare la geometria per mezzo di un insieme di trasformazioni che non cambiano la struttura di spazio. La classificazione cosidetta “naturale” della geo- metria poichè provieniente dalla visione del mondo quotidiano segue il seguente schema: Proiettiva ⊃ Proiettiva orientataAffine ⊃ Metrica ⊃ Euclidea In altre parole ogni geometria alla sinistra di quella euclidea “estende” (ecco il significato del simbolo inclusione) quella alla sua destra intendendo con ciò che via via, ogni geometria diventa sempre più numerosa di trasformazioni e meno nume- rosa di invarianti. Riportiamo la seguente tabella: Figura 2.2. tratta da [S.Birchfield] 2.3 Geometria proiettiva 2.3.1 introduzione Le origini di questa geometria sono da ricercare nelle regole della prospettiva, che artisti del rinascimento come Brunelleschi, L.B. Alberti, Piero della Francesca e altri studiarono scientificamente e utilizzarono in modo sistematico.
  • 8. 2.3 Geometria proiettiva 9 Figura 2.3. La città ideale Piero Della Francesca Tale regole sono basate sull’idea di “punti di fuga”, sui quali i contorni degli oggetti, sembrano tendere da un punto di vista di una osservazione. Semplice- mente potremmo formalizzare la geometria proiettiva con “gli assiomi di inci- denza” che risultano essere quindi una delle due possibili costruzione. Per tale costruzione considerando ad esempio S un piano proiettivo su un campo K (vedi più avanti per le definizioni) deve accadere: I. Per due punti distinti di S passa una e una sola retta. II. Due rette in S si incontrano in almeno un punto. III. In S ci sono tre punti non allineati. IV. Ogni retta in S contiene almeno tre punti. Trasciando i dettagli che ci porterebbero un pò lontani dalla costruzione clas- sica degli spazi proiettivi e delle applicazioni su essi di algebra lineare, possiamo vedere le seguenti figure che ripercorrono alcuni dei significati su esposti: Figura 2.4. In figura tratta da [Cornalba97] P è un punto di proiezione (o sorgente luminosa), A1 piano diapositiva; si nota che ϕ(Q) non è definito per tutti i Q e precisa- mente non è definito per i Q che appartengono alla intersezione di A1 col piano per P parallelo ad A2 quest’ultimo detto piano di proiezione.
  • 9. 10 Concetti base Figura 2.5. In figura tratta da [Cornalba97] due rette incidenti vengono mappate in due linee parallele Figura 2.6. In figura tratta da [Cornalba97] altri casi particolari: a sinistra il piano di proiezione risulta ortogonale al piano diapositiva, mentre a destra il piano diapositiva risulta dietro il punto di proiezione. 2.3.2 Spazio Proiettivo Daremo adesso, succintamente, alcune più moderne formalizzazioni astratte, cer- cando di mantenere il livello delle esposizioni il più semplice è chiaro possibile, al fine di giustificare l’usuale simbologia nelle successive applicazioni. Definizione 2.1. Se V è uno spazio vettoriale di dimensione (n+1) su un campo K, denotiamo con PG(V) l’insieme dei sottospazi 1-dimensionali di V che chiame- remo punti di PG(V). Definizione 2.2. Se W è un sottospazio vettoriale di V di dimensione (h+1) con 0 ≤ h ≤ n, denotiamo con [W] il sottoinsieme di PG(V) costituito dai sottospazi 1- dimensionali di V contenuti in W, poniamo cioè [W] PG(W); un insieme di questo tipo prende il nome di sottospazio proiettivo, o semplicemente sottospazio di PG(V) di dimensione h. Per convenzione, assumiamo che il vuoto sia un sotto- spazio di PG(V) di dimensione -1. I sottospazi di PG(V) di dimensione 0 sono i punti di PG(V); quelli di dimensione 1, 2, (n-1) prendono rispettivamente il nome di rette, piani, iperpiani. Definizione 2.3. Denotata con S j la famiglia di tutti i sottospazi proiettivi di PG(V) di dimensione j con j ∈ J = {-1, 0, 1, 2,..,n } la coppia
  • 10. 2.3 Geometria proiettiva 11 ((PG(V ), {S j } j ∈J ) prende il nome di spazio proiettivo associato a V o anche spazio proiettivo sul campo K. Tale spazio, con abuso di notazione, sarà denotato semplicemente con P PG(V). L’intero n=dim(P) = dim(V ) − 1 si chiama dimensione di P. Nota 2.4. Dalla Definizione 2.1 segue che i sottospazi {λv: λ ∈ K } di dimensione 1 generati da V sono solo quelli dati ∀v ∈ V {0}, per tale motivo il punto 0dim(V )×1 non è contenuto nello spazio proiettivo P, che del resto, per come è stato definito nella Definizione 2.3, non è uno spazio vettoriale. Definizione 2.5. Lo spazio proiettivo associato allo spazio vettoriale K n+1 si chiama spazio proiettivo numerico di dimensione n su K e con abuso di notazione si denota Pn PG(n,K). Nota 2.6. Ogni sottospazio proiettivo di dimensione h di P può essere conside- rato spazio proiettivo di dimensione h sul campo K. Se v è un vettore non nullo di V , il simbolo < v > = {λv: λ ∈ K } denoterà il sottospazio vettoriale generato da v e denoteremo semplicemente con [v] il corrispondente punto [ < v > ] di P. Due punti [v], [w] saranno uguali, se e solo se ∃λ ∈ K {0}: w = λv. Definizione 2.7. Diciamo che m punti {P1, P2, , Pm } = {[v 1], [v 2], , [v m]} di P sono (linearmente) dipendenti o indipendenti se tali risultano i vettori v 1, v 2, , v m. Notiamo che tale definizione è ben posta in quanto la dipendenza o indipen- denza lineare di P1, P2, , Pm non dipende dalla scelta di v j nel sottospazio < v j > . Diciamo inoltre che un punto P = [v] dipende (linearmente) da P1, P2, , Pm se il vettore v dipende da v 1, v 2, , v m. Un insieme X di punti di P si chiama gene- ratore se risulta < X > = P. Un generatore formato da punti indipendenti si chiama base. Nota 2.8. E’ immediato rendersi conto che un insieme di punti indipendenti {P1, P2, , Pm } = {[v 1], [v 2], , [v m]} è una base se, e soltanto se, v 1, v 2, , v m è una base di V e di conseguenza risulta m = n + 1. Nota 2.9. Due basi v 0, v 1, , v n e w 0, w 1, , w n dello spazio vettoriale V indivi- duano una stessa base di P se, e soltanto se, ogni v i è proporzionale ad un w j . Definizione 2.10. Una (n+2)-pla R = (A0, A1, , An , A) di punti di P a (n + 1) a (n + 1) indipendenti prende il nome di riferimento proiettivo di P. I punti A0, A1, , An si chiamano punti fondamentali e A punto unità del riferimento. Un sottospazio h dimensionale di P contenente (h+1) punti di R diversi da A si chiama sottospazio fondamentale del riferimento R. Definizione 2.11. Se B = (e0, e1, , en) è una base di V, si ha che
  • 11. 12 Concetti base n R(B)= E0 = [e0], E1 = [e1], , En = [en], E = [ ej] j=0 è un riferimento proiettivo di P, detto associato a B, e ogni riferimento R si ottiene in questo modo. Fissato dunque il riferimento proiettivo R=R(B), ad ogni punto n P = [v = x je j ] j=0 resta associata la (n+1)-pla (x0,x1, , xn) ∈ K n+1 0 delle componenti di v nella base B. Gli elementi di tale (n+1)-pla si chiamano coordinate proiettive o omogenee di P nel riferimento R e sono definiti a meno di un fattore comune non nullo di proporzionalità in quanto dipendono dalla scelta di un vettore non nullo nel sottospazio vettoriale < v > di V. Resta così definita anche la funzione biuni- voca, detta coordinazione (Marshall Hall 1943): γR: PG(V ) → PG(n, K) γR(P ) = [(x0, x1, , xn)]=[x0: x1: , , : xn ] (dove i puntini “:” indicano che bisogna tenere conto dei loro rapporti) con la quale si possono identificare i punti P G(V ) con quelli dello spazio pro- iettivo numerico PG(n, K). Quando fissiamo un riferimento proiettivo in P, semplicemente possiamo scri- vere per un punto P ∈ P: P = (x0, x1, , xn) intendendo che le x0,x1, , xn sono le coordinate proiettive del punto P . Ovvia- mente, per i punti fondamentali del riferimento valgono pure le seguenti relazioni: E0 = (1, 0, 0, , 0, 1) E1 = (0, 1, 0, , 0, 1) En = (0, 0, 1, , 0, 1) E = (1, 1, 1, , 1, 1) Nota 2.12. Possiamo fin qui riassumere dicendo equivalentemente che lo spazio proiettivo Pn può essere visto come l’insieme quoziente K n+1 0 ∼ . La funzione π: K n+1 0 → Pn che porta ogni elemento di K n+1 0 nella sua classe di equi- valenza, chiamata proiezione sul quoziente, ci permette di definire i sottospazi proiettivi. Definizione 2.13. Se W è un sottospazio vettoriale di uno spazio vettoriale V, allora la codimensione di W rispetto a V è: CodimVW = dim V − dim W
  • 12. 2.3 Geometria proiettiva 13 Passando al quoziente, dalle equazioni di un sottospazio vettoriale W, otte- niamo le equazioni del suo proiettivizzato; in particolare quindi un sottospazio pro- iettivo PG(W ) di dimensione k in PG(n,K) sarà descritto da un numero di equa- zioni pari alla sua codimensione. Nota 2.14. Ricordiamo che ogni sottospazio vettoriale W di dimensione (h + 1) di V, rispetto ad una base ordinata B = (ei), si rappresenta mediante un sistema di k = (n − h) equazioni omogenee indipendenti del tipo:   a10x0 + a11x1 + + a1nxn = 0  a20x0 + a21x1 + + a2nxn = 0    ak0x0 + ak1x1 + + aknxn = 0  Notiamo che il sottospazio fondamentale di dimensione h contenente i punti fondamentali del riferimento Ei0, Ei1, ..., Eih e rappresentato dal sistema: {x j = 0 : j i0, i1, , ih } Nota 2.15. (immersione standard) Per ogni i, il luogo di equazione xi = 0 è un iperpiano e lo indichiamo con Hi in Pn; se indichiamo con X = Pn H0 il comple- mentare di H0 e con A l’iperpiano affine di equazione x0 = 1, sappiamo associare una corrispondenza biunivoca: j: A → Pn H0 x j(1, y1, , yn) → [1: y1: : yn] : yi = x i con i = 1, , n. 0 che identifica A a X. Viceversa se [x0: x1: : xn] ∈ X ossia x0 0, il punto di A ad esso corrispondente risulta: j −1: Pn H0 → A x xn j −1([x0: x1: : xn]) → (1, x1 , 0 , x0 ) Diremo i punti (y1, y2, , yn) coordinate affini, naturalmente, rispetto alle scelte fatte del punto [x0: x1: : xn] ∈ Pn o del punto ad esso corrispondente in P. Tale costruzione, permette di legare la geometria affine alla geometria proiettiva. In generale, identificando A con An = An(K), considerando Hi e introducendo le cosiddette carte affini Ui = Pn Hi possimo definire biunivocamente: ji: An → Ui ji(y0, , yi−1, yi+1, , yn) → [y0: : yi−1: 1: yi+1: : yn] ji−1: Ui → An ji−1([x0: x1: : xn]) → (y0, , yi−1, yi+1, , yn)
  • 13. 14 Concetti base dove tacitamente abbiamo utilizzato una applicazione biettiva che lega (y0, , yi−1, yi+1, , yn) ∈ An → (y0, , yi−1, 1, yi+1, , yn) ∈ A La ji è detta applicazione di passaggio a coordinate omogenee mentre ji−1 applicazione di passaggio a coordinate non omogenee, entrambe rispetto a xi. I punti di Hi sono detti impropri i punti di Ui sono detti invece propri, sempre rispetto a xi. ′ ′ Nota 2.16. Date B = (ei) e B = (ei ) due basi ordinate di V esse individuano lo stesso riferimento proiettivo di P se, e soltanto se, sono basi proporzionali, cioe se ′ esiste λ 0 tale che ei = λei, per ogni i = 0, 1, , n. Definizione 2.17. Un automorfismo di V è una trasformazione lineare e biuni- voca di V, cioè una permutazione L sugli elementi di V tale che L(αx + βy) = αL(x) + βL(y), per ogni α, β ∈ K e per ogni x, y ∈ V. Gli automorfismi di V for- mano un gruppo che si denota con GL(V ) e si chiama gruppo generale lineare. Definizione 2.18. Dato V uno spazio vettoriale non vuoto su un anello di divi- sione K. una funzione f di V su se stessa è chiamata semilineare se esiste un automorfismo γ di K tale che: f (x + y) = f (x) + f (y) ed f (xa) = f (x)a γ per ogni x,y ∈ V ed a ∈ K. Definizione 2.19. Siano V , V ′ due spazi vettoriali su K di dimensione maggiore di due. Una biiezione f fra i punti di PG(V) e quelli di PG(V’) prende il nome di collineazione se f, insieme alla sua inversa, trasforma rette in rette. Nel caso V e V ′ hanno dimensione due, una collineazione fra PG(V) e PG(V ′ ) è una fun- zione del tipo P = [v] → P ′ = [T (v)], dove T è una funzione semilineare fra V e V ′. Definizione 2.20. Le collineazioni di PG(V) in se stesso formano un gruppo, il gruppo delle collineazioni di PG(V), che si denota con P ΓL(V ). Lo studio delle proprietà di PG(V) invarianti rispetto a tale gruppo prende il nome di geometria d’incidenza di PG(V). Definizione 2.21. Se L è un automorfismo di V, possiamo considerare la permu- ′ tazione σL sui punti di PG(V) denita da σL: P = [v] → P = [L(v)]. Una permuta- zione di questo tipo prende il nome di proiettività. Le proiettività di PG(V) for- mano un gruppo che si denota con PGL(V) e si chiama gruppo (lineare generale) proiettivo. Lo studio delle proprietà di PG(V) invarianti rispetto a tale gruppo si chiama geometria proiettiva. Esempio 2.22. Per chiarire alcune definizione precedenti riportiamo il seguente, e non l’unico, possibile schema:
  • 14. 2.3 Geometria proiettiva 15 LA K n+1 0 →K n+1 0 ↓π ↓π σL Pn → Pn dove LA è una biezione indotta da A ∈ Mn+1(K): det(A) 0 e che ∀x ∈ Rn+1 0 , ∀t ∈ K soddisfa le relazioni: LA(t x) = tLA(x) ed inoltre LA(x) 0 π è una funzione proiezione sull’insieme quoziente K n+1 0 . Dopo avere introdotto alcune definizioni essenziali vediamo le implicazioni che da esse ne derivano. Da ora in avanti possiamo considerare un punto x ∈ Pn e lo possiamo rappresentare come un vettore ad (n + 1)-componenti (confronta Nota 2.15): x ∈ Pn → x = [x0, x1, x2, , xn]⊤: xi ∈ R, x0 ∈ R{0} con i = 1, 2, , n. Legando cosi i risultati dell’algebra lineare definiti su K n+1{0} possiamo ope- rare su Pn, ma avendo cura di non dimenticare ciò che nella notazione vettoriale, i significati su esposti dalle definizioni precedenti, risultano celati. Ricordiamo adesso un notevole risultato che caratterizza la geometria proiettiva detto prin- cipio di dualità, “le cui radici, molto antiche, possono essere ricercate addirittura in Apollonio [T.Bagni]” , e che riassumiamo semplificando per comodità, per i nostri scopi, con il seguente teorema duale: Teorema 2.23. (Dualità del punto e dell’iperpiano) Per ogni teorema nello spazio proiettivo che include punti e iperpiani esiste un teorema duale. Il teorema duale è dedotto scambiando il ruolo del punto e del l’iperpiano (vedasi [Fau93] per maggiori dettagli). Definizione 2.24. Un iperpiano π di Pn si può definire attraverso la relazione d’incidenza con un punto x di Pn: π ⊤x = 0 oppure dualmente x⊤π = 0 Queste due ultime equazioni ci dicono che il punto x giace sull’iperpiano π o vice versa che l’iperpiano π intercetta il punto x. Da ora in avanti possiamo con- siderare il campo K = R in modo che lo spazio proiettivo Pn sia l’estenzione dello spazio Euclideo Rn per mezzo di punti su un iperpiano π ∞ detto a infinito i quali punti ideali sono del tipo: [x1, x2, , xn , 0]⊤: x1, x2, , xn ∈ R con ∃xi 0 i = 1, 2, ,n (2.1) Applicando la Definizione 2.24 per un punto dell’insieme in (2.1) abbiamo che:
  • 15. 16 Concetti base π ⊤ x = 0 → π ∞ = [0, 0, ∞ , 0, 1]⊤ Risulta inoltre importante la proprità che riguarda due punti equivalenti di Pn: ∀x, y ∈ Pn equivalenti esiste un λ ∈ R{0} → λx = y → y ≃ x (confronta Nota 2.6) Nel caso consideriamo un singolo punto dello spazio x ∈ P abbiamo sempre nella rappresentazione vettoriale: λx = x → x ≃ x con λ ∈ R{0}. (2.2) Il simbolo “ ≃ ” mette in evidenza che la conoscenza di un punto avviene diciamo pure a meno di un fattore di scala. 2.3.2.1 La base proiettiva Anche nella geometria proiettiva, come detto sopra in altri termini, è possibile caratterizzare un qualsiasi punto come una opportuna combinazione lineare di una arbitraria base proiettiva. Sempre nel caso si abbia un generico x = [x0, x1, , xn] ∈ Pn la base standard proiettiva rappresentata nella notazione vettoriale, risulta avere (n + 2) componenti ei = [0, , 1, , 0] con i = 0, 1, , n ed en+1 = [1, , 1], ma ciononostante tale punto nella notazione vettoriale x può essere descritto dalla seguente combinazione lineare: n x= xiei i=0 che si presenta come una forma canonica, inoltre ogni base proiettiva x0, x1, , xn+1 può essere trasformata univocamente attraverso una opportuna tra- sformazione lineare nella base canonica: ei ≃ T xi dova T e una opportuna matrice di trasformazione (vedi [Fau93] per maggiori dettagli). 2.3.2.2 Trasformazioni proiettive Ci sono due due tipi di trasformazioni nello spazio proiettivo. La prima classe di trasformazioni detta affine caratterizzata dal fatto che non cambia tutti i punti che stanno sull’iperpiano ad infinito. In generale una trasformazione affine può essere vista come una trasformazione lineare invertibile proveniente dallo spazio euclideo Rn con An×n ∈ M (R) e che resta nello spazio euclideo Rn attraverso n×n una traslazione tn×1 ∈ M (R). Se consideriamo due punti di Pn possiamo scri- n×1 vere la trasformazione affine come segue:
  • 16. 2.3 Geometria proiettiva 17 An×n tn×1 x2 = x1 = T Ax1 con x1, x2 ∈ Pn. 01×n 1 Un sottogruppo delle trasformazioni affini che scalano ortogonalmente la matrice An×n vengono dette trasformazioni di similitudine. La seconda classe di trasformazioni dette proiettive invece cambia la posizione dell’iperpiano a infinito. Tale tipo di trasformazione può essere considerata la generalizzazione della tra- sformazione affine, inoltre muove come si dice i punti dell’iperpiano ad infinito nello spazio euclideo Rn. Una trasformazione cosifatta, lineare, che mappa punti collineari in punti collineari è detta “collineazione o omografia” ed è definita per Pn nella seguente maniera: ′ x ≃ T P x dove T P ∈ M (R): det(T P ) (n+1)×(n+1) 0. Per le trasformazioni proiettive in generale Pm → Pn definite da T P ∈ M (R) dove la matrice non è evidentemente invertibile, vale sempre la rela- (m+1)×(n+1) ′ zione x ≃ T P x che può essere applicata linearmente. 2.3.2.3 Lo spazio P 2 Ogni punto dello spazio x ∈ P2 può essere visto tramite vettore x ≃ x, y, p]⊤ ∈ R3 03×1 in definitiva risulta essere un insieme di linee in R3 che provengono dall’origine. Ciascuno di queste linee può essere descritta pure per mezzo di un punto di R2, assieme all’origine. Per lo spazio P2 un punto rappresentato da x ≃ x, y, 1]⊤ su un piano risulta uguale a tutti i punti che stanno sulla linea raggio di proiezione che lega lo stesso all’origine y ≃ p x, y, 1]⊤. In tale contesto l’iperpiano ad infinito diventa la retta ad infinito l∞ = [0, 0, 1]⊤ e possiamo scrivere la seguente relazione P2 = R2 ∪ l∞. Utilizzando il Teorema 2.23 di dualità, una linea può essere rappresentata dalla seguente formula l ⋍ [l1, l2, l3]⊤ che consiste nell’insieme dei punti tali che l⊤x = 0, inoltre tale equazione può essere scritta ovviamente anche come x⊤l = 0. Risulta inoltre che per due punti x1, x2 di P2 passa una retta quindi ricordando l’equazione di una generica retta abbiamo: 0 = ax + by + cw ⇒ [a, b, c]x⊤ = 0 con x ∈ x1, x2 La soluzione di quest’ultima equazione può essere vista come lo spazio nullo di una matrice Al: x⊤ 1 All = l=02×1 x⊤ 2 Teorema 2.25. Il punto intersezione x di due rette l1, l2 è dato dal prodotto vet- tore tra le stesse: x = l1 × l2
  • 17. 18 Concetti base Teorema 2.26. Due rette l1, l2 sono parallele se la loro unica intersezione e su l ∞: l⊤ x = 0 ∞ Alcune importanti proprietà delle traformazioni affini in P2 possono essere elencate nelle seguenti: • due rette parallele sono mappate in due rette parallele • il rapporto tra lunghezze si mantiene costante • il rapporto tra due aree è invariante [HZ03] 2.3.2.4 Lo spazio P 3 Anche lo spazio proiettivo P3 lo possiamo rivedere come l’estensione dello spazio Euclideo R3 per mezzo questa volta del piano π ∞: P3 = R3 ∪ π ∞. Il Teorema 2.22 duale è definito tra il punto e il piano inoltre P3 ha più proprietà che P2. Se ricor- diamo l’equazione di un piano in R3 e la riadattiamo in coordinate omogenee otte- niamo: π1X + π2Y + π3Z + π4W = 0 ⇒ [π1, π2, π3, π4]X con X ∈ P3 (2.3) ¯ che in forma normale di Hesse considerando X = [X/W , Y /W , Z/W ] ∈ R3, diventa: ¯ [π1, π2, π3]X + π4 = 0 ∀X ∈ P3 dove possiamo vedere nπ = [π1, π2, π3] come il vettore normale al piano ed π inoltre possiamo definire dπ = n 4 la distanza del piano dall’origine. Si deduce π 2 che se si verifica n∞ = [0, 0, 0] allora la distanza che indichiamo con d∞ diventa infinita, come ci si aspetta che sia. Anche in tale contesto un piano calcolato da tre punti X 1, X 2, X 3 ∈ P3 può essere visto come lo spazio nullo di una matrice Aπ [HZ03]:   X⊤ 1 Aππ = X ⊤ [π1, π2, π3, π4] = 03×1   2 X⊤ 3 Teorema 2.27. Due piani sono paralleli se e solo se la loro unica retta d’interse- zione è sul piano a infinito π ∞
  • 18. 2.3 Geometria proiettiva 19 Teorema 2.28. Una retta ed un piano sono paralleli se è solo se il loro unico punto di intersezione è sul piano a infinito π ∞ 2.3.3 Coniche e quadriche Nello spazio P2 la rappresentazione delle coniche risulta molto agevole infatti se consideriamo una conica C rappresentata in R2 da un polinomio di secondo grado: ax2 + bxy + cy 2 + dx + ey + f = 0 ∀[x, y]⊤ ∈ C possiamo scrivere in coordinate omogenee: x y ⊤ ax2 + bxy + cy 2 + dxw + eyw + fw2 = 0 ∀ , ∈C w w o equivalentemente se C è la matrice che rappresenta la conica C in P2:   b d  a 2 2   b e    ⊤ [x, y, w]C[x, y, w]⊤ = [x, y, w] c [x, y, w]⊤ ∀[x, y, w] ∈ C (2.4)  2 2    d e  f 2 2 dalla (2.4) che viene detta “punto conico” applicando il Teorema 2.23 (duale) possiamo definire la conica duale “retta conica”: l ⊤C ∗ l = 0 (2.5) Le matrici C e C ∗ in (2.4) e (2.5) definiscono le coniche attraverso “mapping” di punti o rette. Figura 2.7. tratta da [cs-236607] In effetti per stabilire che nello spazio euclideo C ∗ rappresenti una conica esiste il teorema seguente che riportiamo:
  • 19. 20 Concetti base Teorema 2.29. La retta tangente l ad una conica C in un punto, in forma matri- ciale è data da: l=Cx Con il teorema 2.29 (la cui dimostrazione la si può vedere in [J.M.Frahm05]) si determina inoltre che C ∗ = C −⊤ = C −1. Per calcolare una conica quindi possiamo farlo attraverso punti o rette inoltre se consideriamo una trasformazione proiettiva tale che x2 = H x1 possiamo verificare le seguenti relazioni: x⊤C 2x2 = x⊤C 1x1 ⇔ x⊤H ⊤ C 2Hx1 = x1 C 1x1 → C 2 = H −⊤ C 1H −1 2 1 1 ⊤ (2.6) oppure C ∗ = H ⊤ C ∗H 2 1 Nello spazio P3, data una quadrica e procedendo come abbiamo fatto per la (2.4), otteniamo: aX 2 + bY 2 + cZ 2 + d XY + eXZ + fYZ + gWX + hWZ + iWZ + kW 2 = 0 da cui:   d e g a   2 2 2    d f h   b  X ⊤Q X = X ⊤  2 2 2 X = 0  con X ∈ P3  e f i  c  2 2 2      g h i  k 2 2 2 La (2.5) adesso diventa la quadrica duale: π ⊤ Q∗π = 0 (2.7) dove chiaramente π è un piano, (per approfondimenti vedasi [ZH03]) mentre la (2.6) diventa: Q2 = H −⊤ Q1H −1 oppure dualmente Q∗ = H ⊤ Q∗H 2 1 (2.8) 2.3.4 Conica assoluta e quadrica duale assolute Per conica assoluta (AC) il cui simbolo è Ω∞ si intende un punto conico che sta sul piano a infinito π ∞ definito quindi dalle equazioni:
  • 20. 2.3 Geometria proiettiva 21 X2 + Y 2 + Z2 = 0 (2.9) W =0 notiamo che la (2.9) rappresenta un insieme di punti immaginari su π ∞ quindi sono numeri complessi. Possiamo scrivere semplificando che per X = [X , Y , Z , 0]⊤ ∈ π ∞ la relazione che definisce una conica assoluta risulta: XΩ∞X ⊤ = XI 3×3 X ⊤ = 0 Teorema 2.30. la conica assoluta è fissata dentro una trasformazione proiettiva se solo se la trasformazione è di similitudine H −⊤Ω∞H −1 = Ω∞ la dimostrazione del teorema risulta una consequanza della (2.6) nell’ambito −⊤ −1 delle trasformazioni affini per cui se A3×3I 3×3A3×3 = I 3×3 allora deve necessaria- mente A essere una matrice ortogonale. L’importanza quindi della (AC) sta nel fatto che tramite essa sarà possibile passare alla geometria metrica e ciò può essere visualizzato nella seguente figura: Figura 2.8. tratta da [JunLiu05] Un semplice metodo che possiamo trarre è quello di prolungare le linee lati del parallelepipedo fino ad incontrare il piano a infinito. Se le intersezioni d1 e d2 sono due punti coniugati della conica d1Ω∞d2 = 0, le linee sono perpendicolari. Adesso possiamo passare alla duale della conica assoluta; come abbiamo visto la conica assoluta è rappresentata da due equazione, quindi risulta conveniente definire le due, dualmente, attraverso la seguente relazione:
  • 21. 22 Concetti base   1000  0100  Q∗ ∞ Ω∗ = ∞   0010  0000 Figura 2.9. tratta da [MVG2] detta appunto quadrica duale assoluta. Come facilmente oramai si può intuire possiamo scrivere per una trasformazione proiettiva: I 3×3 0 HQ∗ H ⊤ = H ∞ H ⊤ = (Q∗ )P ∞ 0 0 e se H è una trasformazione di similitudine vale l’analogo al Teorema 2.30: Teorema 2.31. Una quadrica duale assoluta è fissata dentro una trasformazione proiettiva se solo se è di similitudine HQ∗ H ⊤ = Q∗ ∞ ∞ Alcune proprietà della Ω∞ possiamo riassumerle nelle seguenti: • qualsiasi circonferenza incontra Ω∞ in due punti • qualsiasi sfera incontra π ∞ in Ω∞ 2.4 Sommario delle gerarchie delle geometrie rivisi- tate In visione artificiale è indispensabile utilizzare le coordinate omogenee che otte- niamo per il nostro uso attraverso il legame con la geometria affine. (confronta Nota 2.15) Con questo legame assieme alla sequenza di legami con le altre geome- trie si arriva alla ricostruzione metrica - Euclidea:
  • 22. 2.4 Sommario delle gerarchie delle geometrie rivisitate 23 Proiettiva ⊃ Proiettiva orientata ⊃ Affine ⊃ Metrica ⊃ Euclidea 2.4.1 Geometria proiettiva in P3 Una trasformazione in P3 può essere rappresentata in coordinate omogenee attra- verso una matrice 4 × 4:   p11 p12 p13 p14  p p p p  T P ≃ 21 22 23 24   p31 p32 p33 p34  p41 p42 p43 p44 definita a meno di un fattore non zero di scala, e non è necessariamente inver- tibile. Consequentemente i gradi di libertà sono 15. Risulta importante notare che se la notazione omogenea può esprimere una trasformazione lineare necessaria- mente deve essere una trasformazione proiettiva. Per quanto riguarda il tipo di trasformazione definibili e degli invarianti possiamo rifarci alla Fig 2.2. 2.4.2 Geometria proiettiva orientata Si tratta di un specializzazione proposta da [Stolfi91] ove in pratica lo spazio pro- iettivo orientato On è definito come per Pn tranne che per la relazione di equiva- lenza: ∀x ∈ On , λ ∈ R, λ > 0 ⇒ λx = x Tale definizione permette di distinguere se un punto è difronte o dietro il punto di proiezione (vedi Fig 2.5 destra) o meglio dietro la camera come vedremo più avanti. 2.4.3 Geometria affine La geometria affine può essere considerata come stare tra la geometria priettiva e la geometria euclidea; noi considereremo lo spazio affine come uno spazio proiet- tivo ma con i punti ad infinito identificati. Le trasformazioni affini quindi possono essere rappresentati attraverso la matrice 4 × 4:   a11 a12 a13 a14  a a a a  T A ≃ 21 22 23 24   a31 a32 a33 a34  0 0 0 λ
  • 23. 24 Concetti base avendo come evidente 12 gradi di libertà. 2.4.4 Geometria euclidea Possiamo considerare partendo dalla geometria affine, una specializzazione attra- verso la matrice 4 × 4:   λr11 λr12 λr13 t14  λr λr λr t  T M ≃ 21 22 23 24   λr31 λr32 λr33 t34  0 0 0 1 dove la matrice R = [rij] con i, j = 1, 2, , 3 risulta ortonormale tale che R ⊤R = R R⊤ = I con det(R) = 1 mentre λ al solito è un fattore di scala; otte- niamo cosi la geometria metrica o delle similitudini con 7 gradi di libertà; da qui il passo alla geometria euclidea è breve come si può intuire:   r11 r12 r13 t14  r r r t  T E ≃ 21 22 23 24   r31 r32 r33 t34  0 0 0 1 con 6 gradi di libertà. 2.4.5 Sommario Figura 2.10. tratta da [S.Birchfield]
  • 24. 2.4 Sommario delle gerarchie delle geometrie rivisitate 25 Figura 2.11. tratta da [T.Oram01]
  • 25. Capitolo 3 Modello camera e viste multiple L e id ee m a tem a t ich e h a n n o o rig in e a live llo e m p irico ... M a u n a vo lta ch e esse so n o sta te co n c ep ite in q u esto m o d o , l’a rg o m e nt o c o m in cia a v ive re d i v ita p ro p ria e v ie n e p a ra g o n a to c o n m a g g io re fa c ilità a q u a lc o - sa d i c re a tivo , g ove rn a to q u a si d el tu tto d a m o tiva z io n i este tich e [...] M e ntre si d iff o n d e , o d o p o nu m e ro si in cro ci « a stra tti» , la d isc ip lin a m a t em a tica risch ia la d e g e n e ra z io n e [...] q u a lo ra si ra g g iu n g a ta le sta - d io , l’u n ico rim e d io m i se m b ra esse re il rito rn o riv iv ifi ca nte a lla fo nte : u n a nu ova intro d u z io n e d i id ee p iù o m e n o d ire tta m e nte e m p irich e . J o h n Vo n N e u m a n n (1 9 4 7 , e d . 1 9 6 1 , p .9 ) 3.1 Introduzione Il modello della camera più semplice a cui di solito si fa riferimento in tutti i testi di visione artificiale è quello riportato sotto: Figura 3.1. tratta da [Fusiello05] tale modello è detto “pinhole” letteralmente tradotto a foro di spillo o più modernamente in apparecchio a foro stenopeico, ma in buona sostanza risale al principio della camera oscura rinascimentale. In tale ambito possiamo distinguere tra i diversi sistemi di coordinate: • sistema di coordinate mondo usato per le misurazioni solitamente nello spazio tridimensionale del mondo reale • sistema di coordinate camera usato per descrivere la scena in dipendenza della posizione ed orientazione della camera nello spazio tridimensionale • sistema di coordinate piano immagine camera usato per descrivere il punto immagine della scena proiezione nel piano immagine nello spazio bidimen- sionale. Una schematizzazione unidimenzionale con un modello geometrico semplificato è descritto in figura: 27
  • 26. 28 Modello camera e viste multiple Figura 3.2. tratta da [J.M.Frahm05] Nella figura di cui sopra risultano del tutto equivalente, dal punto di vista geo- metrico, utilizzare l’ipotesi (a) che rispecchia il caso in cui l’immagine si forma dietro il centro di proiezione oppure utilizzare l’ipotesi (b) che rappresenta l’ipo- tesi in cui l’immagine si forma davanti il centro di proiezione. Nel ricavare le equazioni di cui sotto supporremo il caso (b) tranne avviso contrario: X x=f Z (3.1) Y y=f Z 3.2 Modello della camera Definizione 3.1. Una camera canonica è una camera per la quale le coordinate mondo coincidono con le coordinate della camera, mentre il piano immagine è posto a Z=1 e la lunghezza focale è tale che f=1. Figura 3.3. tratta da [J.M.Frahm05] Le equazioni che possiamo dare utilizzando la precedente definizione risultano adesso abbastanza semplici. Considerando infatti un punto x = [x, y]⊤ del piano ¯ ¯ immagine corrispondente ad una proiezione di uno punto della scena 3D X = [X , Y , Z] difronte la camera Z > 1 abbiamo: ⊤
  • 27. 3.2 Modello della camera 29   X x Z x= ¯ = Y  y Z che in coordinate omogenee diventa:       X ∗T x∗s 1000   y ∗ s = 0 1 0 0  Y ∗ T     Z ∗T  s 0010 T dove s e T sono dei fattori di scala non zero ed arbitrari utilizzati per conver- tire la notazione metrica in notazione omogenea. Possiamo definire la matrice di proiezione prospettica che codifica in questo caso semplificato l’essenza della tra- sformazione, così spesso si dice:   1000 ˜ P  0 1 0 0 = [I |0] (3.2) 0010 Nel caso generale in cui la posizione della camera è, attraverso una trasforma- ¯ zione di similitudine R = [rij] con i, j = 1, 2, , 3 e C = [Cx C y Cz]⊤, in una posi- zione che non risulta canonica con lunghezza focale f 1 segue quanto riportato in figura: Figura 3.4. tratta da [J.M.Frahm05] in accordo con l’ortonormalità della matrice di rotazione R risulta che R−1 = R⊤ e le equazioni (3.1) diventano:   r (X − C ) + r (X − C ) + r (X − C ) x f r1 1 (X − Cx) + r2 1 (X − Cy) + r3 1 (X − Cz) 31 x 23 y 33 z x= ¯ = r (X − C ) + r (X − C ) + r (X − C )  y f r1 2 (X − Cx) + r2 2 (X − Cy) + r3 2 (X − Cz) 31 x 23 y 33 z
  • 28. 30 Modello camera e viste multiple 3.2.1 Parametri intrinseci A questo punto dobbiano considerare un ulteriore problema; le video camere digi- tali sono realizzata attraverso dei sensori di acquisizione che possiamo schemati- zare, senza entrare nel dettaglio fisico, con delle griglie che rappresentano i pixel; queste griglie quindi possono presentare delle distorsioni e non accentramenti con il centro ottico; in generale tali deformazioni sono rappresentabile tramite una deformazione proiettiva: Figura 3.5. tratta da [ISPRS96] Nel seguito, semplificando, la trasformazione fra le coordinate del piano imma- gine e le coordinate pixel, la rivedremo come una trasformazione affine del piano immagine: Figura 3.6. tratta da [T.Oram01] Introducendo le coordinate (u0,v0) del punto principale intersezione dell’asse ottico asse Z con il piano immagine, ku (kv) l’inverso della dimensione efficace dei pixel lungo la direzione u (v), ed θ = 900 − α angolo fra l’asse u e l’asse v, nella sua forma più generale, la matrice che descrive la trasformazione suddetta risulta [Fusiello05]: (qui l’autore riporta le ipotesi (a) in Figura 3.2)   − fku fkucotθ u0 K = 0 − fkv/sinθ v0  0 0 1
  • 29. 3.2 Modello della camera 31 Spesso accade di riscrivere la matrice K nella seguente maniera:   αu γ u0 K = 0 rαu v0  (3.3) 0 0 1 dove chiaramemte si fanno delle posizioni: αu = − fku , αv = − fkv , γ = fkucotθ (detto skew) e sinθ < 1 ⇒ α < 0 e si definisce l’aspect ratio con il seguente rapporto: αv r= αu 3.2.2 Parametri estrinseci ¯ Esiste anche una trasformazione affine fra un punto X = [X , Y , Z]⊤ ∈ R3 e il ¯ punto nel sistema di coordinate camera X c = [Xc , Yc , Zc]⊤ ∈ R3 che si può riassu- mere con: ¯ ¯ ¯ X c = R⊤(X − C ) che in coordinate omogenee possiamo riscrivere, considerando X c , X ∈ P3, come segue: ¯ R ⊤ − R ⊤C Xc = X (3.4) 03×1 1 Visto il grado di libertà nella scelta del sistema di riferimento avremmo potuto considerare la trasformazione inversa seguente (scambiando il ruolo di X c e X si passa dalla (3.5) alla (3.4) e viceversa): R C¯ Xc = X (3.5) 03×1 1 In generale possiamo legare un centro di proiezione su un piano immagine a [0 0 f] attraverso    1000 100 0  010 0  0100     T p = T parT per =    0000  001 0     1 0001 00 f 1
  • 30. 32 Modello camera e viste multiple dove T per è una matrice detta di trasformazione prospettica, mentre T par è una matrice di proiezione parallela. La T per modifica lo spazio di proiezione cosicchè tutti i raggi di proiezione sono paralleli, muove il centro ottico della camera dall’origine del sistema di coordinate sul piano ad infinito. Ciò si può dedurre dal fatto che il centro ottico è l’intersezione di tutti i raggi di proiezioni e quindi in accordo con il Teorema 2.25 se tutti i raggi sono paralleli si incontrano sul piano a infinito. Figura 3.7. in figura tratta da [GiannitrapaniFusiello], si mette in evidenza l’effetto della trasformazione prospettica a destra e l’effetto della proiezione parallelo-ortogonale a sinistra. Adesso applicando T p al punto X c otteniamo: ¯ R ⊤ − R ⊤C Xi = T p X 03×1 1 il punto X i ∈ P3 è sul piano immagine, se la posizione della camera è canonica Z=1 allora possiamo scrivere: ¯ xi = [R⊤| − R⊤C ]X dove xi ∈ P2 è il punto proiettivo sul piano immagine. Se consideriamo la tra- sformazione fra coordiate piano immagine e coordinate pixel otteniamo: ¯ x = K[R⊤| − R⊤C ]X
  • 31. 3.2 Modello della camera 33 3.2.3 Modello completo della matrice di proiezione prospet- tica La matrice di proiezione prospettica nella sua formulazione completa “affine” si ottiene combinando le equazioni (3.2), (3.3) e (3.4):           X X x αu γ u0 1000 ¯ R ⊤ − R ⊤C  Y   Y   y = 0 αv v0  0 1 0 0    Z = P     (3.6) 03×1 1 Z  1 0 0 1 0010 1 1 che nella versione a blocchi risulta: ¯ P ≃ K[R⊤| − R⊤C ] dove la reintroduzione del simbolo “ ≃ ” ci ricorda che P è definita a meno di un fattore di scala nello spazio proiettivo. Una ulteriore forma della matrice di proie- zione prospettica P , in cui si mescolano i parametri intrinseci ai parametri estrin- seci, mette in evidenza come le incognite risultano 12 (nota [Cx C y Cz ]⊤ = [t1, t1, t1]⊤ e si fa uso della (3.5)):   αu ⊤ αu αur ⊤ − 1 r 2 + u 0r ⊤ 3 αut1 − t2 + u0t3  tanθ tanθ  P = αv ⊤ αv (3.7) r + v0r ⊤   t2 + v0t3 sinθ 2 3   sinθ  ⊤ r3 t3 di queste 12 incognite ne risultano indipendente solo 3+3+5=11 per via del fattore di scala. 3.2.4 Distorsione radiale Un approfondimento del modello della telecamere prevede l’introduzione di un modello non lineare che tiene conto della distorsione radiale delle lenti soprattutto per ottiche a focali corte. Possiamo pensare di modellare la distorsione tra le coordinate pixel ideali non distorte (u, v) e quelle distorte (u v come segue: ˆ, ˆ) 2 u = (u − u0)(1 + k1rd) + u0 ˆ 2 (3.8) v = (v − v0)(1 + k1rd) + v0 ˆ
  • 32. 34 Modello camera e viste multiple (u − u0) 2 (v − v0) 2 2 dove rd = au + av e le (u0, v0) sono le coordinate del centro dell’immagine. In effetti la (3.8) risulta una approssimazione degli effetti non lineari come evidenziato in molti testi; non conosciamo la funzione che lega punti distrorti e punti ideali. Detto ciò risulta evidente come da Figura 3.8, il bisogno di conoscere l’incognita k1 (il cui caso ideale lineare risulta k1 = 0): Figura 3.8. tratta da [J.M.Frahm05] dove si mette in evidenza l’effetto della distor- sione a sinistra per il caso in cui k1 > 0 a destra per il caso cui k1 < 0. se ammettiamo adesso di conoscere u0, v0, au e av la (3.8) la riscriviamo nella seguente maniera:     2 2  (u − u ) (u − u0) (v − v0)    0 + k1 = u − u0 ˆ    au av  2 2  (3.9)  (v − v0) (u − u0) (v − v0)   + k1 = v − v0 ˆ      au av Il sistema (3.9) conoscendo i punti ideali, ci permette di determinare k1 anche con un solo punto, ma nella pratica si hanno più punti, per cui in effetti risulta un sistema sovradimensionato. L’obiezione che sorge riguarda la conoscienza dei punti ideali del modello della camera pinhole, praticamente sconosciuti fintan- tochè non si conosca l’effetto della distorsione radiale. Per ovviare a tale inconve- niente si usa una prima approssimazione imperfetta dei parametri intrinseci ed estrinseci per stimare la distorsione radiale, e poi si affina la soluzione sino alla (u − u ) convergenza voluta attraverso metodi iterativi. Ponendo adesso x = au 0 e y = (v − v0) av riscriviamo la (3.9) in forma vettoriale: x + k1x3 + k1x2 y − x = 0 ˆ → F (t) = 0 y + k1 y 3 + k1xy 2 − x = 0 ˆ dove t = [x, y] 0 = [0, 0] ed F una opportuna funzione vettoriale; a questo punto possiamo usare il metodo di Newton per cercare la convergenza voluta. (per maggiori dettagli vedasi [Fusiello05] pag. 164)
  • 33. 3.3 Calibrazione 35 3.3 Calibrazione Con il termine calibrazione si intende: “misurare con accuratezza i parametri intrinseci ed estrinseci de modello della telecamera” [Fusiello05]. A tale scopo si sfrutta la conoscienza delle proiezioni di alcuni punti 3D di coordinate note detti punti salienti di calibrazione e si ricavano i parametri intrinseci ed estrinseci. Gli oggetti che solitamente si usano per tale pratica sono come quelli di figura sotto: Figura 3.9. a sinistra nella figura tratta da [TR98-71] si sfruttano le posizioni note di punti salienti angoli dei quadratini su un piano; a destra nella figura tratta da [CVPR99] si ha in più l’informazione derivante dagli angoli del parallepipedo. 3.3.1 Stima della matrice di proiezione prospettica Risulta evidente, l’interesse nel conoscere la matrice di proiezione prospettica per la quale in letteratura di solito si riportano dei metodi di stima. Questi si divi- dono in lineari e non lineari. I metodi lineari hanno il pregio di essere veloci, ma meno precisi poichè minimizzano un errore algebrico che non ha significato geome- trico. Mentre i metodi non lineari come si può intuire, a fronte di una complica- zione formale risultano migliori. In ogni modo procediamo sempre nello scrivere la matrice P come segue:   q⊤ 1 q14 P = q⊤ q24  (3.10)   2 q⊤ 3 q34 dove q i sono vettori di tre elemnti; considerando adesso due insiemi di punti u i = [ui , ui , 1] e w i = [w1, w2, w3, 1] sappiamo vedi la (3.6) che u i ≃ Pw i o nella ˜ 1 2 ˜ i i i ˜ ˜ forma equivalente considerando w i = [w1, w2, w3]: i i i     ui 1 q ⊤w i + q14 1 (3.11)   ⊤ ui = q 2 w i + q14     2 k q ⊤w i + q34 3
  • 34. 36 Modello camera e viste multiple Per confronto della (3.11) con la (3.7) si ottiene k = r ⊤wi + t3 che rappresenta 3 la distanza di w i da piano focale. In coordinate cartesiame inoltre possiamo scri- vere il sistema seguente:   i q ⊤w i + q14  u1 = 1  q ⊤w i + q34  3  i q ⊤w i + q14 u = 2  2  q ⊤w i + q34 3 tale sistema ci suggerisce che in teoria 6 punti sono sufficienti per la determi- nazione di P anche se nella pratica sono disponibili molti più punti. Inoltre giacchè q ⊤w i + q34 0 possiamo riscrivere nella seguente forma: 3 (q 1 − ui q 3)⊤w i + q14 − ui q34 = 0 1 1 → Lq = 0 (q 2 − ui q 3)⊤w i + q24 − ui q34 = 0 2 2 dove possiamo vedere come la matrice L sia dipendente dai punti di calibra- zione, che per N punti ha dimensione 2N × 12, ma è di rango 11 per via del fat- tore di scala, e come il vettore q = [q 1 , q14, q ⊤, q24, q ⊤, q34]⊤ abbia 12 elementi dai ⊤ 2 3 quali si può risalire all’informazione dei parametri. Nella notazione omogenea riscriviamo infatti:   q1 q14     01×4 − ui (wi)⊤ 3 ˜ ui (w i)⊤ 2 ˜    q2   ui (w i)⊤ 3 ˜ 01×4 − ui (w i)⊤ 1 ˜ = 03×1    q24    − ui (w i)⊤ 2 ˜ ui (w i)⊤ 1 ˜ 01×4   q3   q34 dove per uniformità di scrittura poniamo u3 = k. (confronta [J.M.Frahm05] pag. i 131) Il primo metodo chiamato Linear-Eigen abbisogna di un ulteriore vincolo, ovviamente al fine evitare la soluzione banale q = 0, in modo che il problema possa essere visto come un problema di ottimo vincolato: min Lq con vincolo q 3 = 1 risolvibile tramite i moltiplicatori di Lagranage. Il secondo metodo lineare detto Linear-Least-Squares si ottiene invece ponendo al posto di q 3 = 1 il vin- colo q34 = 1, ciò ci permette di cercare la soluzione nella forma:
  • 35. 3.4 Geometrie stereo e a viste multiple 37 ˆ w ⊤ 1 0 0 − ui w ⊤ i 1 i ui 1 Lq= [q ⊤, q14, q ⊤, q24, q ⊤]⊤ = 1 2 3 = mi 0 0 w ⊤ 1 − ui w ⊤ i 2 i ui 2 e tramite pseudoinversa di Moore-Penrose si ottiene q = L +mi = ˆ ˆ⊤ ˆ ˆ ⊤ (L L )−1L mi, inoltre bisogna sempre normalizzare tramite q 3 = 1 per poter mettere la P nella forma (3.7). Il metodo non lineare che si considera pur notando che il suo utilizzo complica i calcoli, consiste nel minimizzare la seguente quantità: n 2 2 q ⊤w i + q14 1 q ⊤wi + q14 2 E= ui − 1 + ui − 2 i=1 q ⊤w i + q34 3 q ⊤wi + q34 3 tale quantita rappresenta la distanza sulla retina tra i punti mi e la riproie- zione dei punti w i. 3.4 Geometrie stereo e a viste multiple Dopo avere introdotto i metodi di stima per la matrice di proiezione prospettica per una generica vista vediamo come sia possibile legarne due (caso stereo) o più (caso multiplo) che si riferiscano a due o più viste. L’interesse per tale argomento e un’aspetto centrale della ricostruzione e quindi anche della stima della posizione della camera, e giacchè è possibile pensare le due o più viste come acquisite da una sola camera in movimento, la struttura dal moto (structure from motion) vedremo sarà il passo successivo dell’analisi che si può condurre. 3.4.1 Collineazione Ricordiamo brevemente che una collineazione o omografia nello spazio 2D può essere vista per i nostri scopi (confronta Definizione 2.19) come una trasforma- zione lineare non singolare del piano proiettivo in se. Se consideriamo quattro cor- rispondenze di punti questi bastano a definire una collineazione: Figura 3.10. tratta da [Fusiello05]
  • 36. 38 Modello camera e viste multiple La tavola che racchiude le proprietà delle collineazioni può essere riassunta dalla seguente figura: Figura 3.11. tratta da [Fusiello05] 3.4.2 Geometria epipolare Comè in [ZH03], un classica definizione della geometria epipolare è la seguente: “The epipolar geometry is the intrinsic projective geometry between two views. It is independent of scene structure, and only depends on the cameras internal para- meters and relative pose.” In Figura 3.12 vediamo i centri ottici C e C ′ delle due camere, un punto X dello spazio R3, le proiezioni dello stesso nei due piani imma- gini, una linea detta baseline che unisce i centri ottici, due punti intersezione della baseline sui piani immagini detti epipoli ed infine la linea epipolare per x ′ (ma si considera anche la linea epipolare per x ed e) ed infine il piano epipolare π: Figura 3.12. tratta da [ZH03] dove X? ci indicano come tutti i punti sulla retta hanno come proiezione x La relazione che lega un punto x proiezione di X sulla prima telecamera, ad x proiezione sempre di X sulla seconda telecamera, possiamo vederla come una ′ omografia del piano π: x ′ = H πx
  • 37. 3.4 Geometrie stereo e a viste multiple 39 Figura 3.13. tratta da [CVPR99] Le relazioni che adesso possiamo trarre sono piuttosto semplici, ricordando infatti che tramite Teorema 2.23 (duale) applicato al Teorema 2.24 otteniamo:   ′ ′ 0 − ez e y l ′ = e ′ × x ′ = [e ′]×x ′ = ez 0 − ex x ′ = [e ′]×H πx = Fx ′ ′  (3.12)  ′ ′ − e y ex 0 dove F = [e ′]×H π definita nella (3.12) è detta matrice fondamentale. Algebri- camente possiamo ricavare F dalle matrici di proiezioni prospettiche P e P ′ para- metrizzando il raggio vettore che lega il centro con il punto X ∈ R3 come segue: P3 ∋ X(λ) = P +x + λC dove C è un vettore definito da P C=0. Se λ = 0 otteniamo P +x, mentre se λ = ∞ ottemiamo C; questi due punti sono espressi attraverso P ′ ottenendo: l ′ = (P ′ C) × (P ′P +x) = [e ′]×H πx ⇒ H π = P ′P + quest’ultima implicazione esplicita l’omografia in funzione delle due matrici di proiezione prospettica. Risulta chiaramente da F = [e ′]×P ′P + come la matrice fondamentale racchiude tutta l’informazione a cui si è interessati. Proposizione 3.2. Per ogni corrispondenza di due punti che stanno su due piani immagine valgono le seguenti implicazioni: x ′ ↔ x ⇔ x ′⊤l = x ′⊤Fx = 0 ⇔ l⊤x = x ′⊤Fx = 0
  • 38. 40 Modello camera e viste multiple La Proposizione 3.2 potrebbe essere presa come la definizione della matrice fondamentale. La determinazione della F può essere effettuata attraverso l’ago- ritmo degli otto punti anche se si dimostra ne bastano 7, numero che rappresenta anche il grado di libertà della F , questo metodo criticato da molti può dare risul- tati soddisfacenti come messo in evidenza da Hartley in un noto articolo “In defence of the 8-point algorithm” , in [Fusiello05] pag. 95 viene presentato il metodo per evitare il mal condizionamento delle matrici, detto standardizzazione. L’importanza nel calcolare F sta nel fatto è possibile farlo anche se le calibrazioni delle matrici P e P ′ non siamo disponibile, direttamente attraverso le immagini. Storicamente venne introdatta per prima la matrice essenziale E da Louguet-Hig- gins. Tale matrice si riferisce alle versioni normalizzate delle matrici di proiezioni prospettiche. In tal caso normalizzato possiamo scrivere genericamente per P : x = PX K −1 ˆ ˆ x = K −1x = K −1P X = P X P = K[R|t] ˆ P = [R|t] avendo adesso due matrici di proiezione prospettica normalizzate della seguente forma: P = [I |0] P ′ = [R|t] dopo alcuni passaggi otteniamo la matrice essenziale: F = [P ′ C]×P ′P + = = R[R⊤t]× = [t]×R E Proposizione 3.3. La matrice essenziale E può essere calcolata direttamente come x ′⊤Ex=0 oppure come E = K ′−1F K Il vantaggio di avere introdotto E sta nel fatto che per essa vale la fattorizza- zione SR (vedasi [HZ03] pag 258) Teorema 3.4. Una matrice E ∈ M 3×3(R) si fattorizza come E = SR con S matrice antisimmetrica e R matrice di rotazione se e solo se ha due autovalori singolari uguali e uno uquale a zero Per la dimostrazione del teorema 3.4 si veda [Fusiello05] pag. 93 3.4.3 Geometria epipolare riveduta Date due telecamere di cui una posizionata con coordinate di riferimento mondo coincidenti con quelle della camera stessa possiamo scrivere: P = K[I |0] (3.13) P ′ = K ′[R|t] (3.14)
  • 39. 3.4 Geometrie stereo e a viste multiple 41 ⊤ le (3.13) e la (3.14) applicate al punto w = [x, y, z, 1] danno le due proiezioni ˜ m = [x, y, 1] e m ′ = [x ′, y ′, 1] sui due piani immagine : km=Pw ˜ (3.15) k ′ m ′ = P ′w ˜ (3.16) dalla (3.14) e dalla (3.16) possiamo scrivere la seguente relazione:     x 0   x  y  0  k ′m ′ = K ′[R|t]w = K ′[R|t] + ˜ = K ′R y + K ′t   z  0  z 0 1   x poichè dalla (3.13) e dalla (3.15) abbiamo k K m = [I |0]w = −1 ˜  y  otte- z niamo: k ′m ′ = kK ′RK −1m + K ′t (3.17) Se t = 0 si ottiene il caso di moto puramente rotazionle della camera e quindi la (3.17), usando la sequente definizione H ∞ = K ′ R K −1 detta omografia del piano a infinito, la riscriviamo così: k′ ′ m = H ∞m → m ′ ≃ H ∞m k ˜ π ¯ Se invece w appartiene al piano π con coordinate cartesiane del tipo n⊤X = ⊤ ¯ nπ [x, y, z] = dπ siamo nel caso di una scena planare. Scegliendo quindi w = [X , ˜ ⊤ nπ ¯ dπ X ], dalla (3.14) e dalla (3.16) otteniamo: n⊤ ′ π ¯ k ′m ′ = K′ R + Kt X dπ ricordandoci come fatto sopra che dalla (3.13) e dalla (3.15) abbiamo ¯ k K −1 m = [I |0]w = X in conseguenza si ottiene: ˜ k′ ′ n⊤ −1 π n⊤ m = K ′ R K −1 + K ′t K m = H ∞ + K ′t π K −1 m = H πm k dπ dπ
  • 40. 42 Modello camera e viste multiple dove resta definita la trasformazione indotta dal piano π tra le due viste H π = n⊤ H ∞ + K ′t dπ K −1. Se accade che il moto non è rotazionale e la scena non è pla- π nare, caso che diciamo parallasse, dalla (3.16) sostituendo come opportuno, otte- niamo [Fusiello05]: k′ ′ a m = H πm + K ′t k dπk dove a = dπ − n⊤kK −1 m rappresenta la distanza ortogonale del punto 3D w π ˜ dal piano π: Figura 3.14. tratta da [Fusiello05] 3.4.4 Ricostruzione del moto della struttura Nel caso in cui la struttura della scena sono i parametri del piano ricordandoci la relazione di H π che riscriviamo come segue: n⊤ Hπ = K ′ R + t π K −1 dπ possiamo ricavare vista l’arbitrarietà del fattore di scala: K ′−1H πK = dπR + tn⊤ π Notiamo quindi come la conoscienza di H π avendo noti i parametri intrinseci, ci dià la conoscienza di R, t, n⊤, dπ. Si può usare una fattorizzazione SVD di π ˆ H π = K ′−1H πK = U ΛV ⊤ ottenendo:
  • 41. 3.4 Geometrie stereo e a viste multiple 43 d Λ= s U ⊤ RV + (U ⊤t)(V ⊤nπ)⊤ = dπR ′ + t ′n ′⊤ ′ π s dove risulta s = det(U )det(V ) in modo che R ′ sia una rotazione. Se i parametri intrinseci sono ignoti, ma costanti con K = K ′, caso che nel seguito delle applicazioni supporremo, possiamo calcolarli attraverso: H ∞KK ⊤H ⊤ = KK ⊤ ∞ I metodi per conoscere H ∞ possiamo riassumerli nei seguenti: • conoscendo al minimo 3 punti di fuga • approssimandola con un piano abbastanza lontano • facendo ruotare la telecamera 3.4.5 Estrazione dei punti salienti Per l’estrazione dei punti salienti da mettere in relazione fra le viste esistono vari metodi e può essere considerato un argomento a sè. Nel seguito possiano conside- rare l’estrazione suddetta come l’applicazione di un operatore conbined edge corner detector, il metodo discusso è quello classico di Harris Stephens. Avendo un punto x = (u, v) su una immagine I e una finestra d in una certa zona W cen- trata su x, se fecciamo traslare d ∈ W di una quantità h possiamo considerare la quantità: Eh = [I(x + d) − I(x + d + h)]2 (3.18) d∈W che rappresenta una autocorrelazione SSD (Sum of Squares Differances). La relazione (3.18) sviluppata secondo Taylor e troncata diventa: Eh = [∇I(x + d)h]2 = h⊤∇I(x + d)∇I(x + d)⊤h d∈W d∈W   2 Iu w(d) IuIvw(d) ⊤ ⊤ ⊤  h ∇I(x + d)∇I(x + d) h = h   d d h 2 d∈W Iu Ivw(d) Iv w(d)  d d
  • 42. 44 Modello camera e viste multiple 2 d 1 − dove ∇I(x + d) = [Iu Iv]⊤e w(d) = √ e 2σ 2 . Quest’ultima scelta della fun- σ 2π zione w( · ) come gaussiana si fa per rendere più simmetrico e regolare l’opera- tore. Se prendiamo h = 1 per noti teoremi matematici sappiamo che: λmin < Eh < λmax dove λmin e λmax sono il minimo ed il massimo autovalore del pseudohessiano:   2 Iu w(d) IuIvw(d) ˆ ˆ   C = C (u, v) = d d  2  Iu Ivw(d) Iv w(d)  d d Classifichiamo i seguenti casi di interesse: • se λmin ≈ 0 e λmax ≈ 0 non si ha nessuna struttura • se λmin ≈ 0 e λmax ≫ 0 si ha un edge nella direzione λmin • se λmin ≫ 0 e λmax ≫ 0 si ha un corner ˆ Il metodo di Harris Stephens in particolare non calcola gli autovalori di C per ˆ determinare λmin e λmax, si dimostra infatti, che per una traccia grande della C si ˆ ha un edge, mentre per un determinante grande della sempre di C si ha un edge o un corner. Quindi un segnale di una presenza di corner può essere rappresentata da un comfronto con una certa soglia della funzione: ˆ ˆ R(u, v) = det(C ) − k · trace2(C ) con k = 0.04 (valore proposto dagli autori). Figura 3.15. tratta da [Fusiello05] a sinistra immagine di prova a destra applicazione dell’operatore di Harris e Stephens.
  • 43. 3.4 Geometrie stereo e a viste multiple 45 3.4.6 Corrispondenza dei punti salienti Qualsiasi calcolo delle corrispondenze da una coppia stereo di immagini presup- pone che queste ultime non siano troppo differenti, per cui risulta utile avere nell’analisi vincoli di somiglianza, vincoli epipolari, vincoli di continuità e vincoli di ordinamento monotono (per maggiori dettagli [Fusiello05]). Detto ciò, per legare i punti salienti esistono varie tecniche classificate in area-based e feature- based a secondo che si impieghino piccole finestre su cui calcolare corrispondenze nelle coppie di immagini, oppure si cerchino delle feature come edge, corner, o altre non meglio definite entità non necessariamente geometriche, ma stabili su cambiamenti di punti di vista; su queste entità avvolte chiamati blobs si calcolano delle mappe di profondità. Rifacendoci ai metodi area-based si può impiegare, opportunamente adattata, la SSD (per confronti e nuovi metodi vedasi [Mechatro- nics]). Supponendo la scena osservata composta da una superfice Lambetiana per cui l’intensità dipende dall’angolo d’incidenza del raggio di luce e non dall’angolo dell’osservatore, possiamo pensare di rettificare le immagini provenienti dalle tele- camere considerando quindi due nuove telecamere come in figura: Figura 3.16. tratta da [TruccoVerriFusiello00] Le equazioni delle due matrici di proiezione prospettica visto che le rotazioni sono R1 = R2 diventano: P 1 = K R ⊤| − R ⊤ C 1 ; P 2 = K R ⊤| − R ⊤ C 2
  • 44. 46 Modello camera e viste multiple la scelta della R⊤ = r 1,r 2,r 3 determina gli assi del riferimento della camera X,Y e Y espressi in coordinate mondo e che si possono calcolare come segue: (C1 − C2) 1. X r 1 = (C1 − C2) 2. Y ⊥ X e Y ⊥ k con k versore tale che r 2 = k × r 1 3. Z ⊥ X e Z ⊥ Y tale che r 3 = r 1 × r 2 Tale metodo proposto in [TruccoVerriFusiello00], la cui implementazione in codice risulta molto compatta, fallisce quando l’asse ottico e parallelo alla base- line, inoltre per configurazioni con multi-baseline, per più di due viste, potrebbe essere particolarmente ardua una sua implementazione, come riportato in [Xin- Hong03]. Cionostante il risultato di una possibile applicazione dell’algoritmo di rettificazione e illustrato in figura: (a) (a’) Figura 3.17. tratte da [Fusiello05], in (a) immagini originali, in (a’) immagini rettifi- cate
  • 45. 3.4 Geometrie stereo e a viste multiple 47 A questo punto fatta la rettificazione possiamo applicare la SSD alle due immagini (a). Consideriamo una finestra centrata in (u, v) di dimensione (2n + 1)(2m + 1) in I1 la si confronta con una finestra della stessa dimensione in I2 lungo la linea epipolare e vista la rettificazione ciò significa considerare (u + d, v) con d ∈ [dmin, dmax]. La funzione SSD diventa: 2 C(u, v, d) = [I1(u + k, v + l) − I2(u + k + d, v + l)] (k,l) con k ∈ [ − n, n], l ∈ [ − m, m] e dove I(u,v) indica il livello di grigio. Se dalla C(u, v, d) calcoliamo la quantità errore: d0(u, v) = argminC(u, v, d) d abbiamo trovato un modo di verificare se i due punti sono simili poichè la d0(u, v) ne indica la disparità con precisione di un pixel 3.4.7 Stratificazione Come abbiamo detto la matrice F contiene tutta l’informazione che ci interessa, parametri intrinseci ed estrinseci, ma sfortunatamente non è possibile da una coppia di immagini risalire alla informazione euclidea. Tale difficoltà propria della visione stereo si supera avendo tre immagini, supponendo infatti costanti i para- metri intrinseci, si dimostra essere possibile ricavare sia i parametri intrinseci che quelli estrinseci ossia si può recuperare il moto. Sappiamo dalla teoria che 5 punti determinano una collineazione nello spazio 3D: Figura 3.18. tratta da [fusiello05] ed inoltre che la ricostruzione nello spazio P3 avviene a meno di una trasfor- mazione proiettiva arbitraria che è una collineazione nello spazio 3D rappresentata ¯ da una matrice T non singolare 4 × 4. Considerando quindi tale arbitrarietà, pos- siamo supporre da un insieme di matrici P i proj le seguenti relazioni:
  • 46. 48 Modello camera e viste multiple P 0 = [I |0]; P i = Qi q i proj proj (3.19) i proj ¯¯ ˜i Sappiamo inoltre che vale m j = P i TT −1w j dove ˜i wj e la struttura euclidea cercata quindi abbiamo P i ≃ P i T . eucl proj ¯ 3.4.7.1 Ricostruzione da proiettiva ad euclidea Scegliendo le matrici P 0 = K[I |0] ed P i = K Ri ti , ricordandoci delle (3.19) eucl eucl e considerando un r ⊤ = [r1, r2, r3] vettore arbitrario ed un scalare s = 1 fissato otte- niamo: ¯ ¯ K 0 K 0 P 0 = P projT → T = eucl 0 = r⊤ s r⊤ 1 i proj ¯ KRi tiK =P eucl ≃ P i T = QiK + q ir ⊤ q i → QiK + q ir ⊤ ≃ KRi (3.20) Possiamo adesso riscrivere la (3.20) come Qi + q ir ⊤K −1 ≃ K RiK −1 = H i ∞ dalla quale ponendo a = r K fattorizziamo la T ⊤ ⊤ −1 ¯ come segue: ¯ I 0 K 0 T= a⊤ 1 0⊤ 1 La prima trasformazione a destra “affine” non muove il piano a infinito la seconda a sinistra si. Mettiamo in evidenza la stratificazione trovata: K −1 0 I 0 Pi eucl =Pi ≃Pi affi proj = [H ∞|q i] i (3.21) 0⊤ 1 a⊤ 1 Questa ultima relazione (3.21) ci dice che dall’omografia del piano a infinito è possibile ottenere la struttura euclidea a meno di una trasformazione affine. Se adesso riprendiamo la (3.20) possiamo ricavare che: K QiK + q ir ⊤ = P i proj ≃ KRi r⊤ ossia: ⊤ ⊤ K K Pi proj P i ≃ KRi(RiK )⊤ = KK ⊤ proj (3.22) r⊤ r⊤
  • 47. 3.4 Geometrie stereo e a viste multiple 49 La (3.22) è nota come i vincoli di Kruppa, e il metodo in questione e quello discusso in [HA96] e si dimostra che introducendo il fattore di scala λi: ⊤ KK ⊤ Kr fi(K , r ⊤, λi) = KK ⊤ − P i proj Pi proj (3.23) r ⊤K ⊤ r ⊤ r si ottiene una soluzione per fi, ad esempio con Gauss-Newton, se si hanno almeno tre viste. 3.4.8 Autocalibrazione Nell’ultimo decennio di ricerca in visione artificiale, si è passati per varie motiva- zioni a considerare il problema della calibrazione su più viste detta anche autoca- librazione. (vedi ad esempio (3.23)) Storicamente dal primo risultato [Fau92] ove si dimostra che con i parametri intriseci costanti si puo passare da una ricostru- zione proiettiva ed una metrica utilizzando più viste, vari autori hanno indagato come riferito in vari articoli ognuno con possibili conoscenze parziali su vincoli come ad esempio solo rotazione della camera, o vincoli sui parametri intrinseci costanti e combinazioni varie rotazioni e zooming. Risulta evidente l’interesse per una tecnica di autocalibrazione generale con assenza di informazioni e che si basi solo analizzando le immagini catturate, ma per le difficoltà insite risulta ancora un campo di ricerca. Anche se in tale tesi la autocalibrazione non gioca un ruolo essenziale, ma è comunque un argomento di rilievo, è bene tenere a mente le pro- blematiche di base che derivano da tale pratica. Sappiamo che un punto sul piano a infinito può essere rappresentato da X ∞ = [d⊤, 0]⊤ (confronta Figura 2.7), consi- derando una generica matrice di proiezione prospettica P = K R[I | − C] abbiamo: x = PX ∞ = KR d (3.24) a questo punto possiamo vedere l’omografia tra il piano a infinito e il piano immagine data da H = K R e ricordandoci dei Teorema 2.30 e 2.31 definiamo l’immagine della conica assoluta IAC: ω (KR)−⊤I(KR)−1 = (KK ⊤)−1 e la sua versione duale DIAC: ω ∗ (KK ⊤) Riportiamo delle figura che chiariscono alcuni concetti fin qui riportati:
  • 48. 50 Modello camera e viste multiple Figura 3.19. A sinistra tratta da [VA_TLC_4] a destra tratta da [Aga- pito_etal_ijcv2001] Scriviamo una generica trasformazione nello spazio proiettivo separando le matrici componenti come segue: ¯ ¯ ¯ ¯ I 0 K 0 ¯ T = TproiettivitàTaffinitàTsimilarità = Tsimilarità a⊤ 1 0⊤ 1 possiamo quindi scrivere ricordando il Teorema 2.31: ¯ ∞¯ I 0 K 0 ¯ I 0 ¯⊤ I a⊤ K 0 Q∗# = T Q∗ T ⊤ = ∞ Tsimilarità ⊤ Tsimilarità ⊤ a⊤ 1 ⊤ 0 1 0 1 0 1 0⊤ 1 KK ⊤ Kr Q∗# = ∞ r ⊤K ⊤ r ⊤r Adesso scriviamo per una generica vista i e una generica P # = P i : i proj ω ∗ = K iK ⊤ = P # Q∗# P ⊤# i i i ∞ i se supponiamo adesso che l’aspect ratio r = 1, skew γ = 0 e il punto principale sia nell’origine, come spesso è possibile fare, otteniamo:
  • 49. 3.4 Geometrie stereo e a viste multiple 51   (P # Q∗# P ⊤#)12 = 0  i ∞ i (P i Q∗# P ⊤#)13 = 0 #   ∞ i (3.25)  (P # Q∗# P ⊤#)23 = 0  i ∞ i (P # Q∗# P ⊤#)11 = (P # Q∗# P ⊤#)22   i ∞ i i ∞ i La (3.25) si dimostra avere una soluzione unica se si hanno tre viste; nel caso si abbiano due sole viste dobbiamo aggiungere la condizione d e t(Q∗ ) = 0. A ∞ questo punto possiamo calcolare una funzione costo da minimizzare ad esempio attraverso il metodo Levemberg-Marquardt:   2 K iK ⊤i P # Q∗# P ⊤# i ∞ i C(χ) =  −  K iK ⊤ Frob i # ∗# P i Q∞ P i⊤# Frob Frob dove χ è un vettore con variabili i parametri di K i e P #i (confronta 3.23). 3.4.9 Tensore trifocale Come risulta dai precedente (3.23) o (3.25) l’interesse per legare tre viste risulta centrale. Per tale motivo si è introdotto negli anni una nuova notazione. L’entità a cui si fa riferimento è il tensore trifocale. Come possiamo leggere in [HZ03]: “The trifocal tensor plays an analogous role in tree views to the played by the fun- damental matrix in two. Its encapsulated all the (projective) geometric relations between that are indipentet of scene structure”. Procederemo adesso ad una breve introduzione ricordando alcune delle definizioni essenziali. Definizione 3.5. (Generale) Dato un sistema di trasformazioni di coordinate x j = x j (xh) con j , h = 1 N ¯ ¯ un tensore misto di tipo (r,s) e rango o grado (r+s) con peso W su un punto P di una varietà n-dimensionale differenziabile è un insieme di nr+s quantità h Tk11 khr che soddisfa la relazione del tipo: s ¯j x W ∂x j1 ¯ ∂x jr ∂x k1 ¯ ¯ ∂x ks h1 ¯ Tl1 1 lsjr = J ( ) T hr (3.26) ¯ x ∂xh1 ∂xhr ∂xls ∂xls k1 ks dove h1 hr e k1 ks sono detti indici rispettivamente controvarianti e cova- rianti, se W risulta uguale a zero il tensore si dice assoluto altrimenti relativo, inoltre: J (x) = ¯ x ∂x ¯ ∂x ∂(x , x , = ∂(x1, x2, ¯ ¯ 1 2 , xn) , xn) ¯
  • 50. 52 Modello camera e viste multiple è lo jacobiano della trasformazione di coordinate che deve essere ovviamente diverso da zero. Se adesso consideriamo al posto di x j = x j (xh) la relazione x = A x con A ∈ ¯ ¯ ¯ M3×3(R) non singolare la (3.26) si riduce come segue: ¯j j j ¯ ¯ Tl1 1 lsjr = Ah1 AhrrAlk11 AlkrrTkh1 hr ks (3.27) 1 1 relazione nella quale abbiamo usato la convenzione di Einstein sulle somme, j convenzione che useremo in seguito senza più avvisare; le Ai denotano gli elementi ¯ alla i-esima riga e j-esima colonna di A, mentre con A abbiamo denotato l’inversa della stessa. La (3.27) definisce quello che viene chiamato tensore affine. 3.4.9.1 Vettori controvarianti Un tensore v j del tipo (1,0) è detto vettore controvariante è risulta definito come segue: j v j = A kv k ¯ Se consideriamo ad esempio x j i componenti di un vettore v ∈ Rn nella base e j abbiamo v = x je j . Scegliendo una nuova base f j tale che: j ek = akf j j dove gli ak sono opportuni numeri, il vettore v può essere espresso come: v = y jf j j dove y j = akxk sono le componenti che cambiamo come dei tensori controvarianti. 3.4.9.2 Vettori covarianti Un tensore v j del tipo (0,1) è detto vettore covariante è risulta definito come segue: ¯j v j = A kv k ¯ se consideriamo ad esempio x j come le componenti di una forma differenziale dv in Rn (o 1-forma su una varietà differenziabile) ed usiamo la base e j otteniamo: dv = x j dx j dove: 1 se i = j dx j = dx j ei = 0 se i j
  • 51. 3.4 Geometrie stereo e a viste multiple 53 j j Se adesso consideriamo un’altra base f tale che ek = a kf j dove gli ak sono opportuni numeri possiamo scrivere: dv = y j dy j dove vale la relazione xk = akyk oppure equivalentemente yk = a kxk con a k ele- j ¯j ¯j mento di A −1 3.4.9.3 Speciali tensori j Un tensore δ j del tipo (1,1) è detto simbolo delta di kronecker: j 1 se i = j δj = 0 se i j I tensori del tipo (0,N) e (N,0) sono detti simboli di permutazione o epsilon di Levi-Cevita e sono definiti come segue:  1 se (h1 hn) è un permutazione pari eh1 hn = e h1 hn = −1 se (h1 hn) è un permutazione dispari 0 altrimenti  Definizione 3.6. Dati due tensori Sk11 ksr di tipo (r,s) e Tl1 1 ltju di (u,t) il pro- h h j dotto esterno è definito come il tensore U di tipo (r+u,s+t): h hr , j1 ju h1 hr j1 ju Uk11 ks , l1 lt = Sk1 ks Tl1 lt Esempio 3.7. Se abbiamo due vettori a e b il prodotto esterno c è definito come: ci = (a × b)i = eijka j bk = ([a]×)ikbk Esempio 3.8. Dati tre tensori ai , b j e ck controvarianti in ijk un tensore eijk cova- riante in ijk si verifica che:   ai eijkaib jck = det b j    ck Definizione 3.9. La contrazione o prodotto interno di un tensore Tl1 1 ltju di (u,t) j sugli indici jr , ls è il tensore di tipo (u-1,t-1): j1 jr −1,k, js+1 ju Ulj1 1 jr −1, js+1 ju ls−1, ls+1 lt = Tl1 ls−1,k, ls+1 lt
  • 52. 54 Modello camera e viste multiple ossia si è identificato un indice controvariante ed uno covariante con k facen- doli con questo variare contemporaneamente. Esempio 3.10. una rappresentazione tridimensionale pseudo-matriciale del ten- sore come matrice appunto 3 × 3 × 3 con relativo esempio di contrazione è dato in [HZ03]: Figura 3.20. tratto da [HZ03] ′ ′′ Nella figura sopra è illustrato come la contrazione del tensore Ti jkcon lj e lk dia li: ′ ′′ li = ljlkTi jk ′ ′′ Figura 3.21. In figura tratta da [HZ03] si vede il ruolo di Tijk di trasferire l jlk in li
  • 53. 3.4 Geometrie stereo e a viste multiple 55 che in notazione pseudo-matriciale: ′ ′′ l i = l ⊤T i l dove specificando meglio l’insieme {T1, T2, T3} riscriviamo: ′ ′′ ′ ′′ ′ ′′ l = l ⊤[T1, T2, T3]l ↔ (l ⊤[T1, T2, T3]l )[l]× ↔ (lreris)l jlkTi jk = 0s 3.4.9.4 Matrice fondamentale versus tensore bifocale Consideriamo adesso le equazioni di due camere: λ1x1 = P 1X = [A1|b1] λ2x2 = P 2X = [A2|b2] riscriviamo le due equazioni come segue:   X A1 b 1 x1 0  − λ1 = M 6×6Y = 0 A2 b 2 0 x2 0 − λ1 In tale forma osserviamo che M 6×6 ha uno spazio nullo non banale e questo implica che: 1 P1 x11 0 2 2 P1 x1 0 P3 x3 0 det(M 6×6) = 11 1 =0 P2 0 x1 2 2 P2 0 x2 2 3 3 P2 0 x2 in altre parole possiamo ad esempio sviluppare con Laplace ed ottenere il vin- colo bilineare: 3 j Fijxi x2 = 0 1 i,j
  • 54. 56 Modello camera e viste multiple usando adesso la formulazione tensoriale possiamo riscrivere i valori della matrice fondamentale come segue: i ′ P1 3 i ′′ P1 Fij = eii ′i ′′e jj ′ j ′′ ′ i ′,i ′′,j ′,j ′′ =1 P1j ′′ P2j in questa forma Fij , detto anche tensore bifocale, è un tensore affine di grado 2 covariante in entrambi gli indici, infatti in accordo con con (3.27) considerando il cambiamento di coordinate x1 = Ax1 e x2 = Bx2 otteniamo le seguenti relazioni: ¯ ¯ ′ ′ Fijai ′x1 b j ′x2 = 0 i i ¯ j ¯ j ossia ¯ ¯i ¯j Fijx1x2 = 0 con ¯ Fij = Fijai ′b j ′ i j 3.4.9.5 Geometria Trifocale Naturalmete per ricavare il tensore trifocale considereremo il seguente sistema di tre camere: λ1x1 = P 1X = [A1|b1] λ2x2 = P 2X = [A2|b2] λ3x3 = P 3X = [A3|b3] sviluppando come sopra otteniamo:     X A1 b1 x1 0 0   − λ1 = M 9×7Y = 0   A2 b2 0 x2 0   − λ2  0 A2 b2 0 0 x3 − λ3
  • 55. 3.4 Geometrie stereo e a viste multiple 57 dalla quale osserviamo che M 9×7 ha uno spazio nullo non banale e questo implica che possiamo sviluppare con Laplace ed ottenere il vincolo trilineare. Se consideriamo adesso le possibilità che da tre viste si hanno nel determinare i vin- coli, ci vengono in aiuto le seguenti immagini: x j l j lk Ti jk = 0 ′ ′′ xil j (x ′′kekqs)Ti jq = 0s ′ xi(x ′ je jpr)(x ′′kekqs)Ti pq = 0rs Figura 3.22. in figura tratta da [HZ03] sono considerati le possibili relazione di inci- denza e relative notazioni tensoriali considerando per esempio il caso (a) punto-linea-linea possiamo scrivere il seguente determinate:
  • 56. 58 Modello camera e viste multiple 1 P1 x11 0 0 2 2 P1 x1 0 0 3 P1 x3 1 0 0 det(M 9×7) = P2 1 0 x12 0 =0 2 P2 0 x2 2 0 1 P3 0 0 x1 3 3 3 P3 0 0 x3 che analiticamente ci da il vincolo trilineare: 3 ′ ′ 1 j Tijkxi e jj ′ j ′′x2 ekk ′k ′′xk = 0 3 i,j ,j ′,k,k ′ =1 dove resta definito finalmente: i ′ P1 3 i ′′ P1 Tijk = eii ′i ′′ ′ i ′,i ′′ =1 P1j k ′′ P2 che ad un cambiamento di variabili x1 = Ax1 e x2 = Bx2, x3 = C x3 si riscrive ¯ ¯ ¯ in accordo con: ¯ ¯j ′ ¯k ′ Tijk = ai ′ b j c k Tijk i Tijk è quindi un tensore del terzo ordine convariante in i e cotravariante in jk che viene detto tensore trifocale. A questo punto ci si chiede se esistono tensori quadrifocali o multifocali. In effetti si possono definire i tensori quadrifocali e si dimostra come tensori di ordine superiore non portano miglioramenti nella stima tale da giustificare la pesantezza della notazione, ma qualsiasi altra discussione su quest’ultimi risvolti ci porterebbe ben oltre lo spoco della presente tesi; per questo si rimanda al testo di Hartley per maggiori dettagli. Occupandoci invece del caso che chiameremo normalizzato: P 1 = [I |0] (3.28) P 1 = [A|s] P 1 = [B |t] otteniamo: Tijk = Bijsk − Akt j i (3.29)
  • 57. 3.4 Geometrie stereo e a viste multiple 59 dove Bij , Ai sono le ij entry della relative matrici AeB. j 3.4.9.6 Estrazione della matrice fondamentale Avendo adesso a disposizione la (3.29) possiamo pensare di far coincidere nella (3.28) P 3 = P 2, con ciò otteniamo il cosidetto two-view tensor [ShashuaAvidan98]: Fijk = Ai sk − Aks j j i L’importanza di Fijk sta nel fatto che esiste il seguente lemma che racchiude il legame cercato. Lemma 3.11. Il two-view tensor è composto da elementi della matrice fonda- mentali: Fijk = elik Flj la cui dimostrazione si può vedere in [ShashuaAvidan97] La domanda che adesso ci si pone è: esiste un modo per caratterizzare la geo- metria trifocale tramite le matrici fondamentali? La risposta è chiaramente si, ed in effetti molti autori usano questo legame per introdurre in maniera più “mor- bida” la geometria trifocale. Denotando quindi con F21, F31, F32 tre matrici fondamentali relative a tre coppie di viste: Figura 3.23. tratta da [FaugerasPapadopoulo97] esse non risultano indipendenti ma devono sottostare ai vincoli di seguito riportati:
  • 58. 60 Modello camera e viste multiple e⊤ F21e13 = 0 23 ⊤ e31F32e21 = 0 (3.30) e⊤ F32e21 = 0 31 Definizione 3.12. Tre matrici fondamentali F21, F31, F32 che soddisfamo le (3.30) si dicono compatibili Teorema 3.13. Dati Tre matrici fondamentali F21, F31, F32 compatibili se e12 e13 e21 e23 e31 e32 (vincoli di non collinearità) allora esistono tre matrici di proiezione prospettica P1, P2 eP3 per le quali Fij sono le matrici fondamentali delle coppie (Pi , P j) Ricordiamo inoltre che per un tensore trifocale costituito da un insieme di 3*3*3=27 elemeti, il numero di variabili indipendenti come è facilmente calcolare risultano 3*11-15=18
  • 59. Capitolo 4 Stime sulle viste Multiple S e ch iu d ete la p o rta a tu tti g li e rro ri a n ch e la ve rità n e reste rà fu o ri R . Ta g o re 4.1 introduzione Abbiamo visto nei capitoli precedenti come recuperare l’informazione cercata, ossia la posizione della camera, tramite la matrice di proiezione utilizzando la struttura o la matrice fondamentale, inoltre non vi sono limitazioni sul numero di immagini provenienti dalla camera da considerare, ma risulta altresì evidente come vi sono molti gradi di libertà nei parametri che devono in qualche maniera essere fissati con ipotesi aggiuntive. Inoltre la relazione x ≃ P X è chiaramente non lineare e non avendo nessuna informazione sui parametri della camere come spesso si richiede in determinate applicazioni, risulta difficoltoso estrarre la matrice della camera P o la struttura X. Nel caso invece di utilizzo di forme multilineare, esse non includendo la struttura rendendo più agevole le applicazioni con dati reali. Inoltre richiedono un numero minimo di immagini per rappresen- tare la geometria. Il limite che comunque sorge nell’utilizzare le forme multilineari e quello di potere considerare solo 2, 3 o 4 viste solamente, oltre si avrebbe una cessazione della linearità e quindi non risulterebbe particolarmente utilizzabile nei casi pratici. Usando le relazioni multilineari, i punti nelle immagini corrispondenti non sempre hanno una interpretazione fisica e quindi abbisogna una reinterpreta- zione non-lineare in molte aplicazioni. Comunque nonostante ciò risultano sino ad oggi un valido strumento applicativo in visione computazionale. 4.2 Stime della matrice fondamentale Supporremo che la natura dell’errore sia basato sul modello gaussiano; Sappiamo che da un insieme di osservazioni (xip , yi) con i = 1 N ed P parametri aggiusta- bili a p con p = 1 P il modello della regressione linenare prevede la seguente rela- zione fra le variabili dipendenti xip e le variabili indipendenti yi: 61
  • 60. 62 Stime sulle viste Multiple yi = xi1a1 + xipa p + ǫi con i = 1 N dove ǫi è la distribuzione gaussiana dell’errore associato alla misura yi e ai sono i coefficienti che possono essere stimati con ai; in tal modo possiamo calco- ˆ p lare i residui ri = yi − xija j e calcolare: ˆ j =1 n 2 min ri i=1 detta anche stima ai minimi quadrati LS (Least Squares) che è il più comune sti- matore di regressione ottimo nell’ipotesi di ǫi distribuzione gaussiana. 4.2.1 Stime lineari della matrice fondamentale Una applicazione del metodo LS per determinare la matrice fondamentale è il famoso algoritmo degli 8 punti. Considerando infatti un insieme di n punti corri- spondenti xi ↔ xi′ e l’equazione che li vincola: x ′ ⊤F x = 0 possiamo pensare di trovare un minimo n min (xi′⊤ F xi)2 (4.1) F i=1 Se consideriamo xi = (ui , vi), xi′ = (ui′, vi′) U i = [uiui′, viui′, ui′, uivi′, vivi′, vi′, ui , vi , 1]⊤ f = [F11, F12, F13, F23, F23, F33, F33, F33, F33]⊤ la (4.1) diventa: n min (U ⊤ f )2 i (4.2) F i=1 l’equazione (4.2) comunque deve essere determinata imponendo un vincolo per ottenere il fattore di scala f =1. Tramite questo vincolo possiamo riscrivere la (4.2) come segue:
  • 61. 4.2 Stime della matrice fondamentale 63 min (U ⊤ f )2 + λ(1 − f ) i (4.3) F dove λ è il moltiplicatore di Lagrange. Derivando infine la (4.3) otteniamo: (U ⊤U i − λ)f = 0 i Quest’ultima equazione ci dice che f possiamo calcolarla come autovettori della matrice 9*9 dei momenti U ⊤U i associati agli autovalori λ. Un problema che i comunque resta è il fatto che il rango della matrice fondamentale deve essere 2 per potere produrre le linee epipolari che intercettano epipoli, quindi spesso per ′ ovviare a questo problema si ripone una F in luogo di F , ammettendo comunque che F − F ′ frob sia minina e soggetta al vincolo det(F ′) = 0. Altra tecnica potrebbero essere quelle di minimizzare la distanza algebrica (4.2) soggetta al vin- colo di rango, considerando come una stima iniziale degli epipoli dall’applicazione dell’algoritmo degli otto punti, e successivamente dalla fattorizzazione della matrice F = M [e]× riscrivendo come seguef = Em: Figura 4.1. tratta da [CVPR99] dove ovviamente si assume di conoscere gli epioli possiamo trovare una soluzione in forma chiusa ad esempio attraverso scompo- sizione SVD, altrimenti è sempre possibile applicare metodi iterativi. 4.2.2 Stime non lineari della matrice fondamentale Fra i metodi non lineari riportiamo il metodo ML detto Gold Standard. Suppo- niamo di avere xi ↔ xi′ coppie di punti e reletive stime xi ↔ xi′. Vogliamo minimiz- ˆ ˆ zare la seguente quantità: 2 2 d(xi , xi) + d(xi′, xi′) ˆ ˆ (4.4) i soggetta al vincolo
  • 62. 64 Stime sulle viste Multiple xi′⊤F xi = 0 ˆ in questo metodo l’errore deriva dalla incorretta misurazione della coppia di punti corrispondenti come evidenziato dalla figura sotto: Figura 4.2. tratta da [CVPR99]. In figura xi e xi′ sono le proiezioni ortogonali rispetti- ˆ ˆ vamente di xi e xi sulla retta epipolare l e l ′, mentre d e d ′ sono i rispettivi errori. ′ possiamo allora considerare come passo iniziale di ricostruzione il caso norma- lizzato: P = [I |0] P ′ = [M | t] xi = (Xi , Yi , 1, Ti)⊤ calcoliamo xi = P xi = (Xi , Yi , 1)⊤ e xi′ = P ′xi quindi iteriamo su ˆ ˆ P ′ e xi = (Xi , Yi , 1, Ti)⊤ al fine di ottenere un minimo per (4.4). Avremo in totale 3n+12 parametri 12 per le camere P ′ 3 per ogni punto xi. Non appena trovata P ′ si potrà trovare la fat- torizzazione cercata F = [t]×M . Notiamo che la minimizzazione della distanza geometrica (4.4) richiede una parametrizzazione della F che deve sottostare alla condizione di rango uguale a 2, e una via per ottenere la parametrizzazione cer- cata è proprio considerare F = [t]×M poichè [t]× è singolare; in questo caso detto overparameters, bisogna conoscere 3 parametri per t e 9 per M . Esistono altri tipi di parametrizzazione per le quali si usa ad esempio l’ipotesi che (x, y, 1) e (x ′, y ′, 1) siano epipoli e si ammette di conoscere quattro parametri a, b, c, d, nel caso di simmetria; la F matrice diventa:   a b − ax − by F = c d − cx − dy  − ax ′ − cy ′ − ax ′ − cy ′ ′ (ax + by)x + (cx + dy)y ′ per altri tipi di parametrizzazioni si rimanda al testo [HZ03] oppure al testo [PF98].
  • 63. 4.2 Stime della matrice fondamentale 65 4.2.3 Robustezza Abbiamo sin qui assunto che il modello dell’errore sia tipo gaussiano, tale assun- zione e comunque non verificata per qualchè punto, e per tale motivo, anche se in presenza di pochi outlying point così come chiamati in letteratura, si potrebbero verificare errori decisamente non trascurabili, tali da invalidare i metodi prece- denti. Per eliminare tali discordanze dovute specifichiamo agli effetti dominanti degli outliers nella minimizzazione dei residui, si procede utilizzando le regressione robusta, la cui idea di base è quella di sostituire alla (4.4) i cosiddetti M-stimatori o R-stimatori. Con gli M-stimatori otteniamo: min ρ(ri) i dove ρ (loss function) è una funzione simmetrica con unico minimo in zero. Con gli R-stimatori, dapprima ordiniamo l’insieme dei residui, dopo scriviamo: min an(Ri)ri i dove Ri il rango inteso come ordine ossia posizione di ri nella lista ordinata, mentre an( · ) una funzione peso (score) monotona tale che an(Ri) = 0. Si vede i per finire che il punto di breakdodown ossia la percentuale di outliers tollerabili è: 1 p+1 dove p è il numero dei parametri nella regressione. Un esempio di applicazione di R-stimatori è il classico LMeds (Least Median of squares): 2 min median(ri ) i con un breakdown del 50%. Unico inconveniente del metodo è che non esi- stono, secondo la congettura di Rousseeuw, soluzioni in forme chiuse, e non è pos- sibile ricondurlo nemmeno in un problema di minimi quadrati pesato. Per ovviare a tale inconveniente lo steso autore propone la tecnica del random resamplig. Si fanno dei tentativi casuali considerando un sottinsieme dei dati disponibili suffi- ciente per ottenere una stima ai minimi quadrati. Se consideriamo quindi n il numero dei dati disponibili, p la dimensione del vettore di parametri da stimare, ci interessa calcolare il numero m di tentativi. Supponendo di avere una percen- tuale ε di outliers, la probabilità P di avere almeno un sottinsieme su m senza outlier è: P = 1 − (1 − (1 − ε) p)m richiedendo che P sia prossimo a 1 otteniamo: log(1 − P ) m= log(1 − (1 − ε) p)
  • 64. 66 Stime sulle viste Multiple Esempio 4.1. Un esempio di applicazione del metodo, sotto le ipotesi P = 0.95, ci mostra la seguente tabella di risultati: Figura 4.3. tratto da [OnAIR2005] 4.3 Stime del tensore trifocale Le metodologie riportate per la stima del tensore trifocale possono essere ricon- dotte a quelle appena viste per la matrice fondamentale siano esse lineari, non lineari che robuste con le ovvie modifiche del caso. Un grande vantaggio dell’uso del tensore trifocale, abbiamo visto, sta nel potere vincolare indifferentemente linee e punti (confronta Esempio 3.10) in termini di trasferimento del tensore. Nel caso di due viste un punto in una immagine è vincolato a stare su una linea nell’altra immagine, nel caso invece di tre viste possiamo ottenere nella terza immagine una proiezione che può essere predetta x ′′ = (F31x) × (F32x ′) oppure in presenza di rumore x ′′ = (F31x × (F32x ′). Possiamo visualizzare i concetti esposti ˆ) ˆ con una immagine: Figura 4.4. tratto da [PollefeyCOP256] Nella figura presentata di seguito:
  • 65. 4.3 Stime del tensore trifocale 67 Figura 4.5. tratto da [PollefeyCOP256] e come in [FaugerasPapadopoulo97] è messo in evidenza, la predizione fallisce in due casi: 1. In generale tre centri ottici non sono allineati e per un punto sul piano tri- focale la predizione fallisce, entrambe le linee epipolari sono allineati con t3 (vedasi Figura 4.4) 2. oppure nel caso speciale i tre centri ottici sono allineati, e accade che F13m1 ≃ F23m2 per tutti i punti m1, m2 nelle viste 1 e 2 sicchè m⊤F12m1 = 0 2 Queste due motivazioni hanno spinto storicamente Hartley è Shashua a introdurre il tensore trifocale. 4.3.1 Stime lineari del tensore trifocale Per introdurre questa breve descrizione riprenderemo come esempio la Figura 3.22 c), tale relazione di incidenza punto-punto-punto e l’equazione che ne deriva da il vincolo trilineare, ossia la relazione esistente del punto della struttura sulle tre viste in termini di proiezioni. Si può verificare che la prima relazione in Figura 3.22 c) essendo un insieme di equazioni di cui solo 4 linearmente indipendenti è possibile riscriverla in termini di variazione di due valori rispettivamente di s e r come segue: xk(x ′ix ′′mTk − x ′ jx ′′mTk − x ′ix ′′lTkjm + x ′ jx ′′lTk ) = 0ijlm jl il im (4.5) dove i, j s e l, m t. Nel caso che i = j e l = m l’equazione collassa nella relazione di partenza e si ha un cambiamento del segno se si cambia i con j e l con m. Per ottenere le quattro equazioni di cui abbiamo bisogno possiamo fissare i punti x3 = x ′3 = x ′′3 = 1 che equivale a porli su un piano, porre j = m = 3 e fare variare liberamente i e l: 33 xk(x ′ix ′′lTk − x ′′lTk − x ′iTk + Tk ) = 0 i3 3l il Nel caso del vincolo di incidenza linea-linea-linea la relazione: li = l jlk Tkjk ′ ′′ potrebbe in presenza di rumore avere senso geometrico anche per linee che distano poco, è quindi opportuno effettuare una normalizzazione del fattore di scala. Detto ciò riportiamo il seguente algoritmo:
  • 66. 68 Stime sulle viste Multiple Figura 4.6. tratto da [Pollefey 290-089] dal quale si potrebbe ottenere un un tensore non corrispondente a nessuan configurazione geometrica. Per ovviare a tale eventualità il tensore deve soddisfare i vincoli intrinseci (3.29) e procedere con un algoritmo simile a quello degli otto punti oppure con metodi iterativi come descritto in [HZ03]. 4.3.2 Stime non lineari del tensore trifocale Nel caso di minimizzazione di una distanza geometrica si procede senza troppe differenze come nel caso già discusso a proposito della matrice fondamentale, infatti dato una corrispondenza di n ≥ 7 punti xi ↔ xi′ ↔ xi′′ oppure linee li ↔ li′ ↔ li′′ si minimizza la seguente quantità: 2 2 2 d(xi , xi) + d(xi′, xi′) + d(xi′′, xi′′) ˆ ˆ ˆ i oppure 2 2 2 ˆ d li , l i ˆ′ + d li′, l i ˆ′′ + d li′′, l i i dove in quest’ultima la distanza avvolte è intesa in senso di Mahalanobis. Per quanto riguarda la parametrizzazione del tensore trifocale possiamo notare che per definizione tre matrici P , P ′, P ′′ danno una parametrizzazione consistente 4.3.3 Robustezza Per calcolare il tensore trifocale in maniera robustezza, ancora una volta valgono senza troppe modifiche le considerazioni svolte a proposito della matrice fonda- mentale. Come ulteriore semplificazione nel caso della tre viste si ha quella di uti- lizzare 6 punti per immagini riducendo quindi la necessità di estrarre punti salienti. Tale tecnica è di solito chiamata algoritmo dei sei punti e viene descritta nei suoi dettagli in [ZH03]. Qui preferiamo riportare invece un metodo di compu- tazione automatico del tensore:
  • 67. 4.3 Stime del tensore trifocale 69 Figura 4.7. tratta da [Pollefey 290-089] dove il metodo RANSAC è possibile applicarlo anche per la stima della matrice fondamentale [HZ03] e in generale consiste nei seguenti passi: 1. si prende un campione casuale di p punti dall’insieme delle osservazioni 2. per ogni sottoinsieme indicizzato di questi punti J = {i1, , i p } si calcola la regressione e si ottiene una stima aJ ˆ 3. si calcola l’insieme di consenso di aJ : ˆ yi: (yi − x⊤aJ )2 < tol i ˆ 4. si ripetono i passi 1-3 finquando il consenso è più grande di una certa soglia t che dipende dalla stima del numero di errori gravi (outliers) 5. si effettua una regressione sui punti dell’insieme consenso al fine di trovare la stima finale. Possiamo riassumere l’essenza del metodo dicendo che vince la stima dei para- metri più votati!
  • 68. Capitolo 5 Applicazioni " L a sc ien z a n o n è n ie nt’a ltro ch e u n a p erversio n e se n o n h a c o m e su o fi n e u ltim o il m ig lio ra m ento d e lle c o n d iz io n i d e ll’ u m a n it à " . N iko la Te sla 5.1 Introduzione Concludiamo con una frase che colpisce chiunque si avvicini per la prima volta allo studio di una disciplina complessa come oramai possiamo chiamare la visione artificiale: Computer Vision (following Tomaso Poggio, MIT): Computer Vision, formerly an almost esoteric corner of research and regarded as a field of research still in its infancy, has emerged to a key disci- pline in computer science. Vision companies have emerged and commercial applications become avai- lable, ranging from industrial inspection and measurements to security database search, surveillance, multimedia and computer interfaces. Computer Vision is still far from being a solved problem, and most exciting developments, discoveries and applications still lie ahead of us. Understanding the principles of vision has implications far beyond engineering, since visual perception is one of the key modules of human intelligence. [www.cs.unc.edu/Research/vison/comp256/] Ci si chiede quindi quali risultati di tipo implementativo, oltre agli eleganti quanto avvolte utili codici di esempio in Matlab, esistono? Quali sono le prospet- tive per questo campo di studio? 5.2 Applicazioni esistenti Volendo dare una risposta al primo interrogativo sopra, possiamo dire che non è solo un fattore di fiducia nel futuro che ci può guidare, poichè in effetti si assiste già adesso ad un proliferare di applicazioni ove la visione artificiale assume un ruolo decisivo. A parte le applicazioni videoludiche e le applicazioni di visione per la robotica industriale e quanto prima domestica, le applicazioni di tipo commer- ciale più note sono Photomodeler e Realviz. Il primo oramai può considerarsi un noto programma che permette a chiunque, munito di opportuna camera, di effet- tuare ricostruzioni di strutture tridimensionali provenienti da più viste, compresa l’autocalibrazione. Il risultato spesso di questi applicativi di fotogrammetria richiede in fase di analisi l’estrazione di punti salienti che non sempre vengono generati in maniera impeccabile. In molti casi in effetti il risultato è solo una bozza di struttura sulla quale lavorare magari con programmi di CAD specifici. 71
  • 69. 72 Applicazioni La suite Realviz è invece una serie di programmi, programmi che permettono molto di più che una semplice ricostruzione statica. Si può in effetti con Realviz- MatchMover recuperare il movimento della struttura che è l’elemento decisivo per le animazioni tridimensionali e per questo si integrano in programmi come 3d Studio max. Alcuni sviluppatori della casa software Realviz in questione sono a stretto contatto con il centro di ricerca INRIA ove lavorano nomi del calibro di O. Faugeras T. Papadopoulo e un pò tutte le migliori menti del settore. Oltre a questi software prestigiosi esiste tutto un settore di tools con la vocazione decisa- mente più per la programmazione che per l’end-user, ma che non per questo risul- tano meno sofisticati, e spesso sono sviluppati dai vari centri di ricerca universi- tari sparsi nel mondo. Esempi sono i tools scaricabili gratuitamente dalla rete come insiemi di librerie VLX in c++, i cui contributi prestigiosi provengono dalle università di Manchester ed dalla università di Oxford. VXL può vantare nella implementazione oltre che un aggiornamento delle proprie funzianalità, sino alla data attuale sullo sviluppo teorico, una serie di librerie per il calcolo numerico, una libreria per lo streming I/O e persino una primitiva, ma efficace GUI per l’intefacciamento. Le OpenCV (ove CV sta per computer vision) sono un altro esempio di librerie stavolta sviluppate dalla INTEL e distribuite, con lungimirante mossa, come open source. La qualità delle OpenCV è sicuramente adeguata alla fama della ditta, pur collocandosi più come librerie general purpose rispetto alle VLX. Molto curata si presenta l’insieme di librerie Gandalf che viene sostenuta da www.imagineersystem.com società orientata ai servizi vari di carattere commer- ciale nel campo delle CV; essendo inoltre alcune librere di Gandalf scritte in c, questo ne fa un buon strumento in termine di velocità di esecuzione in particolari applicazioni orientate all’hardware. Altro tool per la AR (augmented Reality) è ArToolKit che include librerie assimililabili alla CV. Abbiamo solo elencato alcune delle principali librerie e sicuramente ve ne sono altre e ve ne saranno sempre di nuove è potenti in futuro. 5.3 Prospettive Le prospettive della CV sono entusiasmanti se si pensa come le prossime genera- zioni di calcolatori, sempre più dovranno possedere qualità tipiche degli esseri umani, ed in tal senso dotare il computer della visione stereo, in maniera da poter effettuare ad esempio riconoscimenti, sarà a detta di molti esperti il passo più affascinante dell’evoluzione, prova di ciò ne è i molti ricercatori nel campo della CV pagati dalla Microsoft in vari progetti di ricerca. Il miglioramento delle tec- niche di computazione potranno fare la differenza in futuro, per tale motivo vi è un continuo incedere di approcci matematici differenti che meglio possano dare performance alle applicazioni. La NASA ad esempio da un pò di tempo dichiara di usare l’algebra di Clifford massicciamente per lo sviluppo delle proprie applica- zioni software con un incremento in termini di performance del 20% [SMUW]. Altre soluzioni specifiche di dense steroevision usano i level set [Faugeras99] otte- nendo, come riportato nelle figure dei vari articoli, risultati davvero sorprendenti.
  • 70. Bibliografia [Agapito_etal_ij2001] L. DE AGAPITO ,E.HAYMAN AND I. REID Department of Engi- neering Science, Oxford University Parks Road, Oxford, OX1 3PJ, UK [Cornalba97] http://www-dimat.unipv.it/cornalba/proj.pdf] [cs-236607] http://webourse.cs.techion.ac.il/236875/Spring2006/ho/WCFiles/Tutorial8Proj- Geom.ppt [CVPR99] Multiple view geometry Richard Hartley and Andrew Zisserman CVPR june 1999 [Fau92] Oliver Faugeras. What can be seen in three dimensions with an uncalibrated stereo rig. In Proceedings European Conference on Computer Vision, pages 563- 578, 1992. [Fau93] Oliver Faugeras. Three-Dimensional Computer Vision: A Geometric Viewpoint. MIT Press, Cambridge, MA, 1993. [Fau99] http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/f/Faugeras:Oli- vier_D=.html [FaugerasPapadopoulo97] Grassmann-caylay algebra for modelling system of camera and the algebric equations of the trifocal tensor O.Fageras T. Papadopoulo [FLM92] O. Faugeras, Q.T. Luong, and S.J. Maybank. Camera self-calibration: Theory and experiments. European Conference of Computer Vision, pages 321-334, 1992. [Fusiello05] http://profs.sci.univr.it/%7Efusiello/teaching/visione/appunti.pdf [GiannitrapaniFusiello] www.sci.univr.it/~fusiello/teaching/grafica/ [HA96] A. Heyden and K. Astrom. Euclidean Reconstruction from Constant Intrinsic Para- meters. In Proceedings 13th International Conference Pattern Recognition, Vienna, Austria, pages 339-343, 1996. [HA97] A. Heyden and K. Astrom. Euclidean reconstruction from image sequences with varying and unknown focal length and principal point. In Proceedings IEEE Conference Com- puter Vision and Pattern Recognition, pages 438-443, 1997. [HA98] A. Heyden and K. Astrom. Minimal conditions on intrinsic parameters for euclidian reconstruction. In Proceedings Asian Conference on Computer Vision, 1998. [Har94a] RichardHartley. Euclidean reconstruction from uncalibrated views. InJ.L.Mundy, A. Zisserman, and D. Forsyth, editors, Applications of Invariance in Computer Vision, volume 825, pages 237-256. Springer-Verlag, 1994. 73
  • 71. 74 Bibliografia [HZ03] Richard Hartley and Andrew Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, second edition, 2003. [LH81] H. Longuet-Higgins. A computer algorithm for reconstructing a scene from two pro- jections. Nature, 293:133-135, 1981. [ISPRS96] http://www.cs.adelaide.edu.au/users/mjb/Papers/ISPRS96.pdf [J.M.Frahm05] http://www.cs.unc.edu/~jmf/diss.pdf [JunJin05] A Review of 3D Model Reconstruction from Images Jun Liu Advanced Interfaces Group Department of Computer Science University of Manchester jun.liu@cs.man.ac.uk [pbESI] http://www.photomodeller.com [pbR] http://www2.realviz.com [PKG98] Marc Pollefeys, Reinhard Koch, and Luc Van Gool. Self-Calibration and Metric Reconstruction in Spite of Varying and Unknown Internal Camera Parameters. In Proceedings IEEE International Conference Computer Vision, pages 90-95, 1998. [OnAIR2005] http://www.dima.unige.it/didattica/matema- tica/aa2004_05/Mod_prof_0405/TerzaParte.pdf [PF98] T. Papadopoulo O. Faugeras A new characterization of the trifocal tensor (ECCV98) [Pollefey 290-089] http://www.cs.unc.edu/~marc/mvg [Pollefey COP256] http://www.cs.unc.edu/Research/vision/comp256/ [PKG99] Marc Pollefeys, Reinhard Koch, and Luc Van Gool. Self-Calibration and Metric Reconstruction Inspite of Varying and Unknown Intrinsic Camera Parameters. International Journal of Computer Vision, 32(32):7-25, August 1999. [Mechatronics] An accurate and robust stereo matching algorithm with variable windows for 3D measurements a b, * Gyung-Bum Kim , Sung-Chong Chung [MF92] S.J.Maybankand Oliver Faugeras. A theory ofs elf-calibration of a moving camera. International Journal of Computer Vision, 8(2):123-151, 1992. [MVG2]http://www.cs.unc.edu/~mordohai/public/MVG2.ppt [ShashuaAvidan97] Novel view synthesis by cascading trilinear tensor Shai Avidan and Ammon Shashua (appendice) [T.Bagni] “Alle radici storiche della prospettiva” http://www.syllogismos.it/history/Prospet- tiva.pdf [TH84] R. Tsai and T. Huang. Uniqueness and Estimation of Three-Dimensional Motion Parameters of Rigid Objects with Curved Surfaces. IEEE Transactions on Pattern Analysis and Machine Intelligence, 6:13-27, January 1984. [T.Oram] http://www.aspa29.dsl.pipex.com/Papers/Thesis.pdf
  • 72. Bibliografia 75 [TR98-71] A Flexible New Technique for Camera Calibration Zhengyou Zhang December2,1998 http://research.microsoft.com/Ÿzhang [Tri97] Bill Triggs. Auto-calibration and the Absolute Quadric. In Proceedings Conference on Computer Vision and Pattern Recognition, page 609, 1997. [TruccoVerriFusiello00] A compact algorithm for rectification of stereo pairs Andrea Fusiello , Emanuele Trucco , Alessandro Verri [VA_TLC_4] http://wwwdsp.elet.polimi.it/ispg/index.php?uri=Courses/index.php [S.Birchfield] http://www.ces.clemson.edu/~stb/publications/ [Sernesi] Geometria 1 Edoardo Sernesi Torino Bollati Boringhieri 1989 [Marrocco] Appunti del prof. Marrocco www.dimat.unina2.it (geometria superiore)