Projektív geometria 2007. 2008. december 8.. Bevezetés A Tomasi-Kanade faktorizáció eredeti megoldása mer leges vetítés alkalmazásával készült. Paraperspektív és gyenge perspektív esetre hamarosan kidolgoztak módszereket. Néhány évvel kés bb Bill Triggsz készítette el azt a módszert, amely valódi perspektíva esetén is sikerrel képes el állítani képsorozatokból a felvételen szerepl objektumok jellegzetes pontjainak háromdimnenziós modelljét. 2. Homogén koordináták A feladat megoldása érdekében vezessük be a homogén koordináták fogalmát. 2.. Pontok leírása homogén koordinátákkal Valós koordináták esetén (háromdimenziós térben) három koordinátával határozzuk meg egy pont helyét: P = (x, y, z) Homogén koordináták esetén egy negyedik koordinátát is beillesztünk: P = (x, y, z, T ) Egy valós pontnak sok homogén pont felel meg úgy. A leképzés úgy történik, hogy az els három koordinátát elosztjuk a negyedik koordinátával: ( x (x, y, z, T ) T, y T, z ) T Megjegyzés #: mindez azt is jelenti, hogy ha egy homogén koordinátákkal megadott pont minden egyes elemét megszorozzuk ugyanazzal a számmal, akkor a valódi koordinátákkal leírt pont nem változik meg. Ezt a tulajdonságot a operátorral jelezzük. (x, y, z, T ) (λx, λy, λz, λt )
Megjegyzés #2: A T = érték esetén az els három homogén koordináta a valós koordinátákat adja meg, míg T = 0 esetében a pont a végtelenben van (de ennek a végtelennek megvan a pontos iránya, azaz végtelen számú végtelenben lev pontot tudunk a homogén koordinátás ábrázolással leírni, azonban fontos megkötés, hogy homogén koordináták esetén a legnagyobb pontnak nullától különböz nek kell lennie. Megjegyzés #3: Pontot homogén koordinátákkal leírva nemcsak háromdimenzióban, hanem tetsz leges dimenziószámban is el lehet képzelni. A kétdimenziós esettel ebben a cikkben is fogunk találkozni. 2.2. Egyenesek leírása homogén koordinátákkal Az egyenes egyenlete valós koordinátákkal: ax + by + c = 0. Ha behelyettesítjük a homogén koordinátákból visszaállított valós értékeket (x x T, y y T ) akkor az alábbi egyenlettel írhatjuk le az egyeneseket: ax + by + ct = 0. 2.3. Dualitás Amennyiben van egy egyenesünk pl. a háromdimenziós térben, azl = (l, l 2, l 3, l 4 )vektorral megadott síkra illeszkedik minden olyan x = (x, x 2, x 3, x 4 ) T pont, amelyikre igaz, hogy: Lx = 0 Tehát a két vektor mer leges. Vegyük észre, hogy ha a két vektort kicseréljük, akkor az egyenlet igaz marad. Tehát ha az L-lel reprezentált egyenesre illeszkedik az x pont, akkor az is igaz, hogy az x-szel reprezentált egyenesre illeszkedik az Lpont. Azaz kimondhatjuk a tételt, hogy a projektív geometriában az összes egyenesekre kimondott tétel igaz a pontokra is, és fordítva. 2.4. Két ponttal megadott egyenes egyenlete a kétdimenziós projektív térben Legyen adott két lineárisan független pont a projektív térben : M = (x, y, t) T és N = (u, v, w) T. A két pont által meghatározott egyenest írjuk le az L = (a, b, c) vektorral. Mivel M rajta van L-en, írhatjuk, hogy : M L = 0, vagyis M és L mer legesek egmásra. Ez pedig csak akkor lehetséges (háromdimenzióban vagyunk!), ha L párhuzamos M és N vektorok vektoriális szorzatára: L M N = yw tv tu xw xv yu Megjegyzés: A vektoriális szorzás leírható mátrix segítségével is: 2
M N = t 0 x 0 t y y x 0 u v w = [M] x N = w 0 u 0 w v v u 0 x y t = [N] x N Megjegyzés: Az el z pont (dualitás) alapján két egyenes által meghatározott pontot teljesen hasonlóan lehet számítani a projektív geometriában. Megjegyzés: [M] x determinánsa nulla, azaz a vektoriális szorzatot reprezentáló mátrix szinguláris. 2.4.. Példa: adott két mer leges egyenes, az egyik az x = a, a másik y = balakban írható le. Keressük a két egyenes metszéspontját. Megoldás: Homogén koordinátás alakban a két egyenes így írható le: x a = 0 és y b = 0. Ez a két egyenes a (, 0, a) T és a (0,, b) T vektorokkal jellemezhet a homogén koordinátás térben. A metszéspontot a vektoriális szorzat segítségével számíthatjuk: i j k a 0 a 0 b = b Tehát a metszéspont nem túlzottan meglep módon (a, b)-ben van. 2.4.2. Példa: 2D-s párhuzamos egyenesek metszéspontja Két általános helyzet, egymással párhuzamos egyenest a következ képpen írhatunk le: ax + by + c = 0 és ax + by + c 2 = 0. Homogén koordinátákkal a metszéspont kiszámítható: i j k a b c a b c 2 = bc 2 bc ac ac 2 0 Ha át akarunk térni valós koordinátákra, nehézségbe ütközünk: a metszéspont ugyanis a nullával való osztás miatt a végtelenben van. Ráadásul ez egy olyan végtelen, aminek iránya is van, hiszan az egyes végtelen pontokat meg tudjuk egymástól különböztetni. Ezen a példán egy érdekes, és els látásra meglep dolgot vehetünk észre: Azt tudjuk, hogy a végtelenben lev pontokat (a, b, 0) T alakban írhatjuk fel. Ebb l az követketkezik, hogy a végtelenben lev egyenesek rajta vannak a (0, 0, c) T vertorral leírható egyenesen. S t, az is kónnyen belátható, hogy mindegyik végtelenben lev pont rajta van ezen az egyenesen. Ezért ezt a végtelenben lev egyenesnek nevezzük, és így jelöljük: L = (0, 0, ) T. Még egy összefüggésre felhívnánk a gyelmet: egy tetsz leges (a, b, c)-vel reprezentált egyenes a végtelenben lev egyenest itt metszi (természetesen a metszéspont is a végtelenben van): 3
i j k a b c 0 0 = 2.4.3. Példa: hiperbola és egyenes metszete a 2D-s projektív térben Vegyünk egy hiperbolát, az egyszer ség kedvéért legyen az xy = egyenlettel leírható. Keressük meg azt a pontot, ahol a hiperbola az x = 3 egyenest metszi. Az egyenes egyenlete homogén térben átírható, ha (u, v, w) T -al jelöljük a homogén koordinátás megfelel jét az (x, y) T vektornak : u = 3w. A hiperboláé pedig: uv = w 2, hiszen u = wx és u = wy. A két egyenletb l megoldása a (3w, w/3, w) T homogén koordinátás vektor, ami a (3, 3 )T valós pontnak felel meg. 2.5. Egy ponton átmen egyenesek, egy egyenesre illeszked pontok Ha adott két egyenes, melyet homogén koordinátákkal l -gyel és l 2 -vel jelölünk, akkor a metszéspontjuk p = l l 2 összefüggéssel számítható ki. Ha veszünk egy harmadik egyenest, melynek l 3 a jele, és ez az egyenes szintén átmegy p ponton, akkor igaz, hogy l T 3 (l l 2 ) = 0. Ez pedig egyenérték (beszorzással lehet ellen rizni), hogy det(l, l 2, l 3 ) = 0. A dualitás következtében kimondhatjuk, hogy három pont (p,p 2 és p 3 ) akkor esik egy egyenesre, ha det(p, p 2, p 3 ) = 0. 2.6. Másodrend felületek A másodrend felületeket így írhatjuk le a hagyományos kétdimenziós térben: b a 0 ax 2 + bx x 2 + cx 2 2 + dx + ex 2 + f = 0 Másodrend felületek sokfélék lehetnek, annak megfelel en, hogy melyik tagot hagyjuk el (illetve választjuk az együtthatóját nullának). Ráismerhetünk a parabolára, az ellipszisre, körre, ellipszisre,...stb. Homogén verziója így néz ki a másodrend felületnek(x = x x 3 és x = x2 x 3 helyettesítésekkel): ax 2 + bx x 2 + cx 2 2 + dx x 3 + ex 2 x 3 + fx 2 3 Mindez vektor-mátrix szorzással is leírható: x T Cx = 0 ahol x = (x, x 2, x 3 ) T és C = b d a 2 2 b e 2 c 2 d 2 e 2 f 4
A másodrend felületeket általános esetben öt pont határozza meg, hiszen 6 paramétert kell meghatározni, de a nullával való egyenl ség okán egy szabadságfok megmarad. Ha mondjuk csak parabolát szeretnénk meghatározni ahol b = c = 0, akkor elég három pontot felvenni. 2.7. Egyenesek transzformációja kétdimenzióban Ebben a szakaszban megmutatjuk, hogy egy egyenesre es pontok lineáris transzformáció után szintén egy egyenesre esnek. Adott egy egyenes u (homogén koordinátákkal megadva), melyet szeretnénk transzformálni. Legyen az egyenesnek egy tetsz leges pontja p. Ekkor igaz, hogy u T p = 0 Transzformáljuk most el a p pontot egy Amátrixszal. Így megkapjuk a p -vel jelölt, eltranszformált pontot: p = Ap. Mivel a transzformáció (a degenerált eseteket kivéve) invertálható, írhatjuk, hogy p = A p. Ezek után írhatjuk, hogy u T p = u T A p Az u egyenes transzformált képét értelemszer en jelöljük u -vel. A most megmutatott összefüggésb l egyértelm en látszik, hogy u = A T u egyenl séggel megadott egyenesre fog esni valamennyi u-ra illeszked pont az A lineáris transzformáció után. 2.8. Másodrend felületek transzformációja kétdimenzióban Az eljárás teljesen hasonlatos az el z szakaszban megmutatott transzformációhoz. Egy C mátrixszal leírt harmadrend felületre esik a p pont, ha p T Cp = 0. A lineáris transzformáció inverzének felhasználásával írhatjuk, p A T CA p = 0. Tehát igaz, hogy harmadrend felületen maradnak az eredetileg harmadrend felület pontjai, és az új felületet a C = A T CA összefüggés segítségével lehet leírni. 2.9. Pont és egyenes távolsága homogén koordináták segítségével. Adott egy pont p = (x 0, y 0 ) T koordinátákkal és egy egyenes, amelynek egyenletét az ax + by + c = 0 kifejezéssel adhatunk meg. Ez utóbbi egyenletet írhatjuk g T o + c = 0 alakba, ahol g = (a, b) T és o = (x, y) T A feladat minimalizálni a p o különbségvektor normáját, azaz a költségfüggvény: J = p o = (p o) T (p o) 5
Egy feltétel van, az o pontnak rajta kell lennie az egyenesen: g T o + c = 0. A költségfüggvényb l és a feltételb l Lagrange-széls értékkereséssel új költségfüggvényt határozhatunk meg (a kett vel osztás nem befolyásolja a minimumhelyet, viszont egyszer síti a kés bbi számítást): J = 2 (p o)t (p o) + λ(g T o + c) Megoldást o-ra a parciális deriváltfüggvények nullhelyei adják: J o = p + o + λg = 0 J λ = gt o + c = 0 Az els b l o = p λg adódik, amit a másodikba behelyettesíthetünk: g T (p + λg) + c = 0 Ebb l λ = gt p+c g T g adódik, o-t pedig így kapjuk: o = p gt p + c g T g g A két pont közötti tavolság pedig d(p, o) = p o = g T p + c g T g g = gt p + c g T g = c + gt p g g T g T g = c + gt p g gt g Ezzel meg is határoztuk az eredményt. Homogén koordinátás alakban az egyenest ugyanazokkal a számokkal jelöljük, azaz ha ljelöli az egyenest, akkor l = (a, b, c) T és a pedig p = (u, v, w) jelöli. Ebben az esetben a pont és az egyenes távolsága így írható le: 2.0. Kollineális x pontja l T p d(l, p) = w a 2 + b 2 Egy olyan transzformációnál, amely eredményeképpen az eredeti kép egy egyensre es pontjai az eredményen is egy egyenesre fognap esni, a x pontot (amelynek a képe önmagába megy át) sajátérték kereséssel határozhatjuk meg: HA = αa Amennyiben H-val jelöljük a transzformációt és A-val a pontot, az eredmény a H jobb oldali sajátértéke lesz. Kétdimeniós esetben H-nak három sajátértéke lesz, x pontja pedig csak egy, ezért arra lehet számítani, hogy a másik két sajátérték komplex komplex szám lesz. 6
3. Transzformációk osztályozása A projektív térben elvégzett transzformációkat annak fényében osztályozzuk, hogy milyen tulajdonságokat riz meg az eredeti (eltranszformálandó) objektumból. A transzformációkat kétdimenzióban vizsgáljuk meg, de értelemszer en kiterjeszthet k háromdimenzióra is. Adott egy homogén koordinátás pont p = (u, v, ) T, ahol a harmadik koordináta most -gyes és egy A = a a 2 a 3 a 2 a 22 a 23 a 3 a 32 a 33 transzformáció, amely a p pontot a p = Ap pontba transzformálja. 3.. Euklédeszi transzformáció A transzformációk közül a leger sebb az ún. euklédeszi transzformáció. Ennek során a szakaszok hossza és a szakaszok által bezárt szög nem változik meg. Így írhatjuk le: A = r r 2 t x r 2 r 22 t y 0 0 [ ] r r ahol R = 2 egy ortonormált mátrix. r 2 r 22 3.2. Hasonlósági transzformáció Hasonlósági transzformáció szögtartó, viszont a szakaszhosszokat nem. De a szakaszok egymáshoz képesti arányát megtartja. A hasonlósági transzformáció így írható le: ahol s valós szám. A = sr sr 2 t x sr 2 sr 22 t y 0 0 3.2.. A hasonlósági transzformáció kapcsolata az abszolut pontokkal A hasonlósági transzformáció vizsgálatához be kell egy-két dolgot vezetnünk. El ször is engedjük meg, hogy a homogén koordinátás ponton ne csak valós, hanem komplex értékeket is felvehessenek. Ezt minden további nélkül megtehetjük, hiszen a korábban bemutatott tételek komplex számokra is alkalmazhatóak. 7
Mondjuk ki a legfontosabb tételt: Ha adott egy kétdimenziós projektív transzformáció, melyet a 3 3-as H valós elem mátrix segítségével írunk le, akkor H euklédeszi transzformáció akkor és csak akkor, ha a (, i, 0) T és (, i, 0) T pontokat a valós térben önmagukba képezik le. Bizonyítás: El ször az egyik irányt bizonyítuk, igaz-e, hogy a fentiek szerint deniált Euklédeszi transzformáció a pontokat önmagukba képezik le? Ennek belátása egyszer, csak fel kell írni a szükséges egyenleteket: r r 2 t x r 2 r 22 t y i =? 0 0 0 Most paraméterezzük az ortonormált részmátrixot: r = cosα, r 2 = sin α,r 2 = sin α,r 22 = cos α. Az egyenlet így módosul, ha a beszorzás után alkalmazzuk az Euler formulát (e iα = cos α + i sin α): cos α sin α t x sin α cos α t y 0 0 i 0 = cos α + i sin α sin α + i cos α 0 = e iα Ha homogén koordinátákról áttéring valós koordinátákra, akkor a e iα tagot elhagyhatjuk, hiszen skálázásra invariáns a m velet. A másik irány ennél komplikáltabb. Vegyünk egy általános H valós elem mátrixot: H = h h 2 h 3 h 2 h 22 h 23 h 3 h 32 h 33 Azt szeretnénk, hogy ez a transzformáció rizze meg a [, y, 0] T pontot: h h 2 h 3 h + ih 2 h 2 h 22 h 23 i = h 2 + ih 22 k i h 3 h 32 h 33 0 h 3 + ih 32 0 ahol k most egy komplex szám. Az egyenletb l, ha a homogén koordinátákról valódi koordinátákra terünk át, megfogalmazhatjuk a feltételeket: és h + ih 2 h 2 + ih 22 = i h 3 + ih 32 = 0 Mivel H valós elem mátrix, azaz minden eleme valós szám. Ezért a második feltétel csak akkor teljesül, ha h 3 = h 32 = 0. Az els feltételt át lehet alakítani: i 0 8
i(h + ih 2 ) = h 2 + ih 22 Ez átalakítva: ih h 2 = h 2 + ih 22 Ez pedig csak akkor teljesülhet, ha h 2 = h 2 és h = h 22. Ezek után felírhatjuk H mátrixot: H = h 22 h 2 h 3 h 2 h 22 h 23 0 0 h 33 Tekintsük a H mátrix bal fels elemét, amelyik ortonormált. Ezért h 22 és a h 2 elemeket tudjuk úgy paraméterezni, hogy igaz legyen: h 22 = k cos α és h 2 = k sin α. Osszuk le H mátrixot a h_33 valós számmal, amit megtehetünk, a valódi koordinátákban kapott végeredményt nem befolyásolja. Így a H mátrixunk végleges alakja, és valóban egy hasonlósági transzformáció: k k h 33 cos α h 33 sin α h3 h 33 H = k k h 33 sin α h 33 cos α h23 h 33 0 0 A tételünket csak a [, i, 0] T pontra bizonyítottuk be, a [, i, 0] T pontokra a bizonyítás ugyanezen séma szerint elvégezhet. Láthatjuk, hogy az [, i, 0] T és [, i, 0] T pontoknak kitüntetett szerepük van a projektív geometriában, ezért nevet is adtak nekik: abszolut pontoknak hívják ket. 3.2.2. Keresztarány és a hasonlósági transzformáció kapcsolata Miután bevezettük az abszolut pontok fogalmát, és megvizsgáltuk egy fontos tulajdonságukat, újabb fogalmat deniálunk: a keresztarányt. Keresztarányt négy, egy egyenesen lev pont között lehet számítani az alábbi összefüggés segítségével: Cr(p, p 2, p 3, p 4 ) = δ 3δ 24 δ 4 δ 23 ahol δ ij az i-dik és j-edik pont közötti (euklédeszi) távolság. A keresztarány invarián a projektív transzformációra A keresztarány egyik nagyon hasznos tulajdonsága, hogy projektív transzformációra invariáns. Ezt itt a bizonyítás bonyolultsága miatt nem ismertetjük. A keresztarány és az abszout pontok segítségével kiszámítható kétdimenzióban két egyenes által bezárt szög Nagyon fontos annak belátása is, hogy két egyenes által bezárt szöget a keresztarány segítségével ki lehet számítani. Ennek belátásához el sz r tekintsünk két egyenest, amelyeket írjunk le az alábbi módon: 9
y = a x + b y = a 2 x + b 2 A két egyenes irányvektorát így kaphatjuk meg: v = [, a ] T és v 2 = [, a 2 ] T. (Jól látszik, hogy b és b 2 eltolások nem befolyásolják az irányvektorokat, és ebb l kifolyólag a bezárt szöget sem.) Ha az irányvektort kiegészítjük a harmadik dimenzióval: v = [, a, 0] T és v 2 = [, a, 0] T, akkor a közbezárt szög tangensét a vektoriális és a skaláris szorzat hányadosával lehet meghatározni: tan α = v v 2 v v 2 = v v 2 sin α v v 2 cos α Ezek után térjünk át homogén koordinátákra. Az egyeneseket leírhatjuk: h = [a,, b ] és h = [a,, b ]. Vegyük a két pontnak a végtelenben lév egyenessel ([0, 0, ] T ) vett metszéspontját ( -gyel megszorozhatjuk az eredményt, hiszen egy sakárszorzás nem befolyásolja az eredményt): p = [, a, 0] T p 2 = [, a 2, 0] T Elérkezett az id, hogy el vegyük a keresztszorzatot. Nézzük meg az abszolut pontok (k = [, i, 0] T, l = [, i, 0] T ), továbbá p és p 2 pontok közötti keresztszorzatot: Cr(p, p 2, k, l) = a i a + i a2 + i a 2 i = + a a 2 + i(a a 2 ) + a a 2 + i(a 2 a ) Ha az eredményt átírjuk (komplex) polárkoordinátára, és gyelembe vesszük, hogy tanα = tan( α) megkapjuk, hogy Cr(p, p 2, k, l) = Ez pedig azt jelenti, hogy a tan a 2 +a ei a 2 e i tan a 2 a +a a 2 = e a 2i tan a 2 +a a 2 2i logcr(p, p 2, k, l) = tan a a 2 = tan v 2 v + a a 2 v = α v 2 3.3. An transzformáció An transzformáció csak annyit garantál, hogy a párhuzamos egyenesek a transzformáció után is párhuzamos egyenesek lesznek. a a 2 t x A = a 2 a 22 t y 0 0 0
3.4. Perspektív transzformáció Perspektív transzformáció esetén csak annyi a megkötés, hogy a transzformációt egy 3 3-as mátrixszal szorozzuk. 4. Perspektív vetítés Perspektív vetítés közelíti a legjobban az emberi látást. A P pont a fókuszponton át lett lekicsinyítve a képsíkra. Mindezt homogén koordinátákkal is könnyen le lehet írni. x = f Z y = fy Z ahol P = (, Y, Z) valódi koordinátákkal megadott pont és a vetítés a képsíkon a p = (x, y)pontokra képzi le a háromdimenziós pontot. Igaz a kétdimenziós homogén koordinátákra, hogy:
x y x y Z = 0 0 0 0 0 0 0 0 0 Ha a vetítést kiegészítjük a kamera elmozgatásával is (elforgatás és eltolás - összesen 6 paraméter), továbbá gyelembe vesszük a kamera tulajdonságait is (egy megadott távolságot hány pixelre képez le, mekkora torzítással), akkor az alábbi összefüggéssel tudjuk leírni az egész folyamatot: x y = K 0 0 0 0 0 0 0 0 0 M ahol Ma kameramozgásnak megfelel 3 4meret mátrix, K pedig a kameraparamétereket tartalmazó 3 3-mas mátrix, melynek szokásos formája így néz ki: K = s x s θ u x 0 s y u y 0 0 A mátrixban lev paraméterek közül s x és s y skálázást, u x és u y pedig eltolást jelent. s θ értéke általában nulla, ha nem, az azt jelenti, hogy a kamera nem egészen szimmetrikus, egy kis asszimetrikus csavarás van benne. Megjegyzés: A kamerák ennél a modelnél lényegesen bonyolultabbul képezik le a valóságot, de az itt bemutatott módszer elég jól közelít. A komoly gond általában a nemlinearitásokkal van, hiszen a kameráknak különösen a szélein jelent s nemlineáris torzulások fordulhatnak el. Y Z Y Z 5. A projektív tér alapvet tulajdonságai 5.. Transzformációk a projektív térben A lineáris transzformációkat ugyanúgy mátrixokkal lehet leírni, mint valódi oordináták esetében. A visszakonvertálás szempontjából - mivel a homogén koordináták konstanssal való szorzására a valóssá konvertált koordináták érzéketlenek - a mátrixnak egy aszabadságfoka. a a 2 a 3 Klasszikus, A = a 2 a 22 a 23 mátrixxal történ an-transzformációt, a 3 a 32 a 33 u x majd u = u y vektorral történ eltolást háromdimenzióban az alábbiak u z szerint lehet leírni: 2
x y z = a a 2 a 3 u x a 2 a 22 a 32 u y a 3 a 32 a 33 u z 0 0 0 Y Z = M 4 4 Természetesen nem csak azonos dimenzióból azonos dimenzióba lehet menni, hanem például háromdimenzióból át lehet transzformálni két dimenzióba egy pontot. Erre kiváló példát adnak a különböz vetítések megjelése a kamerán (ezt nevezik projektív kamera kalibrációnak): λu x λv = P 3 4 y z λ Mindebb l az következik, hogy a kétdimenziós pontokat így kapjuk meg: u = p x + p 2 y + p 3 z + p 4 p 3 x + p 32 y + p 33 z + p 34 Y Z v = p 2x + p 22 y + p 23 z + p 24 p 3 x + p 32 y + p 33 z + p 34 Megjegyzés: a z = síkra való projektív vetítés a P = írható le. 0 0 0 0 0 0 0 0 0 mátrixszal 5.2. A projektív tér invariáns jellemz i és a kereszt arány 5.2.. Keresztarányok és a projektív vonal Legyen M és N két nem egybees pont a projektív térben (tetsz leges dimenzióban). A két pont meghatároz egy egyenest, s ezen az egyenesen lev A pontot két paraméter segítségével le lehet írni: A = λm + µn 6. Epipoláris geometria Feladat: adott két kép, és mindkét képen ugyanarról az ún. színtérr l (angolul scene) készült felvétel látható. Tehát veszünk egy statikus színteret (néhány objektumot), és készítünk róla két különböz nez pontból egy-egy felvételt. Ez alapján a két felvétel alapján 3D-ben szeretnénk el állítani a színtéren szerepl objektumokat. Ennek a feladatnak a megoldában segít az epipoláris geometria. 3
6.. Kameratípusok 6... Perspektív kamera Perspektív kamera a legáltalánosabb kamera. Ha a koordináta-rendszer középpontát a fókuszpontba helyezzük, a z = 0 síkkal párhuzamos a kamerasík (és a fókusztávolság f), és a világ-koordinátarendszerében (0, 0, f)pont a kamera saját koordinátarendszerében a (0, 0) pontnak fele meg, akkor a perspektív vetítés esetén a vetített koordinátákat így határozhatjuk meg: x = f Z = fy Z Mindez projektív koordinátákkal: x f 0 0 y = 0 f 0 Z 0 0 y ahol x és y a vetített koordináták, (, Y, Z)pedig a pont eredeti koordinátája (a világ-koordinátarendszerben). Az így vetített koordináták valódi helye a képen még függhet attól is, hogy a kamera hogyan kalibrált. Ez azt mutatja meg, hogy egy pixel a valóságban mennyi elmozdulásnak felel meg. A kalibrálást a C kalibrációs mátrixszal jellemezhetjük. C = a b u o 0 c v 0 0 0 A vetített koordinátákból a valódi koordinátákat a kalibrációs mátrixszal való szorzással tehetjük meg: x pixel a b u o x y pixel = 0 c v 0 y Z 0 0 Z Jól látszik, hogy a kalibrációs mátrixban,a és c jelöli a skálázást, u 0 és v 0 a koordinátarendszerek közötti eltolást, a b pedig egyfajta (lineáris) torzítást. 6..2. Gyengén perspektív kamera Gyengén perspektív kamera esetén a vetítben a perspektívából adódó kicsinyítés az egész objektumra állandó x = f Z avg y = fy Z avg Y Z 4
6..3. Ortograkus kamera (mer leges vetítés) Mer leges vetítés esetén a kamera a mélység megváltozására érzéketlen. Tehát ha az objektum csak a z tengellyel párhuzamosan mozog, a képen az alakja semmit sem változik. A 2D-s koordinátákat így számítjuk: x = y = Y 6.2. Transzformáció két kép között Feladat: adott két kép, amelyiken ugyanazon színtért fényképeztük két különböz néz pontból. Keressük azt a transzformációt, amelyik az egyik kép megfelel pontját átveszi a másik kép megfelel helyére (ahol ugyanaz a pont található). A két kép rendelkezzen egyel re két saját világ-koordinátarendszerrel. Ha az egyik képen jelöli a pont koordinátáit az els kép világ koordinátái szerint, akkor a második kép rendszerének megfelel koordinátákat úgy kaphatjuk meg, hogy a pontot eltoljuk és elforgatjuk: = R + T ahol R T R = E a forgatásmátrix, T az eltolás. Mátrixformában leírva, homogén transzformációkkal: Y Z [ R = ] T 0 T Y Z = [R T ] A korrábban bemutatottaknak megfelel en síkba a C kalibrációs mátricszal (kiegészítve az eredeti kalibrációs mátrix egy nulla elemeket tartalmazó negyedik oszloppal) lehet vetíteteni. x = u v = a b u 0 0 0 c v 0 0 0 0 0 Y Z Y Z = C[R T ] [ [ Szokás ] a P 34-es projekciós mátrixot elnevezni: P = C[R T ], és így x = P. ] 5
6.2.. Perspektív sík-sík transzformáció Részfeladat: Adott egy sík, melyet levetítünk egy képsíkra. Az els sík világkoordinátarendszerét válasszuk meg úgy, hogy a harmadik (Z) koordinátatengely a síkra mer leges legyen. A vetítés: u v w P [ ] = p p 2 p 3 p 4 p 2 p 22 p 23 p 24 p 3 p 32 p 33 p 34 Y 0 = p p 2 p 4 p 2 p 22 p 42 p 3 p 32 p 43 Y A homogén osztást helyettesíthetjük egy k konstanssal való szorzással: u p p 2 p 4 v = k p 2 p 22 p 42 Y p 3 p 32 p 43 Az egyenlet így már invertálható, és a kétdimenziós koordináták segítségével a háromdimenziós pont (továbbra is egy skalárszorzás erejéig bizonytalanul) kiszámítható: Y = k p p 2 p 4 p 2 p 22 p 42 p 3 p 32 p 43 u v Tehát homogén koordinátákat használva a sík-sík transzformáció és inverz transzformáció egy 3x3-mas mátrixszorzással leírható. A mátrix a homogén koordináták miatt szorzásra (skálázásra) érzéketlen, ezért valójában csak nyolc ismeretlent tartalmaz. Ha van egy másik képünk, amelyen az [, Y, 0, Z] T pont látszik, akkor azt is leírhatjuk mátrixszorzással: u 2 v 2 = k q q 2 q 4 p p 2 p 4 u h h 2 h 4 2 q 2 q 22 q 42 p 2 p 22 p 42 v = k h 2 h 22 h 42 k q 3 q 32 q 43 p 3 p 32 p 43 h 3 h 32 h 43 = kh 6
ahol k = k 2 /k jelölést vezettük be, és H = h h 2 h 4 h 2 h 22 h 42 h 3 h 32 h 43 = q q 2 q 4 q 2 q 22 q 42 q 3 q 32 q 43 p p 2 p 4 p 2 p 22 p 42 p 3 p 32 p 43 Azaz a két sík minden egyes pontját a kh transzformációk segítségével át lehet vinni. Megjegyzés #: Egy sík-sík transzformációt 4 pont meghatároz, hiszen minden egyes pont két-két egyenletet tartalmaz, azaz összesen négy pont kell, hogy a 8 ismeretlent (P elemeit) meghatározzuk. Megjegyzés #2: Ha a képsíkról akarunk visszevetíteni az eredeti síkra, azt értelemszer en a P -gyel való szorzással lehet megtenni. Megjegyzés #3: Ha H-t szeretnénk megbecsülni két kép között, egy homogén linéáris (túlhatározott) egyenletrendszer segítségével tehetjük meg. 6.2.2. Egy pont perspektív vetítése két képre Adott a térben egy pont, w.szeretnénk ennek a pixelekben meghatározott pozícióját leírni. Az euklédeszi koordináta rendszer szerint a két képsík fókuszpontjaiban lev világ koordináta-rendszerek transzformációját egy elforgatás és egy eltolás segítségével le tudjuk írni: = R + T Mindezek a kamera saját koordináta-rendszerében: 7
és x c = f Z x c = f Z Ha feltételezzük, hogy a világ koordinátarendszer középpontja az els fókuszpont, továbbá a harmadik tengely mer leges a képsíkra, akkor a vetített koordinátákat így írhatjuk le: x i = P w = C[I 0] w x i = P w = C [R T ] w Megjegyzés: ha azonos kamerával vesszük fel a színteret, akkor értelemszer enc = C. 6.3. Az epipoláris geometria bevezetése 8
Tekintsük az OO pontok által meghatározott síkot. Ez a sík az els képsíkot az xe pontok által meghatározott egyenesen metszi. Azaz a sík összes pontjának els síkra vetített képe ezen az egyenesen helyezkedik el. A másik képsikon pedog a e x egyenesre esik. e és e az a pont, ahol a két kamera fókuszpontját összeköt egyenes elmetszi az els, illetve a második képsíkot. Elnevezés: e-t és e -t epipólusnak, e x és ex egyeneseket epipoláris vonalnak nevezik. Az epipoláris vonalak az epipólusban metszik egymást, bár elképzelhet, hogy az epipólus a végtelenben van (amennyiben mindkét kamerasík párhuzamos a két fókuszpontot összeköt egyenessel). A lentebbi ábrán láthatunk példát az apipoláris vonalakra, ugyanarról a színtérr l felvett két kép alapján: 6.4. Az esszenciális (lényegi) és fundamentális mátrixok fogalma Folytassuk gondolatmenetünket! Adott két képsík, amelyre a színteret levetítettük. A két képsík háromdimenziós koordinátarendszereinek transzformációja R forgatás és T eltolás segítségével meghatározható. = R + T Ha ennek az összefüggésnek mindkét oldalát vektoriálisan balról megszorozzuk T -vel, majd ugyancsak balról skalárisan -vel, a következ összefüggést kapjuk: T (T R) = 0 Ez nem jelent mást, mint hogy O, O és OO egy síkban vannak. A fenti összefüggést fel lehet írni más alakban is, ha a vektoriális szorzatot felcseréljük az annak megfelel mátrix-szorzással: T ([T ] R) = T E amennyiben bevezetjük az E = [T ] x Rjelölést. E neve esszenciális (lényegi mátrix). 9
Kihasználva, hogy = C x és = C x az összefüggés így is írhatjuk (megjegyzés: a kétdimenzióból háromdimenzióba nem lehet ilyen egyszer en átmenni, mert = C x helyett = λc x írható, azaz a háromdimenziós pont egy konstans erejéig meghatározatlan - a konstans egyébként a mélység, azonban ez a konstans az egyenletbe visszehelyettesítve kiejthet, mivel az egyenlet jobb oldala nulla.): x T C ([T ] R)C x = x T C T EC x = x T F x = 0 ahol F = C T EC mátrix neve fundamentális mátrix. Fontos deníció: e-vel szokás jelölni azt a pontot, amelyik az els kamerán a második kamera középpontjának a vetületét tartalmazza. (ez a pont nem feltétlenül van rajta a l átható képen). Azt is tudjuk, hogy T az a vektor, amelyik összeköti a két kamera középpontját, ezárt ebben az esetben ([T ] R)T = 0 lesz, ezért írhatjuk, hogy Ee = 0, továbbá F e = 0. e-t epipólusnak szokás hívni. Teljesen hasonlóan a második képsíkon is rajta van az els kamera középpontja, azt az epipólust e -vel jelöljük. Hasonló megfontolások miatt írhatjuk, hogy F T e = 0. Ha veszünk a képsíkon egy tetsz leges x pontot, a másik képen a megfelel pont x lesz, és igaz, hogy x T F x = 0. Tudjuk, hogy F x egy 3D-s vektor, amely a második képen egy egyenesnek felel meg. Mivel e T F = 0, ezért az is igaz, hogy e T F x = 0. Tehát e is rajta lesz az F x egyenesen. Ezt az egyenest nevezzük az x-hez tartozó epipoláris egyenesnek. Általánosságban is igaz, hogy egy tetsz leges x ponthoz az els képen F ismeretében meg tudjuk a második képen adni azt az F x egyenest, amelyen a pont x vetülete rajta lesz. Mindez természetesen fordítva is igaz: x ismeretében F T x adja meg a megfelel epipoláris egyenest, mely nemcsak x-en, hanem e-n is átmegy. 6.5. Rektikálás + s r illesztés Nagyon fontos megjegyzés: ez az alapja a rektikálásnak: ha meghatározzuk az epipólust az els képen és a második képen, a két képet áttranszformálhatjuk úgy, hogy az els képen egy tetsz leges egyenes lesz az eredménykép els sora, a másik képen pedig a megfelel epipoláris vonal. Aztán az els képen kicsi szöggel odébb lev egyenest veszünk, ez lesz a második sor az els képen. A második kép második sora a megfelel epipoláris egyenes. És így tovább... Addig megyünk, míg körbe nem érünk. A rektikálás el nye, hogy az els rektikált kép egy tetsz leges pontáról tudjuk, hogy a párja a második rektikált képen ugyanabban a sorban van. Ezért a pontmegfeleltetéseket újra el tudjuk végezni, és s r bb megfeleltetéseket kaphatunk. Ezért hívják a módszert s r illesztésnek. 6.6. Fundamentális mátrix becslése A fundamentális mátrixot becsl algoritmust az x T F x = 0 egyenlet alapozza meg. Legyen sok pontunk, az i-dik pont koordinátáit jelöljük így: 20
x i = u i v i és x i = u i v i F fundamentális mátrixot pedig írjuk fel 9 darab elem segítségével: f f 2 f 3 F = f 4 f 5 f 6 f 7 f 8 f 9 A pontra áirhatjuk, hogy x T i F x i = 0 Ez kifejtve: [ u i v i ] f f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 A beszorzást elvégezve: u i v i [ u i u i u i v i u i v i u i v i v i v i u i v i ] f f 2 f 3 f 4 f 5 f 6 f 7 f 8 f 9 = 0 Sok pont esetén f j ismeretlenekre nézve egy túlhatározott homogén lineáris egyenletrendszert kapunk, melyet sajátértékszámítással legkisebb négyzetes értelemben optimális meg tudunk oldani, feltéve, hogy j f j 2 =. (Ezt pedig feltehetjük, hiszen F skálázása nem érdekes.) 6.7. Az esszenciális mátrix felbontása AZ esszenciális mátrix deníciója tehát E = [T ] x R. Amennyiben adott egy E esszenciális mátrix, a feladatunk meghatározni T eltolás és R elforgatásmátrixot. Tudjuk, hogy R ortonormált mátrix, [T ] x pedig ferdén szimmetrikus. Mivel [T ] x nemszinguláris mátrix, ezért [T ] x R is nemszinguláris lesz: a rangja maximum kett. Ezen túl az is bebizonyítható, hogy E szinguláris érték szerinti felbontása 2
szerint két azonos szinguláris értéke lesz, és a harmadik szinguláris érték zérus. (Ez utóbbi következik abból, hogy E rangja maximum kett, az els tételt pedig nem bizonyítjuk). Ezért E szinguláris érték szerinti felbontása: E = U k 0 0 0 k 0 0 0 0 V T Ezek után vezessük be a W és Z mátrixokat: W = 0 0 0 0 0 0 Z = 0 0 0 0 0 0 0 = 0 0 0 0 0 0 0 W A feladat R mátrix és t eltolásvektor meghatározása E-b l. Erre a megoldás: [T ] x = ±kuzu T Beszorzással ellen rizhetjük, hogy valóban a megfelel alakot kapjuk. Az R mátrixra két megoldást is kapunk: R = UW V T R 2 = UW T V T és valóban, mindkét elforgatásmátrix ortonormált. Összességében tehát 2 2 = 4 megoldás van, amelyb l kisz rhetjük az egyetlen helyes megoldás. A plusz megoldások ott vannak, hogy a vetítési modell azt is megengedi, hogy egy pont a kamera mögött legyen, ilyen azonban a valóságban nem létezik. 22