Lte om kamerageometr och kamerakalbrerng Mara Magnusson, mara@sy.lu.se 2005-2008
Introdukton V ska här presentera grundläggande teor för kamerageometr. Vårt mål är kamerakalbrerng och de verktyg som behövs för detta. V börjar med homogena matrser som kan användas för att beskrva geometrska transformatoner på ett enkelt sätt. Därefter tar v upp hålkameramodellen, den förenklade kameramodell som v ska kalbrera efter. En kamera-matrs beskrver avbldnngen från 3D-världen tll en kamerabld. Därefter beskrvs hur kamerakalbrerngen går tll. Kameramatrsen kan bestämmas genom att ett antal korresponderande punkter mäts upp värld och bld. V vsar också det vanlga specal-fallet av kamerakalbrerng, när man kan anta att världen är platt. Det gäller att ett plan världen avbldas på ett plan blden. Detta kallas en homograf. Tll sst tar v upp några matematska verktyg som man kan behöva vd kamerakalbrerng. V vsar att den lösnng v presenterar för bestämnng av kameramatrsen är ekvvalent med en mnsta kvadrat-lösnng. V vsar också hur man kan lösa ett homogent ekvatonssystem med hjälp av SVD (Sngulärvärdesuppdelnng). Innehållet denna text baserar sg tll stor del på [1], [4], [5] och [7]. Den är också tänkt att användas som ett komplement och hjälpmedel vd läsnng av [7]. 1
Kaptel 1 Kamerakalbrerng 1.1 Geometrska transformatoner med homogena matrser Detta avsntt nnehåller fakta som är välkända nom datorgrafken. Idén är att använda homogena koordnater för att beskrva vktga transformatoner, såsom affna och projektva, som lnjära transformatoner. De aktuella transformatonerna mappar en punkt 3D-världen tll en annan punkt 3D-världen. En punkt 3D-världens koordnat-system beskrvs som (X, Y, Z, 1) T och den transformeras tll ny punkt (X 1,Y 1,Z 1, 1) T med hjälp av (X 1,Y 1,Z 1, 1) T = M (X, Y, Z, 1) T, (1.1) där M är en 4 4-matrs. Alternatvt transformeras en punkt 3D-världens koordnat-system (X, Y, Z, 1) T tll en punkt (U, V, W, 1) T annat koordnat-system, t ex kamera-koordnatsystemet, med hjälp av (U, V, W, 1) T = M (X, Y, Z, 1) T. (1.2) De transformatoner som kan beskrvas med homogena matrser är skalnng, rotaton, translaton, skevnng, samt perspektvprojekton. Alla dessa transformatoner beskrvs nedan, förutom perspektvprojektonen som v väntar med att beskrva tlls avsntt 1.2. Notera att v har dragt en horsontell streckad lnje genom matrserna nedan. Den fjärde raden de homogena matrserna är egentlgen ganska ontressant, den är alltd [0, 0, 0, 1], och den behövs egentlgen bara då man ska multplcera hop olka homogena matrser med varandra. I de följande avsntten används därmed en 3 4-matrs stället för en 4 4-matrs för att beskrva hur kameran förhåller sg tll 3D-världen. 2
1.1.1 Skalnng Skalngsmatrsen ges av s a 0 0 0 0 s b 0 0 S(s a,s b,s c )= 0 0 s c 0.... (1.3) 0 0 0 1 En punkt 3D-världen, (X, Y, Z, 1) T, transformeras tll (s a X, s b Y,s c Z, 1) T av S- matrsen enlgt s a X s a 0 0 0 X s b Y s c Z = 0 s b 0 0 Y 0 0 s c 0 Z. (1.4) 1 0 0 0 1 1 1.1.2 Translaton Translatonsmatrsen ges av 1 0 0 t x 0 1 0 t y T (t x,t y,t z )= 0 0 1 t z.... (1.5) 0 0 0 1 En punkt 3D-världen, (X, Y, Z, 1) T, transformeras tll (X +t x,y+t y,z+t z, 1) T av T -matrsen enlgt X + t x 1 0 0 t x X Y + t y Z + t z = 0 1 0 t y Y 0 0 1 t z Z. (1.6) 1 0 0 0 1 1 1.1.3 Rotaton Rotaton mäts motsols runt respektve axel då man tttar längs axeln mot orgo. Rotaton en vnkel θ runt X-axeln ges av 1 0 0 0 0 cosθ sn θ 0 R x = 0 snθ cos θ 0..., (1.7) 0 0 0 1 3
rotaton en vnkel θ runt Y -axeln ges av cos θ 0 snθ 0 0 1 0 0 R y = sn θ 0 cosθ 0... 0 0 0 1 (1.8) och rotaton en vnkel θ runt Z-axeln ges av cos θ sn θ 0 0 sn θ cos θ 0 0 R z = 0 0 1 0.... (1.9) 0 0 0 1 1.1.4 Skevnng Tll sst bör v också nämna skevnng. Skevnng är en lnjär ändrng av koordnaterna baserad på en koordnat. Skevnng kan transformera en kvadrat tll en parallellogram. Matrsen nedan vsar skevnng X-led beroende på Y -koordnaten. 1 a 0 0 0 1 0 0 0 0 1 0.... (1.10) 0 0 0 1 En generell skevnng beskrvs av 1 a b 0 c 1 d 0 e f 1 0.... (1.11) 0 0 0 1 1.2 Hålkameramodellen (pnhole camera model) Fgur 1.1 vsar en enkel modell av en kamera, den så kallade hålkameramodellen. Den fungerar hygglgt för en vanlg kamera. Den måste dock modferas och kompletteras om man har att göra med tjocka lnser, som t ex mkroskop-lnser eller vdvnklga objektv. Det råder ett samband mellan koordnatsystemen fguren 4
dealt bldplan v u f lns U V W Y X Z världs koordnat system Fgur 1.1: Hålkameramodellen, verklg geometr och detta samband kan modelleras med hjälp av en matrs. Rent fyskalskt lgger ju bldplanet bakom lnsen, men det blr enklare att se sambanden mellan koordnatsystemen om bldplanet speglas tll att lgga framför lnsen. Denna speglade geometr vsas fgur 1.2. Följande samband gäller mellan koordnatsystemen, W (u /f, v /f, 1) T =(U, V, W ) T =[Rt] (X, Y, Z, 1) T, (1.12) där (U, V, W ) T är kamerakoordnaterna, (u,v ) T är de deala bldkoordnaterna och (X, Y, Z) T är världskoordnaterna. Matrsen [R t] modellerar rotaton och translaton och kan skrvas r 11 r 12 r 13 t 1 [R t]= r 21 r 22 r 23 t 2. (1.13) r 31 r 32 r 33 t 3 Första ledet ekvaton (1.12) vsar ett sätt att beskrva perspektvtransformaton. Se fgur 1.3. V önskar projcera punkten (U, V, W ) tll det deala bldplanet (u,v ) som är beläget på avståndet f från lnsen. Lkformga tranglar ger { v f u f = V = W U W (1.14) vlket är just det som beskrvs första ledet av ekvaton (1.12). De verklga bldko- 5
kamera koordnat system U V f lns u W v dealt bldplan Y X Z världs koordnat system v verklgt bldplan u Fgur 1.2: Hålkameramodellen, beräknngsvänlg geometr U f u W V v (U,V,W) Fgur 1.3: Perpektvtransformaton. 6
ordnaterna (u, v) T är normalt sett sklda från de deala bldkoordnaterna (u,v ) T. Det gäller att (u, v, 1) T = A (u /f, v /f, 1) T (1.15) och A = α γ u 0 0 β v 0 0 0 1 = f γ u 0 0 kf v 0 0 0 1, (1.16) där (u 0,v 0 ) T är bldkoordnaterna som svarar mot optska axelns skärnng med bldplanet, (u,v ) T =(0, 0) T, där α och β är skalfaktorerna för bldens u- och v-axlar och där γ beskrver skevnngen mellan bldens två axlar. Ekvaton (1.12) och (1.15) ger nu s(u, v, 1) T = A[R t] (X, Y, Z, 1) T, (1.17) där v har ersatt W med s för att få ett mer generellt samband. Det är ju nte bara den verklga A[R t]-matrsen som mappar (X, Y, Z) T på (u, v) T, utan även k A[R t], där k är en konstant. Matrserna A och [R t] kan bestämmas ndvduellt va en kalbrerngsprocedur. Det fnns många olka sätt att göra detta på, en varant beskrvs [7]. V kommer dock nte att göra detta här, utan endast bestämma hur en punkt (X, Y, Z, 1) T mappas på bldplanet (u, v, 1) T va matrsen C, där C = A[R t], se ekvaton (1.18). 1.3 Kalbrerng av en kamera 3D-världen Se fgur 1.2. Ekvaton (1.18) nedan beskrver hur en en punkt (X, Y, Z, 1) T världen mappas på bldplanet (u, v, 1) T va matrsen C, s(u, v, 1) T = C (X, Y, Z, 1) T. (1.18) Om v nu bestämmer ett antal korresponderande punkter världen (X,Y,Z ) och blden (u,v ), där 1 N, så kan matrsen C bestämmas upp tll en skalfaktor på grund av varabeln s ekvaton (1.18). V kan därför välja att sätta det ssta elementet C 34 =1, vlket ger Låt C = C 11 C 12 C 13 C 14 C 21 C 22 C 23 C 24 C 31 C 32 C 33 1. (1.19) c =(C 11,C 12,C 13,C 14,C 21,C 22,C 23,C 24,C 31,C 32,C 33 ) T. (1.20) 7
Med hjälp av de uppmätta korresponderande punkterna värld och bld erhålles följande ekvatonssystem D c = X 1 Y 1 Z 1 1 0 0 0 0 u 1 X 1 u 1 Y 1 u 1 Z 1 C 11 0 0 0 0 X 1 Y 1 Z 1 1 v 1 X 1 v 1 Y 1 v 1 Z 1 C 12 X 2 Y 2 Z 2 1 0 0 0 0 u 2 X 2 u 2 Y 2 u 2 Z 2 C 13........... 0 0 0 0 X N Y N Z N 1 v N X N v N Y N v N Z N C 33 u 1 v 1 = u 2 = f. (1.21). v N Som synes behövs det nu mnst sex punkter (eller snarare 51/2) punkter världen (X,Y,Z ) för att bestämma C. Men lösnngen blr naturlgtvs säkrare ju fler punkter v mäter upp. V gör nu följande omskrvnng D c = f D T D c = D T f c =(D T D) 1 D T f c = D f (1.22) där D är den så kallade pseudonversen av D. För att ovanstående ska gälla måste (D T D) vara nverterbar. Notera att (D T D) blr en kvadratsk matrs. Under förutsättnng att (D T D) är nverterbar och att antalet rader D är större än eller lka med antalet kolumner så gäller ssta ledet D = (D T D) 1 D T. Man kan vsa att ekvaton (1.22) är ekvvalent med både Maxmum Lkelhood-mnmerng och Mnsta kvadrat-anpassnng, se avsntt ekvaton (1.18). Efter denna kalbrerng där v har bestämt matrsen C, kommer v att kunna förutsäga hur en punkt världen (X, Y, Z) T kommer att mappas på bldplanet (u, v) T. Däremot kan v nte säga att en vss punkt (u, v) T blden motsvarar en vss punkt världen. I stället är det så att en punkt (u, v) T blden motsvarar en lnje världen. Har v däremot mer kunskap om var våra punkter världen lgger, t ex att de alla lgger ett plan, en platt värld, är det möjlgt att exakt bestämma korrespondensen mellan bldpunkt och punkt världen. Detta vsar v nästa avsntt. En annan möjlghet är att utnyttja stereo, dvs användnng av två st kalbrerade kameror. Den ntressanta punkten dentferas båda kamerablderna, vlka ger 8
varsn rät lnje världen. Skärnngspunkten mellan dessa båda lnjer ger det exakta läget av punkten världen. 1.4 Kalbrerng av en kamera och en platt värld, en homograf Se fgur nedan. V vll kalbrera en kamera mot en platt värld, z = 0, genom kamera koordnat system U f V lns W u v dealt bldplan Y X Z världs koordnat system Z=0 v verklgt bldplan u Fgur 1.4: Hålkameramodellen med en platt värld, homograf, Z =0 att bestämma sambandet mellan bldkoordnater (u, v) T och världskoordnater (X, Y, Z =0) T. V ernrar oss ekvaton (1.18) och sätter Z =0vlket ger s(u, v, 1) T = C (X, Y, 1) T. (1.23) Om v nu bestämmer ett antal korresponderande punkter världen (X,Y ) och blden (u,v ), där 1 N, så kan matrsen C bestämmas upp tll en skalfaktor på grund av varabeln s ekvaton (1.23). V kan därför välja att sätta det ssta elementet C 33 =1, vlket ger C = C 11 C 12 C 13 C 21 C 22 C 23 C 31 C 32 1. (1.24) Låt c =(C 11,C 12,C 13,C 21,C 22,C 23,C 31,C 32 ) T. (1.25) 9
Med hjälp av de uppmätta korresponderande punkterna värld och bld erhålles följande ekvatonssystem D c = X 1 Y 1 1 0 0 0 u 1 X 1 u 1 Y 1 0 0 0 X 1 Y 1 1 v 1 X 1 v 1 Y 1 X 2 Y 2 1 0 0 0 u 2 X 2 u 2 Y 2........ 0 0 0 X N Y N 1 v N X N v N Y N C 11 C 12 C 13. C 32 = u 1 v 1 u 2. v N = f. (1.26) Som synes behövs det nu mnst fyra punkter världen (X,Y ) för att bestämma C. Men lösnngen blr naturlgtvs säkrare ju fler punkter v mäter upp. Precs som tdgare, ekvaton (1.22), blr lösnngen c = D f. (1.27) Efter denna kalbrerng där v har bestämt matrsen C, kommer v att kunna förutsäga hur en punkt världen (X, Y, Z =0) T kommer att mappas på bldplanet (u, v) T. Tll skllnad mot det generella fallet avsntt 1.3, gäller det nu också att en vss punkt (u, v) T blden motsvarar en vss punkt världen. 10
Kaptel 2 Några matematska verktyg 2.1 Mnsta kvadrat-lösnng med pseudonversmetoden Betrakta ekvatonssystemen (1.21) och (1.26). Dessa ekvatonssystem är det generella fallet överbestämda. Antag att v har mätt upp punkterna (X,Y,Z ) (eller (X,Y )) och (u,v ), för 1 N. Då gäller f = Dc + E, (2.1) där E är de fel, som beror av onoggrannheten mätnngen. Låt oss nu mnmera summan av felen kvadrat, dvs E T E =(f Dc) T (f Dc) = f T f c T D T f f T Dc + c T D T Dc = f T f 2c T D T f + c T D T Dc. (2.2) Mnmum fås där dervatan är lka med noll, dvs vlket ger 0=D T Dc D T f, (2.3) c =(D T D) 1 D T f = D f, (2.4) där D kallas pseudonversen av D. Pseudonversen fås enkelt Matlab m h a kommandot: D_ps_nv = pnv(d); 11
2.2 Lösnng av ett homogent ekvatonssystem med SVD Här vsar v en generell metod för att lösa ett homogent ekvatonssystem, Xb =0. Metoden använder SVD vlket betyder sngulärvärdesuppdelnng. Metoden används [7]. Man kan vsa att en godtycklg matrs X kan skrvas X = USV T, (2.5) se t ex [2], [3] eller [6]. Det gäller att U och V T är ortonormala matrser, dvs U U T = E och V V T = E, där E är enhetsmatrsen. För ortonormala matrser gäller också att rad-vektorerna lksom kolonn-vektorerna är ortogonala. S är en dagonalmatrs. Antag t ex att X är en 4 3-matrs. Då gäller x 11 x 12 x 13 x 21 x 22 x 23 x 31 x 32 x 33 = x 41 x 42 x 43 u 11 u 12 u 13 u 14 u 21 u 22 u 23 u 24 u 31 u 32 u 33 u 34 u 41 u 42 u 43 u 44 σ 1 0 0 0 σ 2 0 0 0 σ 3 0 0 0 v 11 v 21 v 31 v 12 v 22 v 32 v 13 v 23 v 33 Enlgt defntonen är σ >σ +1. V gör nu följande omskrvnng σ 1 0 0 0 σ 2 0 0 0 σ 3 0 0 0 X b =0 USV T b =0 U T USV T b = U T 0=0 SV T b =0 Sätt b = µv 3 = µ(v 13,v 23,v 33 ) T. Detta ger v 11 v 21 v 31 v 12 v 22 v 32 v 13 v 23 v 33 µ v 13 v 23 v 33 = µ där ssta lkhetstecknet ges av att V :s rad- och kolonnvektorer är ortogonala. I det generella fallet ersätts σ 3 med σ n. Det gäller att ju mndre σ n är desto bättre är lösnngen. σ n =0löser Xb =0perfekt och lösnngen är alltså b = µv n = µ(v 1n,v 2n,..., v nn ) T. Matlab-koden blr: [U,S,V] = svd(x) b = V(:,n); 12 0 0 σ 3.,
Ltteraturförtecknng [1] Dana H. Ballard and Chrstopher M. Brown, Computer Vson, Prentce-Hall Inc., 1982, ISBN 0-13-165316-4 [2] Åke Björck, Numercal Methods for Least Squares Problems, SIAM, 1996, ISBN 0-89871-360-9, http://www.ma.lu.se/ akbjo/lspbook.html [3] Germund Dahlqust and Åke Björck, Numercal Mathematcs n Scentfc Computaton, http://www.ma.lu.se/ akbjo/nmbook.html [4] Danelsson m fl, Blder och Grafk, TSBB65, 2005. Del2., Kursmateral tll Blder och Grafk, TSBB65, Lnköpngs Unverstet, Insttutonen för Systemteknk, SE-581 83 Lnköpng [5] Per-Erk Forssén, Personal communcaton 2004-2005. [6] Mchael T. Heath, Scentfc Computng, McGraw-Hll, 2002, ISBN 0-07- 112229-X [7] Zhengyou Zhang, A Flexble New Technque for Camera Calbraton, Techncal Report, MSR-TR-98-71, 1998, Mcrosoft Research, Mcrosoft Corporaton, One Mcrosoft Way, Redmond, WA 98052, http://research.mcrosoft.com/ zhang 13