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 « fc(z + cx3) fc3xy „,, ip,c, „, D,, v?« i Pv i Pt • Od tod izračunamo začetni približek Po, Ro za P oziroma R. Velja: PoRoM = (u.o,vio) = (£.0 + U;,£„„ + u,), «' = 1,.. . ,n (x,y,z) = R.p (u,v) = P(x,y,z) = ( fX +Dx'7Tnz+D») W z + Dz Spremenljivki R,f sta isti kot v enačbah (5.1), vektor t pa smo nadomestili z vektorjem {D,,D,,D,). Transformaciji (5.1),(5.3) sta ekvivalentni, če je t = R- D,{z + D.) Dv{* + D.) _n f / ' / ' ' D, in D„ določata položaj telesa na sliki, D, pa oddaljenost objekta od kamere. __ Kako predstaviti rotacijo R s parametri ip,, ipu, ip, (zavrtitev okrog x,y,z osi)? Izhajamo iz začetnega približka Ro, ob spremembi kotov ip,,ipu,Vt za Aip,, Aip,,Aip, pa dobimo novo rotacijo Ri takole: kjer sta Eu0 in E,0 napaki, kiju naredi začetna preslikava P0 Ro ■ Za napako Eu0 vzamem dui dui dui E-=intAD' + 3tAD' + air.AD- dut drii . dut . , . + a—+ a—+ a—« = 1, • • •, n(5.4) dip, dip. Podoben izraz velja za jEu0. Če imamo korespondenco med temi točkami (n = 3), imamo linearen sistem 6 enačb, ki jih rešimo za neznanke A D,, A Dy, A D,, Aip,, A ipv, Aip,. Določimo novo preslikavo PiRi in ponovimo iteracijo. Po [8] je potrebnih le nekaj iteracij, da pridemo do dovolj natančnega rezultata. Če imamo imamo več povezav med točkami (n > 3), uporabimo za reševanje sistema metodo najmanjših kvadratov. Zapišimo sistem (5.4) bolj kompaktno: 82 J h = e, kjer je J Jacobijeva matrika, ki vsebuje parcialne odvode, h vektor, ki vsebuje neznane funkcije in e vektor napak, ki smo jih izmerili na sliki. Režimo normalni sistem JTJh = JTe. Tako dobimo dokaj natančno rešitev, če imamo dober začetni približek. Poleg tega ta metoda konvergira, ie imamo znanih veliko ujemanj med robovi in njihovimi slikami, kar zahteva visoko kompleksnost pri iskanju pravega ujemanja med robovi modela in njihovimi slikami. Zato je dobro po prejšnji metodi (Dhome) dobiti vse možne transformacije z interpretacijo treh robov. Na ta način opustimo hipotezo ( da se slike robov ujemajo z izbranimi črtami na sliki) ali pa dobimo zanjo dober začetni približek. 6. ZAKLJUČEK Ogledali smo si štiri metode za določanje položaja telesa iz ene same 2-D slike. Različni avtorji so vsak na svoj način poenostavljali reševanje nelinearnih transcendentnih enačb. Roberts operira s samimi obrnljivimi operatorji zaradi uvedbe homogenih koordinat in rešuje linearen problem, ker predpostavi, da so elementi transformacijske matrike med sabo neodvisni. Ko dobi rešitev, mora preveriti medsebojno odvisnost matričnih elementov. Za rešitev potrebuje najmanj šest točk modela in njihovih slik. Horaud rešuje sistem dveh transcendentnih enačb z dvema neznankama s tabeliranjem funkcij dveh spremenljivk, konstruiranjem nivojnic teh funkcij in iskanjem njihovih presečišč. To je precej zamuden postopek, ki nam da rezultate z omejeno natančnostjo. Za določitev petih prostostnih stopenj potrebuje oglišče modela, iz katerega izhajajo trije robovi in sliko tega oglišča in robov, za določitev šeste prostostne stopnje pri translaciji pa potrebuje še eno tako oglišče. Dhome in soavtorji morajo poiskati ničle polinoma 8 stopnje, kar tudi ni trivialno. Do polinoma pridejo po uvedbi takih koordinatnih sistemov, da iščejo rotacijo kot funkcijo dveh in ne treh kotov. Na ta način dobimo vse možne rešitve, ki nam lahko služijo za začetni približek pri Lowejevi metodi, ki nam ob dobrem začetnem približku da natančnejši rezultat. Za določitev rotacije potrebujemo tri smerne vektorje iz robov modela ter smerne vektorje iz slik robov ter po eno točko na vsaki sliki roba. Če se obravnavani robovi modela ne stikajo v skupnem oglišču, moramo za določitev translacije za vsak izbrani rob poznati eno njegovo oglišče, če pa se obravnavani robovi modela stikajo v skupni točki, moramo vsaj za en rob poznati še drugo oglišče in njegovo sliko na projekcijski ravnini. Lowe rešuje problem iterativno z Newtonovo metodo; računanje parcialnih odvodov močno poenostavi z uvedbo novih spremenljivk. Za rešitev potrebuje korespondenco med vsaj tremi točkami modela in slike ter dovolj dober približek za začetno rešitev. Natančnost dobljene transformacije lahko povečamo, če poznamo več točk modela in njihovih slik. Robertsovo metodo smo si ogledali, ker je ena prvih; naslednji dve metoda nam dasta vse rešitve, vendar z omejeno natančnostjo, medtem ko z Lowejevo metodo dobljeno rešitev lahko izboljšamo. Zanimivo bi bilo vedeti, kako se spremeni rešitev problema, če malo premaknemo slike'točk. Tako bi vedeli, katera metoda se najbolje obnese pri realnih slikah, ki imajo tudi šume. Zanimive bi bile tudi ocene, kako natančne so dobljene transformacije in kako so opisane metode hitre. LITERATUHA [1] L. G. Roberts: Machine perception of three-dimensional solids, Optical and Electro Optical Information Processing, J.T. Tipplett; Ed. Cambridge, MA: MIT Press, 1965, pp. 159-197 [2] T. Kanade: Recovery of the three dimensional shape of an object from a single view, Artificial Intell., Special Volume on Computer Vision, vol. 17, no. 1-3, Aug. 1981 [3] S. T. Barnard: Choosing a basis for perceptual space, Cotn- Vision Graph. Image Processing, vol. 29, no. 1, pp. 87-99, [4] T. Shakunagar, H. Kaneko: Perspective angle transform and its application to 3-D configuration recovery, Proc. Int. Comput. Vision Pattern Recogn., Miami Beach, FL, June 1986, pp. 594601 [5] R. Horaud: New methods for matching 3-D objects with single perspective views, IEEE Trans, on Pattern Analysis and Machine Intell., vol. PAMI-9, No. 3, May 1987 [6] M. Dhome et a I: Determination of the attitude of 3-D objects from a single perspective view, IEEE Trans, on Pattern Analysis and Machine Intell., vol. 11, No. 12, Dec. 1989 [7] D. P. Huttenlocher, S. Ullman: Object recognition using alignment, in Proc. First Int. Conf. Comput. Vision, London, England, June 1987, pp. 102-111. [8] D. G. Lowe: Three-dimensional object recognition from single two-dimensional images, ArtiBcial Intell., 31(1987), pp. 355-395 [9] D. G. Lowe: Perceptual organisation and visual recognition, Boston, MA: Kluwer, 1985, ch. 7 [10] Zen Chen et a 1: A simple vision algorithm for 3-D position determination using a single calibration object, Pattern Recognition, vol. 22, no. 2, 1989 [llj Yoshiaki Shirai: Three-dimensional computer vision, Springer Verlag 1987, ch. 5