Vizuális helymeghatározás Többnézetes geometria Plósz Sándor 1 1 Budapesti Műszaki és Gazdaságtudományi Egyetem Távközlési és Médiainformatikai Tanszék 2015 Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 1 / 37
Tartalom Ismétlés Vizuális helymeghatározás elve Projektív geometria alapjai Kamerák reprezentálása Többnézetes geometria, fundamentális mátrix Fundamentális mátrix meghatározása Térépítés, trianguláció Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 2 / 37
Ismétlés Lineáris egyenletek - SVD felbontás (1) Lineáris egyenletek: y = f (x) = Ax A C m n Minden A M N mátrixra létezik egy ún. SVD (Singular Value Decomposition) felbontás A M N = U M M Σ M N V H N N U és V unitér (valós esetben ortogonális) mátrixok (UU H = U H U = I és VV H = V H V = I) Σ mátrixban a főátlóban nemnegatív valós számok találhatók, máshol nulla A főátló elemeit hívjuk szinguláris értékeknek (σn ) Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 3 / 37
Ismétlés Lineáris egyenletek - SVD felbontás (2) Nem négyzetes esetben tételezzük fel, hogy A = UDV T az SVD felbontás szerint Minimalizáljuk a Ax y kifejezést! Ax y = UDV T x y = DV T x U T y Legyen y = U T y és x = V T x! Ekkor a Dx y kifejezést kell minimalizálnunk Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 4 / 37
Bevezetés Vizuális helymeghatározás lépései Feltérképezés: referencia képek készítése, tartózkodási hely (C) és orientáció (R) rögzítése Megalkotni minden referencia képhez a Pr referencia kamera mátrixot. A kamerák belső paramétereit (K mátrix) számítással vagy kalibrációval meg kell határozni A tesztkép összehasonĺıtása referencia képekkel (valamely párosító algoritmussal), megkeresni a legjobb párt Összetartozó pontpárok kinyerése, ezek alapján kamera relációt leíró (fundamentális) mátrix meghatározása Ebből relatív hely és orientáció meghatározása Optimalizálás, 3d trianguláció, térépítés Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 5 / 37
Bevezetés Kétnézetes geometria Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 6 / 37
A projektív geometria alapjai Az n dimenziós projektív geometria n dimenziós pontokat n + 1 dimenzióban ír le. Pontok leírása π : x 3 = 1 egy síkot definiál, mely x 1 -x 2 síkkal párhuzamos Tetszőleges síkon található x pont leírható az O és x pontokon átmenő egyenes egyenletével: ax + by + c = 0 Az egyenes paraméterei: a, b, c 2.2 The 2D projective plane 29 x 2 ideal point l O x π x 3 x 1 Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 7 / 37
A projektív geometria alapjai Projektív tér Egyenes konstansal való szorzással nem változik: (a, b, c) (ka, kb, kc), k 0 x = (x, y) pont akkor van az egyenesen, ha teljesíti: [ ] a x y 1 b = 0 c (kx, ky, k) ugyanazt azt az x síkbeli pontot jelöli pont homogén koordinátája Egy általános x = (x 1, x 2, x 3 ) pont a sík (x 1 /x 3, x 2 /x 3 ) pontjának felel meg P 2 két dimenziós projektív tér R 3 (0, 0, 0) felett (valós számhármasok kivéve a nullvektor) Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 8 / 37
A projektív geometria alapjai Projektív geometria tulajdonságai Két egyenes l, l metszéspontja Hiszen l(l l ) = l (l l ) = 0 x = l l = [l] l l l a két vektor vektoriális szorzata i j k ( a b = a x a y a z b x b y b z = a y a z b y b z, a x b x a z b z, a x b x a y b y ) [l] a vektoriális szorzás mátrix alakban 0 a z a y [a] = a z 0 a x a y a x 0 Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 9 / 37
A projektív geometria alapjai Projektív geometria tulajdonságai Két párhuzamos egyenes Metszéspontjuk: l : (a, b, c) l : (a, b, c ) l l = (c c)(b, a, 0) T Átváltva normál koordinátákra (d = (c c)) l l = d(b/0, a/0) T A pont koordinátái végtelen nagyok projektív térben a párhuzamosak a végtelenben találkoznak! Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 10 / 37
154 Vetítés 6 Camera Models Y C camera centre X x p y x image plane Z X principal axis C Y f p f Y / Z Z Fig. 6.1. Pinhole camera geometry. C is the camera centre and p the principal point. The camera centre is Van hereegy placed X(x, at the y, coordinate z) pontunk origin. a térben Note the image és egyplane f paraméterű is placed in front kameránk of the camera a centre. C pontban, mely Z tengely felé néz computes Hol that látszik the X point vetülete (X, Y, a Z) kameránkon T is mapped to (x the, y point )? (f X/Z,fY/Z,f) T on the image Egyszerű plane. Ignoring arány: the y final image coordinate, we see that z = y f y = fy z Ugyanígy: x = fx z (X, Y, Z) T (f X/Z,fY/Z) T (6.1) describes the central projection mapping from world to image coordinates. This is a (x, y, mapping from Euclidean 3-space IR 3 z) to T (fx/z, fy/z) Euclidean 2-space T IR 2. The centre of projection is called the camera centre. It is also known as the optical Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 11 / 37
Vetítés Kamera síkjára való vetítés: y = fy z = fy 1 z x = fx z = fy 1 z Mivel az osztás műveletét nem tudjuk feĺırni mátrix alakban, ezért bevezették a homogén koordinátákat A hányados egy újabb koordináta x x y fx f 0 z fy = f 0 y z z 1 0 1 1 Másképpen P = diag(f, f, 1) [I 0] Ahol P mátrix az ún. vetítési (projekciós) mátrix Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 12 / 37
Kamera belső paraméterei A valóságban f -et valamilyen fizikai mértékben adják meg (pl. mm) A képfeldolgozás során pixel koordináta rendszerben dolgozunk f -et át kell transzformálálni pixel koordinátarendszerbe r = (r x, r y ) a szenzor felbontása, d = (d x, d y ) a szenzor mérete [mm] α x = r x /d x, α y = r y /d y [pixel/mm] f α x 0 x 0 K = 0 f α y y 0 0 0 1 x 0, y 0 a kamera origója K mátrixot a kamera belső (intrinsic) paramétereinek hívjuk y y 0 p 6.1 Finite cameras x x ycam 0 x cam Fig. 6.2. Image (x, y) and camera (xcam,ycam) coordinate syste Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 13 / 37
Kamera külső paraméterei A kamera a térben nem feltétlenül a z koordinátatengely irányába néz Ezt egy R forgatási mátrixszal és egy C középponttal (eltolás) jellemezhetjük A megfelelő külső transzformációt (extrinsic parameters) a következőképp kapjuk: [ ] R RC P ex = 0 1 A külső és belső paraméter mátrixok szorzata adja a teljes P kamera mátrixot: P = K[R RC] = KR[I C] Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 14 / 37
Kamera transzformációja Kamera projekció egyenlete: P = K[R RC] = KR[I C] Lépések: 1. Eltolás x = (x C) 2. Forgatás x = (Rx ) 3. Vetítés x = (Kx ) Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 15 / 37
Epipoláris geometria Bevezetés C C / a Fig. 9.1. Point correspondence geometry. (a) The Epipoláris: kétnézetes C and image planes. The camera centres, 3-space plane π. (b) An image point x back-projects to a ra Egy térbeli pont, és két vetített képe között milyen összefüggés van and x. This ray is imaged as a line l in the second lie on this ray, so the image of X in the second view 240 9 Epipolar Geometry and the Fundamental Matrix epipolar plane π X π X? X X? l / l x x / C C / x e e baseline e / e / / l epipolar line for x a a b Fig. 9.1. Point correspondence geometry. (a) Fig. The9.2. two cameras Epipolarare geometry. indicated (a) by their The centres cameracbas an C and Plósz image Sándor planes. (BME TMIT) The cameranavigációs centres, szolgáltatások 3-space point és alkalmazások X, and its images x and x 2015 lie in a16 commo / 37
epipolar plane Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások Fig. 9.2. Epipolar geometry. (a) 2015 The camera 17 / 37bas π Epipoláris geometria Fogalmak Két kamera C és C középponttal X térbeli pont, képe a két kamerán rendre x és x C, C, x, x és X pontok egy ún. π epipoláris síkra esnek A C és C pontot összekötő egyenest alapegyenesnek hívjuk, a képsíkokat e és e pontban metszik (epipólus) Az e és x pontok az l epipoláris egyenesre esnek, ahogy e és x az l epipoláris egyenesre. 240 9 Epipolar Geometry / and x epipolar plane π C C / a x x / Fig. 9.1. Point correspondence geometry. (a) Th C and image planes. The camera centres, 3-space plane π. (b) An image point x back-projects to a r C C and x. This ray is imaged as a line l in the second / lie on this ray, so the image of X in the second view a π Fig. 9.1. Point correspondence geometry. (a) The C and image planes. The camera centres, 3-space plane π. l (b) An image point x back-projects / to a ra and x. This ray is imaged as a line l l in the second v lie on this ray, so the image of X in the second view m e π baseline X e / x l a / l
Epipoláris geometria Epipoláris egyenlet Tudjuk, hogy PX = x, amiből X -et meghatározhatjuk a köv. egyenlet megoldásával: 240 9 Epipolar Geometry an X epipolar plane π X (λ) = P + x + λc x x / P + a P mátrix pszeudoinverze (PP + = I ) C a kamera középpont, (P nullvektora, hiszen PC = 0) C C / a Fig. 9.1. Point correspondence geometry. (a) Th C and image planes. The camera centres, 3-spac plane π. (b) An image point x back-projects to a and x. This ray is imaged as a line l in the second lie on this ray, so the image of X in the second view A megoldás egy egyenes, két kiemelt pont P + x (λ = 0) és C (λ = inf) Ezen pontok képei a 2. kamerán: P P + x és P C = e π l Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 18 l/ 37
Epipoláris geometria Fundamentális mátrix Az előzőek alapján: l = (P C) (P P + x) = e (P P + x) = [e ] (P P + x) = Fx [e ] az e vektorral történő keresztszorzatot jelentő mátrix Az F mátrixot fundamentális mátrixnak nevezzük F kapcsolatot ad a két nézet között, egy adott nézetben levetíttet ponthoz hozzárendel a másik nézetben egy egyenest. Mivel az x pont az l egyenesen fekszik, ezért minden x és x pont között fennáll x T Fx = 0 Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 19 / 37
Epipoláris geometria Fundamentális mátrix F rangja 2, és 7 szabadságfokkal bír Bármely két nézetet leírhatunk egy F mátrixal, úgy, hogy a vetített pontpárokra érvényes az előző egyenlet Bármely két kamerához egyértelműen tartozik egy fundamentális mátrix, de fordítva nem feltétlenül igaz! Minden kamerapárhoz, amelyek csak egy projektív transzformációban különböznek ugyanaz a fundamentális mátrix tartozik Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 20 / 37
Epipoláris geometria Esszenciális mátrix Legyen P = K[R RC] = KR[I C] formájú Vezessük be minden x pontra az ún. normalizált ˆx = K 1 x koordinátákat Belátható, hogy minden ˆx ˆx pontpárra igaz: ˆx T E ˆx = 0 Az E mátrixot esszenciális mátrixnak hívjuk, és: E = K T FK = [t] R. Amennyiben a két kameramátrix felépítése P = K[I 0] és P = K[R t]. Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 21 / 37
Epipoláris geometria Esszenciális mátrix E mátrix szabadságfoka 5 több megszorítás vonatkozik rá, mint a fundamentális mátrixra Belátható, hogy amennyiben egy kameramátrixhoz tartozó esszenciális mátrix ismert, akkor abból a kamera mátrixokra négy megoldás található. Ebből a négy megoldásból kiszűrhető az az egy, amelyik szerint az X pontok mind a kamerák nézeti irányában (s nem a kamerák mögött) találhatók. A pontos megoldási módszer az SVD (Singular Value Decomposition) felbontáson alapul Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 22 / 37
Fundamentális mátrix meghatározása Két különböző kamerával, különböző helyről rögzített képek megfelelő x x képpontpárjai között a köv. epipoláris megkötés áll fenn: x T F 3x3 x = 0 F 3x3 a szinguláris fundamentális mátrix (rangja 2). Meghatározása: Kezdeti becslés Hiba feĺırása Költségfüggvény optimalizálás Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 23 / 37
Fundamentális mátrix meghatározása Költségfüggvény Szimmetrikus epipoláris hiba költségfüggvény Tudjuk, hogy az egyik képen az x ponthoz a másik képen egy l egyenes tartozik, amelyekre: Hasonlóan az x pontokra: l = F x l = F T x (1) A szimmetrikus epipoláris hiba így az egyenesek és pontok távolságát összegzi: d(x i, F x i ) 2 + d(x i, F T x i) 2 (2) i ahol d(x, y) az y egyenes és a x pont euklideszi távolságát jelenti. Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 24 / 37
Fundamentális mátrix meghatározása Becslés Ha a mért képpontok normális eloszlású zajjal terheltek alkalmazható a maximum likelihood (ML) becslés Zajjal terhelt pontpároknak megfelelő ˆx i ˆx i pontpárok kielégítik: ˆx T i F ˆx i = 0 A reprojekciós hiba költségfüggvény: d(x i, ˆx i ) 2 + d(x i, ˆx i) 2 (3) i Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 25 / 37
Fundamentális mátrix meghatározása 8 pontos módszer x T F 3x3 x = 0 egyenlet az F lineáris függvénye F mátrixra lineáris egyenletrendszer írható fel, pontonként egy egyenlettel Legyen x i = (x, y, 1) és x i = (x, y, 1), ekkor (x i, x i )-re: x xf 11 + x yf 12 + x f 13 + y xf 21 + y yf 22 + y f 23 + xf 31 + yf 32 + f 33 = 0 Legyen f T = (f 11, f 12, f 13, f 21, f 22, f 23, f 31, f 32, f 33 ) x 1 x 1 x 1 y 1 x 1 y 1 x 1 y 1 y 1 y 1 x 1 y 1 1 Af =......... f = 0 x nx n x ny n x n y nx n y ny n y n x n y n 1 F nem feltétlenül lesz szinguláris! Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 26 / 37
Fundamentális mátrix meghatározása 8 pontos módszer Legtöbbször több mint 8 pontunk van Legkisebb négyzetes megoldás elve: legkisebb szingularitáshoz tartozó szinguláris vektor Ha A SVD felbontása A = UDV T, akkor a megoldás Vi T amennyiben σ i = min σ k k F szinguláris felbontása F = Udiag(r, s, 0)V T formájú, hiszen a rangja 2 Célszerű F = Udiag(r, s, t)v T helyett az F = Udiag(r, s, 0)V T mátrix használata Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 27 / 37
Fundamentális mátrix meghatározása 7 pontos módszer F fundamentális mátrix szabadsági foka 7 A mátrix 9 oszloppal rendelkezik, ha 7 pontból építjük fel magtere két dimenziós lesz Legyen e kétdimenziós térnek a bázisa f 1 és f 2, amelyeket az A mátrix SVD felbontásából kaphatunk F = F 1 + αf 2 (4) F mátrix az Af = 0 homogén egyenletnek megfelelő mátrix, α ismeretlen szorzó. A köv. egyenletet kell megoldani: Ez már zárt alakban megolható! Előnye: 7 pont elég, és F szinguláris lesz det(f 1 + αf 2 ) = 0 (5) Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 28 / 37
Fundamentális mátrix meghatározása Optimális megoldás Kezdeti becslésre jó a normalizált 8 pontos és 7 pontos algoritmus ML becsléshez reprojekciós hiba költségfüggvény minimalizálása kell A legkézenfekvőbb megoldás a tér projektív rekonstrukciója F -nek megfelelő P és P kameramátrixok meghatározása Pontok triangulációja Optimalizáció Segítségével a kamerák relatív helye meghatározható skálázás erejéig Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 29 / 37
Esszenciális mátrix meghatározása Ha F megvan E = K T FK Ha P = K[I 0] P = K[R t] hogy kapjuk meg? Legyen az esszenciális mátrix SVD felbontása E = Udiag(1, 1, 0)V T. Definiáljuk: 0 1 0 0 1 0 W = 1 0 0 Z = 1 0 0 0 0 1 0 0 0 Ha P = K[I 0], akkor P kameramátrixra négy megoldás adódik: P 1 = [ UWV T ] +u 3 P 2 = [ P 3 = [ UW T V T ] +u 3 UWV T ] u 3 P 4 = [ UW T V T ] u 3 Csak egy megoldás helyes (pontok mindkét kamera előtt) Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 30 / 37
Trianguláció Bevezetés Legyen P és P a két kamera mátrixunk Legyen X térbeli pont, mely képe x = PX és x = P X A trianguláció ennek megfordítása, tehát ismerve x x pontpárokat, melyik az az X pont, amelyre x = PX és x = P X? A feladat a következő τ trianguláció megtalálása: X = τ(x, x, P, P ) Csak zajmentes esetben lenne egyértelmű Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 31 / 37
Trianguláció Zaj szemléltetése 12.1 Problem statement 311 x x / C / C l = F / x a x / / x l = F x e image 1 image 2 b Fig. 12.1. (a) Rays back-projected from imperfectly measured points x, x are skew in 3-space in general. (b) The epipolar geometry for x, x. The measured points do not satisfy the epipolar constraint. Plósz TheSándor epipolar (BME line l TMIT) = Fx is the image Navigációs of theszolgáltatások ray through x, ésand alkalmazások l = F T x is the image of the ray through 2015 32 / 37 e /
Trianguláció Egyenletek A következő egyenleteket írhatjuk fel: x (PX) = 0 x (P X) = 0 Az első egyenletet felbonthatjuk az alábbi formában (p it a P mátrix i-dik sorát jelöli) Lineáris egyenletrendszer x(p 3T X) (p 1T X) = 0 y(p 3T X) (p 2T X) = 0 x(p 2T X) y(p 1T X) = 0 Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 33 / 37
Trianguláció Megoldás A másik keresztszorzatot hasonlóan felbontva összesen hat egyenletet kapunk, amelyeket összevonhatunk AX = 0 alakra xp 3T p 1T yp 3T p 2T A = xp 2T p 1T x p 3T p 1T y p 3T p 2T x p 2T p 1T Megoldása a legkisebb négyzetes hiba minimalizálásával (a legkisebb szinguláris értékhez tartozó szinguláris vektor) A mátrix szinguláris felbontásával (SVD) kaphatjuk meg Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 34 / 37
Optimalizáció a x i x i pontpárok ismeretében az X i három dimenziós pontok meghatározhatók triangulációval A feladat innentől a következő egyenletrendszer reprojekciós hibájának nemlineáris optimalizációja X i és P függvényében: x i = PX i x i = P X i (6) Összesen 3n + 12 változó, ahol n a 3d pontpárok száma (ritka Levenberg-Marquardt minimalizáció) Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 35 / 37
Térmodell Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 36 / 37
Térmodell Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 37 / 37
Te rmodell Plo sz Sa ndor (BME TMIT) Naviga cio s szolga ltata sok e s alkalmaza sok 2015 38 / 37
Forrás Richard Hartley and Andrew Zisserman, Multiple View Geometry in Computer Vision, 2nd edition, 2004 Plósz Sándor (BME TMIT) Navigációs szolgáltatások és alkalmazások 2015 39 / 37