77 DOLOČANJE POLOŽAJA TELES V PROSTORU IZ ENE SAME INFORMATICA 1/91 2-D SLIKE Barbara Lakner Keywords: attitude determination, methods, polyhedral objects. Insitut Jožef Stefan, Ljubljana Podan je pregled metod za določanje položaja poliedrskih teles v prostoru iz ene same 2-D slike. Opisane so nekatere metode, ki pridejo v poštev pri prepoznavanju poliedrskih teles: Robertsova, analitični Horaudova in DhomejevU ter iteracijska Lowejeva. ABSTRACT: A survey of methods for determination of the attitude of 3-D polyhedral objects from a single perspective view is presented. These methods are used in systems for recognizing polyhedral objects from gray-level pictures. Methods described: Roberts' method, analytical Horaud's method, analytical Dhome's method and Lowe's iterative method. i. UVOD Ogledali si bomo nekaj metod za določanje položaja poliederskega telesa iz ene same 2-D slike. Opisane metode so nastale pri prepoznavanju poliedrskih teles, kjer moramo ugotoviti, ali so na slik: telesa, opisana z 'vnaprej danimi modeli in kje v prostoru ležijo. Pri tem je treba določiti 6 prostostnih stopenj (tri kote zavrtitve okrog koordinatnih osi x,y,z in translacijski vektor). Iskana rotacija in translacija postavita model v prostor tako, da se projekcija transforzniranega modela ujema z dano sliko. Položaj telesa v prostoru lahko določimo na različne načine: z aktivnimi metodami zaznavanja ( dobivanje globinske slike s pomočjo laserskih žarkov, fotometrične metode), s stereovidom, z informacijami, dobljenimi s pomočjo gibanja (obravnava več zaporednih slik) in z merjenjem globine s pomočjo teksture in senc. Vendar aktivne metode ne pridejo vedno v poštev (če bi imeli npr. dva taka sistema za prepoznavanje drugega ob drugem, bi se laserski žarki lahko motili med sabo); stereovid ne pride v poštev za določanje položaja teles, ki so zelo oddaljena; informacija, dobljena s pomočjo gibanja je uporabna, kadar imamo dovolj veliko relativno gibanje med opazovalcem in objektom, kar je praktično izvedljivo za blizu stoječe objekte; merjenje globine s pomočjo teksture in senc pa pride v poštev za posebne primere in ni vedno dovolj natančno. Pionirsko delo na področju prepoznavanja poliedrskih teles je opravil Roberts ji]; v njem se ukvarja tudi z določanjem položaja telesa. Kanade [2] je ta problem rešil analitično za ortografsko projekcijo, vendar imamo opravka s perspektivno projekcijo, zato si bomo ogledovali le take metode. Barnard [3] interpretira tro- jico črt na sliki kot oglišče, kjer se stikajo trije robovi. Problem je rešil pri predpostavki, da so koti med robovi enaki 7r/2. Shakuna-gar in Kaneko [4] sta predpostavila, da je le en rob izmed trojice pravokoten na ravnino ostalih dveh. Horaudova metoda [5] nima omejitve za kote med robovi; problem prevede na reševanje sistema transcendentnih enačb, ki ga reši s tabeliranjem. Dhome in soavtorji ¡6) rešujejo problem analitično z iskanjem ničel polinoma 8 stopnje. Rešitev Huttenlocherja in Ullmana [7] je vsebovana v prej navedeni metodi. Lowe [8], (9] rešuje problem iterativno z Newtonovo metodo. Pri danem začetnem približku dobimo ob obravnavi treh točk eno samo rešitev. Zen Chen s soavtorji (10) določa položaj kocke s pomočjo točk izginjanja (vanishing points). Metoda pride V poštev pri objektih, ki so posneti tako od blizu, da se nosilke vzporednih stranic na sliki sekajo. 2. ROBERTSOVA METODA Oglejmo si najprej relacijo med sliko in sceno: slikovna ravnina naj bo kar ravnina (i, y), vse točke na sceni naj imajo z koordinato negativno in naj bo gorišče v točki F (0,0,/). i*- F y ) j'/na. ravnin«, T(x,y,i) vV si/k< 78 Če je T(s, y, z) točka na sceni in Xt (xt, jh, 0) njena projekcija, je projekcija iz scene na slikovno ravnino Uvedemo še globino projicirane točke, katere z koordinato definiramo kot Zi := jzjf- Zdaj imamo preslikavo R3 —» R3\ Pa3(x, y,2r) = (717/. /ir/. 737/)- Predpis ni linearen, lahko pa ga lineariziramo z uvedbo homogenih koordinat: P3} predstavimo kot preslikavo P: R* -» R*. Vektor a = (x,y,z) v kartezičnih koordinatah izrazimo v homogenih koordinatah kot ah = (wx,xy, xy, w), kjer je w poljubna konstanta. Vektorja (wx,wy,wz,w) in (x,ytz, 1) sta ekvivalentna za w £ 0, oziroma predstavljata isti vektor v R?. V tem primeru zapišemo: (wx,wy,wz,w) = (x,y,z, 1). Projekcija P torej je z' 1 0 0 0\ 0 10 0 0 0 10 Vo o -1// i/ Če vzamemo za w = 1, dobimo vektor (x,y,z,(f — z)//), kar se ujema s projektorjem P3J. Naj bodo rotacije za kot p okrog osi x, za kot xl> okrog osi y oziroma za kot t? okrog osi z. Tako kot to že nakazuje spodnji indeks, gledamo nanje kot na preslikave v 3-D prostoru. Zapišimo z matriko /i|3: /10 0 \ R£ j = 0 cos -sin^j . ^0 sin p cos ip J Podobno zapišemo matriki za R"a in R33 (glej [llj). Rotacije so v homogenih koordinatah predstavljene takole: ;)■ ')• «-("i- in celotna rotacija^je R = R..R, .R,. Translacijo za vektor (z,, y,, z,) predstavimo v homogenih koordinatah kot Naj bo Q := TR operator, s katerim je predstavljen poljuben premik telesa v prostoru. Preslikava Q postavi model na sceno tako, da se le-ta projicira s projektorjem P na dano sliko. Če zapišemo komponente produkta H = PTR, vidimo, da lahko tretjo vrstico matrike H izračunamo iz njene Četrte vrstice. Naj bo H matrika H brez tretje vrstice. Če je H(x, y, z, w) = (*\y\z\u/')) je H[x,y,z,w) = (x',y',w'). Zdaj lahko definiramo problem: imejmo n točk T, (x,, jr, , z<, 1) modela in prav toliko točk T|(x;,yi,l) na sliki. Iščemo tako rotacijo in translacijo, ki bosta postavili model na sceno tako, da se bo sprojiciral v dano sliko. Iščemo torej tako preslikavo H, da bo H(Ti) 3 TJ, . = 1,...,» (2.1) Iz H izračunamo H in od tod Q = P"1 iT, kar je rešitev nažega problema. Sistem (2.1) rešimo takole: A (Ti) = u),(T|), . = 1.....n H [T,.....T„) = (T,.....T'„ j diag(u>i ,...,«„), kjer so elementi matrike H in , ..wn neznanke. Predpostavimo, da so elementi matrike H med sabo neodvisni in poiščemo rešitev z metodo najmanjših kvadratov [lj. Tako dobljena rešitev ne ustreza nujno pogojem, kakršnim morajo ustrezati elementi matrike H. Koliko točk Ti potrebujemo za rešitev sistema? Imamo 12 + n neznank in 3n enačb, torej potrebujemo vsaj 6 različnih točk za enolično rešitev. 3. ANALITIČNA METODA (Horaud) Gorišče postavimo v izhodišče koordinatnega sistema: P Zapišimo projekcijo P(x,y,z) - (xf/z,yf/z,f). Predstavimo vektorje s sferičnimi koordinatami: x = cosacos/J, y = sin a cos/?, z = sin /3, kjer za parametra a in 0 velja 0 < a < 2jt, -ir/2 < 0 < t/2. 79 Imejmo normirane vektorje ,L,, L, s skupno začetno točko na modelu in naj bodo koti med njimi tako kot je označeno na sliki. Naj bo S normala na ravnino vektorjev Li , L,. Naj bodo li,lj,l« slike vektorjev Li,L9,Lt . Položimo skozi gorišče in vektorje li,lj,l» ravnine (intcrpretacijske ravnine) z normalami Pi,Pa,P,. Vektorji L^Lj.L, leže na teh inter-pretacijskih ravninah z normalami P,,Pj oziroma P8. Velja: L, = SxPi, L, = SxP,. (3.1) Po krajši izpeljavi [5] dobimo t = dn/||n||. (3.7) Tako smo določili vektor translacije do skalarja natančno. Če poznamo še eno trojico vektorjev s skupno točko V,, potem določimo d takole: V (S x Pi)(S x P,) = ||S x P, || ||S x Pa||cos.(p (3.2) L, = S sin V" +'Li costfcosV» + (SxL,) sini? cos 0 (3.3) in (S.P,)||S X P,||sin0 + S.(P! x P ,) cos t? cos rp + (S.P,)(S.P,) sindsin t/» = (P, .P8) sint?sini/> (3.4) Predpostavimo, da poznamo kote Z rešitvijo enačb (3.2) in (3.4) dobimo normalo S in od tod s pomočjo (3.1) in (3.3) vektorje L! ,Lj in La. Še vedno pa ne vemo, v kateri točki prostora se ti vektorji stikajo. Sistem enačb (3.2), (3.4) je nelinearen in transcendenten, zato ga avtor ne rešuje analitično, ampak rešitev konstruira. Enačbi (3.2) in (3.3) zapiše kot: cos
. (3.6) Tabeliramo funkcije f,gi,g2,g,, za a,0 iz intervalov 0 < a < 2jt, 0 < 0 < jr/2 z določenim korakom-in točko za točko kostru-iramo krivulji, ki ju predstavljata enačbi (3.5) in (3.6). Presečišča krivulj so možne rešitve za smer vektorja S. Pri tem je treba pripomniti, da tabeliramo funkcije f,gitgi,g3 le enkrat in rezultate uporabimo pri različnih predpostavkah za kote' := enxe,, in tretji bazni vektor je pravokoten na to ravnino ei« := Voi x v0J. Prehodna matrika je Rm = (v0l,v0i x (v0i x v0,),v01 x v0,)~l . Uvedemo še nov koordinatni sistem (S,„), tak da (i,y) ravnina ustreza interpretacijski ravnini in da je os z kolinearna z e0i • če ima smerni vektor Voi premice l0i koordinate v01 = (oci,6oi> in točka p0i na l0i koordinate p0i = (zoi ,Voi ,f), lahko transformacijsko matriko R, med (Si») in (S0„) izrazimo 1 fvF+^n 0 0 V0*' -boi 0\ R„ = 0 / d,, U» o». 0 , 0 -d», / J{ 0 0 1J kjer je ¿o, = OoiVoi -fcoi^oi- Z uvajanjem novih koordinatnih sistemov smo dosegli, da iščemo rotacijo kot preslikavo med (Sim) in (Slt,) v obliki Raf (zavrtitev za kot a okrog osi z in zavrtitev za kot /? okrog osi y). Veljati mora V,i = iio^Vn. Zaradi (4.1) rešujemo sistem NjiVj! = Njiiža^Vu, 1 = 1,2,3, za neznanke a,¡3. Od teh treh enačb sta uporabni le dve, ki ju v [6] prevedejo v obliko i>'=o, »»0 kjer je t — tan a/2, pa so znani koeficienti. (4.2) Ko režimo enačbo (4.2), poiščemo še /?, ki je izražen v obliki cos0 = /(a). Celotna rotacija je = R. RafR^ . Če imamo opravka s koplanarnimi premicami ali s premicami, ki imajo eno točko Bkupno, je polinom (4.2) le četrte stopnje. Izračunajmo zdaj še translacijo Tu„„! Naj bo t := (u, v, w) vektor translacije. Vzemimo, da za vsako premico L0i poznamo tudi točko P0i na njej. Točke P0i se morajo po rotaciji in translaciji projicirati na premice l0i, torej morajo zadoščati pogoju (4.1): (*(Pol)+t).N„ =0, « = 1,2,3 (4.3) Tako imamo linearen sistem treh enačb za neznanke u, v, w, ki ga brez težav rešimo. V posebnem primeru, ko se premice L0i stikajo v skupni točki P0,, imamo v zgornjem sistemu (4.3) le dve linearno neodvisni enačbi, zato si tretjo enačbo dobimo takole: imejmo točke Toi (drugo oglišče roba, ki leži na L0i) in njihove slike tsl. Veljati mora P(i*(T01) + t) =t„, « = 1,2,3 Če je torej v celoti viden vsaj eden od robov, lahko določimo translacijo. če je v celoti vidnih več robov, izberemo tisto translacijo, ki ima najmanjšo vrednost vzdolž osi z. V praksi je težko določiti, kdaj je rob objekta v celoti viden, zato se v takih primerih 81 na izračunano translacijo ne smemo preveč zanašati. Po tej metodi dobimo za translacijo in rotacijo več rešitev. Vse te rešitve moramo preveriti, ali so prave, še prej pa jih lahko veliko večino izločimo s temi preprostimi pravili: - translacija vzdolž psi z ne sme biti negativna - izbrani robovi morajo biti na sliki vidni [9] - rešitev pri kateri slika transformiranega roba ne leži na sliki roba, ne pride v poštev. 5. LOWEJEVA METODA Pri tem pristopu so linearizirane enačbe projekcije in uporabljena je Newtonova metoda za potrebno število iteracij. Še prej pa so enačbe reparametrizirane, tako da je poenostavljeno računanje potrebnih odvodov. Zapišimo preslikave (*,„,«)=*(?-»), (u ,„) = (^,^) = P(x,y,z), (5.1) kjer je t translacijski vektor v R*, R rotacija, ki zavrti model iz osnovnega položaja v položaj, ki ga ima telo na sceni, / goriščna razdalja in (u, v) koordinati točke na sliki, kamor se projicira točka p iz modela. Pri danih točkah p,-, i = 1.....n modela in njihovih slikah (u,, u,) na projekcijski ravnini iščemo tak . premik t in rotacijo R, da bo R, = PR(Pi -t) = K,«0, « = 1.....n • (5.2) Da bi laže računali parcialne odvode, reparametriziramo enačbi (5.1) takole: cos Aip, — sin Aip, 0 sin Aip, cos Aip, 0 0 0 1 10 0 0 cos Aip, — sin Aip, 0 sin Aip, cos Aip, cos A
„,r„ cosyp„), kjer so r«, r„, r, razdalje točke od osi i, y, z. Od tod izračunamo parcialne odvode x,y,z glede na
* V« •P. 0 -z y z 0 -x -y x 0 in nato z zaporednim odvajanjem še parcialne odvode u in v glede na iskane parametre D,,Dy,D,,ip,,ipy,ip. u v D, 1 0 Dy 0 1 D. -fc*x -fc'y