Visione Artificiale a.a. 2007-2008 Geometria 3D, modello e calibrazione di una telecamera, stereo vision http://imagelab.ing.unimo.it Ing. Roberto Vezzani Dipartimento di Ingegneria dell’Informazione Università di Modena e Reggio Emilia, Italia Calibrazione della telecamera: a cosa serve? Obiettivo: poter calcolare misure o relazioni spaziali a partire dalle immagini acquisite da una macchina fotografica o da una telecamera. ? http://imagelab.ing.unimo.it Applicazioni (con una telecamera): Misurare le dimensioni reali (lunghezza, larghezza, …) di oggetto o di particolari meccanici mediante una telecamera installata su una catena di montaggio Diametro 20mm Misurare con una telecamera installata nei pressi si una autostrada la velocità delle automobili che vi transitano 134 Km/h Ricostruire la traiettoria seguita da una persona che si sta muovendo all’interno di una stanza http://imagelab.ing.unimo.it Applicazioni (con due telecamere): Ricostruzioni 3D Distanza degli oggetti dalla telecamera (Robot mobili – calcolo del tempo di collisione) http://imagelab.ing.unimo.it RICHIAMI DI GEOMETRIA http://imagelab.ing.unimo.it Coordinate 3D – Traslazione Sia dato un sistema di riferimento tridimensionale ed un punto P1 di un oggetto, le cui coordinate rispetto al sistema di riferimento sono (X1,Y1,Z1). Una traslazione dx,dy,dz porta il punto P1 in un punto P2 di coordinate X 2 X 1 dx Y2 Y1 dy Z Z dz 1 2 Purtroppo non esiste una matrice T tale per cui P2=T · P1 Coordinate Omogenee: P1 = [ X1 Y1 Z1 1]T P2 = [ X2 Y2 Z2 1]T In coordinate omogenee esiste una matrice di trasformazione T che rappresenta la traslazione: X 2 1 Y 0 2 Z 2 0 1 0 http://imagelab.ing.unimo.it 0 0 dx X 1 X1 Y 1 0 dy Y1 T 1 Z1 0 1 dz Z1 0 0 1 1 1 Scala Analogamente possiamo definire la matrice che rappresenta una variazione di scala di un oggetto X 2 Sx Y 0 2 Z2 0 1 0 0 Sy 0 0 0 Sz 0 0 0 X 1 X1 Y 0 Y1 S 1 Z1 0 Z1 1 1 1 Matrici di trasformazione inverse: per ogni trasformazione definita mediante una matrice T è possibile ottenere la trasformazione inversa invertendo la matrice stessa: T-1 Traslazione: Scala: 1 0 1 T 0 0 1 Sx 0 1 S 0 0 http://imagelab.ing.unimo.it 0 0 dx 1 0 dy 0 1 dz 0 0 1 0 0 1 0 Sy 0 1 0 0 Sz 0 0 0 1 Rotazione Consideriamo ora una rotazione di un punto attorno all’asse Z. Il punto P1= (X1,Y1,Z1) viene portato in P2: X 2 X 1 cos Y1 sin Y2 X 1 sin Y1 cos Z Z 1 2 cos sin R ( ) 0 0 La matrice di trasformazione corrispondente è: Z sin cos 0 0 0 0 1 0 0 0 0 1 Analogamente si possono ottenere le matrici di rotazione lungo gli altri due assi 0 1 0 cos R ( ) 0 sin 0 0 X http://imagelab.ing.unimo.it 0 sin cos 0 0 0 0 1 cos 0 R ( ) sin 0 Y 0 sin 1 0 0 cos 0 0 0 0 0 1 Trasformazioni composte E’ possibile ottenere trasformazioni composte mediante il prodotto di trasformazioni elementari Tc = T4 · T3 · T2 · T 1 ATTENZIONE all’ordine delle trasformazioni Vengono applicate a partire da quella più a destra P2 = Tc · P1 = T4 · T3 · T2 · T1· P1 = T4 ·( T3 ·( T2 ·( T1· P1))) Matematicamente, infatti, si può dimostrare facilmente in quanto il prodotto tra matrici, non è commutativo. In genere A · B ≠ B · A http://imagelab.ing.unimo.it Visione monoculare (Singola telecamera) Modello Pinhole della telecamera Il concetto si basa sulla riflessione/emissione di luce da parte dell’oggetto che passa attraverso un forellino di un’ipotetica “camera oscura” e si proietta sul piano immagine. http://imagelab.ing.unimo.it Angolo di Acquisizione e Zoom A parità di sensore di acquisizione (ad es. CCD), diminuendo la lunghezza focale sul sensore viene proiettato un angolo più ampio della scena osservata http://imagelab.ing.unimo.it Modello Pinhole della telecamera • • E’ il modello di telecamera più diffuso Costituito da • • • • • piano immagine (o retina) punto O detto centro ottico (o centro di proiezione) Punto o detto centro immagine Oo: distanza focale Asse Z: detto anche asse ottico x Trasforma prospetticamente un punto P=(X,Y,Z) nello spazio 3-D in un punto p=(x,y) sul piano in cui si forma l’immagine • http://imagelab.ing.unimo.it Y y X o p f P O Z Varianti del modello Piano immagine reale http://imagelab.ing.unimo.it Piano immagine virtuale Proiezione Prospettica Planare Le equazioni che definiscono la trasformazione prospettica si ottengono sfruttando la similitudine di triangoli: YC y f ZC XC x f ZC L’equazione è non lineare e non mantiene né le distanze fra i punti né gli angoli tra le linee http://imagelab.ing.unimo.it Problema: posso calcolare l’altezza della barra? Dall’immagine Da specifiche tecniche della telecamera Da informazioni note a priori Non posso calcolare l’altezza reale della barra. Devo misurare la distanza focale in pixel mediante la CALIBRAZIONE della telecamera. http://imagelab.ing.unimo.it Calibrazione: metodo “manuale” Posso calcolare la distanza focale in pixel. Tale distanza è anche data dalla distanza focale in mm divisa per la dimensione in mm di un pixel. Problema: visto che i pixel non sono quadrati le distanze focali calcolate lungo l’asse x e lungo l’asse y possono essere differenti. Data la discretizzazione dell’immagine, è meglio calcolare più misure di distanze focali e valutare la distanza effettiva con metodi statistici (es. media). La scacchiera è particolarmente comoda nelle tecniche automatiche di calibrazione. http://imagelab.ing.unimo.it Matrice di proiezione prospettica Note la/e distanza/e focale/i della telecamera, preso un punto PC nello spazio di cui conosco le coordinate (XC,YC,ZC) rispetto al sistema di riferimento della telecamera, posso determinare in quale pixel p dell’immagine mi verrà visualizzato. Per comodità vorrei trovare una matrice M tale che p= M · PC Per fare ciò devo utilizzare le coordinate omogenee. x fx y 0 1 0 Che in forma compatta diventa: 0 fy 0 0 0 1 X 0 Y 0 Z 0 1 ~ ~ p M PC M è detta matrice di proiezione prospettica o MPP. http://imagelab.ing.unimo.it Sistema di riferimento del mondo L’obiettivo finale è stabilire un legame tra le coordinate di PW nel sistema di riferimento (Ow, Xw, Yw, Zw), chiamato riferimento del mondo, e quelle di p in un sistema definito sul piano immagine. Come passaggio intermedio sfruttiamo il sistema di riferimento della telecamera (Oc, Xc, Yc, Zc). Pc R( Pw T ) r11 r12 R r21 r22 r31 r32 r13 R1T T r23 R2 r33 R3T T (Ow Oc ) R e T sono chiamati parametri estrinseci della telecamera. Una volta ottenuti i punti nel sistema di riferimento della telecamera bisogna trasformare le coordinate in coordinate immagine, utilizzando il modello pinhole. http://imagelab.ing.unimo.it Coordinate immagine Per passare più agevolmente dalle coordinate nel sistema di riferimento della telecamera alle coordinate immagini, scriviamo: x ( xim ox )sx y ( yim o y ) s y dove (ox, oy) sono le coordinate del punto principale o in pixel e (sx, sy) sono le dim. del pixel lungo x e lungo y. Le nuove coordinate (xim, yim) sono dette coordinate normalizzate o coordinate immagine. Per passare dalle coordinate della telecamera alle coordinate immagine bisogna conoscere i parametri intrinseci della telecamera: f,ox, oy, sx e sy. Per sostituzione si ottengono le equazioni: R1T ( Pw T ) ( xim ox ) s x f T R3 ( Pw T ) http://imagelab.ing.unimo.it R2T ( Pw T ) ( yim o y ) s y f T R3 ( Pw T ) Forma matriciale Definendo: M int f sx 0 0 c f 0 sy ox oy 1 Possiamo esprimere Pw in coordinate omogenee: M ext r11 r12 r21 r22 r 31 r32 r13 r23 r33 R1T T T R2 T R3T T Xw x1 Yw x2 M int M ext Zw x 3 1 Per passare dalle coordinate omogenee alle coordinate immagine: x1 xim x3 http://imagelab.ing.unimo.it yim x2 x3 Metodo di calibrazione generale Un metodo pratico per la calibrazione è quello di usare un pattern noto e misurabile, come una scacchiera. X c r11 X w r12Yw r13Z w Tx Xc Xw Y R Y T c w Z c Z w Yc r21 X w r22Yw r23Z w Ty Z c r31 X w r32Yw r33Z w Tz f X x o s Z c im x c f Y y o s Z c x im y y f, sx e sy non sono indipendenti c Dalla calibrazione possiamo determinare: • R (matrice 3x3 di rotazione, 3 gradi di libertà), T (vettore 3x1 di traslazione) • fx=f/sx (focale espressa in nr. di pixel orizzontale) • =sx/sy (aspect ratio) • (ox,oy) (coordinate del centro immagine) http://imagelab.ing.unimo.it Autocalibrazione Nel caso più generale si possono voler calcolare 11 parametri, 5 intrinseci e 6 estrinseci Posso utilizzare il toolbox Matlab di Zhengyou Zhang, che necessita in ingresso di 3 o più viste differenti di una scacchiera a celle quadrate di dimensione nota. http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/links.html http://imagelab.ing.unimo.it Deviazioni dal modello pin-hole http://imagelab.ing.unimo.it Modello a lenti sottili Ipotesi del modello: 1. i raggi paralleli all'asse ottico incidenti sulla lente vengono rifratti in modo da passare per un punto dell'asse ottico chiamato fuoco F. 2. i raggi che passano per il centro C della lente sono inalterati. Per mettere a fuoco oggetti a distanze diverse, le lenti dell'occhio cambiano forma (focale), mentre le lenti delle telecamere traslano nella direzione Z. A. Fusiello. Visione Computazionale: appunti delle lezioni, 2005. http://profs.sci.univr.it/~fusiello/teaching/visione/appunti.pdf http://imagelab.ing.unimo.it Distorsioni delle lenti Immagine originale distorta http://imagelab.ing.unimo.it Distorsione rimossa Esempi di distorsioni Distorsione radiale Distorsione tangenziale asse x http://imagelab.ing.unimo.it Distorsione tangenziale asse y Correzione distorsione lenti - Modello plumb-bob Modello plumb-bob [D.C.Brown, 1971] Distorsioni radiali Distorsioni tangenziali k1 , k2 p1 , p2 x x0 x0 (k1r 2 k2 r 4 ) (2 p1 x0 y0 p2 (r 2 2 x02 )) 2 4 2 2 y y y ( k r k r ) ( 2 p x y p ( r 2 y 0 0 1 2 2 0 0 1 0 )) http://imagelab.ing.unimo.it Rimozione prospettica e omografie Rimozione prospettica e omografia Un punto dello spazio 3D viene sempre proiettato su uno ed un solo punto del piano immagine. Ovvero, dato un punto nello spazio e conoscendo i parametri intrinseci ed estrinseci della telecamera, posso determinare se il punto è inquadrato e dove compare nell’immagine I A (XA,YA,ZA) x y O C X Z A’(x A,yA) Y Un punto dell’immagine, invece, può corrispondere ad uno qualunque dei punti della retta che passa dal centro ottico e dal punto stesso. I x y A (X A,Y A,ZA) C O X A’(x A,y A) Z Y http://imagelab.ing.unimo.it Rimozione prospettica I Se ho almeno un vincolo sulle coordinate del mondo reale di un punto P, posso determinare con esattezza la sua posizione a partire dalle coordinate immagine. x y C O P(XP,Y P,ZP=c) (parete; Z=c) I x y C O P(X P,Y P=0,ZP) Omografia orizzontale (pavimento; Y=0) http://imagelab.ing.unimo.it Omografia orizzontale – Rettificazione dell’immagine Ipotesi: i punti dell’immagine fanno tutti parte del piano Y=0 (pavimento / strada) http://imagelab.ing.unimo.it Matrice di trasformazione omografica L’omografia (o collineazione) è formalmente definita come una “trasformazione lineare non singolare del piano proiettivo in se stesso” Praticamente: preso un piano e due differenti proiezioni bidimensionali dello stesso, la trasformazione omografica lega le coordinate dei punti nei due sistemi di riferimento. x1 ' x1 x2 ' H 3 x 3 x2 1 1 h1 h2 h3 H 3 x 3 h4 h5 h6 h7 h8 1 La matrice di omografia è definita a meno di un fattore di scala (8 gradi di libertà) Può essere determinata dalla corrispondenza di 4 punti http://imagelab.ing.unimo.it Trasformazioni 2D - Trasformazione Euclidea Trasformazioni euclidee: vengono algebricamente rappresentate mediante una matrice sparsa non singolare 3x3 avente tre gradi di libertà (una rotazione e due traslazioni). Preservano le lunghezze e le aree, gli angoli. r1,1 E r2,1 0 r1,2 r2,2 0 tx ty 1 cos R sin http://imagelab.ing.unimo.it sin cos Trasformazioni 2D - Trasformazione di Similitudine Trasformazioni di similitudine: vengono algebricamente rappresentate mediante una matrice sparsa non singolare 3x3 avente 4 gradi di libertà (una rotazione, una scala e due traslazioni). Preservano i rapporti tra le lunghezze e le aree, gli angoli. sr1,1 S sr2,1 0 sr1,2 sr2,2 0 http://imagelab.ing.unimo.it tx ty 1 Trasformazioni 2D - Trasformazione Affine Trasformazioni affini: vengono algebricamente rappresentate mediante una matrice sparsa non singolare 3x3 avente 6 gradi di libertà. Preservano il parallelismo, i rapporti tra lunghezze di linee parallele, le combinazioni lineari di vettori e le linee all’infinito. a1,1 A a2,1 0 a1,2 a2,2 0 http://imagelab.ing.unimo.it tx ty 1 Trasformazioni 2D - Trasformazione Proiettiva Trasformazioni proiettive o omografiche: vengono algebricamente rappresentate mediante una matrice sparsa non singolare 3x3 avente 8 gradi di libertà. Preservano la collinearità e la cross-ratio. h1,1 h1,2 H h2,1 h2,2 h3,1 h3,2 http://imagelab.ing.unimo.it h1,3 h2,3 1 Visione stereoscopica (Due telecamere) La visione stereoscopica Con la visione stereoscopica è possibile ottenere la posizione di un punto nello spazio tridimensionale a partire dalle coordinate immagine acquisite da due telecamere distinte. Non ho più bisogno di vincoli aggiuntivi sulle coordinate (cfr: omografia nel caso monoculare) Il problema principale da affrontare nel campo della visione stereoscopica è la risoluzione delle corrispondenze: per ogni punto di interesse individuato su di una immagine devo trovare il punto corrispondente sull’altra immagine http://imagelab.ing.unimo.it Visione stereoscopica – caso semplificato f v z y f v' z b y d v v' b f z d http://imagelab.ing.unimo.it Visione stereoscopica: calcolo delle corrispondenze Il problema di associazione dei punti viene fatto cercando per ciascun punto Pl dell’immagine di sinistra nel suo intorno corrispondente nell’immagine di destra il punto che massimizza (minimizza) una certa funzione (metrica di affinità) Possibili metriche C(u,v), con u e v luminosità del punto nell’immagine di sinistra e di destra, sono: 1) C (u , v) uv (funzione di correlazione) 2) C (u, v) (u v) 2 (somma dei quadrati delle differenze (SSD)) 3) C (u , v) (u u )(v v ) (funzione di correl. normalizzata) Nu Nv u I (i, l ) v I (i, l ) N W W i W j W W l http://imagelab.ing.unimo.it W i W j W r u I (i, j ) N W W i W j W 2 l v W W I (i, j ) i W j W 2 r Corrispondenze di features Esistono tecniche più efficaci per il calcolo delle corrispondenze. Il problema principale è dovuto al fatto che gli oggetti sono catturati da punti di vista differenti e con dispositivi diversi. Lo stesso oggetto risulta avere di norma forma e colore diverso. Si ricorre ad algoritmi di estrazione di features forti e a descrittori “invarianti” Esempio: SIFT (Scale Invariant Feature Transform) I descrittori SIFT sono invarianti a Rotazioni Cambianti di scala Leggeri cambiamenti di luminosità (http://www.cs.ubc.ca/~lowe/keypoints/) http://imagelab.ing.unimo.it Luci strutturate Per facilitare il calcolo delle corrispondenze si possono utilizzare luci strutturare che creano pattern visuali sugli oggetti. http://imagelab.ing.unimo.it Geometria epipolare Ipotesi: due telecamere di cui sono noti i parametri intrinseci è nota la posizione di una telecamera rispetto l’altra Problema: Dato un punto P su di una immagine, dove devo cercare il punto corrispondente nella seconda immagine? Soluzione: La geometria epipolare ci assicura che il punto può essere cercato su di una retta, detta retta epipolare. http://profs.sci.univr.it/~fusiello/teaching/visione/EpipolarApplet/index.html http://imagelab.ing.unimo.it Geometria epipolare Nel caso più generale possibile si parla di geometria epipolare. Siano: Pl=[Xl , Yl , Zl] e Pr=[Xr , Yr , Zr] coordinate di P nei due sistemi-telecamera pl=[xl , yl , zl] e pr=[xr , yr , zr] coordinate di P sui piani immagine l e r el e er sono detti epipoli (Ol, P, Or) è detto piano epipolare le intersezioni di tale piano con l e r sono dette linee epipolari http://imagelab.ing.unimo.it Matrice Fondamentale F La geometria epipolare non dipende dalla struttura della scena, ma solamente dalle matrici di proiezione delle due telecamere e dalla posizione reciproca delle stesse Tale relazione può essere condensata in una matrice particolare, detta matrice fondamentale F, che presenta le seguenti caratteristiche: F R33 Una retta epipolare sull’immagine è descritta dall’equazione ax+by+c=0. Rappresentando i coefficienti dell’i-esima retta in forma matriciale: li=[ai bi ci]T La matrice fondamentale F mette in relazione ogni punto pi di una immagine con la corrispondente retta epipolare sull’altra immagine: l 'i F pi Dato che il punto p’i corrispondente a pi giace sulla retta epipolare l’i: p 'i l 'i 0 p 'iT F pi 0 http://imagelab.ing.unimo.it Matrice Essenziale E Analoga relazione può essere ottenuta tra le coordinate di punti reali espresse nei sistemi di riferimento delle due telecamere. La matrice che rappresenta tale relazione è detta Matrice Essenziale e dipende solo dalla posizione reciproca delle due telecamere (ma non dai parametri intrinseci delle telecamere) ( Pri )T EPl i 0 i 1,..., n La matrice essenziale, come la matrice fondamentale ha 7 gradi di libertà e può quindi essere determinata tramite un sistema lineare di n equazioni, con n 7: Posso calcolare la matrice essenziale se conosco le corrispondenze di almeno 7 punti (non in configurazione degenerante) Con la matrice essenziale posso usare la geometria epipolare SENZA conoscere i parametri intrinseci ed estrinseci delle telecamere F M 'T EM 1 http://imagelab.ing.unimo.it M e M’ sono le MPP