78
SVEUČILIŠTE U SPLITU FAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJE DIPLOMSKI RAD TRODIMENZIONALNA REKONSTRUKCIJA TERENA POMOĆU BESPILOTNE LETJELICE Marko Lovrić Split, rujan 2015.

TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

SVEUČILIŠTE U SPLITU

FAKULTET ELEKTROTEHNIKE, STROJARSTVA I BRODOGRADNJE

DIPLOMSKI RAD

TRODIMENZIONALNA

REKONSTRUKCIJA TERENA POMOĆU

BESPILOTNE LETJELICE

Marko Lovrić

Split, rujan 2015.

Page 2: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

S V E U Č I L I Š T E U S P L I T U

FAKULTET ELEKTROTEHNIKE,

STROJARSTVA I BRODOGRADNJE

Diplomski studij: Automatika i sustavi

Oznaka programa: 210

Akademska godina: 2014./2015.

Ime i prezime: MARKO LOVRIĆ

Broj indeksa: 834-2013

ZADATAK DIPLOMSKOG RADA

Naslov: TRODIMENZIONALNA REKONSTRUKCIJA TERENA POMOĆU

BESPILOTNE LETJELICE

Zadatak: Realizirati softversku podršku za trodimenzionalnu rekonstrukciju površine objekta

iz serija visokorezolucijskih snimki načinjenih pomoću bespilotne letjelice.

Koristiti žiro-stabiliziranu kameru te pohranjivati poznate GPS koordinate i

orijentaciju letjelice. Izvršiti snimanje objekta (cesta složene konfiguracije),

rekonstruirati površinu ceste i usporediti dobivene rezultate sa podacima dostupnim

iz GIS sustava.

Prijava rada: 06. 03. 2015.

Rok za predaju rada: 18. 09. 2015.

Rad predan:

Predsjednik

Odbora za diplomski rad: Mentor:

Prof. dr. sc. Jadranka Marasović Prof. dr. sc. Vladan Papić

Page 3: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

SADRŽAJ

1. UVOD ................................................................................................................................ 1

1.1. GPS ............................................................................................................................. 2

2. DJI PHANTOM 2 VISION+ ......................................................................................... 7

2.1. UAV ............................................................................................................................. 7

2.2. DJI .............................................................................................................................. 7

2.3. Primjena UAV dronova .......................................................................................... 11

3. KAMERA ......................................................................................................................... 13

3.1. Epipolarna geometrija, esencijalna matrica i fundametalna matrica ............... 18

3.2. Kalibracija kamere .................................................................................................. 21

3.3. Rektifikacija .............................................................................................................. 22

3.4. Triangulacija (kod rektificiranog sustava) ............................................................ 23

3.5. Dekompozicija P matrice ........................................................................................ 25

4. BOJA I ATRIBUTI BOJE .............................................................................................. 26

4.1. Spektar vidljivog svjetla .......................................................................................... 27

4.2. Prostor boja .............................................................................................................. 28

4.3. RGB prostor boja ..................................................................................................... 28

4.4. HSV prostor boja ..................................................................................................... 29

5. MJERENJE ...................................................................................................................... 31

5.1. Kalibracija kamere .................................................................................................. 32

5.2. Testna okruženja ...................................................................................................... 35

5.3. Dekompozicija P matrica igrališta ......................................................................... 42

5.4. Generiranje početne P matrice za cestu ................................................................ 43

5.5. Greške sa pomakom markera ................................................................................ 46

6. REKONSTRUKCIJA CESTE ....................................................................................... 48

6.1. Slikavanje .................................................................................................................. 48

6.2. Rekonstrukcija ......................................................................................................... 49

6.3. Izdvajanje ceste ........................................................................................................ 53

7. ZAKLJUČAK .................................................................................................................. 59

SAŽETAK ......................................................................................................................... 60

KLJUČNE RIJEČI .......................................................................................................... 60

LITERATURA ................................................................................................................. 61

POPIS OZNAKA I KRATICA ...................................................................................... 62

Page 4: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

DODATAK ....................................................................................................................... 64

Kod programa za ispravljanje distorzije .............................................................. 64

Kod programa za detekciju točaka sa manualnim odabirom točaka ............... 64

Kod programa za rekonstrukciju kocke ............................................................... 66

Kod programa za generiranje matrica P i rekonstrukciju ceste ....................... 67

Kod programa za filtriranje ceste ......................................................................... 73

Page 5: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

1

1. UVOD

Svakodnevnim razvojem tehnologije, došli smo u vrijeme kada je upravljanje bespilotnim

letjelicama postala normalna stvar. Okruženi smo raznim vrstama letjelica koje se koriste u razne

svrhe, od profesionalnih do upotrebe za zabavu. Tržište je postalo u zadnjih par godina

ogromno, što se može vidjeti na primjeru izdanih patenata od strane IFI CLAIMS od 1994.

godine do 2014. godine. Prva upotreba bespilotnih letjelica u povijesti se dogodila sredinom

19. stoljeća kada je Austria poslala bespilotne balone sa bombama u napad na Veneciju.

Bespilotne letjelice, u današnjem obliku, nastavljaju se razvijati početkom 20. stoljeća, koristeći

se kao mete za vojnu obuku.

Slika 1.1. Broj izdanih patenata za UAV letjelice po godinama

Cilj diplomskog rada je koristiti gotov sustav bespilotne letjelice i kamere, upravljane

daljinskim upravljačem, snimiti seriju slika terena uz poznat nagib kamere, te time

pojednostaviti način rekonstrukcije. Zatim pomoću programske podrške izdvojiti cestu iz slika,

izdvojiti zajedničke točke na slikama, napraviti trodimenzionalnu rekonstrukciju terena. Potom

prikazati rezultat u 3D prostoru te usporediti sa nekim od referentnih sustava.

Točno određen način uzimanja slika sa letjelicom omogućit će, uz kontrolirane parametre, lakše

proračune za rekonstrukciju točaka u 3D prostoru.

U poglavljima će biti opisana korištena letjelica, način rada kamere, ispravljanje distorzije

kamere, načini manipuliranja RGB slikom, način rekonstruiranja točaka iz više slika, te način

na koji se obavilo slikanje terena a potom kako su rekonstruirane određene točke ceste te

prenešene u trodimenzionalni prostor.

Page 6: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

2

Želi se prikazati jedan od mogućih upotreba UAV letjelica, u ovom slučaju za rekonstrukciju

terena, profila ceste, iznad kojeg kojeg leti, kao i mapiranje terena iz zraka. Naknadno je

moguće proširenje rada na način da se automatizira proces, od uzimanja slika, do obrade.

Slika 1.2. Primjer uporabe UAV letjelice za rekonstrukciju naseljenog područja

Sustavi koji mapiraju teren sa UAV letjelicama već postoje, i njihovi parametri su poznati u

svakom segmentu, od nagiba kamere, nagiba letjelice, točnih pozicija letjelice i zahtjevnih

algoritama rekonstrukcije. U ovom radu neki od parametara će biti predviđeni prethodnim

testiranjem kamere, te će se samo slikanje pojednostavniti i na taj način kontrolirati određeni

parametri da bi rekonstruiranje bilo što više pojednostavljeno. Sustavi koji mapiraju su jako

skupi, te koriste skuplje i kamere i letjelice od sustava korištenog u radu.

1.1. GPS

GPS je kratica za Global Positioning System. To je mreža satelita koja kontinuirano odašilje

kodirane informacije, s pomoću kojih je omogućeno precizno određivanje položaja na Zemlji.

Page 7: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

3

GPS se temelji na skupini satelita Ministarstva obrane SAD-a koji stalno kruže oko Zemlje.

Sateliti odašilju vrlo slabe radio signale omogućujući GPS-prijamniku da odredi svoj položaj

na Zemlji. Zanimljivo je da GPS zapravo nastao prije osobnih računala. Dizajneri su

prvenstveno imali na umu vojnu primjenu. Između ostalih primjena, GPS-prijemnici pomažu

navigaciji, rasporedu trupa i artiljerijskoj vatri. Na sreću, izvršna odluka iz 1980. dozvolila je

upotrebu GPS-a i civilima. Sada svatko može uživati u GPS-u! Mogućnosti su gotovo

neograničene.

U osnovi, GPS omogućuje da se zabilježe položaji točaka na Zemlji i pomogne navigacija do

tih točaka i od njih. GPS se može upotrebljavati svugdje osim na mjestima gdje je nemoguće

primiti signal, a to su mjesta unutar zgrada, u tunelima, spiljama, garažama i drugim podzemnim

lokacijama te ispod vode.

Slika 1.3. Vizualizacija putanja GPS satelita oko zemlje

Primjene na tlu su raznovrsnije. Znanstvenici često rabe GPS zbog njegove mogućnosti

preciznog mjerenja vremena, ali i zbog velikog broja drugih primjena. Geodeti upotrebljavaju

GPS da bi povećali opseg svoga rada. GPS nudi veliku uštedu smanjenjem vremena potrebnog

za geodetsku izmjeru. Također, može dati zadivljujuću točnost. GPS-prijamnici mogu dati

točnost bolju od jednog metra. Profesionalni sustavi mogu dati točnost reda veličine centimetra!

Postoje tri segmenta GPS-a, NAVSTAR (Ministarstva obrane SAD-a) sastoji se od:

- svemirskog segmenta (sateliti)

- kontrolnog segmenta (zemaljske stanice), stanice koje "kontroliraju" GPS-satelite,

odnosno upravlja njima prateći ih i dajući im ispravljene orbitalne i vremenske

informacije

- korisničkog segmenta (korisnici i njihovi GPS-prijamnici).

Page 8: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

4

GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su

sateliti (njihov položaj) i koliko su daleko (udaljenost). Pogledajmo najprije kako GPS-

prijamnik zna gdje su u prostoru smješteni sateliti. GPS-prijamnik od satelita prikuplja dvije

vrste kodiranih informacija. Jedan tip informacija, podaci iz almanaha, sadrže približni položaj

satelita. Ti se podaci kontinuirano prenose i spremaju u memoriju GPS-prijamnika tako da on

zna orbite satelita i gdje bi koji satelit trebao biti. Kako se sateliti miču uokolo, podaci iz

almanaha se periodički ažuriraju novim informacijama.

Svaki satelit može putovati malo izvan orbite, pa zemaljska stanica za praćenje prati orbite

satelita, njihovu visinu, položaj i brzinu. Zemaljska stanica za praćenje šalje orbitalne

informacije glavnoj kontrolnoj stanici, koja šalje satelitima ispravljene podatke. Ti ispravljeni

i egzaktni podaci o položajima nazivaju se "efemeride", vrijede do šest sati i šalju se GPS-

prijamnicima u obliku kodiranih informacija.

Kad GPS-prijamnik zna precizan položaj satelita u prostoru, još treba znati koliko su oni daleko

kako bi mogao odrediti svoj položaj na Zemlji. Postoji jednostavna formula koja kaže

prijamniku koliko je pojedini satelit daleko: Udaljenost od satelita jednaka je brzini emitiranog

signala pomnoženoj s vremenom koje treba da signal dođe do prijamnika (brzina x vrijeme

putovanja = udaljenost). Koristeći osnovnu formulu za određivanje udaljenosti, prijamnik već

zna brzinu. To je brzina radio valova - oko 300 000 kilometara u sekundi (brzina svjetlosti), s

malim kašnjenjem zbog prolaska signala kroz Zemljinu atmosferu.

Sada GPS-prijamnik treba odrediti vremenski dio formule. Odgovor leži u kodiranom signalu

koji satelit odašilje. Emitirani kod naziva se "pseudoslučajni kod" jer sliči signalu šuma. Satelit

generira pseudoslučajni kod, a GPS-prijamnik generira isti kod i nastoji ga prilagoditi kodu

satelita. Prijamnik tada uspoređuje dva koda da bi odredio koliko treba zakasniti (ili pomaknuti)

svoj kod kako bi odgovarao kodu satelita. To vrijeme kašnjenja (pomaka) množi se s brzinom

svjetlosti da bi se dobila udaljenost.

Sat vašeg GPS-prijamnika ne mjeri vrijeme tako precizno kao satovi satelita. Stavljanje

atomskog sata u vaš prijamnik učinilo bi ga mnogo većim i skupljim! Zato svako određivanje

udaljenosti treba još ispraviti za iznos pogreške sata GPS-prijamnika. To je razlog što se

određivanjem udaljenosti zapravo dobije "pseudoudaljenost". Da bi se odredio položaj na

Page 9: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

5

temelju pseudoudaljenosti, treba pratiti najmanje četiri satelita i uz pomoć računanja ukloniti

pogrešku sata GPS-prijamnika.

Sad kad imamo oboje, položaje satelita i udaljenosti, prijamnik može odrediti svoj položaj.

Pretpostavimo da smo 19 000 kilometara udaljeni od nekog satelita. Naš položaj bit će negdje

na zamišljenoj sferi (lopti) kojoj je satelit u središtu i polumjer 19 000 kilometara.

Slika 1.4. Položaj na zemlji je u sferi GPS satelita

Pretpostavimo nadalje da smo 20 000 kilometara od drugog satelita. Druga sfera siječe prvu u

zajedničkoj kružnici. Ako dodamo treći satelit, na udaljenosti 21 000 kilometara, imat ćemo

dvije zajedničke točke u kojima se sijeku sve tri sfere.

Slika 1.5. Položaj na zemlji je u sferi 3 GPS satelita

Page 10: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

6

Iako su moguća dva položaja, oni se znatno razlikuju po koordinatama. Za odluku o tome koja

od dviju zajedničkih točaka daje stvarni položaj, trebat će unijeti približnu visinu u GPS-

prijamnik. To će omogućiti prijamniku da izračuna dvodimenzionalni položaj (geografsku

širinu i dužinu). Nadalje, uz pomoć četvrtog satelita, prijamnik može odrediti i trodimenzionalni

položaj (geografsku širinu, dužinu i visinu). Pretpostavimo da je udaljenost od četvrtog satelita

18 000 kilometara. Sad imamo situaciju da četvrta sfera sječe prve tri u jednoj zajedničkoj točki

[1].

GPS u radu je potreban jer je dodan u exif slike, pomoću čega je poznata koordinata svake slike

iz serije pa je moguće odrediti točan položaj i pomak svake slike sa točnošću od nekoliko

centimetara, što je potrebno za kvalitetnu 3D rekonstrukciju.

Page 11: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

7

2. DJI Phantom 2 Vision+

2.1. UAV

UAV (bespilotna letjelica) je letjelica bez pilota, koja je upravljana samostalno pomoću

sklopova unutar letjelice ili od strane pilota preko kontrolera. UAV je za razliku od projektila,

napajano zračno vozilo koja ne nosi čovjeka, koristi aerodinamiku za uzgon, može biti

samostalno upravljana ili upravljana preko kontrolera, može biti proširena ili smanjena te nositi

smrtonosne ili nesmrtonosne terete. ICAO (Organizacija međunarodnog civilnog

zrakoplovstva) klasificira UAV letjelice kao:

- Autonomna letjelica,

- Daljinski upravljana letjelica.

Povijesno, prve UAV letjelice bile su daljinski upravljane, ali sve se više koriste autonomne

UAV letjelice. UAV letjelica se primjenjuju u vojsci, specijalnim postrojbama, civilnim

udrugama, filmskoj industriji, tehnološkom sektoru, transportu kao i civilnom sektoru zadnjih

godina. Najčešće se koriste za stvari koje je lakše, brže i jeftinije odraditi od korištenja ostalih

vrsta letjelica, aviona i helikoptera. Korištenje UAV letjelica je definirano zakonskim propisima

pojedine zemlje [2].

2.2. DJI

DJI je kineska kompanija iz Shenzhena osnovana 2006.g.. Proizvode komercijalne i

rekreacijske UAV letjelice za fotografiju i video. Proizvode kamere, platforme za letenje,

kontrolere za multirotorske letjelice, gimbale i glavne stanice na zemlji. Proizvodi se koriste

industrijski, profesionalno i amaterski.

DJI je proizveo seriju quadocoptera nazvanih Phantom, koji je evoluirao na integrirani sustav

letjelice, kamere, WI-FI konekcije, kontrolera i mobilnog uređaja. Uglavnom je namijenjen za

fotografiju i video. Postoje letjelice oznake Phantom od 1 do 3. Phantom 2+ sustav koristi

kameru i gimbal, koji su napravljeni kompletno od strane DJI kompanije. Gimbal je sustav

sastavljen od senzora položaja i nagiba te od motora koji održava stabilnost nekog objekta

kompenzirajući male pomake, nagibe i trenja. Tijelo Phantom 2+ letjelice je napravljeno od

kompozitnih materijala, a na krajevima X okvira su motori na kojima su navijeni dva para

Page 12: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

8

propelera. Sustav može nositi više vrsta kamera ali konkretno u Phantom 2 Vision+ seriji koristi

se kamera FC200, veličine senzora 1/2,3“. Rezolucija kamere je 14Mpx. Mpx je oznaka

razlučivosti ili rezolucije, kojom se definira mogućnost razaznavanja sitnih detalja kojom se

opisuje kakvoća slike. FOV FC200 kamere je 140° za slike, što je određeno fizičkom izvedbom

leće i veličinom senzora. FOV (Field of view) je oznaka za područje, koje je vidljivo kamerom

u bilo kojem trenutku.

Slika 2.1. DJI Phantom 2 Vision+

Specifikacije letjelice korištene u diplomskom radu [3]:

Letjelica Baterija DJI 5200mAh LiPo

Težina (sa propelerima i baterijom) 1242g

Točnost letenja Ver: 0.8m; Hor: 2.5m

Maksimalna brzina uspona i spuštanja Uspon: 6m/s; Spuštanje: 2m/s

Maksimalna brzina letenja 15m/s teoretska, 6m/s realna

Dijagonalna udaljenost između motora 350mm

Gimbal Radna struja Static : 750mA; Dynamic : 900mA

Točnost kontrole ±0.03°

Kontrolirani raspon Pitch : -90°-0°

Maksimalna kutna brzina Pitch : 90°/s

Kamera Veličina senzora 1 / 2,3“

Rezolucija / Efektivni broj pixsela 4384×3288 / 14Mpx

Vidno polje (za slike) 140°

Page 13: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

9

Upravljač Radna frekvencija 5.728 GHz-5.85 GHz

Komunikacijska udaljenost CE: 400m, FCC: 800m

Osjetljivost prijamnika -93dBm

Snaga odašiljača CE: 25mW, FCC: 100mW

Radni napon 3.7V

Pojačivač Radna frekvencija 2412-2462MHz

Komunikacijska udaljenost 500-700m

Snaga odašiljača 20dBm

Potrošnja 2W

DJI Phantom 2+ koristi baterije na bazi litija, LiPo (Lithium-Polymer). To su baterije vrlo velike

gustoće energije, dvostruko veći od NiMH, te veći nazivni napon. Nema potrebu za periodičnim

pražnjenjem, te se može puniti u bilo kojem trenutku s obzirom koliko je energije ostalo u njoj.

Nedostaci su osjetljivost na hladnoću i dosta kratak životni vijek. S ovom baterijom DJI Phantom

može letjeti oko 20-25 min.

Koristi se DJI Naza-M V2 kontroler koji je spojen na glavnu ploču, na kojoj se nalaze i svi ostali

konektori. Naza kontroler može upravljati letjelicama sa 4, 6 i 8 propelera. Sastoji se od Main

kontrolera, IMU, PMU, GPS, kompasa, LED indikator modula. Main kontroler je mozak letjelice,

odgovoran za spajanje i kontrolu svih modula letjelice. U njemu se nalazi logika upravljanj ovisno

o tipu letjelice i ovisno o ostalim spojenim modulima. PMU (Power Supply module) spušta napon

na 5V potreban za kontroler. IMU modul je kombinacija žiroskopa, akcelerometra i barometra

potrebnog za mjerenja letjelice. GPS modul radi geomagnetska očitanja za precizno mjerenje

GPS koordinata letjelice. Preko LED modula se obavlja svjetlosna indikacija raznih stanja

letjelice. Na Naza kontroler također je spojen i gimbal kamere te dovedeni upravljački signali

i signali za kontrolu kamere [4].

Page 14: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

10

Slika 2.2. DJI Naza-M V2 kontroler

Letjelica je pogonjena preko ESC modula (Electronic stability control) sa 2212 Motorima sa

920kv (920 okretaja po voltu bez opterećenja). Na isti ESC modul su izlazi za vanjske LED

indikatore stanja.

Upravljanje kretanja letjelice se vrši preko upravljača sa dva jostick-a, dva prekidača S1 i S2 te

potenciometrom za nagib kamere. S1 služi za opciju automatskog povratka na točku gdje je

letjelica poletjela, a S2 za prebacivanje načina letenja u mod sa GPS održavanjem ili letenje

bez GPS održavanja letjelice. Potenciometar za nagib kamere služi za Pitch kontrolu nagiba

kamere od 0° do -90°.

Slika 2.3. Način rada upravljača i kretanja letjelice

Page 15: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

11

DJI Phantom 2 Vision+ koristi FC200 kameru koja je spojena na gimbal koji stabilizira 3 osi.

Slika 2.4. FC200 kamera sa gimbalom koji stabilizira 3 osi.

Gimbal se uključenjem letjelice kalibrira po vertikalnoj i horizontalnoj osi, te u letu dobiva iz

Naza kontrolera signale kojima kompenzira kretnje letjelice. Rezultat je stabilizacija snimki ali

i kvalitetnije fotografije, mogućnost okidanja slika manjim brzinama. Koristi se 1 / 2,3“ veličina

CMOS senzora.

2.3. Primjena UAV dronova

U današnje vrijeme primjena UAV letjelica je jako velik i zanimljiv, osim vojne uporabe neki

od zanimljivih primjena su [5]:

- Istraživanje oluja - NASA i NOAA (National Oceanic and Atmospheric

Administration) provode već duži niz godina testove upotrebe UAV letjelica za

istraživanje evoluiranja oluja. Poslije se analiziraju podaci iz samog središta oluje

bez stavljanja ljudi u neposrednu opasnost.

- Fotografiranje i snimanje događanja - sve više se UAV letjelice, malih dimenzija,

koriste u snimanje raznih događanja, sportskih, društvenih, javnih. Tome je uvelike

pridonio najveći proizvođač UAV letjelica DJI, koji je i korišten radu.

- Zaštita životinja - vlada SAD-a (točnije The Department of the Interior) već koristi

UAV letjelice za zaštitu prirode i životinja koje je nastanjuju. UAV letjelice nose

termalne kamere pomoću kojih obavljaju kontrolu populacije. Moguće je čak pratiti

migracije životinja na teškim terenima.

- Poljoprivreda - sve više se UAV letjelice koriste i u poljoprivredi, od nadziranja do

kontrole usjeva. Čak trendovi pokazuju da bi poljoprivreda mogla postati

Page 16: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

12

dominantno tržište komercijalne upotrebe UAV letjelica. Moguće je pomoću

kamera na UAV letjelicama kontrolirati usjeve na način da se primjećuju male

promjene u bojama, te pomoću algoritma moguće je rano otkrivanje dijelova

pogođenih nametnicima i slično. Pomoću UAV letjelica moguće je povećanje

prihoda i smanjenje troškova u poljoprivredi.

- Potraga i spašavanje - UAV letjelice sve se više koriste i u kriznim situacijama za

potragu i spašavanje. 2013 godine u Kanadi, prvi put je spašen život osobi uslijed

automobilske nesreće. Pronađen je uslijed nesreće, pomoću UAV letjelice sa

ugrađenom night-vision tehnologijom, kojom je moguće vidjeti u tamnim uvjetima,

noći.

Page 17: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

13

3. KAMERA

Kamera je senzor korišten u procesu vizualne odometrije. Iz tog razloga ključno je imati dobro

razumijevanje o tome kako kamera radi i kako možemo matematički modelirati način prikaza.

Kamera je uređaj koji projicira točke iz 3D prostora u 2D sliku. Matematički opis tog

projiciranja daje nam model idealne kamere (pinhole camera). Idealna kamera je

pojednostavljen matematički model fizičke kamere bez leća koja se sastoji od kutije koja na

jednoj strani ima malenu rupicu. Svjetlost iz scene prolazi kroz rupicu i projicira obrnutu sliku

na suprotnoj strani kutije. Kako bi izbjegli nepotrebnu obrnutu sliku u modelu se obično ravnina

projekcije postavlja ispred centra projekcije umjesto iza [6]. Kao na slici 3.1.

Slika 3.1. Geometrija idealne kamere

C je projekcijski centar kamere. Žarišna duljina f je udaljenost ravnine slike od centra projekcije

koje se u modelu postavlja u ishodište koordinatnog sustava svijeta. Projekcijska os je pravac

okomit na ravninu slike koji prolazi točkom C. Sjecište projekcijske osi i ravnine slike naziva

se projekcijska točka P. Perspektivnom projekcijom neka točka svijeta T projicira se u točku t

ravnine slike. Matematički model idealne kamere je [6]:

s(𝑢𝑣1) = [

𝑓 0 0 00 𝑓 0 00 0 1 0

] (

𝑋𝑌𝑍1

) = 𝑍 [

𝑓𝑋

𝑍𝑓𝑌

𝑍

1

] (3.1)

Page 18: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

14

[𝑢𝑣1] = [

𝑓𝑋

𝑍𝑓𝑌

𝑍

1

] (3.2)

gdje je:

u,v koordinate 2D točaka u koordinatnom sustavu slike

s informacija o udaljenosti (s = Z) koja se gubi projekcijom

Parametar žarišta f igra ulogu skaliranja točaka slike što se manifestira kao uvećavanje slike. U

ovako normaliziranom 2D sustavu slike (slika 3.1.) centralna točka slike P nalazi se na

ishodišnoj koordinati (0 ; 0)T . No u realnoj kameri fotoosjetljivi senzor obavlja diskretizaciju

analognog signala i slika se konačno sastoji od konačnog broja piksela gdje je sada praktičnije

ishodišnu koordinatu postaviti u jedan od kutova slike pa se obično piksel u gornjem lijevom

kutu slike označava koordinatama (0 ; 0)T. Proširimo sada trenutni model kamere tako da

translatiramo sliku kako bi se gornji lijevi piksel slike našao na centralnoj osi projekcije

uvodimo translacijske parametre cx i cy [6].

s(𝑢𝑣1) = [

𝑓 0 𝑐𝑥 00 𝑓 𝑐𝑦 0

0 0 1 0

] (

𝑋𝑌𝑍1

) = 𝑍 [

𝑓𝑋

𝑍+ 𝑐𝑥

𝑓𝑌

𝑍+ 𝑐𝑦

1

] (3.3)

[𝑢𝑣1] = [

𝑓𝑋

𝑍+ 𝑐𝑥

𝑓𝑌

𝑍+ 𝑐𝑦

1

] (3.4)

U realnoj kameri centar fotosenzora obično zbog nepreciznosti izvedbe nije savršeno poravnat

s centralnom osi leće pa i ovu nepreciznost možemo također modelirati pomoću parametara cx

i cy.

Slika 3.2. Translacija centralne točke

Page 19: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

15

Matrica modela koja sadrži intrinsične parametre kamere poznata je i kao matrica kamere K i

ona opisuje linearnu transformaciju normaliziranih koordinata projekcije u koordinate slike.

𝐾 = [𝑓 0 𝑐𝑥 00 𝑓 𝑐𝑦 0

0 0 1 0

] (3.5)

Model možemo proširiti kako bismo uključili mogućnost gibanja kamere u odnosu na točke ili

obrnuto, gibanje točaka u odnosu na kameru. Uvedimo stoga transformacijsku matricu Rt u

model koja će rotirati i traslatirati točke prije njihovog projiciranja na ravninu slike.

𝑅𝑡 = [

𝑟11 𝑟12 𝑟13 𝑡1𝑟21 𝑟22 𝑟23 𝑡2𝑟31 𝑟32 𝑟33 𝑡30 0 0 1

] (3.6)

Novi model kamere glasi:

s(𝑢𝑣1) = [

𝑓 0 𝑐𝑥 00 𝑓 𝑐𝑦 0

0 0 1 0

] [

𝑟11 𝑟12 𝑟13 𝑡1𝑟21 𝑟22 𝑟23 𝑡2𝑟31 𝑟32 𝑟33 𝑡30 0 0 1

](

𝑋𝑌𝑍1

) (3.7)

Ili pojednostavljeno možemo pisati

P = K*[R|t] (3.8)

P je matrica kamere, ili još možemo pisati i

𝜁𝑡 = 𝑃𝑇 (3.9)

gdje je:

𝜁 udaljenost točke T od projekcijske ravnine

t (u,v,1)T

Parametri rotacije i translacije uvedene matrice Rt nazivaju se i ekstrinsičnim parametrima

kamere. Bitno je napomenuti da uvedena matrica Rt modelira isključivo gibanje točaka u

odnosu na kameru koja se uvijek nalazi u ishodištu koordinatnog sustava svijeta i gleda u

Page 20: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

16

pozitivnom smjeru z osi. Ako želimo modelom opisati gibanje kamere tada na mjesto matrice

Rt upisujemo inverznu transformaciju gibanja kamere. Budući da je kamera fiksirana u

ishodištu koordinatnog sustava, na taj način ćemo promatrane točke pomaknuti u položaj u

kojem bi se našle ako se kamera giba sa koordinatnim sustavom svijeta.

Ekstrinsična matrica opisuje položaj kamere u stvarnom svijetu, u kojem smjeru je okrenuta.

Sadrži dvije komponente, rotacijsku matricu i translacijski vektor [7].

[R|t] = [

𝑟11 𝑟12 𝑟13 𝑡1𝑟21 𝑟22 𝑟23 𝑡1𝑟31 𝑟32 𝑟33 𝑡1

] = [𝐼 𝑡0 1

] 𝑥 [𝑅 00 1

] =

= [

1 0 0 𝑡10 1 0 𝑡20 0 1 𝑡30 0 0 1

] 𝑥 [

𝑟11 𝑟12 𝑟13 0𝑟21 𝑟22 𝑟23 0𝑟31 𝑟32 𝑟33 00 0 0 1

] (3.10)

Ova matrica pokazuje kako transformirati koordinate u 3D svijetu u koordinate kamere. Važno

je napomenuti da ekstrinsični parametri opisuju kako je 3D svijet transformiran relativno u

kameru.

Trenutni model je pojednostavljena matrica realne kamere budući da ne modelira neke fizikalne

pojave uzrokovane lećom. Jedna od tih pojava je fokus ili oštrina slike. Svi objekti projicirani

idealnim modelom kamere će biti oštrog fokusa bez obzira na njihovu udaljenost od kamere. U

realnom slučaju kamera će proizvesti oštru sliku samo za one objekte koji su u određenom

rasponu udaljenosti od kamere gdje je taj raspon određen žarištem i svojstvima leće. No fokus

nas ne brine pretjerano jer ga uvijek možemo podesiti unaprijed na dovoljan raspon udaljenosti

ovisno o zahtjevima problema kako bi svi objekti u slici bili razumne oštrine. Stoga je zaključak

da nema potrebe uključiivati fokus u ovaj model kamere.

Ono što nas daleko više zanima je fizička pojava distorzije leće do koje dolazi kod praktičnih

izvedbi kamera s lećama i nju moramo uključiti u naš model kamere. Naime, leće su u

kamerama potrebne kako bi se dobila oštra slika jer one savijaju zrake svjetlosti kako bi ih

fokusirale na projekcijsku površinu slike. Sposobnost leće da prelama zrake ovisi o tome kako

zraka pogodi leću. Upravo zato što ovo svojstvo nije konstantno i ovisi o mjestu upada zrake

na leću dolazi do problema koji se manifestira kao efekt radijalne distorzije ili izobličenja slike.

Page 21: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

17

Efekt radijalne distorzije simetričan je s obzirom na udaljenost od optičkog centra, tj. savijanje

svjetla je slabije ili jače (ovisno da li je riječ o konveksnoj ili konkavnoj leći) na rubovima leće

nego na mjestima bližim optičkom centru leće. Slika 3.3. prikazuje učinak izobličenja

uzrokovan konveksnom lećom.

Slika 3.3. Slika sa radijalnom distorzijom i ispravljenom distorzijom

Distorzija se najčešće modelira kao suma radijalne i tangencijalne komponente izobličenja.

Kako je u pravilu učinak radijalne distorzije znatno više izražen od učinka tangencijalne

distorzije, obično se radijalna distorzija modelira s većim brojem parametara. Sljedeći izrazi

opisuju relaciju između izobličenih (xd; yd) i neizobličenih (xu; yu) koordinata slike u kojima je

efekt distorzije uklonjen [11]:

xd = xu (1 + κ1 r2 + κ2 r

4 + κ3 r6) + dx (3.11)

yd = yu (1 + κ1 r2 + κ2 r

4 + κ3 r6) + dy (3.12)

r2 = xu2 + xu

2 (3.13)

a parametri tangencijalne distorzije dx i dy dani su sa:

dx = 2τ1xuyu + τ2 (r2 + 2 xu

2) (3.14)

dy = 2τ2xuyu + τ1 (r2 + 2 yu

2) (3.15)

Ovaj model distorzije određen je s tri parametra za radijalnu distorziju (κ1, κ2, κ3) te dva

parametra za tangencijalnu distorziju (τ1, τ2). Ovi parametri također spadaju u intrinsične

parametre kamere s matricom kamere K. Bitna razlika je jedino u tome da matrica K sadrži

Page 22: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

18

linearne intrinsične parametre dok parametri distorzije spadaju u nelinearne intrinsične

parametre pa ih kao takve ne možemo ugraditi u matricu K.

3.1. Epipolarna geometrija, esencijalna matrica i fundametalna matrica

Epipolarna geometrija (engl. epipolar geometry) je unutarnja projekcijska geometrija između

dva pogleda koja ne ovisi o strukturi prizora već samo o unutarnjim parametrima kamera te

njihovoj relativnoj poziciji. Slika 3.4. prikazuje shemu epipolarne geometrije. Za svaku kameru

sada postoji zasebni centar projekcije Cl i Cr. Točka M iz svijeta ima projekcije ml i mr. Epipol

el (er) je definiran kao slika centra projekcije druge kamere Cr (Cl). Ravnina koju formiraju

točke M, el i er (ili M, Cl i Cr) naziva se epipolarna ravnina, a linije mlel i mrer epipolarne linije

[6].

Slika 3.4. Slika epipolarne ravnine

Točka M koju vidimo projiciranu na desnu (ili lijevu) projekcijsku ravninu može se u stvarnosti

nalaziti bilo gdje uzduž linije koja izlazi iz točke Cr i prolazi kroz mr, s obzirom da s jednom

kamerom nije moguće odrediti udaljenost do točke. Projekcija te linije na lijevu ravninu zapravo

je epipolarna linija qlel. Drugim riječima, projekcija svih mogućih lokacija točke jedne slike je

linija koja prolazi kroz korespondentnu i epipolarnu točku druge slike.

Page 23: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

19

Za bilo koju točku jedne slike vrijedi da njena korespondentna točka u drugoj slici leži na

epipolarnoj liniji. Taj je uvjet poznat pod nazivom epipolarno ograničenje (engl. epipolar

constraint). To pak znači da je umjesto dvodimenzionalne pretrage za korespondencijama

dovoljna jednodimenzionalna pretraga, čime se znatno smanjenje sloţenost, a i omogućava

odbacivanje velikog broja lažnih korespondencija.

Da bismo matematički opisali epipolarno ograničenje potrebno je uvesti pojmove esencijalne i

fundamentalne matrice. Esencijalna matrica E sadrži informacije o translaciji i rotaciji koje

vežu dvije kamere u prostoru, odnosno daje nam vezu između točaka ml i mr u normiranom

koordinatnom sustavu slike (u kojem je žarišna duljina f = 1). Fundamentalna matrica F sadrži,

uz informacije koje sadrži esencijalna matrica, i intrinsične parametre obje kamere. Ona

povezuje točke ml i mr iz lijeve i desne slike.

Da bi dobili esencijalnu matricu E, promatramo dvije normalizirane kamere koje projiciraju

istu točku M iz 3D svijeta na svoje ravnine slike (slika 3.4.).Neka koordinate točke M budu za

prvu kameru m1 = (x1, y1, z1) i u koordinatnom sustavu druge kamere m2 = (x2, y2, z2). Ako su

kamere normalizirane, korespodentne koordinate točke u slikama nakon perspektivne

projekcije su:

𝑚1 = [𝑢1𝑣11] =

1

𝑧1 [

𝑥1𝑦1𝑧1] (3.16)

𝑚2 = [𝑢2𝑣21] =

1

𝑧2 [

𝑥2𝑦2𝑧2] (3.17)

Jedno od svojstava normaliziranih kamera je da su njihovi koordinatni sustavi u relaciji preko

translacije i rotacije, pa se transformacijom mogu prebacivati iz jednog sustava u drugi, na

način:

x2 = R (x1 – t) (3.18)

gdje je:

- R rotacijska matrica dimenzije 3 x 3

- t translacijski vektor dimenzije 3

Page 24: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

20

Esencijalna matrica je sada definirana:

E = R [t]x (3.19)

gdje je:

- [t]x matrična reprezentacija vektorskog produkta s vektorom t

Matrična reprezentacija vektorskog produkta je uvijek antisimetrična matrica i detaljnije je

opisana u izrazu [6]:

t x a = [t]x a = [0 −𝑡3 𝑡2𝑡3 0 −𝑡1−𝑡2 𝑡1 0

] [

𝑎1𝑎2𝑎3] (3.20)

dokažimo da točka x2 u drugoj (desnoj) kameri je pomaknuta za esencijalnu matricu:

x2T E x1 = (R (x1 – t) )T R [t]x x1 (3.21)

= (x1 – t) T R T R [t]x x1

= (x1 – t) T [t]x x1

= x1 T [t]x x1 - t

T [t]x x1

= 0

Ako predpostavimo da su z1 i z2 uvijek veći od nule (inače se točke nebi ni vidjele na kameri),

vrijedi:

x2T E x1 =

1

𝑧2 x2

T E 1

𝑧1 x1 = y2

T E y1 = 0 (3.22)

gdje je:

- y2T E y1 epipolarno ograničenje

Pošto esencijalna matrica sadrži sve informacije o geometriji jedne kamere u odnosu na drugu,

no nikakve informacije o samoj kameri, a nas zanimaju koordinate u pikselima slike, kako

bismo prosnašli vezu između piksela jedne slike s odgovarajućom epipolarnom linijom na

drugoj slici, moramo iskoristiti intrisične parametre kamere (3.5). Zato točku y u

normaliziranim koordinatama supstituiramo točkom y' u koordinatnom sustavu kamere s

intrisičnim parametrima K te vrijedi: y' = Ky -> y = K-1y'.

Page 25: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

21

Jednadžbu za esencijalnu matricu možemo proširiti za rad s nenormaliziranim koordinatama

slike:

y'2T (K2

-1) T E K1-1 y'1 = 0 (3.23)

Te ovo proširenje opisuje fundamentalnu matricu F:

F = (K2-1) T E K1

-1 (3.24)

Pa jednadžba (3.24) postaje: y'2T F y'1 = 0 (3.25)

3.2. Kalibracija kamere

Kalibracija je postupak kojim saznamo intrisične i ekstrinsične parametre kamere:

- intrisični parametri

linearni – matrica kamere K (3.5)

nelinearni – radijalna (κ1, κ2, κ3) i tangencijalna (τ1, τ2) distorzija leće

- ekstrinsični parametri, međusobni položaj između kamera

rotacijska matrica R (3.10)

translacijska matrica t (3.10)

Promatra se kamerom neki objekt poznate geometrije, npr. uzorak šahovske ploče, poznatih

dimenzija kvadrata. Pogodan je zbog jednostavnosti izrade i lakoće detektiranja rubova

bazičnim metodama sa minimalnom greškom. Ako ulaznom algoritmu damo poznate dimenzije

tada parametri kalibracije će biti u istoj mjernoj jedinici.

Snima se veći broj slika, od 10 do 20, iz različitih pozicija, da bi ekstrinsični parametri između

slika se što više razlikovati. Uz poznate parametre kalibracijskog objekta, dobiju se intrisični

parametri kamere, te ekstrinsični parametri između kamere i plohe kalibracijskog uzorka, za

svaku sliku. 3D točke kutova kalibracijskog uzorka optimalno se projiciraju na poznate 2D

koordinate na ravninu slike.

Page 26: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

22

3.3. Rektifikacija

Nakon što se kalibracijom doznaju intrisični parametri lijeve i desne kamere, te ekstrinsični

parametri njihovog međusobnog položaja, može se provesti rektifikacija slike. Najprije se mora

ukloniti efekt distorzije, zatim odrediti transformacija slike koja bi se dobila ako bi projekcijske

ravnine kamere ležale u istoj ravnini paralelno jedna uz drugu na istim visinama (slika 3.5.). To

se može postići tako da se epipolovi lijeve i desne kamere postave u beskonačnosti po X osi

[8].

Slika 3.5. Rektifikacija stereo sustava

Nakon retifikacije, intrisični parametri lijeve i desne kamere su jednaki (ako koristimo istu

kameru), kao i centralne točke ravnine slike (cx, cy), tako da se ista točka iz 3D svijeta projicira

na istu visinu za obe kamere. Uzimajući to u obzir, model kamere idealnog stereo sustava

možemo opisati na idući način [6]:

s(𝑢𝑣1) = [

𝑓 0 𝑐𝑥 00 𝑓 𝑐𝑦 0

0 0 1 0

]

(

[

𝑟11 𝑟12 𝑟13 𝑡1𝑟21 𝑟22 𝑟23 𝑡1𝑟31 𝑟32 𝑟33 𝑡10 0 1 1

](

𝑋𝑌𝑍1

) − (

𝑡𝑏000

)

)

(3.26)

Jedini dodatak u odnosu na ranije opisani model jedne kamere (3.7) je parametar tb koji se

jedino razlikuje u modelu lijeve i desne kamere opisanog modela. Ako odlučimo lijevu kamere

staviti u ishodište svijeta tada je tb = 0 za lijevu kameru. Za desne kameru će tada parametar tb

biti jednak odmaku između kamera (eng. baseline).

Page 27: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

23

Prednost rektificiranog sustava u odnosu na nerektificirani je da korespodencije značajki

pretražujemo samo u jednoj dimenziji, te samim time ne moramo računati epipolarne pravce za

svaku značajku kao u slučaju nerektificiranog sustava. Druga prednost je da je postupak

triangulacije, koji je opisan u sljedećem odjeljku, bitno jednostavniji.

3.4. Triangulacija (kod rektificiranog sustava)

Triangulacija je postupak određivanja koordinata točke u 3D prostoru iz njenih projekcija na

dvije ili više slika. Nužno je poznavati parametre projekcijske funkcije kamere koja točku

preslikava iz 3D prostora u 2D prostor. Ove parametre dobivamo pomoću prethodno opisanog

procesa kalibracija kamere.

Promatramo najjednostavniji slučaj triangulacije kada su projekcijske ravnine paralelne, i

pomak desne kamere je samo po translacijskoj osi X (slika 3.5.) [8].

Slika 3.5. Triangulacija između dvije kamere translatirane samo po osi X

Model sa slike 3.5. se još zove i standardni model sa parametrima:

- Cl i Cr su dvije pinhole kamere, sa paralelnim projekcijskim ravninama, sa zejdničkom

fokalnom duljinom f

- pravac između centra kamera je okomit na optičku os kamera, a b je udaljenost između

kamera

Page 28: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

24

- XZ je ravnina na kojoj leže optičke osi obe kamere, XY ravnina je paralelna na ravnine

slike od obe kamere, X os prolazi kroz centar lijeve kamere kao i ishodište koordinatnog

sustava projekcije kamere (X,Y,Z)

- x1 i x2 točke su točke na ravnini slike

Oznaka d = x1 - x2 predstavlja horizontalnu udaljenost između korespondentnih značajki u

lijevoj i desnoj slici, a nazivat ćemo je ubuduće disparitet.

Koordinate u 3D svijetu dobijemo triangulacijom, po formulama:

Z = ( b * f ) / (x1 - x2) (3.27)

X = x1 * Z / f (3.28)

Y = y1 * Z / f (3.29)

Bitno svojstvo kod diskretizacije perspektivne projekcije koje u realnoj kameri obavlja senzor

jest da vrijednosti dispariteta nelinearno ovise o trianguliranoj udaljenosti tj. za manje

vrijednosti dispariteta udaljenost triangulirane značajke eksponencijalno raste što je vidljivo na

slici 3.6. Možemo si to vizualizirati lako budući da znamo da će se sve značajke istog dispariteta

triangulirati u istu ravninu na nekoj udaljenosti što je ilustrirano na slici 3.6. Na slici vidimo da

je udaljenost između ravnine u koju će se triangulirati sve značajke dispariteta 7 i ravnine kod

dispariteta 6 veća od udaljenosti između ravnine dispariteta 6 i ravnine 5. To je svojstvo

perspektivne projekcije koje ne možemo izbjeći, naprosto se bliži objekti kod perspektivne

projekcije projiciraju u lijevu i desnu sliku s većim disparitetima pa je stoga i informacija o

njihovoj dubini sačuvana uz manje šuma. To si lako možemo vizualizirati na slici 3.6. [8].

To znači da će i greška triangulacije biti veća za udaljenije značajke i da će izravno ovisiti o

odmaku između kamera stereo sustava te širini rezolucije same kamere.

Page 29: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

25

Slika 3.6. Prikaz ovisnosti dispariteta o udaljenosti

3.5. Dekompozicija P matrice

U linearnoj algebri, QR dekompozicija matrice je rastavljanje matrice na ortogonalnu i

trokutastu matricu. QR dekompozicija realne kvadratne matrice A je rastavljanje matrice A kao

[9]:

A = QR (3.30)

gdje je:

Q ortogonalna matrica (QT Q = I)

R gornja trokutasta matrica

Općenito, možemo rastaviti P matricu kamere, veličine m x n (m >= n) kao produkt K matrice

kamere, veličine n x n, R matrice rotacije kamere, veličine m x n i t translacijskog vektora,

veličine 1 x n:

P = K R t (3.31)

Page 30: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

26

4. BOJA I ATRIBUTI BOJE

Boja se može definirati kao psihofizikalni fenomen induciran svjetlom ili osjećaj koji u mozgu

izaziva svjetlost emitirana od nekog izvora ili reflektirana s površine nekog tijela. Doživljaj

boje ovisan je o tri faktora:

• spektralnom sastavu svjetla koje pada na promatrani predmet,

• molekularnoj strukturi materijala s kojeg se svjetlo reflektira ili koje ga propušta i

• čovjekovim osjetom boje, kroz oči i mozak.

Smisao za boje razmjerno se nedavno pojavio u povijesti ljudskog roda. Djeca i primitivni

narodi razlikuju vrlo malo boja, ili ih barem teško imenuju. Stari narodi bili su vrlo siromašni

u označavanju i imenovanju boja, no s razvojem industrije boja i tkanina, tiskarstva, kozmetike

itd., razvijao se i taj smisao. Izvorno su boje nazivane prema predmetima za koje su bile

karakteristične. Za prosječnog čovjeka i danas boja ima svojstvo predmeta: ljubičica je

ljubičasta, naranča narančasta itd. Postoje tri atributa koji uže definiraju svaku boju:

• ton boje ili tonalnost boje,

• zasićenost ili saturacija,

• svjetlina ili luminancija.

Ton boje označava vrstu boje, boju samu po sebi. Definira se kao kromatska kvaliteta boje,

odnosno kvaliteta kojom se jedna boja razlikuje od druge. Da bi se objasnili pojmovi zasićenost

i svjetlina, najprije je potrebno boje podijeliti u dvije osnovne skupine. U prvoj skupini nalaze

se prave boje, kao što su crvena, narančasta, žuta, zelena, plava itd., koje se nazivaju

kromatskim bojama, ili jednostavno bojama. Slika 4.1. prikazuje kromatske boje. U drugoj

skupini nalaze se crna, siva i bijela, koje se nazivaju akromatskim bojama, ili jednostavno

nebojama. One čine skalu koja seže od crne, preko sive, do bijele. Slika 4.2. prikazuje

akromatske boje. Neke od kromatskih boja su tamnije ili svjetlije od drugih i moguće je

uspoređivati svaki stupanj njihove svjetline sa svjetlinom sive akromatske boje. Ta se osobina

naziva svjetlina ili luminancija. To je relativna količina svjetla (bilo koje valne dužine) koju

boja prividno emitira. To je kvaliteta kojom se razlikuje svjetla boja od tamne boje. Slika 4.3.

prikazuje svjetlinu boje. Ako se neka kromatska boja miješa s akromatskom bojom jednake

svjetline, svjetlina boje ostajeista. Nastala promjena u kvaliteti, odnosno čistoći boje, ovisi o

relativnoj količini ovih dviju komponenata. Ta se osobina naziva zasićenost ili saturacija. To je

stupanj do kojeg se boja čini čistom. Slika 4. prikazuje zasićenost boje.

Page 31: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

27

Slika 4.1. Kromatske boje

Slika 4.2. Akromatske boje

Slika 4.3. Svjetlina boje

Slika 4.4. Zasićenost boje

4.1. Spektar vidljivog svjetla

Svjetlo je elektromagnetsko zračenje koje se opaža vidnim osjetnim sustavom. To je energija

zračenja, nastala atomskim promjenama u fizikalnoj strukturi materije, koja se rasprostire od

svog izvora u svim smjerovima i širi u obliku valova. Slika 4.5. prikazuje vidljivi spektar

elektromagnetskog zračenja. Ono na što se obično misli kada se kaže "svjetlo" jest bijelo

svjetlo. Ono što se obično percipira kao bijelo svjetlo nije homogeno – to je mješavina svih

valnih dužina vidljivog spektra od 400 nm do 700 nm u približno jednakim omjerima. Padne li

takvo svjetlo na komad bijela papira, on će reflektirati sve valne dužine, pa će i svjetlo što se

od njega reflektiralo izgledati bijelo. Ako neki predmet apsorbira sve valne dužine, a ni jednu

ne reflektira, izgledati će crn. Apsorbira li neki predmet sve valne dužine, osim one koja

predstavlja osjet crvene boje, te samo nju reflektira, takav će predmet izazvati u čovjekovim

osjetilima osjet crvenog. Koje će valne dužine svjetla biti apsorbirane a koje reflektirane ovisi

o molekularnoj strukturi materijala na koje svjetlo pada. Klasični spektar razlikuje sedam boja:

crvenu, narančastu, žutu, zelenu, plavozelenu, plavu i ljubičastu. Slika 4.6. prikazuje klasičan

spektar od sedam boja. Broj boja i njihovih nijansi u prirodi je neizmjeran, budući da veoma

mala promjena valne dužine stvara novu i drukčiju boju.

Page 32: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

28

Slika 4.5. Vidljivi spektar elektromagnetskog zračenja

Slika 4.5. Klasični spektar od sedam boja

4.2. Prostor boja

Prostor boja ili model boja je način pomoću kojeg se definiraju, stvaraju i vizualiziraju boje.

Boja je najčešće definirana pomoću 3 koordinate (parametra). Ti parametri određuju poziciju

boje unutar prostora boja koji se koristi. Postoji mnogo prostora boja i svaki se koristi za

različite namjene. Neki prostori boja su linearni, što znači da će određeni iznos promjene

podražaja izazvati isti iznos promjene u percepciji te boje. Mnogi prostori boja nisu linearni.

Neki prostori boja su intuitivni za korištenje, odnosno lako je pomoću parametra u njima

izabrati boju. Drugi prostori boja nisu intuitivni, odnosno pomoću parametra je vrlo teško ili

gotovo nemoguće u njima izabrati boju. Neki prostori boja vezani su uz uređaj na kojem su

definirane boje i za njih se kaže da su ovisni o uređaju (engl. device dependent). Kada se boje

definirane u tim prostorima koriste na nekom drugom uređaju, više nisu iste kao na uređaju gdje su bile

definirane.

4.3. RGB prostor boja

RGB prostor boja definiran je pomoću tri aditivna primara: crvene, zelene i plave boje. Svaka

boja u tom prostoru boja nastaje zbrajanjem pojedinih komponenata te tri boje. RGB model

Page 33: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

29

predstavljen je pomoću kocke, gdje crvena boja predstavlja x-os, zelena boja y-os, a plava boja

z-os. Slika 12. prikazuje model RGB prostora boja. Taj se prostor boja najčešće koristi u

računalima. Svaka boja najčešće je predstavljena sa 8-bita, odnosno vrijednostima od 0 do 255

(256 vrijednosti). To daje ukupno 2563 = 16777216 mogućih boja. U različitim računalnim

programima za obradu slike najčešće se navodi podatak o 16 milijuna boja ili naziv engl. true

color. Najčešće se taj prostor boja normira na vrijednosti od 0 do 1. RGB prostor boja

jednostavan je za računalo, ali nije prikladan za čovjeka. Crvena, zelena i plava komponenta

međusobno su korelirane tako da je čovjeku vrlo teško izborom tih komponenata definirati

željenu boju u RGB prostoru boja. Stoga se najčešće koriste neki drugi prostori boja kao što su

npr. HSV (HSI, HSB) ili HSL prostor boja.

Slika 4.6. Model RGB prostora boja

4.4. HSV prostor boja

HSV prostor boja stvorio je A. R. Smith 1978. Taj prostor boja definiran je s tri koordinate:

tonom boje (engl. hue), zasićenjem boje (engl. saturation) i svjetlinom boje (engl. value,

intensity, brightness). Ton boje predstavljen je kutom od 0° do 360°. Zasićenost boje ima

vrijednost od 0% do 100%. Svjetlina boje ima vrijednost od 0% do 100%. HSV prostor boja

predstavljen je pomoću valjaka. Često se taj prostor boja prikazuje kao stožac ili šesterostrana

piramida, jer je percipirana promjena zasićenja boje od 0% do 100% manja za tamne boje (one

koje imaju manju vrijednost svjetline) nego za svijetle boje (one koje imaju veću vrijednost

svjetline). Da bi se nadoknadila ta razlika u percepciji, valjak se izobličuje u stožac. Slika 4.7.

prikazuje model HSV prostora boja kao stožac. Pokazalo se da je u ovom prostoru boja čovjeku

Page 34: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

30

daleko lakše (intuitivnije) definirati i izabrati boju nego u RGB prostoru boja. Često se

vrijednosti tona, zasićenja i svjetline boje normiraju na vrijednosti od 0 do 1 [10].

Slika 4.7. Model HSV prostora boja predstavljen pomoću stošca

HSV prostor boja se dosta koristi kod računalne obrade zbog lakše kontrole nad slikom. RGB

prostor boja je pogodniji za vizualno predstavljanje. HSV prostor boja pogodniji je za računalnu

uporabu jer su parametri kojim se upravlja, tonom boje (engl. hue), zasićenjem boje (engl.

saturation) i svjetlinom boje (engl. value, intensity, brightness), lakše dobiti željene parametre.

Jedan od primjera može se vidjeti na slici 4.8. gdje je pomoću HSV slike, i kanala H (ton boje)

u par koraka izdvojena cesta.

Slika 4.8. Izdvajanje ceste pomoću HSV prostora boja

Page 35: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

31

5. MJERENJE

Pošto se želi testirati odabrana metoda slikanja sa letjelicom kao i rekonstruiranja terena,

poznavajući prethodne opisanu teoriju, kod odabira proizvoljne dionice ceste moraju se

zadovoljiti neki od kriterija. Pazilo se da oko dionice bude gusta vegetacija zbog lakšeg

izdvajanja ceste. Bitno je da okolno raslinje bude što niže, da što manje baca sjene na cestu.

Cesta bi trebala imati zakrivljena skretanja kao i nagib tako da se može testirati uz 2D

rekonstruiranje i rekonstruiranje visine. Jedan od bitnih čimbenik je da visina treba biti fiksna

što se postiže pomoću barometra unutar IMU modula, pošto se mora slikati dionica u jednom

ravnom preletu. Odabire se visina od 50 m tako da s obzirom od FOV-a kamere od 140° i

naknadnim ispravljanjem distorzije ostane dovoljno preklapanja slika. Sljedeće što se moralo

paziti da nagib kamere bude okomito u odnosu na ravninu površine zemlje, što zbog odličnog

stabiliziranja gimbal kamere letjelice nije bio problem. Idući čimbenik je dovoljna površina

preklapanja slika, za što se odabire da slikanje bude svako 10 do 15 m.

Ovom metodom želi se postići novi način slikanje UAV letjelicom koji do sada nije bio

primijenjen. UAV letjelica se koristi kao neka vrsta izvidne letjelice, koja će preletom iznad

neke dionice ili planinske staze, bez poznavanja veličina, P parametara kamere, uz GPS

pozicioniranje i izračun udaljenosti između slika, moći rekonstruirati dionicu. Novost je da

poznavanjem teorije kamere, P matrice se mogu generirati za svaku sliku, i potom uz zajedničke

točke, moguće je rekonstruirati teren. To se želi ovom realizacijom dokazati.

Realizacija podrazumijeva:

- kalibraciju kamere za dobivanje K parametara kamere

- slikanje testnog okruženja za rekonstrukciju sa kontroliranim parametrima

- ispravljanje slika testnog okruženja

- rekonstrukcija testnog okruženja sa kontroliranim parametrima

- dobivanje P matrice te analiziranje dobivenih podataka

- slikanje odabrane ceste uz kontrolirane parametre

- ispravljanje slika ceste

- poluatomatsko traženje zajedničkih točaka

- rekonstrukcija sredine ceste sa generiranim matricama

- analiziranje podataka

- grafičko izdvajanje ceste pomoću filtera iz serije slika te traženje sredine

Page 36: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

32

5.1. Kalibracija kamere

Kalibracija kamere je izvedena pomoću kalibracijske ploče uzorka šahovnice, širine kvadrata

85mm. Tražili su se intrisični parametri kamere, matrica K (3.5). Kalibracijski objekt, ploča, je

slikana na način da se nalazi pod različit kutovima i da što više prekriva površinu slike. Bitno

je i da se nalazi u sva četiri kuta slike, tako da se zahvati što je više moguće svaki dio leće, da

bi kasnije ispravljanje distorzije bilo točnije ali i računanje parametara radijalne distorzije (3.10

– 3.14).

Korišten je toolbox „Camera Calibrator“ iz Matlab programa. Program traži 10 do 20 slika.

Ubačena je serija od 19 slika, koje se mogu vidjeti na slici 5.1. Program je automatski kod

provjere izbacio 3 slike, one kod kojih je kalibracijski objekt bio loše slikan, pa nije uspio

detektirati sve dodire kvadrata.

Slika 5.1. Korištene slike kalibracijskog objekta za računanje parametara kamere

Jedina varijabla koja je ubačena na početku je širina kvadrata kalibracijskog objekta, tako da se

dobije pravilni omjer ispravljenih slika. Program potom analizira svaku sliku te jednostavnim

metodama otkriva dodirne točke crnih i bijelih kvadrata, te izbacuje prikaz na provjeru.

Page 37: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

33

Slika 5.2. Program nalazi detektirane dodirne točke na provjeru

Nakon toga analiziraju se koordinate detektiranih točaka i kalibrira se kamera te program nalazi

parametre kamere i izbacuje rezultate. Parametri kamere eksportiraju se kao objekt koji sadrži

parametar radijalne distorzije, tangencijalne distorzije, skew parametar, intrisične parametre

kao matricu, žarišnu duljinu, trnanslacijske parametre cx i cy. Program izbacuje i ekstrinsične

parametre kao sliku, koji u ovom slučaju i nisu bitni u izračunu. Za daljnji tijek, koristi se objekt

parametara kamere, sa imenom cameraParams.mat.

Slika 5.3. Rezultat kalibracije kamere, srednja greška u pikselima i vizualizacija ekstrinsičnih

parametara serije slika

Page 38: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

34

Kao što se može vidjeti, srednja greška ukupne serije slika za dobivanje parametara kamere je

6,13 piksela, što je razumljivo s obzirom da je jako velika radijalna distorzija korištene kamere.

Može se uočiti i najveća veličina greške u izračunatim točkama kod slike 16, što ako se pogleda

vizualizacija slikanja (Slika 5.3.) je isto razumljivo, jer je kalibracijski objekt bio blizu ruba

slike, gdje je radijalna distorzija najveća, a samim time, i teži proračun ispravljanja distorzije.

Potom je za vizualnu provjeru ispravljanja distorzije napisan kod koji koristi dobivene

parametre te izbacuje rezultat koji se vidi na slici 3.3. Uočavanjem ispravljenih zakrivljenih

linija može se zaključiti da parametri zadovoljavaju daljnje korištenje.

Korišteni MATLAB kod je:

Ispravljena_slika = undistortImage(Slika,cameraParams);

Dobiveni parametri kalibracije kamere su:

𝐾 = [𝑓 0 𝑐𝑥0 𝑓 𝑐𝑦0 0 1

] = [2314.63534 0 2216.39516

0 2308.45338 1630.936690 0 1

]

Slika 5.4. Radijalna komponenta distorzije

Page 39: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

35

Slika 5.5. Tangencialna komponenta distorzije

5.2. Testna okruženja

Nakon kalibracije leće bilo je potrebno naći pogodno testno okruženje za slikavanje uz

kontrolirane parametre. Testno okruženje se koristi za testiranje ispravljanja distorzije a potom

rekonstruiranje terena uz poznate zajedničke točke u prostoru, da bi se dobile P matrice kamere.

Prvi kalibracijski objekt je mali uredski stol sa nadodane dvije pomoćne grede sa ugrađenih 12

markera (poznata predefinirana mjesta – kalibracijsko W), Slika 5.6..

Slika 5.6. Skica slikavanja testnog okružja

Page 40: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

36

Svi markeri su snimljeni letjelicom (kamerom) u kontroliranim uvjetima sa velikom točnošću

pomaka letjelice od točno 20 cm. Naknado je dobiveno pravo središte markera ispravljeno za

pogrešku uzrokovane distorzijom leće (radijalna i tangencijalna). Iz poznatih položaja markera

na slikama kamere (9) dobivene su matrice kamera P1 – P5. Koristeći se istim matricama, i iz

poznatog položaja testnog markera na slikama kamera rekonstruiran je položaj markera u 3D

prostoru.

Korišten je MATLAB kod:

P1=CalibNormDLT(x1',Matrica');

P2=CalibNormDLT(x2',Matrica');

x_3d1=Reconstruction(P1,P2,x1',x2')';

Izračunata je srednja vrijednost pogreške (ukupna, x y z smjer) i standardne devijacije. Na slici

5.7. prikazan je histrogram distribucije ukupnih pogrešaka.

mean -0,0084mm std 1,0618mm (ukupno)

mean 0,0085mm std 1,2277mm (x os)

mean 0,0156mm std 1,3647mm (y os)

mean 0,0012mm std 0,5814mm (z os)

Slika 5.7. Histogram distribucije pogreške

Page 41: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

37

Analiza je pokazala da se 90% rezultata nalazi unutar 4 mm pogreške. Test je pokazao dobru

točnost mjerenja položaja markera u 3D prostoru. Točnije mjerenje u navedenim uvjetima nije

bilo moguće zbog nemogućnosti točnijeg pozicioniranja markera u prostoru. Distorzije leća su

u znatnoj mjeri prevladane, i tek su primjetne na samim rubovima mjernog područja. Problem

koji je primijećen je pogreška uzrokovana djelomičnim zaklanjanjem markera, što za posljedicu

ima ''pomicanje'' markera za nekoliko mm. Prilikom mjerenja svi markeri bi trebali biti vidljivi

i nezaklonjeni, te je zbog toga uzeto 9 markera od 12 za proračun.

Slika 5.8. Slike iz točke 2, serije za kalibraciju kocke

Nakon što je dokazana učinkovitost metode rekontrukcije u idealnim uvjetima potrebno je naći

testno okruženje u realnim uvjetima i veličinama. Odabrano je igralište, zbog veličine i

povoljnih objekata za traženje zajedničkih točaka uz mogućnost točnog mjerenja. Slikavanje je

obavljeno na način da je kamera bila na fiksnoj visini, stolici. Usmjerena je prema zidu koji je

udaljen 50 m, tako da se simulira udaljenost ceste. Gimbal je stabilizirao kameru tako da se

isključe rotacijski parametri kamere. Izmjereno je šest točaka od 5 m na paralelnoj liniji u

odnosu na zid na kojoj leži kamera, te isto šest točaka sa jednakom udaljenosti na paralelnoj

liniji u odnosu na zid na kojoj je stavljen objekt, tako da se centrira projekcijska os kamere

okomito na zid. Skica se može vidjeti na slici 5.9. Kod slikavanja nagib kamere je konstantno

provjeravan, tako da bi rezultati bili što točniji. Na svakoj idućoj točki, iznova je ispravljana

linija projekcije kamere sa objektom nasuprot. Na slici 5.10. može se vidjeti cijela serija od šest

slika testnog okruženja.

Page 42: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

38

Slika 5.9. Skica slikavanja testnog okružja, igrališta

Slika 5.10. Serija slika igrališta, originalne slike sa distorzijom

Nakon slikavanja odabrano je sedam zajedničkih točaka u prostoru terena, koje se vide na svim

slikama. Napravljen je 3D model u programu Sketchup, radi lakšeg nalaženja 3D koordinata

točaka u prostoru, zbog jako velikih dimenzija. Model sa odabranim zajedničkim točkama se

može vidjeti na slici 5.11.

Page 43: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

39

Slika 5.11. Model testnog okruženja sa odabranim zajedničkim točkama

Unešena je matrica koordinata zajedničkih točaka u prostoru, s tim da je odabran referentan

koordinatni sustav po volji u prostoru igrališta, pazeći da je X os paralelna sa linijom pomicanja

letjelice. Točke matrice prostora u metrima su u tablici 5.1.

Tablica 5.1. Matrica koordinata zjedničkih točaka testnog okruženja

Br. točke X-os Y-os Z-os

1 2,1597 -1,8700 -12,8002

2 2,1597 0,1000 -7,8002

3 -0,8500 -4,0700 0

4 -23,3000 -0,0006 0

5 -28,0228 -0,0700 -3,8100

6 -27,5049 -1,1062 -8,8000

7 -28,0131 0,7499 -14,9000

Page 44: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

40

Koristi se kod i parametri kamere dobivene u poglavlju 5.1., za ispravljanje distorzije slika.

Markeri su pomoću Photoshop programa označeni na svakoj slici posebno, te je snimljena serija

slika, zajedno sa markerima, u JPEG formatu. Snimljena je i serija slika sa crnom podlogom i

markerima, u BMP formatu.

Slika 5.12. Markeri na drugoj slici iz serije slika igrališta, slika je korištena nakon

ispravljanja distorzije, lijevo je JPEG slika, desno BMP

Potom je napisan kod koji detektira 7 markera na slikama. Koristeći jednostavan subpix (točnost

unutar pomaka jednog piksela) algoritam nalazi središte označenih markera, a onda pomoću

giput naredbe, nalazi se najbliže središte centroida, i potom sprema kao koordinate u pikselima

za svaku sliku. Bitno je ručno označavati markere istim redoslijedom za svaku sliku, tako da ne

dođe do greške redoslijeda točaka kod automatskog spremanja.

Tablica 5.2. Matrice x1-x6 iz serije šest slika testnog okruženja, 7 markera

Br.

Točke x1 x2 x3 x4 x5 x6

x y x y x y x y x y x y

1 2036 1433 1712 1427 1378 1436 1264 1431 740 1432 413 1436

2 2052 1561 1769 1556 1472 1566 1374 1560 912 1559 625 1565

3 2220 1358 1980 1353 1729 1365 1646 1358 1251 1359 1009 1367

4 3297 1548 3070 1542 2826 1562 2747 1546 2351 1545 2105 1556

5 3618 1546 3375 1539 3117 1562 3039 1544 2612 1542 2345 1553

6 3757 1484 3486 1477 3199 1499 3111 1480 2634 1476 2335 1487

7 4055 1593 3737 1587 3403 1610 3304 1591 2748 1589 2397 1601

Page 45: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

41

Iz poznatih položaja markera na slikama kamere (Tablica 5.2.) i matrice prostora (Tablica 5.1.)

dobivene su matrice kamera P1 – P6. Koristeći se istim matricama, i iz poznatog položaja

testnog markera na slikama kamera, rekonstruiran je položaj markera u 3D prostoru.

Korišten je MATLAB kod:

P1=CalibNormDLT(x1',Matrica');

P2=CalibNormDLT(x2',Matrica');

x_3d1=Reconstruction(P1,P2,x1',x2')';

Potom je uzeto 5 rekonstruiranih položaja markera i nađena srednja vrijednost pomoću koda:

Matrica_rek=(x_3d1+x_3d2+x_3d3+x_3d4+x_3d5)./5;

Da bi vidjeli koliko se rekonstruirana matrica razlikuje od početne matrice prostora, oduzme se

jedna matrica od druge pomoću koda (rezultat je u tablici 5.3.):

Matrica_razlika=minus(Matrica,Matrica_rek);

Tablica 5.3. Razlika matrice postavljene i rekonstruirane

Br. Točke X - os Y - os Z - os

1 0,0014 0,0037 0,0000

2 -0,0015 -0,0013 -0,0018

3 -0,0008 -0,0083 0,0032

4 0,0020 0,0286 0,0124

5 0,0003 -0,0393 -0,0167

6 0,0028 0,0215 -0,0010

7 -0,0033 -0,0050 0,0055

Izračunata je srednja vrijednost pogreške (ukupna, x y z smjer) i standardne devijacije. Na slici

5.13. prikazan je histrogram distribucije ukupnih pogrešaka.

mean 0,11mm std 13,1mm (ukupno)

mean 0,13mm std 2,12mm (x os)

mean -0,01mm std 22,11mm (y os)

mean 0,23mm std 8,9mm (z os)

Page 46: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

42

Slika 5.13. Histogram distribucije pogreške

Analiza je pokazala da se 80% rezultata nalazi unutar 2,5 cm pogreške. Promatrajući rezultate,

točnost rekonstrukcije je zadovoljavajuća.

Test je pokazao dobru točnost mjerenja položaja markera u 3D prostoru s obzirom na veličinu

testnog okruženja. Točnije mjerenje u navedenim uvjetima nije bilo moguće zbog utjecaja

vremena, velike udaljenosti zida i samim time točnosti slikanja. Distorzije leća su i ovdje u

znatnoj mjeri prevladane, i tek su primjetne na samim rubovima mjernog područja.

5.3. Dekompozicija P matrica igrališta

Obavljena je dekompozicija P matrica igrališta, tako da su dobivene K matrice kamere, R

matrice rotacije kamere i t vektor pomaka za svaku kameru P = K*[R|t] .

Korišteni MATLAB kod je:

[K1,R1,t1]=DecompPMat(P1);

Page 47: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

43

Promatrajući P1 matricu i dobivene K1, R1 matrice i t1 vektor:

Tablica 5.4. P1 matrice sa igrališta

P1 38,0269 0,9361 -30,7944 -1526,5241

1,8950 -33,2093 -22,1220 -1089,4596

0,0013 0,0005 -0,0142 -0,7006

Tablica 5.5. Matrice K, R i t vektor t dekomponirane matrice P1

K1 2447,26 0,00 2395,13 R1 -0,996 0,007 -0,093 t1 -4,334

0,00 2378,75 1467,63 0,004 0,999 0,037 1,800

0,00 0,00 1,00 -0,094 -0,036 0,995 49,022

Ako se usporedi R1 matrica sa teorijskom matricom rotacije R (jednadžba 3.10) vidi se da

zadovoljava. Vidimo da su 1:1, 2:2 i 3:3 članovi približno jednaki jedan, što potvrđuje činjenicu

da je zamišljeni koordinatni sustav igrališta paralelan sa koordinatnim sustavom kamere.

5.4. Generiranje početne P matrice za cestu

Sada je potrebno generirati i testirati prvu matricu P za sustav kojim će se slikati dionica ceste.

Predpostavlja se da je K matrica za sve slike ista, te se generira kao srednja vrijednost K matrica

igrališta, MATLAB kod:

K_sr=(K1+K2+K3+K4+K5+K6)/6

Isto vrijedi i za R matricu, pretpostavljeno je da će let biti ravna linija, uz konstantan okret

kamere prema središtu zemlje kojeg će stabilizirati gimbal kamere, tako da je R matrica za sve

kamere ista, srednja vrijednost R matrica igrališta, MATLAB kod:

R_sr=(R1+R2+R3+R4+R5+R6)/6

Page 48: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

44

Translacijski vektor generira se kao srednja vrijednost svih t vektora igrališta, s tim, pošto je

pomak kamere bio u +X smjeru, prvi element stavljamo od t1 vektora, MATLAB kod:

t_poc=(t1+t2+t3+t4+t5+t6)/6; t_poc(1,1)=t1(1,1);

Nakon toga određuje se linearno povećanje prvog elementa, kao prvi član vektora koji je srednje

vrijednosti pomaka između t translacijskih vektora, MATLAB kod:

t_tmp=((t6-t5)+(t5-t4)+(t4-t3)+(t3-t2)+(t2-t1))/5; t_pom=[t_tmp(1,1);0;0];

Svakom idućem t vektoru povećava se vrijednost prvog člana za vrijednost t_pom. Sada sa

poznatim vrijednostima mogu se generirati P matrice kojima ćemo testirati metodu. Prva P

matrica P_gen_1 je generirana pomoću MATLAB koda:

Rt1=[R_sr';[t_poc]']'; P_gen_1=(K_sr*Rt1);

Dok je svaka iduća generirana kao, MATLAB kod (primjer za P_gen_2):

C_poc_2=t_poc+t_pom; Rt2=[R_sr';[C_poc_2]']'; P_gen_2=(K_sr*Rt2)./56.76;

Nakon dobivenih generiranih P matrica, uspoređuje se P1 matricu sa P_gen_1, tako da se

dijele na način:

P_gen_1./P1

Rezultat pokazuje da je P_gen_1 veća za 56.76 puta, tako da je potrebno svaku P matricu

podijeliti sa tom vrijednosti, MATLAB kod:

koeficijent=56.76;

P_gen_1=P_gen_1./koeficijent;

Nakon što se dobiju generirane P matrice, proračunava se rekonstrukcija između svake P

matrice, potom se dobije generirana matrica prostora koju možemo usporediti sa

rekonstruiranom matricom igrališta iz poglavlja 5.2. Rezultat pokazuje da su greške velike, za

90% točaka, rekonstruirane matrice sa generiranim P matricama, greška je unutar 12 m, što je

s obzirom na veličinu modela jako veliko. Rješenje je u optimizacija t_pom parametra.

Optimizacijom t_pom matrice, najbolji rezultati su dobiveni za vrijednost prvog člana od 3,65.

Page 49: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

45

Tablica 5.6. Razlika rekonstruirane matrice prostora i matrice prostora dobivene

generiranim P matricama, u metrima

Br. Točke X - os Y - os Z - os

1 -0,4749 0,0770 -1,3441

2 -0,3372 0,0096 -1,0624

3 -0,2918 0,1449 -1,6040

4 0,1092 0,1038 -0,7812

5 -0,5530 0,1215 1,2152

6 -0,4757 0,0959 0,9289

7 -0,7209 0,1451 1,2870

Izračunata je srednja vrijednost pogreške (ukupna, x y z smjer) i standardne devijacije. Na slici

5.14. prikazan je histrogram distribucije ukupnih pogrešaka.

mean -0,1622m std 0,7461m (ukupno)

mean -0,3921m std 0,2621m (x os)

mean 0,0997m std 0,0470m (y os)

mean -0,1944m std 1,2812m (z os)

Slika 5.13. Histogram distribucije pogreške matrice prostora dobivene generiranim P

matricama kamere

Page 50: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

46

Analiza je pokazala da se 76% rezultata nalazi unutar 2 m pogreške. Promatrajući rezultate,

točnost rekonstrukcije je zadovoljavajuća s obzirom da su P matrice generirane. Zaključak je

da je predviđena metoda valjana.

Kad pogledamo odstupanja grešaka po svakoj osi posebno, veličine odstupanja točaka su bliske

za svaku os posebno, što dovodi do zaključka da je rekonstruirani model sa generiranim P

matricama točan dimenzijski, ali je pomaknut od mjesta gdje očekivamo rekonstrukciju.

Zaključuje se da je motoda čak i točnija za primjenu ako se želi saznati samo dimenzija

rekonstruiranog modela a manje točna, sa vrijednostima analize, ako se želi rekonstruirani

model pozicionirati u prostoru.

5.5. Greške sa pomakom markera

Testirana je veličina greške u rekonstrukciji pri pomaku markera od 1 px, 10 px, 20 px i 30 px.

Marker broj 3 koji se nalazi na 50 m od kamere, pomaknut je po X osi (osi pomaka kamere) za

1 px, 10 px, 20 px i 30 px u X smjeru, te je program nanovo pokrenut.

Slika 5.14. Prikaz greške po X, Y i Z osima za pomake markera od 1 px, 10 px, 20 px i 30 px

Page 51: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

47

Iz slike 5.14. se vidi da je najveća greška u dubini, što je očekivano. Za pomak markera od 10

px greška je 1,62 cm dok za pomak markera od 30 px greška u dubini iznosi 6,63 cm. Iz slike

5.15. vidljivo je da greška po dubini, Z osi, eksponencijalno raste sa pomakom markera.

Slika 5.15. Prikaz greške po Z osi za pomake markera

Tablica 5.7. Vrijednosti grešaka, u metrima, sa pomacima markera po X osi, u pikselima

Pomak (px) X - os Y - os Z - os

1 0,0001 m 0,0002 m 0,0015 m

10 0,0012 m 0,0015 m 0,0162 m

20 0,0026 m 0,0026 m 0,0370 m

30 0,0045 m 0,0029 m 0,0663 m

Page 52: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

48

6. REKONSTRUKCIJSKA CESTE

6.1. Slikavanje

Dionica ceste za rekonstrukciju je odabrana po prethodno opisanim kriterijima. Slikavanje je

obavljeno sa DJI Vision aplikacijom preko Android uređaja. Zadana je visina od 50 m od

zemlje, te veliki intezitet preklapanja slika. Kamera je preko upravljača spuštena na -90°. Nakon

par preleta, odabrana je najbolja serija slika, koja sadrži 18 slika.

Slika 6.1. Odabrana dionica sa koordinatama uslikane serije slika

Koordinate slika su dobiveni iz EXIF zapisa. Po letu se vidi da je ostvaren ravan prelet, što je

cilj metode. Gimbal se pobrinuo da je kamera konstantno okrenuto okomito prema središtu

zemlje, uz kompenzaciju ratacije usljed gibanja letjelice i vanjskih uvjeta.

Page 53: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

49

Slika 6.2. Redoslijed serije slika ceste sa ispravljenom distorzijom

6.2. Rekonstrukcija

Nakon slikavanja, ispravljanje distorzije je obavljeno prethodno opisanom metodom. Odabir

zajedničkih točaka je obavljen poluatomatski na način da su markeri na slikama, sa

ispravljenom distorzijom, označeni u programu Photoshop dok je detekcija koordinata točaka

na slikama obavljen automatski i spremljen za svaku sliku posebno, jer je iskorištena pogodnost

što su točke središta ceste redoslijedno jedna iznad druge, pa nije moglo doći do krivog

redoslijeda indeksiranja točaka.

Prva generirana P matrica za prvu sliku uzima se iz prethodne rekostrukcije. Udaljenosti između

slika su predstavljani kao vektor P_vektor_b. Razlika od prethodne rekonstrukcije je što su

pomaci kamere rađeni po Y osi, tako da se umjesto prvog elementa vektora t mijenja vrijednost

drugog elementa t vektora za svaku iduću P matricu.

Pošto je letjelica bila niže od mjesta uzimanja prve slike za 7 m, određuje se koeficijent t_koe=7

koji će se nadodati svakom t vektoru svake matrice P. Jedan od bitnih faktora koji je bitan za

Page 54: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

50

pravilnu rekonstrukciju u ovom slučaju je taj što letjelica održava visinu pomoću barometra, a

ne GPS koordinata, tako da se mora kompenzirati mijenjanje visine koje pomoću ove letjelice

nemožemo vidjeti. Uzet je model dionice iz Google Earth Pro programa koji je prikazan na slici

6.3.

Slika 6.3. Prikaz dionice u Google Earth Pro programu

Program pokazuje totalnu dužinu dionice od 263 m, uz promjenu totalne visine od 10,5 m. Iz

toga proizlazi da je nagib početne i krajnje točke dionice 2,286°. Jednostavnom jednadžbom se

dobije, uz poznatu x,y koordinatu točke, kompenzacija visine letjelice kao x / tan(α), s tim da

je α = 90° - 2,286°.

Poznavajući sve varijable koje je potrebno unijeti, MATLAB kod za svako povećanje drugog

elementa translacijskog vektora t, napisan je kao:

P_tmp_b=P_vektor_b(1,1);

t_pom_1=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

Te su potom generirane sve P matrice za svih 18 slika iz serija. Kod za prvu i drugu generiranu

P matricu glasi:

Rt_c1=[R_sr';[t_poc]']';

P_gen_c1=(K_sr*Rt_c1)./56.76;

Rt_c2=[R_sr';[t_pom_1]']';

P_gen_c2=(K_sr*Rt_c2)./56.76;

Page 55: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

51

Nakon dobivenih generiranih P matrica, napravljen je pregled preklapanja točaka, da se vidi

koje su točke zajedničke kojim slikama iz serije. Indeksirane su nove x matrice sa koordinatama

markera, i obavljena rekonstrukcija korištenjem prethodno generiranih P matrica. Primjer

MATLAB koda za prve tri slike koje imaju 8 zajedničkih točaka izgleda:

x1_1=x1(:,[1:8]);

x2_1=x2(:,[1:8]);

x3_1=x3(:,[1:8]);

x_3d_1_1=Reconstruction(P_gen_c1,P_gen_c2,x1_1,x2_1)';

x_3d_2_1=Reconstruction(P_gen_c1,P_gen_c3,x1_1,x3_1)';

x_3d_3_1=Reconstruction(P_gen_c2,P_gen_c3,x2_1,x3_1)';

x3d1=(x_3d_1_1+x_3d_2_1+x_3d_3_1)./3;

Na kraju, kada su rekonstruirane sve točke, sve su točke skupljene u jednu matricu i ispisane na

ekranu:

x_3d_genu=[x3d1;x3d2;x3d3;x3d4;x3d5;x3d6;x3d7;x3d8;x3d9;x3d10;x3d11;x3d12;

x3d13;x3d14;x3d15;x3d16];

plot3(x_3d_genu(:,1),x_3d_genu(:,2),x_3d_genu(:,3), 'LineWidth',2); axis

equal

Iz dimenzija rekonstrukcije sa slika 6.5. i 6.6., vidljivo je da model potvrđuje postavljenu teoriju

i uspješno rekonstruira zajedničke točke koristeći generirane P matrice. Sve su teorijske

pretpostavke uspješno dokazane.

Slika 6.4. Prikaz rekonstruirane dionice u 3D

Page 56: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

52

Slika 6.5. Prikaz rekonstruirane dionice po XY osi sa slojem Google mape za usporedbu

Ako se usporedi prikaz rekonstruirane dionice po XZ osi i krivuljom elevacije iz Google Earth

Pro programa, preklapanje se može vidjeti na slici 6.7.

Slika 6.6. Prikaz rekonstruirane dionice po XZ osi

Preklapanje bi bilo još bolje da visina letjelice nije održavana pomoću barometra već pomoću

GPS, na što se nije moglo utjecati, ali se u velikoj mjeri kompenziralo.

Page 57: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

53

6.3. Izdvajanje ceste

Izdvajanja je obavljeno preko grafičkih svojstava same slike. Uzeta je peta slika iz serije. Prvo

je prebačena iz RGB sustava boja u HSV radi lakše kontrole parametara:

img = imread('3_cesta_undistord\3_cesta_05.JPG'); HSV = rgb2hsv(img);

Potom je prikazan svaki kanal posebno (slika 6.7.), tako da se vidi po svakom kanalu zasićenost

određenog parametra i odabere najpovoljniji za daljnju uporabu, MATLAB kod:

subplot(2,2,1), imshow(img); title('RGB slika'); subplot(2,2,2), imshow(HSV(:,:,1)); title('H kanal'); subplot(2,2,3), imshow(HSV(:,:,2)); title('S kanal'); subplot(2,2,4), imshow(HSV(:,:,3)); title('V kanal'), colormap(hsv);

Slika 6.7. RGB i H, S i V prikaz slike

Odabrano je da je najpovoljniji H kanal, ton boje (engl. hue), koji daje vizualno najbolje

izdvajanje ceste. Potom je uz odabir kanala, odabrane i vrijednosti kanala iznad 0,55 (slika 6.8.),

MATLAB kod:

H = HSV(:,:,1) < 0.0001 | HSV(:,:,1) > 0.55;

Page 58: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

54

Slika 6.8. H kanal i filtrirani H sa vrijednostima iznad 0,55

Nakon toga potrebno je filtrirani H kanal provuci kroz nekoliko morfoloških operacija nad

binarnim slikama iz serije naredbi bwmorph iz MATLAB-a. Prvi od njih je erodiranje, tj.

smanjivanje površina koje imaju logičku vrijednost 1 na slici, veličina erodiranja je 10 px,

oblika disk. Potom izdvojen samo najveća površina na slici, što se redom može vidjeti na slici

6.9. uz kod:

%erodiranje se1 = strel('disk',10); H2 = imerode(H,se1); %odabir najvećeg objekta s = regionprops(H3, 'Area', 'PixelList'); [~,ind] = max([s.Area]); pix = sub2ind(size(H3), s(ind).PixelList(:,2), s(ind).PixelList(:,1)); out = zeros(size(H3)); out(pix) = H3(pix);

Slika 6.9. Erodirane površine logičke vrijednosti 1, odabran najveći objekt

Page 59: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

55

Potom je površina dilatirana, povećana sa imdilate naredbom na povrtnu veličinu 10 px, i nakon

toga sa imfill naredbom popunjene male rupe u najvećoj površini koja je ostala. Nakon svega

je sa više ponavljanja imclose naredbe, „peglan“ rub površine tako da bi površina bila bliža

željenoj, uz parametre oblik diska sa radijusom 100 px:

%vraćanje prethodno erodiranih površina i popunjavanje malih rupa u

%najvećoj površini se2 = strel('disk',15);

H4 = imdilate(H3,se2); H5 = imfill(H4,'holes');

%Peglanje ruba površine se3 = strel('disk',100); H6 = imclose(H5,se3); H7 = imclose(H6,se3); H8 = imclose(H7,se3); H9 = imclose(H8,se3); H10 = imclose(H9,se3);

Slika 6.10. Popunjene male površine u najvećem objektu, te potom ispeglani rubovi površine

Dobivena je zadovoljavajuća maska ceste, te je sada potrebno naći sredinu. Sredina ceste se isto

traži koristeći morfološke naredbe MATLAB-a nad logičkim slikama. Prvo će se površina

ponovo erodirati do skoro kraja tako da bi skeletizacija površine bila pravilnija, te će se nakon

toga skeletizirani oblik samo malo podebljati radi boljeg prikaza:

%erodiranje do skoro kraja se4 = strel('disk',100); %za 100px, disk oblik H11 = imerode(H10,se4); %skeletizacija H12 = bwmorph(H11,'skel',Inf); %lagano podebljanje linije se5 = strel('line',10,10); %podebljanje linije za 10px radi boljeg prikaza H13 = imdilate(H12,se5);

Page 60: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

56

Slika 6.11. Erodiranje površine do samog kraja i potom skeletizacija

Nakon što je dobivena sredina ceste vizualne slike, potrebno je još naći širinu ceste u pikselima

za jednu od zajedničkih točaka koje su označavane u poglavlju 6.2. Prvo je obavljen traženje

krajnjih točaka skeletona ceste, zatim je skeletn postavljen preko maske ceste te je napravljena

nova logička slika, koja u svakoj točki ima vrijednost udaljenosti skletona od ruba maske.

Dobivena slika je pogodna za vizualno poimanje širine ceste. MATLAB kod:

H10_l = logical(H10); branchPoints=bwmorph(H12, 'branchpoints'); endPoints=bwmorph(H12, 'endpoints'); [i,j] = find(bwmorph(H12,'endpoints')); D = bwdistgeodesic(H10_l,H12,'quasi');

imagesc(D)

Slika 6.12. Erodiranje površine do samog kraja i potom skeletizacija

Page 61: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

57

Slika nije pogodna za izračun širine ceste u točki, zato se koristi druga naredba koja radi novu

logičku sliku koja govori koliko je najmanja udaljenost neke točke od ruba maske. Ako za

odabranu sliku 5 iz serije slika ceste, uzmemo x1 matricu sa koordinatama zajedničkih točaka,

i uzmemo jednu točku za primjer, lako možemo dobiti širinu ceste u pikselima kao:

load('x od ceste.mat') %invertiranje maske H14 = xor(1,H10_l); %bwdist naredba za udaljenost točki od ruba maske D2 = bwdist(H14); %odabir jedne točke tockax=x5(1,3); tockay=x5(2,3); %udaljenost točke od ruba i širina ceste vrijednost=improfile(D2,tockax,tockay); sirina=vrijednost*2;

Slika 6.13. Udaljenost točaka od ruba maske i odabrana jedna ot točaka iz x5 matrice

Izračunata širina ceste u odabranoj točki je 429,29 px. Ako poznavajući parametre kamere,

znamo da je veličina 1px na 50m udaljenosti jednaka 14,061 mm, lako je izračunati da je u

odabranoj točki široka 6,046 m. Širina ceste je dobivena iz formule:

𝑧𝑚𝑚 =𝑓𝑚𝑚∗𝑣𝑜𝑚𝑚∗𝑣𝑠𝑝𝑥

𝑣𝑜𝑝𝑥∗𝑠𝑚𝑚 (6.1)

Page 62: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

58

gdje je:

zmm udaljenost objekta u mm (50 m)

fmm fokalna dužina kamere u mm (5 mm za DJI FC200)

vomm veličina objekta u stvarnom svijetu u mm (traži se)

vspx veličina slike u px (4388 px)

vopx veličina objekta u px

smm veličina senzora u mm (6,17 mm)

Slika 6.14. Vrijednost širine ceste u točki rekonstruirane dionice

Page 63: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

59

7. ZAKLJUČAK

Model koji smo testirali u radu je uspješno dokazan. Prvo su testirani parametri kamere koju

smo gledali kao zatvoren sustav. Uspješno je obavljena kalibracija vrlo velike radijalne

distorzije kojoj je uzrok mali senzor kamere, ali i veliki FOV od 140°. Potom je napisan kod

kojim je moguće ispraviti distorziju i koji se može koristiti i u druge svrhe.

Potom su slikana 2 testna okruženja. Prvo testno okruženje je kocka, gdje su parametri i okoliš

strogo kontrolirani te je na taj način postignuta vrlo velika točnost rekonstruiranja. Potom je

testirano okruženje koje je veličinom jednako kao i cilj, tj. dionica ceste. Tu se se pojavili novi

čimbenici koji su utjecali na točnost, od veličine testiranog sustava, do vremenskih uvjeta, ali i

dalje uz veliku točnost mjerenja kao i slikanja.

Nakon toga, poznavajući bolje kameru kao sustav, i njezino ponašanje u prostoru, te

pretpostavkom kako će se slikati određeno okruženje, uspjele su se generirati sve iduće P

matrice kamere koje sadrže određene parametre koji se ne mijenjaju i parametre koji su

promijenjeni. Testiranjem je dokazano da je točnost sustava ostala zadovoljavajuća te se na isti

način mogla primijeniti i na odabranu dionicu ceste.

Nakon odabira povoljne dionice, i slikanja dionice po zadanim kriterijima generirale su se nove

P matrice kamere sa novim pomacima, koji su očitani sa GPS letjelice. Rekonstrukcija je

uspješno provedena što je dokazano uspoređujući dobiveni model sa stvarnim.

Nakon toga je obavljeno i programsko filtriranje ceste iz okoliša pomoću raznih filtera i

morfoloških operacija, koji je poslužio ne samo za filtriranje ceste već i za računanje širine

ceste. Računanje širine ceste ne bi bilo moguće bez poznavanja unutarnjih parametara kamere,

njezine intrisične matrice. Izračunom veličine piksela u stvarnom svijetu, i prethodno

izračunatom širinom ceste u pikselima, uspješno je izračunata i širina ceste u metrima.

Page 64: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

60

SAŽETAK

Glavni cilj rada bio je testiranje generiranja P matrice kamere, povećanja jednog parametra

unutar ekstrinsične matrice, te samim time predviđanje kako će se kamera nalaziti u idućoj točki

slikanja serije slika.

Matrica kamere je sastavljena od više matrica koje su spojene u jednu matricu P 3x4 veličine,

u kojoj je zapisano osim fiksnih parametara, fokalne dužine, skew parametra, koordinatni sustav

slike, distorzija, koji svi skupa ovise o fizičkoj izradi kamere a i senzoru. Samim time njezini

parametri su jako međusobno ovisni, te svaka promjena ako nije točno predviđena, ali i unešena

na pravo mjesto, utječe i na druge parametre na način koji možda ne bi htjeli.

Zato uspješnim kombiniranjem unutrašnjih senzora letjelice i kontroliranjem P matrice kamere

uspješno je izvedena rekonstrukcija ceste kao i izračun širine ceste.

KLJUČNE RIJEČI

DJI, UAV, rekonstrukcija, mapiranje, 3D

Page 65: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

61

LITERATURA

[1] Lapaine, Miljenko; Lapaine, Miroslav; Tutić, Dražen: „GPS“, s interneta,

http://www.kartografija.hr, 12.09.2015.

[2] Chandler, Nathan: „How Drones Work“, s interneta,

http://science.howstuffworks.com/transport/flight/modern/drones.htm, 15.08.2015.

[3] „DJI Phantom 2 Vision+“, s interneta, http://dji.com, 15.08.2015.

[4] „H3-2D-Autopilot System, GCU and Gimbal Wiring“, s interneta,

http://wiki.dji.com/en/, 15.08.2015.

[5] Handwerk, Brian: „5 Surprising Drone Uses“, s interneta,

http://news.nationalgeographic.com, 25.08.2015.

[6] R. Hartley, A. Zisserman: Multiple View Geometry in Computer Vision, Cambridge

University Press, UK, 2003.

[7] Simek, Kyle: „Dissecting the Camera Matrix“, s interneta, http://ksimek.github.io,

05.08.2015.

[8] Navab, Nassir: „Rectification and Disparity“, s interneta, http://campar.in.tum.de,

05.09.2015.

[9] G.H., Golub; C.F., Van Loan: Matrix computations, The John Hopkins University

Press, Baltimore, Maryland, 2 edition, 1989.

[10] „Boja i atributi boje“, sa interneta stranice Sveučilišta u Zagrebu,

http://racunala.ttf.unizg.hr/files/Boja_i_atributi_boje.pdf, rujan 2015.g.

[11] Stančić, Ivo: „Sustav za mjerenje i vrednovanje antropometrijskih parametara i

kinematike ljudskog kretanja“, FESB, Sveučilište u Splitu, 2012.g.

Page 66: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

62

POPIS OZNAKA I KRATICA

2D eng. Two-dimensional – Dvodimenzionalni prostor

3D eng. Three-dimensional – Trodimenzionalni prostor

BMP eng. Bitmap image file – Rasterski slikovni format

CMOS eng. Complementary metal–oxide–semiconductor – Tip poluvodiča

DJI Kineska kompanija za komercijalne i rekreacijske UAV letjelice

ESC eng. Electronic speed controller – Modul za kontrolu brzine motora

FOV eng. Field of view – Područje vida

GPS eng. Global Positioning System – Sustav pozicioniranja na zemlji

HSB eng. Hue, Saturation, Brightness – Sustav boja

HSI eng. Hue, Saturation, Intensity – Sustav boja

HSL eng. Hue, Saturation, Lightness – Sustav boja

HSV eng. Hue, Saturation, Value – Sustav boja

ICAO eng. International Civil Aviation Organization – Organizacija međunarodnog

civilnog zrakoplovstva

IFI eng. Information for Industry – Institucija za patente

IMU eng. Inertial Measurement Unit – Modul sa senzorima za inercijska mjerenja

JPEG eng. Joint Photographic Experts Group – Komprimirani slikovni format

LED eng. Light-emitting diode – Svjetleća dioda

LiPO eng. Lithium polymer battery – Tip baterije

NASA eng. The National Aeronautics and Space Administration – Američka agencija

za civilni svemirski program

NAVSTAR eng. Navigation Satellite Timing and Ranging - službeno ime Ministarstva

obrane SAD-a za GPS

Page 67: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

63

NiMH eng. Nickel–metal hydride battery – Tip baterije

NOAA eng. National Oceanic and Atmospheric Administration – Američka agencija

za praćenje oceana i atmosfere

PMU eng. Power Management Unit – Modul za napajanje

RGB eng. Red-Green-Blue – Sustav boja

SAD Sjedinjene Američke Države

UAV eng. Unmanned aerial vehicle – Letjelica bez pilota

Page 68: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

64

DODATAK

Kod programa za ispravljanje distorzije

Slika = imread('Slike\Image_12032015_MarkoLovric_01.jpg');

Ispravljena_slika = undistortImage(Slika,cameraParams);

pairOfImages = [Slika, Ispravljena_slika];

imshow(pairOfImages);

Kod programa za detekciju točaka sa manualnim odabirom točaka

%ucitavanje pozadinske slike

I_bkg=imread('slike\kocka_undistord\image1.jpg','JPG');

%ucitavanje slike sa markerima

I=imread('slike\kocka_undistord\image1.bmp','bmp');

%trazenje i racunanje centra markera

imshow(I_bkg);

hold on

%rucno trazenje pribizne lokacije markera

L = bwlabel(I);

s = regionprops(L, 'Centroid'); %cetroidi

%najjednostavnije trazenje, centroid

for k = 1:numel(s)

marker_tmp(k,1)=round(s(k).Centroid(1));

marker_tmp(k,2)=round(s(k).Centroid(2));

plot(marker_tmp(k,1),marker_tmp(k,2),'rx')

marker_matlab(k,1:2)=marker_tmp(k,1:2);

end

hold on

tocke=ginput(9);

tic

marker_tezinski=marker_tmp;

for tocka=1:9

udaljenost_temp_2=inf;

for k = 1:numel(s)

udaljenost_temp= sqrt((marker_tezinski(k,1)-tocke(tocka,1))^2 +

(marker_tezinski(k,2)-tocke(tocka,2))^2);

if udaljenost_temp<udaljenost_temp_2

udaljenost_temp_2=udaljenost_temp;

marker_tezinski_sort(tocka,1:2)=marker_tezinski(k,1:2);

end

end

end

Page 69: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

65

%figure(2),imshow(I)

for tocka=1:9

text(marker_tezinski_sort(tocka,1),marker_tezinski_sort(tocka,2),spr

intf('tocka %d',tocka),'Color','w');

%text(tocke(tocka,1),tocke(tocka,2),sprintf('tocka

%d',tocka),'Color','g');

end

y=marker_tezinski_sort(:,2);

x=marker_tezinski_sort(:,1);

I_markeri_1=I_bkg(y(1)-10:y(1)+10,x(1)-10:x(1)+10);

I_markeri_2=I_bkg(y(2)-10:y(2)+10,x(2)-10:x(2)+10);

I_markeri_3=I_bkg(y(3)-10:y(3)+10,x(3)-10:x(3)+10);

I_markeri_4=I_bkg(y(4)-10:y(4)+10,x(4)-10:x(4)+10);

I_markeri_5=I_bkg(y(5)-10:y(5)+10,x(5)-10:x(5)+10);

I_markeri_6=I_bkg(y(6)-10:y(6)+10,x(6)-10:x(6)+10);

I_markeri_7=I_bkg(y(7)-10:y(7)+10,x(7)-10:x(7)+10);

I_markeri_8=I_bkg(y(7)-10:y(7)+10,x(7)-10:x(7)+10);

I_markeri_9=I_bkg(y(7)-10:y(7)+10,x(7)-10:x(7)+10);

[pomak_y(1),pomak_x(1)]=srediste_markera(I_markeri_1,0.0,20,0)

[pomak_y(2),pomak_x(2)]=srediste_markera(I_markeri_2,0.0,20,0)

[pomak_y(3),pomak_x(3)]=srediste_markera(I_markeri_3,0.0,20,0)

[pomak_y(4),pomak_x(4)]=srediste_markera(I_markeri_4,0.0,20,0)

[pomak_y(5),pomak_x(5)]=srediste_markera(I_markeri_5,0.0,20,0)

[pomak_y(6),pomak_x(6)]=srediste_markera(I_markeri_6,0.0,20,0)

[pomak_y(7),pomak_x(7)]=srediste_markera(I_markeri_7,0.0,20,0)

[pomak_y(8),pomak_x(8)]=srediste_markera(I_markeri_8,0.0,20,0)[pomak

_y(9),pomak_x(9)]=srediste_markera(I_markeri_9,0.0,20,0)

marker_tezinski_sort_c(:,2)=marker_tezinski_sort(:,2)-

pomak_y(:);

marker_tezinski_sort_c(:,1)=marker_tezinski_sort(:,1)-

pomak_x(:);

for tocka=1:9

%text(marker_tezinski_sort_c(tocka,1),marker_tezinski_sort_c(tocka,2

),sprintf('tocka %d',tocka),'Color','w');

plot(marker_tezinski_sort_c(tocka,1),marker_tezinski_sort_c(tocka,2)

,'mx')

%text(tocke(tocka,1),tocke(tocka,2),sprintf('tocka

%d',tocka),'Color','g');

end

xm=[x';y';1 1 1 1 1 1 1 1 1];

x1=xm';

x1_ispeglani=peglanje_distorzije_pix(marker_tezinski_sort_c',cam);

toc

Page 70: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

66

Kod programa za rekonstrukciju kocke

load('x1 - x5 + matrica za kocku.mat')

P1=CalibNormDLT(x1',Matrica');

P2=CalibNormDLT(x2',Matrica');

P3=CalibNormDLT(x3',Matrica');

P4=CalibNormDLT(x4',Matrica');

P5=CalibNormDLT(x5',Matrica');

x_3d1=Reconstruction(P1,P2,x1',x2')';

x_3d2=Reconstruction(P2,P3,x2',x3')';

x_3d3=Reconstruction(P3,P4,x3',x4')';

x_3d4=Reconstruction(P4,P5,x4',x5')';

Matrica_kocka=(x_3d1+x_3d2+x_3d3+x_3d4)./4;

%Razlika matrica

Matrica_razlika=minus(Matrica,Matrica_kocka);

Matrica_razlika_v=[Matrica_razlika(:,1);Matrica_razlika(:,2);Matrica

_razlika(:,3)];

%Srednja vrijednost pogreške

SP=mean(Matrica_razlika);

SPu=mean(Matrica_razlika_v);

%Standardna devijacija

STD=std(Matrica_razlika);

STDu=std(Matrica_razlika_v);

%Histogram SP i STD

nbins=5;

h= histogram(Matrica_razlika_v,nbins); %Plot data divided into 21

bins

h

Page 71: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

67

Kod programa za generiranje matrica P i rekonstrukciju ceste

load('x od ceste.mat')

format long

K_sr=(K1+K2+K3+K4+K5+K6)/6;

% K_sr=[2456.25908290775 0 2293.45611641322;

% 0 2399.85579205122 1579.62157094164;

% 0 0 1];

R_sr=(R1+R2+R3+R4+R5+R6)/6;

% R_sr=[-0.998032456906800 0.008154544526735 -0.049540982903932;

% 0.007900330033725 0.999720612895671 -0.006892826331115;

% -0.049468833724165 0.007282388526946 0.997826908801789];

%t sred, samo je t(1) od prve matrice ;

t_poc=(t1+t2+t3+t4+t5+t6)/6;

t_poc(2,1)=t1(2,1);

% t_poc=[-4.333870213671806;

% -0.494349670855384;

% 49.775493170414535];

koeficijentB=1.9;

P_vektor_b=[

13.32683305

13.74760144

13.95581171

13.63371364

13.44868322

13.25563313

13.14159672

13.08592775

12.99643078

12.86784841

12.64315778

12.94814451

16.50891803

13.34508019

14.39138958

11.33035977

12.15171814

]; P_vektor_b=P_vektor_b+koeficijentB;

t_koe=7;

kut=86.5;

t_poc=[t_poc(1,1); t_poc(2,1); t_poc(3,1)+t_koe];

P_tmp_b=P_vektor_b(1,1);

t_pom_1=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(2,1);

t_pom_2=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(3,1);

Page 72: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

68

t_pom_3=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(4,1);

t_pom_4=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(5,1);

t_pom_5=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(6,1);

t_pom_6=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(7,1);

t_pom_7=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(8,1);

t_pom_8=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(9,1);

t_pom_9=[t_poc(1,1); P_tmp_b; t_poc(3,1)-(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(10,1);

t_pom_10=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(11,1);

t_pom_11=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(12,1);

t_pom_12=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(13,1);

t_pom_13=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(14,1);

t_pom_14=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(15,1);

t_pom_15=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(16,1);

t_pom_16=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

P_tmp_b=P_tmp_b+P_vektor_b(17,1);

t_pom_17=[t_poc(1,1); P_tmp_b; t_poc(3,1)-

(P_tmp_b/tand(kut))+t_koe];

Rt_c1=[R_sr';[t_poc]']';

P_gen_c1=(K_sr*Rt_c1)./56.76; %za obicne 56.76 za kropane 56.91

Page 73: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

69

Rt_c2=[R_sr';[t_pom_1]']';

P_gen_c2=(K_sr*Rt_c2)./56.76;

Rt_c3=[R_sr';[t_pom_2]']';

P_gen_c3=(K_sr*Rt_c3)./56.76;

Rt_c4=[R_sr';[t_pom_3]']';

P_gen_c4=(K_sr*Rt_c4)./56.76;

Rt_c5=[R_sr';[t_pom_4]']';

P_gen_c5=(K_sr*Rt_c5)./56.76;

Rt_c6=[R_sr';[t_pom_5]']';

P_gen_c6=(K_sr*Rt_c6)./56.76;

Rt_c7=[R_sr';[t_pom_6]']';

P_gen_c7=(K_sr*Rt_c7)./56.76;

Rt_c8=[R_sr';[t_pom_7]']';

P_gen_c8=(K_sr*Rt_c8)./56.76;

Rt_c9=[R_sr';[t_pom_8]']';

P_gen_c9=(K_sr*Rt_c9)./56.76;

Rt_c10=[R_sr';[t_pom_9]']';

P_gen_c10=(K_sr*Rt_c10)./56.76;

Rt_c11=[R_sr';[t_pom_10]']';

P_gen_c11=(K_sr*Rt_c11)./56.76;

Rt_c12=[R_sr';[t_pom_11]']';

P_gen_c12=(K_sr*Rt_c12)./56.76;

Rt_c13=[R_sr';[t_pom_12]']';

P_gen_c13=(K_sr*Rt_c13)./56.76;

Rt_c14=[R_sr';[t_pom_13]']';

P_gen_c14=(K_sr*Rt_c14)./56.76;

Rt_c15=[R_sr';[t_pom_14]']';

P_gen_c15=(K_sr*Rt_c15)./56.76;

Rt_c16=[R_sr';[t_pom_15]']';

P_gen_c16=(K_sr*Rt_c16)./56.76;

Rt_c17=[R_sr';[t_pom_16]']';

P_gen_c17=(K_sr*Rt_c17)./56.76;

Rt_c18=[R_sr';[t_pom_17]']';

P_gen_c18=(K_sr*Rt_c18)./56.76;

%Generiranje x-eva i točaka ---------------------------------------

------

%1. površina

x1_1=x1(:,[1:8]);

x2_1=x2(:,[1:8]);

Page 74: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

70

x3_1=x3(:,[1:8]);

x_3d_1_1=Reconstruction(P_gen_c1,P_gen_c2,x1_1,x2_1)';

x_3d_2_1=Reconstruction(P_gen_c1,P_gen_c3,x1_1,x3_1)';

x_3d_3_1=Reconstruction(P_gen_c2,P_gen_c3,x2_1,x3_1)';

x3d1=(x_3d_1_1+x_3d_2_1+x_3d_3_1)./3;

%2. površinu

x2_2=x2(:,[9:12]);

x3_2=x3(:,[9:12]);

x4_2=x4(:,[1:4]);

x_3d_1_2=Reconstruction(P_gen_c2,P_gen_c3,x2_2,x3_2)';

x_3d_2_2=Reconstruction(P_gen_c2,P_gen_c4,x2_2,x4_2)';

x_3d_3_2=Reconstruction(P_gen_c3,P_gen_c4,x3_2,x4_2)';

x3d2=(x_3d_1_2+x_3d_2_2+x_3d_3_2)./3;

%3. površinu

x3_3=x3(:,[13:14]);

x4_3=x4(:,[5:6]);

x5_3=x5(:,[1:2]);

x_3d_1_3=Reconstruction(P_gen_c3,P_gen_c4,x3_3,x4_3)';

x_3d_2_3=Reconstruction(P_gen_c3,P_gen_c5,x3_3,x5_3)';

x_3d_3_3=Reconstruction(P_gen_c4,P_gen_c5,x4_3,x5_3)';

x3d3=(x_3d_1_3+x_3d_2_3+x_3d_3_3)./3;

%4. površinu

x4_4=x4(:,[7:8]);

x5_4=x5(:,[3:4]);

x6_4=x6(:,[1:2]);

x_3d_1_4=Reconstruction(P_gen_c4,P_gen_c5,x4_4,x5_4)';

x_3d_2_4=Reconstruction(P_gen_c4,P_gen_c6,x4_4,x6_4)';

x_3d_3_4=Reconstruction(P_gen_c5,P_gen_c6,x5_4,x6_4)';

x3d4=(x_3d_1_4+x_3d_2_4+x_3d_3_4)./3;

%5. površinu

x5_5=x5(:,[5:6]);

x6_5=x6(:,[3:4]);

x7_5=x7(:,[1:2]);

x_3d_1_5=Reconstruction(P_gen_c5,P_gen_c6,x5_5,x6_5)';

x_3d_2_5=Reconstruction(P_gen_c5,P_gen_c7,x5_5,x7_5)';

x_3d_3_5=Reconstruction(P_gen_c6,P_gen_c7,x6_5,x7_5)';

x3d5=(x_3d_1_5+x_3d_2_5+x_3d_3_5)./3;

%6. površinu

x6_6=x6(:,[5:6]);

x7_6=x7(:,[3:4]);

x8_6=x8(:,[1:2]);

x_3d_1_6=Reconstruction(P_gen_c6,P_gen_c7,x6_6,x7_6)';

x_3d_2_6=Reconstruction(P_gen_c6,P_gen_c8,x6_6,x8_6)';

x_3d_3_6=Reconstruction(P_gen_c7,P_gen_c8,x7_6,x8_6)';

x3d6=(x_3d_1_6+x_3d_2_6+x_3d_3_6)./3;

Page 75: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

71

%7. površinu

x7_7=x7(:,[5:6]);

x8_7=x8(:,[3:4]);

x9_7=x9(:,[1:2]);

x_3d_1_7=Reconstruction(P_gen_c7,P_gen_c8,x7_7,x8_7)';

x_3d_2_7=Reconstruction(P_gen_c7,P_gen_c9,x7_7,x9_7)';

x_3d_3_7=Reconstruction(P_gen_c8,P_gen_c9,x8_7,x9_7)';

x3d7=(x_3d_1_7+x_3d_2_7+x_3d_3_7)./3;

%8. površinu

x8_8=x8(:,[5:6]);

x9_8=x9(:,[3:4]);

x10_8=x10(:,[1:2]);

x_3d_1_8=Reconstruction(P_gen_c8,P_gen_c9,x8_8,x9_8)';

x_3d_2_8=Reconstruction(P_gen_c8,P_gen_c10,x8_8,x10_8)';

x_3d_3_8=Reconstruction(P_gen_c9,P_gen_c10,x9_8,x10_8)';

x3d8=(x_3d_1_8+x_3d_2_8+x_3d_3_8)./3;

%9. površinu

x9_9=x9(:,[5:6]);

x10_9=x10(:,[3:4]);

x11_9=x11(:,[1:2]);

x_3d_1_9=Reconstruction(P_gen_c9,P_gen_c10,x9_9,x10_9)';

x_3d_2_9=Reconstruction(P_gen_c9,P_gen_c11,x9_9,x11_9)';

x_3d_3_9=Reconstruction(P_gen_c10,P_gen_c11,x10_9,x11_9)';

x3d9=(x_3d_1_9+x_3d_2_9+x_3d_3_9)./3;

%10. površinu

x10_10=x10(:,[5:6]);

x11_10=x11(:,[3:4]);

x12_10=x12(:,[1:2]);

x_3d_1_10=Reconstruction(P_gen_c10,P_gen_c11,x10_10,x11_10)';

x_3d_2_10=Reconstruction(P_gen_c10,P_gen_c12,x10_10,x12_10)';

x_3d_3_10=Reconstruction(P_gen_c11,P_gen_c12,x11_10,x12_10)';

x3d10=(x_3d_1_10+x_3d_2_10+x_3d_3_10)./3;

%11. površinu

x11_11=x11(:,[5:7]);

x12_11=x12(:,[3:5]);

x13_11=x13(:,[1:3]);

x_3d_1_11=Reconstruction(P_gen_c11,P_gen_c12,x11_11,x12_11)';

x_3d_2_11=Reconstruction(P_gen_c11,P_gen_c13,x11_11,x13_11)';

x_3d_3_11=Reconstruction(P_gen_c12,P_gen_c13,x12_11,x13_11)';

x3d11=(x_3d_1_11+x_3d_2_11+x_3d_3_11)./3;

%12. površinu

x12_12=x12(:,[6:8]);

x13_12=x13(:,[4:6]);

x_3d_1_12=Reconstruction(P_gen_c12,P_gen_c13,x12_12,x13_12)';

Page 76: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

72

x3d12=(x_3d_1_12)./1;

%13. površinu

x14_13=x14(:,[2:5]);

x15_13=x15(:,[1:4]);

x_3d_1_13=Reconstruction(P_gen_c14,P_gen_c15,x14_13,x15_13)';

x3d13=(x_3d_1_13)./1;

%14. površinu

x15_14=x15(:,[6]);

x16_14=x16(:,[4]);

x17_14=x17(:,[1]);

x_3d_1_14=Reconstruction(P_gen_c15,P_gen_c16,x15_14,x16_14)';

x_3d_2_14=Reconstruction(P_gen_c15,P_gen_c17,x15_14,x17_14)';

x_3d_3_14=Reconstruction(P_gen_c16,P_gen_c17,x16_14,x17_14)';

x3d14=(x_3d_1_14+x_3d_2_14+x_3d_3_14)./3;

%15. površinu

x16_15=x16(:,[6:8]);

x17_15=x17(:,[3:5]);

x18_15=x18(:,[1:3]);

x_3d_1_15=Reconstruction(P_gen_c16,P_gen_c17,x16_15,x17_15)';

x_3d_2_15=Reconstruction(P_gen_c16,P_gen_c18,x16_15,x18_15)';

x_3d_3_15=Reconstruction(P_gen_c17,P_gen_c18,x17_15,x18_15)';

x3d15=(x_3d_1_15+x_3d_2_15+x_3d_3_15)./3;

%16. površinu

x17_16=x17(:,[6:9]);

x18_16=x18(:,[4:7]);

x_3d_1_16=Reconstruction(P_gen_c17,P_gen_c18,x17_16,x18_16)';

x3d16=(x_3d_1_16)./1;

maska = [zeros(1,4); zeros(1,4); -1 -1 -1 -1; zeros(1,4)];

x3d16=x3d16'+maska;

x3d16=x3d16';

%UKUPAN x3d

x_3d_genu=[x3d1;x3d2;x3d3;x3d4;x3d5;x3d6;x3d7;x3d8;x3d9;x3d10;x3d11;

x3d12;x3d13;x3d14;x3d15;x3d16];

Linija_ispravljanja = [x_3d_genu(1,3),

x_3d_genu(1,2);x_3d_genu(1,3)+10.5, x_3d_genu(1,2)-263];

Matrica_google_pom=Matrica_google;

pomak_x=-x_3d_genu(1,2);

pomak_y=Matrica_google(1,2)-x_3d_genu(1,3);

for i = 1:+1:512

Matrica_google_pom(i:1)=[Matrica_google_pom(i:1)+pomak_x];

Matrica_google_pom(i:2)=[Matrica_google_pom(i:2)-pomak_y];

end

Page 77: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

73

%plot --------------------------------------------------------------

-----

linijax1 = -x_3d_genu(:,2);

linijay1 = x_3d_genu(:,3);

linijax2 = Matrica_google_pom(:,1);

linijay2 = Matrica_google_pom(:,2);

linijax3 = -Linija_ispravljanja(:,2);

linijay3 = Linija_ispravljanja(:,1);

figure

plot(linijax1,linijay1,linijax2,linijay2,linijax3,linijay3,

'LineWidth',2); axis equal

Kod programa za filtriranje ceste

img = imread(3_cesta_05.JPG');

HSV = rgb2hsv(img);

subplot(2,2,1), imshow(img); title('RGB slika');

subplot(2,2,2), imshow(HSV(:,:,1)); title('H kanal');

subplot(2,2,3), imshow(HSV(:,:,2)); title('S kanal');

subplot(2,2,4), imshow(HSV(:,:,3)); title('V kanal'),

colormap(hsv);

H = HSV(:,:,1) < 0.0001 | HSV(:,:,1) > 0.55;

se1 = strel('disk',10);

H2 = imerode(H,se1);

%Biggest object

s = regionprops(H2, 'Area', 'PixelList');

[~,ind] = max([s.Area]);

pix = sub2ind(size(H2), s(ind).PixelList(:,2),

s(ind).PixelList(:,1));

H3 = zeros(size(H2));

H3(pix) = H2(pix);

se2 = strel('disk',15);

H4 = imdilate(H3,se2);

H5 = imfill(H4,'holes'); % fill the gap on the ball top part

%zaobljivanje konture

se3 = strel('disk',100); %za 150px circular

H6 = imclose(H5,se3);

H7 = imclose(H6,se3);

H8 = imclose(H7,se3);

H9 = imclose(H8,se3);

H10 = imclose(H9,se3);

Page 78: TRODIMENZIONALNA - Ruđer Bošković Institute...GPS-prijamnik treba znati dvije stvari ako namjerava raditi svoj posao. Mora znati gdje su sateliti (njihov položaj) i koliko su daleko

74

%erodiranje do skoro kraja

se4 = strel('disk',100); %za 150px circular

H11 = imerode(H10,se4);

%skeletizacija

H12 = bwmorph(H11,'skel',Inf);

%lagano podebljanje linije

se5 = strel('line',10,10);

H13 = imdilate(H12,se5);

H10_l = logical(H10);

branchPoints=bwmorph(H12, 'branchpoints');

endPoints=bwmorph(H12, 'endpoints');

[i,j] = find(bwmorph(H12,'endpoints'));

D = bwdistgeodesic(H10_l,H12,'quasi');

load('x od ceste.mat')

H14 = xor(1,H10_l);

D2 = bwdist(H14);

tockax=x5(1,1);

tockay=x5(2,1);

tockax2=x5(1,2);

tockay2=x5(2,2);

tockax3=x5(1,3);

tockay3=x5(2,3);

tockax4=x5(1,4);

tockay4=x5(2,4);

tockax5=x5(1,5);

tockay5=x5(2,5);

tockax6=x5(1,6);

tockay6=x5(2,6);

vrijednost1=improfile(D2,tockax,tockay);

sirina1=vrijednost1*2*14.061;

vrijednost2=improfile(D2,tockax2,tockay2);

sirina2=vrijednost2*2*14.061;

vrijednost3=improfile(D2,tockax3,tockay3);

sirina3=vrijednost3*2*14.061;

vrijednost4=improfile(D2,tockax4,tockay4);

sirina4=vrijednost4*2*14.061;

vrijednost5=improfile(D2,tockax5,tockay5);

sirina5=vrijednost5*2*14.061;

vrijednost6=improfile(D2,tockax6,tockay6);

sirina6=vrijednost6*2*14.061;