Stereovisione Marco Moltisanti Image Processing Lab Dipartimento di Matematica e Informatica Università degli Studi di Catania moltisanti@dmi.unict.it www.dmi.unict.it/~moltisanti 11 aprile 2013
Introduzione Dal greco stereìc, solido : stereovisione visione solida. M. Moltisanti Stereovisione 2/34
Introduzione Dal greco stereìc, solido : stereovisione visione solida. Una visione solida presuppone un meccanismo di percezione della profondità. Il più comune: fondere due proiezioni della medesima scena ottenute da due punti di vista differenti. M. Moltisanti Stereovisione 2/34
Introduzione Dal greco stereìc, solido : stereovisione visione solida. Una visione solida presuppone un meccanismo di percezione della profondità. Il più comune: fondere due proiezioni della medesima scena ottenute da due punti di vista differenti. La fusione non è un compito banale, ma il nostro cervello è in grado di svolgerlo egregiamente. M. Moltisanti Stereovisione 2/34
Introduzione M. Moltisanti Stereovisione 3/34
Introduzione Ogni camera vede la scena in modo lievemente diverso dall altra M. Moltisanti Stereovisione 3/34
Sistemi stereo Definizione Un sistema stereo è un sistema di visione consistende in (almeno) due camere che osservano la medesima scena. M. Moltisanti Stereovisione 4/34
Sistemi stereo Definizione M. Moltisanti Stereovisione 5/34
Sistemi stereo Definizione M. Moltisanti Stereovisione 6/34
Sistemi stereo Parametri stereo Parametri di un sistema stereo: M. Moltisanti Stereovisione 7/34
Sistemi stereo Parametri stereo Parametri di un sistema stereo: Parametri intrinseci: i parametri intrinseci di entrambe la camere, come li abbiamo precedentemente definiti M. Moltisanti Stereovisione 7/34
Sistemi stereo Parametri stereo Parametri di un sistema stereo: Parametri intrinseci: i parametri intrinseci di entrambe la camere, come li abbiamo precedentemente definiti Parametri estrinseci: Posizione e orientazione relativa delle camere M. Moltisanti Stereovisione 7/34
Sistemi stereo Parametri stereo Siano O l e O r le coordinate dei fuochi della camera sinistra e di quella destra, e siano R l ed R r le matrici di rotazione che ruotano il sistema di riferimento del mondo in quello delle rispettive camere: M. Moltisanti Stereovisione 8/34
Sistemi stereo Parametri stereo Siano O l e O r le coordinate dei fuochi della camera sinistra e di quella destra, e siano R l ed R r le matrici di rotazione che ruotano il sistema di riferimento del mondo in quello delle rispettive camere: P r = R r (P w T r ) P l = R l (P w T l ) M. Moltisanti Stereovisione 8/34
Sistemi stereo Parametri stereo Siano O l e O r le coordinate dei fuochi della camera sinistra e di quella destra, e siano R l ed R r le matrici di rotazione che ruotano il sistema di riferimento del mondo in quello delle rispettive camere: P r = R r (P w T r ) P l = R l (P w T l ) Cerchiamo i vettori T ed R del sistema stereo tali che la relazione tra le coordinate di un punto dello spazio nel sistema di riferimento della camera sinistra (P l ) e le coordinate dello stesso punto nel sistema di riferimento della camera destra (P r ) sia: M. Moltisanti Stereovisione 8/34
Sistemi stereo Parametri stereo Siano O l e O r le coordinate dei fuochi della camera sinistra e di quella destra, e siano R l ed R r le matrici di rotazione che ruotano il sistema di riferimento del mondo in quello delle rispettive camere: P r = R r (P w T r ) P l = R l (P w T l ) Cerchiamo i vettori T ed R del sistema stereo tali che la relazione tra le coordinate di un punto dello spazio nel sistema di riferimento della camera sinistra (P l ) e le coordinate dello stesso punto nel sistema di riferimento della camera destra (P r ) sia: P r = R(P l T ) M. Moltisanti Stereovisione 8/34
Sistemi stereo Parametri stereo P r = R(P l T ) M. Moltisanti Stereovisione 9/34
Sistemi stereo Parametri stereo P r = R(P l T ) Il vettore di traslazione che sposta un sistema di riferimento all altro è banalmente T = O r O l ; manca però R. M. Moltisanti Stereovisione 9/34
Sistemi stereo Parametri stereo P r = R(P l T ) Il vettore di traslazione che sposta un sistema di riferimento all altro è banalmente T = O r O l ; manca però R. Abbiamo le formule per tradurre (1) W C r e (2) W C l ; per trovare la relazione C l C r potremmo invertire la (2), ottenendo C l W, e successivamente applicare la (1). M. Moltisanti Stereovisione 9/34
Sistemi stereo Parametri stereo P r = R(P l T ) M. Moltisanti Stereovisione 10/34
Sistemi stereo Parametri stereo P r = R(P l T ) Invertiamo W C l : M. Moltisanti Stereovisione 10/34
Sistemi stereo Parametri stereo P r = R(P l T ) Invertiamo W C l : P l = R l (P w T l ); M. Moltisanti Stereovisione 10/34
Sistemi stereo Parametri stereo P r = R(P l T ) Invertiamo W C l : P l = R l (P w T l ); R 1 l P l = P w T l ; M. Moltisanti Stereovisione 10/34
Sistemi stereo Parametri stereo P r = R(P l T ) Invertiamo W C l : P l = R l (P w T l ); R 1 l P l = P w T l ; P w = R 1 l P l + T l M. Moltisanti Stereovisione 10/34
Sistemi stereo Parametri stereo P r = R(P l T ) P w = R 1 l P l + T l M. Moltisanti Stereovisione 11/34
Sistemi stereo Parametri stereo P r = R(P l T ) P w = R 1 l P l + T l Ora inglobiamola in W C r : M. Moltisanti Stereovisione 11/34
Sistemi stereo Parametri stereo P r = R(P l T ) P w = R 1 l P l + T l Ora inglobiamola in W C r : P r = R r (P w T r ) M. Moltisanti Stereovisione 11/34
Sistemi stereo Parametri stereo P r = R(P l T ) P w = R 1 l P l + T l Ora inglobiamola in W C r : P r = R r (P w T r ) = R r (R 1 l P l + T l T r ) M. Moltisanti Stereovisione 11/34
Sistemi stereo Parametri stereo P r = R(P l T ) P w = R 1 l P l + T l Ora inglobiamola in W C r : P r = R r (P w T r ) = R r (R 1 l P l + T l T r ) = R r R 1 l P l + R r T l R r T r M. Moltisanti Stereovisione 11/34
Sistemi stereo Parametri stereo P r = R(P l T ) P w = R 1 l P l + T l Ora inglobiamola in W C r : P r = R r (P w T r ) = R r (R 1 l P l + T l T r ) = R r R 1 l P l + R r T l R r T r = R r R 1 l P l R r (T r T l ) M. Moltisanti Stereovisione 11/34
Sistemi stereo Parametri stereo P r = R(P l T ) P w = R 1 l P l + T l Ora inglobiamola in W C r :...ci basta? P r = R r (P w T r ) = R r (R 1 l P l + T l T r ) = R r R 1 l P l + R r T l R r T r = R r R 1 l P l R r (T r T l ) M. Moltisanti Stereovisione 11/34
Sistemi stereo Parametri stereo P r = R(P l T ) = RP l RT P r = R r R 1 l P l R r (T r T l ) M. Moltisanti Stereovisione 12/34
Sistemi stereo Parametri stereo P r = R(P l T ) = RP l RT P r = R r R 1 l P l R r (T r T l ) M. Moltisanti Stereovisione 13/34
Sistemi stereo Parametri stereo P r = R(P l T ) = RP l RT P r = R r R 1 l P l R r (T r T l ) }{{}}{{} R RT M. Moltisanti Stereovisione 14/34
Sistemi stereo Parametri stereo P r = R(P l T ) = RP l RT P r = R r R 1 l P l R r (T r T l ) }{{}}{{} R RT dunque R = R r R 1 l e T = R 1 R r (T r T l ). T lo conoscevamo già, ma espresso nel sistema di riferimento del mondo (T o ); la relazione col nuovo T è T o = T r T l = Rl T T. M. Moltisanti Stereovisione 15/34
I due problemi principali che un sistema stereo deve affrontare ai fini della ricostruzione sono il matching e la depth estimation (ricostruzione). M. Moltisanti Stereovisione 16/34
Matching: quali punti dell immagine prodotta da una camera corrispondono a quali punti dell altra camera? M. Moltisanti Stereovisione 17/34
Matching: quali punti dell immagine prodotta da una camera corrispondono a quali punti dell altra camera? Ricostruzione: trovata l associazione, come faccio a ricostruire la posizione nello spazio di quello che vedo? M. Moltisanti Stereovisione 17/34
Matching: quali punti dell immagine prodotta da una camera corrispondono a quali punti dell altra camera? Ricostruzione: trovata l associazione, come faccio a ricostruire la posizione nello spazio di quello che vedo? Vediamo un assaggio di ricostruzione (definendo la disparità), poi andiamo al problema del matching. M. Moltisanti Stereovisione 17/34
Disparità P viene proiettato in posizioni differenti sui due piani immagine; chiamiamo questa differenza disparità. M. Moltisanti Stereovisione 18/34
Disparità M. Moltisanti Stereovisione 19/34
Disparità Cerchiamo la relazione tra p l, p r e Z. M. Moltisanti Stereovisione 19/34
Disparità Cerchiamo la relazione tra p l, p r e Z. Poiché i triangoli P l PP r e O l PO r sono simili, il rapporto base/altezza sarà uguale; dunque M. Moltisanti Stereovisione 19/34
Disparità Cerchiamo la relazione tra p l, p r e Z. Poiché i triangoli P l PP r e O l PO r sono simili, il rapporto base/altezza sarà uguale; dunque T Z = T + x l x r Z f Nota: è comune considerare gli assi X delle camere crescenti a sinistra M. Moltisanti Stereovisione 19/34
Disparità T Z = T + x l x r Z f M. Moltisanti Stereovisione 20/34
Disparità T Z = T + x l x r Z f Chiamiamo disparità la differenza d = x r x l, e risolviamo per Z: M. Moltisanti Stereovisione 20/34
Disparità T Z = T + x l x r Z f Chiamiamo disparità la differenza d = x r x l, e risolviamo per Z: T Z = T d Z f M. Moltisanti Stereovisione 20/34
Disparità T Z = T + x l x r Z f Chiamiamo disparità la differenza d = x r x l, e risolviamo per Z: T Z = T d Z f (Z f )T = Z(T d) M. Moltisanti Stereovisione 20/34
Disparità T Z = T + x l x r Z f Chiamiamo disparità la differenza d = x r x l, e risolviamo per Z: T Z = T d Z f (Z f )T = Z(T d) TZ Tf = TZ Zd M. Moltisanti Stereovisione 20/34
Disparità T Z = T + x l x r Z f Chiamiamo disparità la differenza d = x r x l, e risolviamo per Z: T Z = T d Z f (Z f )T = Z(T d) TZ Tf = TZ Zd Z = Tf d M. Moltisanti Stereovisione 20/34
Disparità Z = TF d M. Moltisanti Stereovisione 21/34
Disparità Z = TF d Questa relazione ha delle importanti conseguenze: M. Moltisanti Stereovisione 21/34
Disparità Z = TF d Questa relazione ha delle importanti conseguenze: La profondità di un punto P è inversamente proporzionale alla disparità; M. Moltisanti Stereovisione 21/34
Disparità Z = TF d Questa relazione ha delle importanti conseguenze: La profondità di un punto P è inversamente proporzionale alla disparità; La relazione tra Z e d non è lineare; M. Moltisanti Stereovisione 21/34
Disparità Z = TF d Questa relazione ha delle importanti conseguenze: La profondità di un punto P è inversamente proporzionale alla disparità; La relazione tra Z e d non è lineare; Fissate la lunghezza focale e la baseline, la profondità di un punto dipende solo dalla disparità; M. Moltisanti Stereovisione 21/34
Disparità Z = TF d Questa relazione ha delle importanti conseguenze: La profondità di un punto P è inversamente proporzionale alla disparità; La relazione tra Z e d non è lineare; Fissate la lunghezza focale e la baseline, la profondità di un punto dipende solo dalla disparità; Errori nella stima della disparità, in particolare quando essa è molto piccola, si riflettono in grandi errori di stima della profondità. M. Moltisanti Stereovisione 21/34
Disparità Z = TF d La relazione è stata calcolata considerando un sistema con punto di fissazione all infinito; nel caso di un sistema con punto di fissazione vicino, la disparità è inversamente proporzionale alla distanza dal punto di fissazione. M. Moltisanti Stereovisione 22/34
Disparità Z = TF d La relazione è stata calcolata considerando un sistema con punto di fissazione all infinito; nel caso di un sistema con punto di fissazione vicino, la disparità è inversamente proporzionale alla distanza dal punto di fissazione. La disparità è anche legata al cosiddetto effetto parallasse: oggetti che si muovono con la stessa velocità appaiono tanto più lenti quanto più sono lontani, proprio perché la disparità tra punti (in questo caso, tra le proiezioni di uno stesso punto in due istanti di tempo separati) è inversamente proporzionale alla distanza. M. Moltisanti Stereovisione 22/34
Matching tramite correlazione Perché è importante associare correttamente i punti? M. Moltisanti Stereovisione 23/34
Matching tramite correlazione Perché è importante associare correttamente i punti? M. Moltisanti Stereovisione 23/34
Matching tramite correlazione Perché è importante associare correttamente i punti? Caso semplicissimo: solo due punti. Eppure, se sbaglio ad associare P e Q alle rispettive proiezioni... M. Moltisanti Stereovisione 23/34
Matching tramite correlazione Vi sono due principali tecniche di matching: M. Moltisanti Stereovisione 24/34
Matching tramite correlazione Vi sono due principali tecniche di matching: Per correlazione (dominio dei pixels) M. Moltisanti Stereovisione 24/34
Matching tramite correlazione Vi sono due principali tecniche di matching: Per correlazione (dominio dei pixels) Per features (dominio delle features) M. Moltisanti Stereovisione 24/34
Matching tramite correlazione La correlazione è un indice statistico di dipendenza lineare. M. Moltisanti Stereovisione 25/34
Matching tramite correlazione La correlazione è un indice statistico di dipendenza lineare. La correlazione corr(d) tra il vettore B e la finestra di A di offset d (ovvero, la sottosequenza di A di lunghezza pari a quella di B che inizia alla posizione d) è data da: M. Moltisanti Stereovisione 25/34
Matching tramite correlazione La correlazione è un indice statistico di dipendenza lineare. La correlazione corr(d) tra il vettore B e la finestra di A di offset d (ovvero, la sottosequenza di A di lunghezza pari a quella di B che inizia alla posizione d) è data da: corr(d) = size(b) i=0 f (A[d + i], B[i]) M. Moltisanti Stereovisione 25/34
Matching tramite correlazione La correlazione è un indice statistico di dipendenza lineare. La correlazione corr(d) tra il vettore B e la finestra di A di offset d (ovvero, la sottosequenza di A di lunghezza pari a quella di B che inizia alla posizione d) è data da: corr(d) = size(b) i=0 f (A[d + i], B[i]) dove f è una funzione opportunamente scelta. Scelte comuni per f sono M. Moltisanti Stereovisione 25/34
Matching tramite correlazione La correlazione è un indice statistico di dipendenza lineare. La correlazione corr(d) tra il vettore B e la finestra di A di offset d (ovvero, la sottosequenza di A di lunghezza pari a quella di B che inizia alla posizione d) è data da: corr(d) = size(b) i=0 f (A[d + i], B[i]) dove f è una funzione opportunamente scelta. Scelte comuni per f sono f (x, y) = xy (correlazione incrociata o cross-correlation) M. Moltisanti Stereovisione 25/34
Matching tramite correlazione La correlazione è un indice statistico di dipendenza lineare. La correlazione corr(d) tra il vettore B e la finestra di A di offset d (ovvero, la sottosequenza di A di lunghezza pari a quella di B che inizia alla posizione d) è data da: corr(d) = size(b) i=0 f (A[d + i], B[i]) dove f è una funzione opportunamente scelta. Scelte comuni per f sono f (x, y) = xy (correlazione incrociata o cross-correlation) f (x, y) = (x y) 2 (block matching) M. Moltisanti Stereovisione 25/34
Matching tramite correlazione Vediamo un esempio pratico con Matlab M. Moltisanti Stereovisione 26/34
Matching tramite correlazione corr(d) = size(b) i=0 f (A[d + i], B[i]) M. Moltisanti Stereovisione 27/34
Matching tramite correlazione corr(d) = size(b) i=0 f (A[d + i], B[i]) In caso di vettori a due dimensioni, l unica modifica da fare è sdoppiare l offset in due componenti (d x e d y ) ed effettuare la sommatoria al variare di queste due. Ponendo per semplicità A R M M e B R N N, scriviamo: M. Moltisanti Stereovisione 27/34
Matching tramite correlazione corr(d) = size(b) i=0 f (A[d + i], B[i]) In caso di vettori a due dimensioni, l unica modifica da fare è sdoppiare l offset in due componenti (d x e d y ) ed effettuare la sommatoria al variare di queste due. Ponendo per semplicità A R M M e B R N N, scriviamo: corr(d x, d y ) = N N f (A[d x + i, d y + j], B[i, j]) i=0 j=0 M. Moltisanti Stereovisione 27/34
Matching tramite correlazione Piccola ottimizzazione pratica: invece di spostare la finestra di ricerca in tutta l immagine di una camera, iniziamo nella stessa posizione dove abbiamo selezionato la finestra dell altra camera (vale se le camere non hanno punti di vista troppo differenti). M. Moltisanti Stereovisione 28/34
Matching tramite correlazione Piccola ottimizzazione pratica: invece di spostare la finestra di ricerca in tutta l immagine di una camera, iniziamo nella stessa posizione dove abbiamo selezionato la finestra dell altra camera (vale se le camere non hanno punti di vista troppo differenti). Grazie alla correlazione, le immagini sono dense di corrispondenze; possiamo calcolare la disparità praticamente per ogni punto. Otteniamo una disparity map. M. Moltisanti Stereovisione 28/34
Matching tramite correlazione (a) Vista sinistra M. Moltisanti Stereovisione 29/34
Matching tramite correlazione (a) Vista sinistra (b) Vista destra M. Moltisanti Stereovisione 29/34
Matching tramite correlazione (a) Vista sinistra (b) Vista destra Figura : Mappa di disparità M. Moltisanti Stereovisione 29/34
Matching tramite features Matching tramite features: operiamo in un dominio differente, quello delle caratteristiche di una immagine. M. Moltisanti Stereovisione 30/34
Matching tramite features Matching tramite features: operiamo in un dominio differente, quello delle caratteristiche di una immagine. Queste caratteristiche possono essere bordi, angoli, forme geometriche, proprietà statistiche... M. Moltisanti Stereovisione 30/34
Matching tramite features Matching tramite features: operiamo in un dominio differente, quello delle caratteristiche di una immagine. Queste caratteristiche possono essere bordi, angoli, forme geometriche, proprietà statistiche... L algoritmo di rilevazione di una feature dipende dal tipo di feature! M. Moltisanti Stereovisione 30/34
Matching tramite features Semplice feature: segmenti. Come distinguiamo un segmento dagli altri? M. Moltisanti Stereovisione 31/34
Matching tramite features Semplice feature: segmenti. Come distinguiamo un segmento dagli altri? Coordinate del punto medio M = (m x, m y ); M. Moltisanti Stereovisione 31/34
Matching tramite features Semplice feature: segmenti. Come distinguiamo un segmento dagli altri? Coordinate del punto medio M = (m x, m y ); Lunghezza l; M. Moltisanti Stereovisione 31/34
Matching tramite features Semplice feature: segmenti. Come distinguiamo un segmento dagli altri? Coordinate del punto medio M = (m x, m y ); Lunghezza l; Angolo di orientazione θ; M. Moltisanti Stereovisione 31/34
Matching tramite features Semplice feature: segmenti. Come distinguiamo un segmento dagli altri? Coordinate del punto medio M = (m x, m y ); Lunghezza l; Angolo di orientazione θ; Stima del contrasto medio C lungo il segmento. M. Moltisanti Stereovisione 31/34
Matching tramite features Procedura: M. Moltisanti Stereovisione 32/34
Matching tramite features Procedura: (1) Diamo le immagini delle camere destra e sinistra in pasto ad un feature detector, ovvero un algoritmo in grado di rilevare le features e tutti i relativi parametri M. Moltisanti Stereovisione 32/34
Matching tramite features Procedura: (1) Diamo le immagini delle camere destra e sinistra in pasto ad un feature detector, ovvero un algoritmo in grado di rilevare le features e tutti i relativi parametri (2) Cerchiamo corrispondenze tra i parametri (ci serve una metrica per misurarne la similarità) M. Moltisanti Stereovisione 32/34
Matching tramite features Una metrica generica potrebbe essere: S = 1 w 0 (l l l r ) 2 + w 1 (θ l θ r ) 2 + w 2 (M l M r ) 2 + w 3 (c l c r ) 2 dove w i è il peso che intendiamo dare ad ogni parametro. M. Moltisanti Stereovisione 33/34
Matching tramite features Altra feature, molto usata in computer vision: SIFT - (Wikipedia) M. Moltisanti Stereovisione 34/34