"Taeva" eemaldamine pildist Robotex 2011 kontekstis

Allikas: Digilabor

Robotexide üks läbiv probleem on, et kaamera pildist on vaja leida mingid esemed. Samas kaamera vaatevälja jääb ka palju kõrvalist. Robotex 2009, 2010 ja 2011 ülesandeks on pallimäng ning kõik mänguväljaku servast kõrgemal asetsev on eksitav. Seega oleks hea see kaamera pildist eemaldada enne analüüsi.

Variant 1 - kui me teame oma asukohta

Kui roboti asukoht platsil on teada, siis on ka platsi servade kaugus arvutatav. See on üsna sarnane ülesandele [Palli asukoha arvutamine kaamerapildi j%C3%A4rgi]] aga probleem on vastupidine.

Seekord me teame serva kaugust (näiteks 100cm), kaamera kõrgust (30cm) ning me peame ainult arvutama välja nurga. Valem peaks olema acos(30/100)=1.266103672 radiaani või siis 72,54 kraadi.


Kui kaugus on 100cm servast ning kaamera hakkab nägema alt servast 24 kraadi pealt ning nägemisulatus on 61 kraadi Y telge pidi, on nende summa 24+61=85 ja seega näeb kaamera üle serva. Pilt tuleb ära piirata 72,54 - 24=48.54 kraadi juures. Kui pildi kõrgus on 480 pikselit, siis 61 kraadi korral on 480/61*48.54=~382 pikseli juurest üles kõik ebavajalik ja tuleb ignoreerida.

Reaalsus on aga selline, et siis me ei näe ka enam palle, mis on väljaku servas. Probleemi lahendus on lihtne. Kuna väljakul on 10cm kõrged servad, võib ka valemit vastavalt täiustada. Kuna pallid on alla 5cm läbimõõduga ja serv 10cm kõrgune, langetame valemis kaamera kõrgust suurusjärgus 5..10 cm. Mingi keskmine suurus, näiteks 8cm on ehk parim. Uus arvutus:

acos((30-8)/100)=1.348981856 radiaani või 77.29 kraadi. Nagu näha tõusis vaatenurk võrreldes eelnevaga ligi viis kraadi.

Valem töötab hästi kui me oleme platsi serva suhtes kaameraga otse. Kui aga oleme viltu, on ka "taevas" viltu. Selle olukorra lahendame ka. Arvutusi tuleb teha põhimõttel, et kaamera X telje nullpunkt on pildi keskjoonel ning Z telge pidi kaugus on koht, mille kohta käis eelmine valem. Tuleb ainult arvutada välja, palju üks serv madalamal on ja teine kõrgemal.

Personaalsed tööriistad
Navigeerimine
Käsitöö