Aplikacija za merjenje razdalj s pomočjo stereoskopskih slik Jernej MROVLJE, Damir VRANČIČ Izvleček: Stereoskopija je veda, ki se ukvarja z zajemom in prikazovanjem stereoskopskih slik. Obstaja več metod zajema stereoskopskih slik, najpomembnejši pa je zajem s pomočjo kombinacije dveh kamer - t. i. stereoskop-skega sistema. Stereoskopski par sestavljata dve med seboj rahlo zamaknjeni sliki istega motiva. Diferenca med slikama in dodatne informacije o stereoskopskem sistemu (fizična razdalja med kamerama, goriščna razdalja) nam omogočajo izračun razdalje med kamero in poljubnim objektom v prostoru, ki smo ga zajeli na slikah. V prispevku predstavljamo implementacijo metode za merjenje razdalj s pomočjo stereoskopskih slik v samostojno aplikacijo. Slednja je zamišljena kot del neinvazivnega sistema za merjenje razdalj, ki omogoča takojšnjo analizo preko stereoskopskega sistema zajetih slik. Znotraj aplikacije na izbrani levi sliki določimo objekt, katerega oddaljenost želimo izračunati. Lokalizacija izbranega objekta na desni sliki se opravi avtomatsko. Na podlagi razlik položaja izbranega objekta na levi in desni sliki izračunamo končno razdaljo do objekta in napako lokalizacije. Delovanje aplikacije smo preverili na množici stereoskopskih slik, zajetih v naravnem okolju. Večina dobljenih rezultatov je znotraj tolerance ene slikovne točke. Ključne besede: merjenje razdalj, stereoskopske slike ■ 1 Uvod Metode za merjenje razdalj lahko razdelimo na pasivne in aktivne. Med slednje prištevamo merjenje razdalj s pomočjo laserskih, ultrazvočnih in radijskih valov. Pasivne metode so manj razširjene, njihova prednost pa je predvsem v tem, da se razdalja izračunava samo na podlagi prejete informacije (npr. svetlobe). Merjenje razdalj s pomočjo stereoskopskih slik spada med pasivne metode, razdaljo pa izračunavamo na podlagi podatkov, pridobljenih iz zajetih slik. V prispevku je predstavljena aplikacija za merjenje razdalj s pomočjo stereoskopskih slik. Zamišljena je kot del neinvazivnega sistema za merjenje razdalj, ki omogoča takojšnjo analizo preko stereoskopskega sistema zajetih slik. Jernej Mrovlje, univ. dipl. inž., izr. prof. dr. Damir Vrančič, univ. dipl. inž., Institut »Jožef Stefan« Ljubljana ■ 2 Zajem stereoskopskih slik in izpeljava razdalje Obstaja več različnih metod zajema stereoskopskih slik. Prvotno so v ta namen uporabljali stere- oskopske kamere, danes pa so jih izpodrinili modernejši stereoskopski sistemi [1]. Gre za kombinacijo dveh enakih kamer, ki ju združimo na vodilu. Pri tem moramo paziti na to, da sta kameri med seboj vo- Slika 1. Stereoskopski sistem dveh kamer Canon PowerShot A640 doravno in horizontalno poravnani. Poglavitnega pomena je tudi hkratno proženje obeh kamer, izvedemo pa ga s posebnimi upravljalniki, ki omogočajo sinhronizacijo in upravljanje dveh kamer hkrati [6, 7]. Slika 1 prikazuje stereoskopski sistem dveh kamer Canon PowerShot A640, ki smo ga uporabili za zajem testnih slik. Stereoskopske slike so vedno posnete v parih, posamezni sliki v paru pa prikazujeta isti motiv. Odločilna razlika med slikama v paru je ta, da sta slednji zajeti z različnih položajev oziroma z različnih zornih kotov. Shematični prikaz zajema slik s stereoskopskim sistemom je prikazan na sliki 2. Predpostavimo, da levo sliko zajamemo v točki SL, desno sliko pa v točki SD. B je razdalja med kamera-ma^o horizontalni zorni kot kamer in D razdalja med stereoskopskim sistemom in objektom na sliki (npr. drevesom). Razdalji x1 in x2 opisujeta horizontalno lokacijo objekta na levi in desni sliki stereoskopskega para, in pa sta pripadajoča kota. S pomočjo geometrijskih izpeljav iskano razdaljo D zapišemo kot funkcijo razdalje med kamerama (B), zornega kota kamer ^o), širine zajetih slik (x0) in razlike horizontalne lokacije objekta med levo in desno sliko (x1-x2): D = Bx, (1) 2 tan ■ 3 Algoritem Algoritem za merjenje razdalj s pomočjo stereoskopskih slik je bil napisan v programskem paketu Matlab in pozneje s pomočjo orodja Matlab Compiler preveden v samostojno aplikacijo. Uporabniški vmesnik aplikacije je prikazan na sliki 3. Aplikacija trenutno omogoča »off-line« delovanje, torej obdelavo predhodno zajetih stereoskopskih slik. Znotraj aplikacije na levi sliki stere- Slika 2. Shematični prikaz zajema stereoskopskih slik oskopskega para določimo objekt, katerega oddaljenost želimo izračunati. Lokalizacija izbranega objekta leve slike na desni sliki se izvrši av- tomatsko, poteka pa v dveh korakih. Najprej se izvrši primarno, nato pa še sekundarno iskanje. Slika 3. Uporabniški vmesnik Slika 4. Področje izbranega objekta na levi sliki in primarno iskalno področje na desni sliki Na podlagi lastnosti stereoskop-skih slik sklepamo, da se bo izbrani objekt leve slike na desni sliki nahajal na podobni lokaciji - delno zamaknjen ali levo ali desno. Primarno iskanje objekta poteka v horizontalni smeri in je podrobneje opisano v [4]. Na sliki 4 sta prikazani enaki področji stereoskopskega para slik; na levi sliki je označeno področje izbranega objekta IL, na desni sliki pa področje primarnega iskanja ID. Področje IL naj bo kvadratne oblike velikosti aL x aL X 3, področje ID pa pravokotne oblike velikosti (aL + 2aD) x aL x 3. Prvi dve dimenziji sta podani v slikovnih točkah, tretja dimenzija pa predstavlja barvno komponento RGB-slike. Primerjava med področjema leve in desne slike poteka po metodi SAD (angl. Sum Of Absolute Differences): S-l i-1 J-1 (2) Slika 5. Primerjava področja objekta leve slike s področjem primarnega iskanja desne kjer b predstavlja posamezno barvno komponento RGB-slike oz. izbranega področja, IDk pa podpodročje znotraj področja ID. IDk je enake velikosti kot področje IL, definiramo pa ga s pomočjo t. i. izbirnega okna, ki je na sliki 5 prikazano z belo polno črto. Z izbirnim oknom se pomikamo od levega proti desnemu robu iskalnega področja (ID) v korakih po eno slikovno točko. V vsakem koraku k tako definiramo podpodročje (3) k = \:a^-a,+\, ki ga v nadaljevanju po enačbi 2 primerjamo s področjem IL, kot to kaže slika 5. Bolj kot sta si področji, ki ju primerjamo, podobni, manjša je vrednost vsote njune absolutne razlike (SAD). Podpodročje IDi, ki mu po enačbi 2 pripada najmanjša vrednost vsote absolutne razlike, predstavlja najboljše ujemanje s področjem IL, obenem pa tudi lokacijo izbranega objekta leve slike na desni sliki. Ker kameri znotraj stereoskopskega sistema ne moremo idealno vertikalno poravnati, so objekti med levo in desno sliko v manjši meri zamaknjeni tudi po vertikali. Slika 6 prikazuje dva primera slabe poravnave kamer, ki na zajetih slikah povzroči vertikalno napako. Za odpravljanje slednje smo v algoritem zato vgradili sekundarno iskanje. Opravi se po koncu primarnega iskanja, poteka pa v horizontalni in vertikalni smeri. Izhodišče zanj predstavlja rešitev primarnega iskanja (IDi), ki je na sliki 7 označena z belo črtkano črto. Področje IDi razširimo v vertikalni in horizontalni smeri in tako definiramo področje sekundarnega iskanja desne slike (ID2). Ker vemo, da je vertikalna napaka minimalna, je področje ID2 lahko le malenkost večje od področja iskanega objekta. V primeru sekundarnega iskanja se z izbirnim oknom po področju ID2 pomikamo v vertikalni in horizontalni smeri. Primerjava področij tudi tu poteka s pomočjo metode SAD. Če je objekt zaradi vertikalne napake zajema slike zamaknjen tudi po vertikali, potem s pomočjo sekundarnega iskanja slednjega še natančneje loka- S sheme na sliki 10 izpeljemo napako razdalje, ki je posledica napačne lo-kalizacije objekta za kot : (5) Slika 6. Prisotnost vertikalne napake liziramo in s tem izboljšamo izračun končne razdalje. Program nam omogoča grafični prikaz vsot absolutnih vrednosti razlik IDk in IL za vse korake primarnega in sekundarnega iskanja (slika 8). Na podlagi razlik položaja izbranega objekta na levi in desni sliki z enačbo (1) izračunamo končno razdaljo do objekta in pripadajočo napako razdalje. 3.1 Horizontalna napaka Če kameri znotraj stereoskopskega sistema nista horizontalno poravnani, je na zajetih slikah tudi horizontalna napaka (slika 9). Za pravilen izračun razdalje je omenjeno napako potrebno odpraviti, zato smo v aplikacijo vgradili funkcijo vnosa referenčne točke (znane razdalje do poljubnega objekta). ■ 4 Napaka razdalje Pravilna lokalizacija izbranega objekta na desni sliki odločilno vpliva na končno napako izračunane razdalje. Bolj natančno kot določimo lokacijo objekta, bolj točna bo izračunana razdalja. Primerjavo med desno in levo sliko napravimo po korakih ene slikovne točke, torej lokacijo objekta na desni sliki določimo na eno slikovno točko natančno. Če je zorni kot kamere enak (p^, širina zajetih slik pa je x0, potem z določeno stopnjo posplošitve lahko zatrdimo, da eni slikovni točki pripada zorni kot: A,pA (4> AD«—tanA^ Zavedati se moramo tudi napak samega optičnega sistema kamer, ki prav tako odločilno vplivajo na končni rezultat (izračunano razdaljo). Na tem mestu omenimo predvsem radialno distorzijo, ki je najbolj problematična. Ločimo dve obliki radialne distorzije, in sicer »blazino« (angl. pincushion) in »sodček« (angl. barrel). Pojav blazine, ki je značilen predvsem za telefoto objektive, upogne ravne linije proti središču slike. Pojav sodčka upogne ravne linije proti robovom slike. Ta pojav je pogostejši, pojavlja pa se predvsem pri širokokotnih objektivih. Vpliv radialne distorzije Slika 7. Izbira področja sekundarnega iskanja (ID2) Slika 8. Grafični prikaz vsot absolutnih vrednosti razlik IDk in IL za primarno in sekundarno iskanje Slika 9. Horizontalno neporavnani kameri na izračun razdalj s pomočjo stereo-skopskih slik je analiziran v [8]. ■ 5 Rezultati Delovanje aplikacije smo preverili na množici stereoskopskih slik, zajetih v naravnem okolju. Pri tem smo uporabili stereoskopski sistem, prikazan na sliki 1. Na razdaljah 10, 20, 30, 40, 50 in 60 metrov pravokotno na stereoskopski sistem smo na štirih različnih lokacijah namestili testne objekte (tablice), kot to kaže shema na sliki 11. Razdalje so bile izmerjene s pomočjo tračnega metra. Napako razdalj pri postavitvi tablic zaradi razgibanega terena ocenjujemo na ±0,1 meter. Slike testnih objektov smo z največjo možno ločljivostjo (3648 x 2736) zajeli pri šestih različnih vrednostih stereoskopske baze B (20, 30, 40, 50, 60 in 70 cm). Napaki radialne distorzije smo se izognili na ta način, da smo testne objekte zajeli v centralnem delu slik, kjer je napaka radialne distorzije minimalna. Slika 10. Relativna napaka izračunane razdalje Na skupno 24 parih stereoskopskih slik smo z našo aplikacijo izračunali razdalje do posameznih tablic. Pri izračunu razdalj smo za referenčno točko, s pomočjo katere smo odpravili horizontalno napako, uporabili tablico na razdalji 30 metrov. Za izračun posamezne razdalje je algoritem potreboval manj kot eno sekundo. Čas izračuna razdalje je sicer sorazmeren z velikostjo izbranega iskalnega področja desne slike. Večina dobljenih rezultatov je znotraj tolerance ene slikovne točke. V tabeli 1 so predstavljene povprečne vrednosti napak izračunanih razdalj. Grafični prikaz rezultatov je na slikah 12 in 13. Tabela 1. Povprečne vrednosti napak izračunanih razdalj ÄD v odvisnosti od velikosti stereoskopske baze Slika 11. Grafični prikaz postavitve testnih objektov v naravi 442 B [m] Povprečne vrednosti nap razdalj [m ak izračunanih 10 m 20 m 40 m 50 m 60 m 0,2 0,14 0,5 2,0 3,0 4,4 0,3 0,09 0,3 1,4 2,0 2,9 0,4 0,07 0,3 1,0 1,6 2,3 0,5 0,05 0,2 0,8 1,3 1,8 0,6 0,04 0,2 0,7 1,0 1,5 0,7 0,04 0,1 0,6 0,9 1,3 Slika 12. Povprečne vrednosti napak izračunanih razdalj AD za testne objekte na razdaljah 10, 20 in 40 metrov Slika 13. Povprečne vrednosti napak izračunanih razdalj AD za testne objekte na razdaljah 50 in 60 metrov Literatura [1] M. Vidmar, ABC sodobne stere- ofotografije z maloslikovnimi kamerami, Cetera, 1998. [2] H. Walcher, Position sensing - Angle and distance measurement for engineers, Second edition, Butterworth-Heinemann Ltd., 1994. [3] Welt der stereoskopie, http://www.stereoskopie.com. [4] J. Mrovlje, D. Vrančič, Distance measuring based on stereoscopic pictures, Proceedings of the 9th International PhD Workshop on Systems and Control, oktober, 2008, Izola, Slovenija. [5] J. Carnicelli, Stereo vision: measuring object distance using pixel offset, http://www.alexan-dria.nu/ai/blog. [6] D. Vrančič, S. L. Smith, Permanent synchronization of camcorders via LANC protocol, Stereoscopic displays and virtual reality systems XIII: 16-19 January, 2006, San Jose, California, USA, (SPIE, vol. 6055). [7] D. Vrančič, Synchronisation of two camcorders with PI controller - 3D LANC master, Proceedings of the 6th International PhD Workshop on Systems and Control, 4-8. oktober, 2005, Izola, Slovenija. [8] J. Mrovlje, D. Vrančič, Vpliv di-storzije na razdalje, izračunane s pomočjo stereoskopskih slik, Elektrotehnični vestnik, 43-48, 77(1), Ljubljana 2010. Portorož, 11. in 12. junij C=l—H— T ■EVI» » FLUIDNO TEHNIKO. AVTOMAHZACUO IN MEHATRONIICO telefon: + (0) 1 4771-704 telefaks: + (0) 1 4771-761 httpZ/Vvvvvv.fs.uni-lj.siA/entil/ email: ventil@fs.uni-lj.si Distance-measuring method based on stereoscopic images Abstract: Stereoscopy is a technique used for recording and representing stereoscopic images by using one stereoscopic camera or two single lens cameras. Stereoscopic images allow us to calculate the distance from the camera(s) to the chosen object within the image. In this paper we present an implementation of the distance-measuring method based on stereoscopic images into a standalone application. When a certain object is selected in the left image, the same object is automatically detected in the right image by means of optimization algorithm. When object's position is found in both images, the actual distance to the object is calculated by applying geometrical rules. The distance is calculated from differences between the object's position in both images as well as additional technical data like focal length and distance between the cameras. In order to test the accuracy of the implemented distance-measuring method, a group of 24 stereoscopic images was taken. The average distance accuracy under one pixel was achieved for all test objects. Keywords: distance-measuring method, stereoscopic images