BAKAL A RSK A PR ACE

Transkript

BAKAL A RSK A PR ACE
Vysoke
Uc
en
v Praze
Cesk
e
Technicke
Fakulta Elektrotechnicka
RSK
A
PRACE
BAKALA
Karel Lenc
Po
c
ta
cov
e vid
en
robota hry Eurobot 2010
Katedra kybernetiky, Centrum strojoveho vnman
Vedouc bakalarske prace: doc. Dr. Ing. Jir Matas
Praha, 2010
Abstrakt
Prace popisuje modul viden robota pro hru Eurobot 2010. Clem modulu je rozpoznat
v okol predmety tr kategori a urcit jejich pozice. Hledan predmetu je zalozeno na
barve. Pomoc dichromatickeho barevneho modelu objektu dane kategorie zjist'ujeme
oblasti, ktere mohou byt obrazem hledanych objektu. Z bodu uvnitr nalezene oblasti
hledame hranove body, ze kterych se overuje hypoteza prtomnosti objektu robustnm
zpusobem pomoc metody RANSAC. Pro viden byl sestrojen system vestaveny do
hernch majacku umstenych na okrajch hriste. Na triceti testovacch obrazcch z ruznych
hernch situac pri promenlivem osvetlen byla dosazena uspesnost 89% u rajcat a 56%
u kukuric.
Abstract
This thesis describes the vision module created for robot competing in Eurobot games
2010. The vision system is built into three beacons placed in edges of the playground.
The aim is to identify three types of objects used in te game and determine their
positions. Detection method is based on color. Using dichromatic color model we nd
areas which could be, with high probability, assigned to particular object's surface.
From the point inside the area we look for edge points and with them we try to verify
the object presence in robust manner with RANSAC method. Testing of our algorithm,
on thirty images from a variety of game situations and in dierent lightning, resulted
in the succes rate of 89% for tomatoes and 56% for maize.
Pod
ekov
an
Dekuji Doc. Jirmu Matasovi za vstrcnost, cenne rady a trpelivost pri konzultacch
k teto praci. Dale dekuji Ing. Pavlu Krskovi a Ing. Vladimru Smutnemu za rady
a pomoc pri sestavovan hardwarove casti prace. Pri vyrobe kamerovych majacku
a vseobecnou podporou mi take velice pomohli kolegove Lenka Mudrova a Jaroslav
Halgask z tymu FELaaCZech. Dekuji rodine za podporu nejen pri studiu.
Obsah
U vod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1 Specikace problemu
2
2 Analyza problemu poctacoveho viden robota
7
3 Detekce hernch objekt
u z obrazku
9
1.1 Eurobot 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Popis robota . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Hardwarove prostredky . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Softwarova struktura robota . . . . . . . . . . . . . . . . . . . . .
1.2.3 Zakladn taktiky hry . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Pozadavky na modul viden . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Komunikace modulu viden s robotem . . . . . . . . . . . . . . .
2.1 Vizualn vlastnosti snmaneho obrazu . . . . . . . . . . . . . . . . . . . .
2.1.1 Osvetlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Hriste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.3 Hern prvky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 Protivnk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Polohove vlastnosti hernch prvku . . . . . . . . . . . . . . . . . . . . .
3.1
3.2
3.3
3.4
Dichromaticky model odrazivosti . . . . . . . . . . . . . . . . . . . . . .
RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zpracovan vstupnho obrazu . . . . . . . . . . . . . . . . . . . . . . . .
Detekce rajcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Detekce oblast . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 Test tvaru souvisle oblasti . . . . . . . . . . . . . . . . . . . . . .
3.4.3 Zjisten hranovych bodu . . . . . . . . . . . . . . . . . . . . . . .
3.4.4 Hledan parametru kruznice . . . . . . . . . . . . . . . . . . . . .
3.5 Detekce kukuric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Detekce oblast . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.2 Urcen hranovych bodu kukurice . . . . . . . . . . . . . . . . . .
3.5.3 Urcen barvy hernho prvku . . . . . . . . . . . . . . . . . . . . .
3.6 Overovan prtomnosti hernho prvku na hristi . . . . . . . . . . . . . .
3.6.1 Overovan prtomnosti pomerancu . . . . . . . . . . . . . . . . .
2
3
3
4
5
5
5
7
7
8
8
8
8
9
10
10
10
12
12
14
14
15
18
18
19
19
19
4 Detekce hern varianty
20
5 Reprezentace prostred
21
5.1 Souradnicove systemy . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Urcen polohy objektu z obrazku . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Transformace souradnic . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Kalibrace kamery . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Mapa prostred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Reprezentace objektu v mape . . . . . . . . . . . . . . . . . . . .
5.3.2 Sprava objektu v mape . . . . . . . . . . . . . . . . . . . . . . .
vi
21
21
23
24
25
25
26
6 Implementace
27
7 Experimenty
30
8 Zaver
37
Literatura
38
Prloha A: Obsah CD
39
6.1 Softwarova implementace . . . . . . . . . . . . . . . . . . . . . . . . . . 27
6.2 Hardwarova implementace . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.1
7.2
7.3
7.4
7.5
Idealn prubeh detekce . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Spolehlivost detekce . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Presnost urcen pozice objektu v obrazku . . . . . . . . . . . . . . . . .
Vypocetn narocnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vysledky ze souteze . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vii
30
33
35
35
35
Uvod
Clem prace je navrhnout a realizovat modul viden pro robota vyvjeneho tymem FELaaCZech pro soutez Eurobot 2010. Soutez je kazdorocne organizovana sdruzenm Eurobot a jejmi lokalnmi partnery. Zakladnm ukolem tohoto modulu je po celou dobu hry
uchovavat informace o rozmsten hernch prvku na hracm hristi. Dky presne danym
pravidlum hry je hern prostred pomerne presne specikovano. Vsechny hern prvky se
na zacatku hry nachazej na danych pozicch a nektere jsou take snadno barevne rozlisitelne. Modul by ale mel byt co nejvce odolny proti chybam zpusobenym zmenami
v osvetlen snmane sceny, proto je kladen duraz na robustnost zpusobu detekce objektu
z obrazku.
V kapitole 1 je uvedena zakladn specikace reseneho problemu. Nejprve uvadme
zakladn pravidla souteze, nasleduj podstatne informace o robotovi a nakonec denujeme konkretn ukoly modulu poctacoveho viden. Kapitola 2 se venuje analyze situac,
ktere mohou ve vstupnch datech nastat. Kapitola 3 se zabyva resenm problemu detekce objektu z obrazku, jehoz vysledkem je obecne jejich pozice ve vstupnch datech.
V kapitole 5 navrhujeme, jak tyto objekty spravovat a jak z polohy objektu v obrazku
zjistit v jake casti hriste se nachaz. Implementaci softwarove i hardwarove casti prace
popisujeme v 6. kapitole. Kapitola 7 obsahuje vysledky experimentu a vypracovane
resen zadaneho problemu.
1
1 Specikace problemu
1.1
Eurobot 2010
Eurobot je kazdorocne poradana mezinarodn roboticka soutez, jejmz clem je mimo
jine podporovat kreativitu a vymenu zkusenost mezi soutezcmi. Soutez se snaz vest
k vytvaren spolupracujcch robotu, kter se navzajem neohrozuj (Eurobot, 2009, s. 4).
Kazdy rocnk ma jine tema a pravidla, pricemz nektere zakladn parametry jsou vzdy
stejne:
Na hracm stole spolu souper vzdy dva roboti.
Hra trva presne 90 s a po nich se roboti mus zastavit a neprojevovat zadnou cinnost.
Robot v zadnem prpade nesm ohrozit ci omylem narazit do robota protihrace.
Delka konvexn obalky pudorysu robota pri startu nesm prekrocit 1200 mm, behem
hry nesm prekrocit 1400 mm.
Vyska robotu nepresahuje 350 mm.
Rozmery hracho stolu jsou 3000 2100 mm.
Parametry a schopnost robota zucastnit se hry kontroluj poradatele pri homologacch.
Pokud robot v prubehu hry porus pravidla, muze byt na zaklade rozhodnut rozhodcch penalizovan (odecten souteznch bodu) nebo az diskvalikovan. Mezi porusen
pravidel patr:
Robot se silne sraz s protivnkem.
Robot zamerne zabranuje oponentovi dosazen hernho prvku.
Robot zamerne zabranuje souperi dosazen jeho clove oblasti.
Robot provad akci nebo rozlozen, ktera nebyla predem schvalena.
Vinka srazky robotu a bodovou diskvalikaci urcuje rozhodc po skoncen zapasu.
Tematem rocnku 2010 je sklizen urody. Clem hry je sesbrat a odvezt do vlastnho
kontejneru co nejvce hernch prvku. Ty jsou spolecne pro oba soupere a vysledne skore
hry je odvozeno z jejich hmotnosti. Na hristi se vyskytuj tyto objekty:
ervene zonglovac mcky, ktere jsou pred zacatkem hry umsteny do 14ti
Rajcata: C
danych pozic. Maj prumer 100 mm a vaz 150 g.
Kukuricne klasy: Drevenne valecky zaaretovane v 18 danych pozicch. Na nahodne vylosovanych 7 pozic jsou umsteny cerne falesne kukurice, ktere jsou pevne pripevnene
ke stolu. Zbyle kukurice jsou ble barvy a lze je ze stolu vytahnout nebo povalit
(Eurobot, 2010). Vaha kukuricneho klasu je 250 g.
Pomerance: Oranzove zonglovac mcky umstene na vyvysene plosine. Jsou polozeny
na dutych, pevne pripevnenych valcch, ktere predstavuj kmeny stromu. Pomerance
maj nejvyss hodnotu, vaz 300 g a na hristi je celkem 12 kusu.
Vtez robot, ktery dosahl vyssho skore (tj. hmotnost ovoce vtezneho robota v jeho
kontejneru je vyss nez soupere).
2
1 Specikace problemu
Hriste s hernmi prvky hry Eurobot 2010: 1. Bocnice hriste, 2. Pozice pro
umsten majacku, 3. Clovy kontejner, 4. Sloupek pomerance ( "vetev\) 5. Pomeranc, 6.
Prava kukurice, 7. Rajce, 8. Falesna kukurice (Eurobot, 2009, s. 36).
Obrazek 1.1
Plocha hriste (zobrazeneho na obrazku 1.1) je natrena zelenou barvou s cernymi
bocnicemi. Na hristi jsou dve rovnocenne startovac zony (zluta a modra) jejichz pridelen je dopredu zname. Pro oba tymy jsou na krajch hriste k dispozici sloupky pro
lokalizacn majaky a je take mozne, dle pravidel, umstit na souperova robota dals
lokalizacn aparaturu danych rozmeru. Jednotlive typy prvku jsou snadno barevne
odlisitelne s vyjimkou falesnych kukuric, ktere maj stejnou barvu povrchu jako krajnice
hriste. Vce lze videt na obrazku 1.1. Poloha prvku na zacatku hry je pevne dana, ale
v prubehu hry je mozne s nimi, mimo falesnych kukuric, temer libovolne manipulovat.
Nesm se vsak hazet.
Vsechna zminovana pravidla byla cerpana z ocialnch materialu ke hre (Eurobot,
2009) spolu s dalsmi podrobnostmi. Tyto pravidla jsou kazdorocne vydavana poradatelskym sdruzenm Planete Sciences.
1.2
Popis robota
Zde bychom chteli popsat zakladn parametry robota. Jak jiz bylo uvedeno v sekci
1.1, robot mus splnovat urcite rozmerova kriteria. Robot je navrzen modularne po
hardwarove i softwarove strance, coz prinas vyhody jak ve forme znovupouzitelnosti,
tak ve forme snazsho vyvoje.
1.2.1
Hardwarov
e prost
redky
Zakladnm vypocetnm hardwarem robota je jednodeskovy mikropoctac BeagleBoard1
postaveny na procesoru TI OMAP3530. Jedna se pomerne vykonny SoC2 s jadrem
ARM Cortex-A8 pracujcm na frekvenci 600MHz.
1
<http://beagleboard.org/hardware>
2
System-on-a-chip
3
1 Specikace problemu
Pro regulatory a dals nzkourovnove moduly jsou k dispozici dve desky Arduina
Mega3, ktere jako vypocetn jadro vyuzvaj mikro-kontrolery ATmega1280. S temito
deskami se po softwarove strance komunikuje totozne jako s ostatnmi moduly. Zpravy
se odeslaj do specialnho modulu, ktery zajist'uje prjem a odeslan zprav pres RS232.
Pro rozpoznavan je take k dispozici Toradex Robin Z530 4, coz je x86 embedded PC
o velikosti Nano COM ExpressTM s procesorem Intelr AtomTM. V nasem prpade je
pouzit spolu s Daisy Pico-ITX rozsirujcm modulem, ktery umoznuje snadne pripojen
USB zarzen, Ethernetu RJ-45 a analogoveho VGA konektoru. Tento hardware byl
vybran pro sve male rozmery a nzkou spotrebu. Zaroven s sebou v tomto malem balen
prinas i vsechny vyhody klasickeho PC.
1.2.2
Softwarov
a struktura robota
Operacnm systemem hlavn vypocetn jednotky je GNU/Linux. Jednotlive softwarove
moduly jsou reprezentovany jako procesy, takze sdlen casu procesoru obstarava operacn system na zaklade vhodne zvolenych priorit. Hlavn modul ma na starost pouze
spousten procesu a komunikaci mezi nimi.
Zakladn hierarchie modulu a smer komunikace mezi nimi je znazornen na obrazku
1.2. Hern strategii a chovan robota rd modul hernho planovan. Ten posla prkazy
modulum brouk a sberac, ktere maj za ukol rdit pohyb robota.
Brouk naprklad obdrz od hernho planovan ukol dostat se na urcitou pozici na
hristi. Na zaklade informac z modulu pro spravu pozice vypocta nejvhodnejs trajektorii a podle nich vygeneruje posloupnost prkazu pro ovladan kol. Pokud naraz na
problem, oznam to nadrazenemu modulu. Podobne ukoly res i modul sberac s tm, ze
jeho ukolem je ovladat manipulatory pro manipulaci s hernmi prvky.
Lokalizacn modul ma za ukol, na zaklade prijatych dat od modulu ovladajcch
lokalizacn senzory, urcit nejpravdepodobnejs pozici a natocen robota na hristi. Zaroven
take uchovava informace o pozici protivnka. Tyto informace uklada jak do souboru
pozice, tak je odesla na komunikacn kanal, odkud jsou pomoc RS232 translatoru
preposlany modulu ovladan kol. Tento modul na jejich zaklade muze provadet urcite
korekce pohybu.
Model sveta ma za ukol spravovat soubor mapy, ktera je vyuzvana predevsm hernm
planovanm pro urcen strategie na zaklade pozic hernch prvku. Tento modul je uzce
svazan s modulem viden, jehoz implementace je clem teto prace.
Komunikace mezi moduly je zprostredkovavana hlavnm modulem a probha pres
st'ove sockety pomoc jednoduchych zprav. Zpravy maj pevne danou hlavicku a lis
se obsahem podle typu modulu. Spojen jsou logicky usporadana do nekolika komunikacnch kanalu a hlavn modul odpovda za preposlan zprav mezi nimi. Mezi nekterymi moduly je vlozen meziclen (RS232 translator), ktery zajist'uje preklad zprav a
jejich rozeslan po jine fyzicke vrstve. Vyhodou tohoto resen je, ze lze velmi snadno
zpravy odposlouchavat a tm kontrolovat provoz robota. Dale pokud bychom chteli
rozsirovat robota o dals vypocetn jednotky, lze je jednoduse propojit standardnm
st'ovym rozhranm.
3
<http://arduino.cc/en/Main/ArduinoBoardMega>
4
<http://www.toradex.com/En/Products/Robin/Robin_Modules>
4
1 Specikace problemu
Obrazek 1.2
1.2.3
Moduly robota a komunikacn kanaly mezi nimi.
Z
akladn
taktiky hry
Pri samotne hre se pocta s nekolika zakladnmi taktikami zamerene na:
Spolehlivost: Po startu nejkrats a nejspolehlivejs cestou dopravit do clove oblasti
minimalne jedno rajce a az do konce hry se snazit dopravit do cle co nejvce zbyvajcch hernch prvku. V tomto prpade je potreba udrzovat aktualn informace
o polohach hernch prvku na hristi.
Sber vlastnch pomeranc
u: Po startu sesbrat pomerance u startovn pozice a dopravit
je do cle. Nasledne se pokusit, dle rozlozen ostatnch hernch prvku na hristi, do cle
dopravit zbyvajc ovoce. Stejne jako v minule strategii je potreba udrzovat aktualn
informace o polohach hernch prvku na hristi.
Sber vsech pomeranc
u: Po odvezen pomeranc
u ze startovn pozice se pokusit odvezt
tyto hern prvky i z protivnkovi startovn pozice. V tomto prpade je potreba zjistit,
zda souper tyto hern prvky jiz neodvezl. Nasledne pokracovat jako v predchozch
strategich.
1.3
Po
zadavky na modul vid
en
U kolem navrhovaneho modulu je spravne lokalizovat hrac prvky na hernm poli a
vysledky detekce odeslat do spolecneho mapoveho modulu robota.
1.3.1
Komunikace modulu vid
en
s robotem
Z obrazku 1.2 lze videt s jakymi moduly rozpoznavan komunikuje. Pro nas jsou dulezite
hlavne kanaly 11, 6 a 7.
Na kanalu 11 jsou prijmany pozadavky k detekci objektu v okol, ktere jsou odeslany
z planovacho modulu a mohou byt vyslany naprklad pri startu hry, aby mel planovac
modul k dispozici aktualn informace o rozlozen hernch prvku v uhlu zaberu. Dale
muze prijt od planovacho modulu pozadavek na znovuoveren objektu v zornem poli,
ktere je casove mene narocne (u objektu je znama jeho pozice v obrazku), coz se deje
naprklad v prpade, kdyz se planovac modul rozhodne vyjet pro konkretn prvek.
5
1 Specikace problemu
Na kanalu 6 jsou obecne odeslany zpravy s informacemi o umsten objektu na hristi.
Ty prijma a zpracovava mapovy modul. Ten ma na starost spravu vsech objektu na
hristi spolu s histori pohybu robota protihrace. Na tento kanal by melo viden odeslat
informace o vsech detekovanych objektech.
Poslednm kanal, se kterym modul rozpoznavan pracuje, je kanal 7. Zde jsou lokalizacnmu modulu odeslany updaty aktualn polohy, nacez lokalizacn modul na jejich zaklade udrzuje nejpravdepodobnejs aktualn polohu. Aktualn polohu robota a
jeho natocen muze modul viden nactat ze sdleneho souboru, ktery lokalizacn modul
spravuje (pokud modul rozpoznavan bez na stejnem poctaci jako lokalizacn modul).
6
2 Analyza problemu poctacoveho viden robota
Hra probha v presne specikovanem hernm prostred. Tym ma k dispozici samotneho
hernho robota a sloupky pro umsten majacku v presne urcenych okrajovych pozicch
hriste. Scenu lze tedy snmat z mobilnho robota, ci z techto pevnych pozic.
Pri snman obrazu z robota je poloha hernch prvku v obraze ovlivnena polohou
robota v hristi. Ten se po vetsinu hry nachaz v konstantn vysce, kdy ma pouze tri
stupne volnosti. Robot muze behem hry vyjzdet na vyvysenou cast hriste pro sber
pomerancu, kdy se men naklon i vzdalenost od povrchu hriste.
Majacky na hristi jsou umsteny ve vysce 350 mm nad povrchem a v pozicch, ktere
jsou dany startovn variantou. Presne pozice majacku na hristi lze videt na obrazku
2.1.
2.1
2.1.1
Vizu
aln
vlastnosti sn
man
eho obrazu
Osv
etlen
Osvetlen hern plochy nen pravidly nijak specikovano. Hriste je vsak behem hry
bezne osvetleno reektory z ruznych smeru. Tyto zdroje svetla lze zjednodusit jako
blzky bodovy zdroj svetla (FORSYTH { PONCE, 2003, s. 74). A prave proto, ze se
jedna o bodove zdroje, tak se na hristi objevuj oblasti zastnene hernmi prvky. Dals
potencionaln problemy se mohou objevit dky vzajemne reexi, jenz vznika tak, ze
svetlo odrazene od jednoho povrchu osvetl jiny povrch. V nasem prpade bude tato
reexe naprklad zpusobovat barevny nadech hernch prvku do barvy povrchu hriste.
Vyslednou barvu hernch prvku v obrazku take ovlivnuje barevna teplota svetelneho
zdroje.
Obrazek 2.1
Polohy majacku na hristi a na robotech (Eurobot, 2009, s. 21).
7
2 Analyza problemu poctacoveho viden robota
2.1.2
H
ri
st
e
Opticke vlastnosti hriste jsou urceny materialem a naterem povrchu. Dle hernch specikac je hriste vyrobene ze dreva a je natreno akrylatovou barvou denovanou vzornkem
barev RAL 1. Detailnejs informace o odstnech barev lze nalezt v ocialnch pravidlech
souteze (Eurobot, 2009, s. 43). Dky temto parametrum se jedna prevazne o Lambertovsky povrch bez vyraznejsch spekularit.
2.1.3
Hern
prvky
Z hlediska optickych vlastnost se na hristi vyskytuj dva zakladn typy hernch prvku.
astecne odrazive objekty s velmi vyraznou barevnou slozkou.
Pomerance a rajcata: C
Leskly povrch zpusobuje, ze cast odrazeneho svetelneho toku zavis na uhlu dopadu
prchozho svetelneho toku. To v obraze objektu zpusobuje odlesky zdroje svetla,
ktere jsou charakteristicke vysokou intenzitou jasu (FORSYTH { PONCE, 2003,
s. 66). Objekty jsou kuloviteho tvaru.
Prave a falesne kukurice: Hern prvky vyrobene soustruzenm z polypropylenu, coz
zpusobuje ze jejich povrch je prevazne Lambertovsky. Odrazeny svetelny tok tedy
nen tolik zavisly na uhlu dopadajcho svetla. Odlisit tyto prvky mezi sebou je mozne
jen na zaklade rozdlne intenzity, protoze jejich barevna slozka nen denovana jako
u rajcat nebo pomerancu a vce se u nich projev vzajemna reexe. U falesnych
kukuric je to navc komplikovane tm, ze maj podobne opticke vlastnosti jako okraje
hriste. Objekty jsou valcoviteho tvaru.
2.1.4
Protivn
k
Podle pravidel lze protivnka denovat pouze jeho maximalnmi rozmery. Protivnk by
take nemel na sobe mt barvy, ktere by byly zamenitelne s barvami hernch prvku. Na
protivnka je mozne umstit libovolne vlastn zarzen o rozmerech 80 80 80 mm do
presne specikovane vysky nad hristem.
2.2
Polohov
e vlastnosti hern
ch prvk
u
Hern objekty, mimo pomerancu, se na hristi vyskytuj prevazne na jeho povrchu.
U rajcat a stojcch kukuric urcujeme pouze polohu na povrchu hriste. U lezcch kukuric
je navc dulezite urcit i jejich natocen v ose kolme k povrchu hriste. Pomerance se pri
startu hry nachazej v presne denovanych pozicch nad hristem. Vsechny hern prvky
stejneho typu jsou vzajemne zamenitelne. Dale se prvky mohou nachazet v tele robota,
kde jiz nejsou dulezite pro hru naseho robota.
Pri snman objektu kamerou se mohou objekty navzajem zakryvat, ci mohou byt
zakryty hernmi roboty.
1
<http://www.ral-farben.de/>
8
3 Detekce hernch objekt
u z obrazku
Vsechny hern objekty ze vstupnho obrazku detekujeme podobnym zpusobem:
V obrazku vyhledame body, ktere svoj barvou odpovdaj hledanemu hernho prvku.
Ze souvislych oblast techto bodu vybereme jeden bod, ktery budeme dale nazyvat
pocatecnm bodem\.
"Ze pocatecnho bodu se snazme najt okraje objektu takovym zpusobem, ktery nezavis na jeho pozici v ramci obrazu objektu ve vstupnch datech.
Snazme se urcit nejpravdepodobnejs polohu geometrickeho utvaru, ktery dany hern
prvek znazornuje (u rajcat se jedna o kruznici, u kukuric o obdelnk). K tomu
vyuzvame RANSAC algoritmus, ktery blze popseme v sekci 3.2.
3.1
Dichromatick
y model odrazivosti
Dichromaticky model odrazovosti popisuje svetlo odrazene od bodu objektu jako linearn
kombinaci dvou slozek:
Surface reection: Odrazene svetlo s barevnymi vlastnostmi jako svetlo zdroje, jez
vznika prmym odrazem od nehomogennho povrchu. Povrch se v tom prpade chova
temer jako zrcadlo.
Body reection: Odrazene svetlo se zmenenymi barevnymi vlastnostmi, ktere se vytvor
pohlcenm urcite casti svetelneho spektra. Pohlcena cast spektra je dana optickymi
vlastnostmi povrchu.
Odrazene svetlo tedy zavis na vlastnostech svetelneho zdroje a povrchu objektu.
E () = cb Eb() + cs Es()
(3.1)
Kde E je vysledne spektraln osvetlen, Eb spektraln osvetlen charakteristicke pro
material objektu a Es osvetlen odpovdajc vlastnostem svetelneho zdroje.
Predpokladame-li, ze je obraz snman kamerou s linearn odezvou, lze zmerenou
barevnou hodnotu popsat jako:
0 1
0 1
0 1
R
Rb
Rs
@ G A = cb @ Gb A + cs @ Gs A
B
Bb
Bs
(3.2)
Dle rovnice 3.2 kazdy povrch generuje body lezc na prmce v RGB barevnem prostoru. Presnou polohu a smernici prmky ovlivnuj vlastnosti zdroje svetla. Poloha bodu
ma tedy jen dva stupne volnosti a lez tedy na rovine (Kravtchenko { Little, 1999).
Problem jsme si zjednodusili zavedenm jednoducheho dichromatickeho barevneho
systemu, ktery je invariantn na intenzitu osvetlen. Msto hodnot [R; G; B ] zavadme
[r; g; I ], ktere jsou dany vztahem:
G
r = R + GR + B g = R + G
+B I =R+G+B
9
(3.3)
3 Detekce hernch objekt
u z obrazku
Barevnost svetla odrazeneho od povrchu lze nyn popsat jako:
r = c0 rb + c0 rs
s
b
g
gb
gs
(3.4)
Z rovnice 3.4 lze videt, ze v tomto barevnem systemu nezavis barevnost odrazeneho
svetla na intenzite odrazeneho svetla. To nam umoznuje specikovat mnozinu hodnot
odpovdajcch danemu typu povrchu jen ve dvourozmernem prostoru, ktery se snadno
implementuje naprklad pomoc look-up tabulky.
3.2
RANSAC
RANSAC (RANdom SAmple Consesus) je iterativn metoda pro robustn urcen neznamych parametru ze sady dat. Vstupem je mnozina dat U , ze kterych neznama cast
odpovda hledanemu modelu (tzv. inliers) a zbytek dat z teto mnoziny je chybny (tzv.
outliers). Clem algoritmu je nalezt parametry modelu z prostoru parametru , pro
ktere funkce Js(; U ; ) nabyva maximalnch hodnot. Vysledek teto funkce je ve vetsine
prpadu denovan jako pocet datovych bodu odpovdajcch dane volbe parametru.
Vstupnm parametrem algoritmu je , ktera predstavuje maximaln chybu, kdy je datovy bod jeste povazovan za soucast modelu (Chum, 2005, s. 9).
Postupujeme takto:
Generujeme hypotezu parametru modelu. Z mnoziny U nahodne vybereme podmnozinu dat Sk , pro kterou plat, ze pocet datovych bodu je minimalne takovy, aby bylo
mozne jednoznacne urcit parametry modelu.
Pro dane parametry se zjist vysledek hodnotc funkce.
Pokud je dosazeno noveho maximalnho ohodnocen, ulozme tyto parametry jako
aktualne nejleps.
Plat, ze vysledek teto metody je silne zavisly na pomeru poctu inlieru vuci outlierum
ve vstupnch datech a poctu iterac algoritmu (Chum, 2005, s. 11).
3.3
Zpracov
an
vstupn
ho obrazu
Ze vstupnho obrazku jsou nejprve odstraneny oblasti neodpovdajc povrchu hernho
hriste. To provadme tak, ze na zaklade nakalibrovanych transformac ze souradnic
hriste do roviny vrsku kukuric orzneme z obrazku oblasti za okraji hrac plochy.
3.4
Detekce raj
cat
Jak jiz bylo zmneno v kapitole 1, hern prvky znazornujc ve hre rajcata, maj oproti
svemu okol velmi vyraznou barvu, proto je pri hledan startovnho bodu vyuzito jiz
popsaneho dichromatickeho modelu.
10
3 Detekce hernch objekt
u z obrazku
Postup detekce rajcat.
200
0
150
0.2
0.4
100
1000
0.6
500
50
0
0
a)
1500
g
Cetnost
Obrazek 3.1
0.8
200
400
Intenzita
600
800
1
0
0.2
0.4
0.6
0.8
1
0
r
b)
c)
a) Obraz rajcete b) Histogram intenzit c) 2D histogram chromaticit. Histogramy
jsou vytvareny z obrazku bez odlesku.
Obrazek 3.2
11
3 Detekce hernch objekt
u z obrazku
Obrazek 3.3
3.4.1
Aplikace eroze na oblast detekovaneho rajcete.
Detekce oblast
Pro urcen pixelu, ktere s velkou pravdepodobnost prslus rajceti, je vyuzito dvourozmerne look-up tabulky. Tabulka je vytvorena na zaklade predem ulozenych obrazku
rajcat, z nichz je vypoctan histogram intenzit a dvourozmerny histogram barevnych
slozek s pomerne nzkym rozlisenm (100 na 100 bodu), coz vede k nizs datove narocnosti
a i mensm pozadavkum na mnozstv vstupnch dat. Hodnoty v histogramu jsou oprahovany na zaklade uzivatelem zadane hodnoty, cmz zskame 2D pole binarnch hodnot,
kde pravdiva hodnota znamena, ze barevna hodnota odpovda povrchu rajcete.
Tato tabulka se vytvar ve specialnm rezimu programu a je nasledne ulozena do
souboru. Do stejneho souboru se take uklada uzivatelem denovany interval povolenych
intenzit jasu. Dky tomu je mozne tabulky velmi snadno spravovat. Pri startu aplikace
jsou automaticky vsechny tabulky nacteny do vlastnch objektu, aby mohli byt vyuzity
v detektorech.
Pri samotne detekci je vstupn obrazek nejprve zmensen na polovinu, abychom snzili
dobu zpracovan. Pro vstupn data se vytvor binarn obrazek (maska) stejnych rozmeru
inicializovany na nulove hodnoty. U kazdeho pixelu obrazku se urc jeho chromaticita spolu s intenzitou a na zaklade look-up tabulky a intervalu povolenych intenzit
rozhodneme, zda-li dany pixel odpovda povrchu rajcete. Pokud ano, patricny pixel
v masce se nastav na pravdivou hodnotu. Tm vzniknou v binarnm obrazku oblasti
pixelu, ktere barvou odpovdaj povrchu rajcat.
3.4.2
Test tvaru souvisl
e oblasti
Vstupn data jsou ovlivnena sumem a nedokonalostmi pouzite kamery. Nejvce se to
projevuje u pixelu s nzkou hodnotou intenzity jasu, kde tyto chyby maj velky vliv na
chromaticitu. Proto vznika urcite mnozstv false-positiv souvislych oblast. Mnozinu
nalezenych souvislych oblast chceme na zaklade barevnych hodnot klasikovat do
dvou trd - objektu rajcat a objektu neodpovdajcch rajcatum. Rajcata denujeme
jako oblasti, ktere pri erozi (SHAPIRO { STOCKHAM, 2001, s. 79) strukturalnm elementem tvaru kruhu maj nenulovou velikost. Tm urcujeme jejich minimaln tloust'ku.
Tato operace zasadne snizuje velikost mnoziny nalezenych souvislych komponent.
Tyto souvisle oblasti detekujeme z masky pomoc knihovn funkce OpenCV pouzite
tak, aby nedetekovala dry. Pro kazdou oblast je vypoctan objem, ktery je prahovany
maximaln hodnotou, protoze oblasti presahujc objemem danou mez, jsou dle pozorovan casto zpusobene spatnou klasikac barevnych hodnot. Dale jsou vypoctany
prvn momenty oblasti pro vypocet teziste, jez je pote pouzito jako pocatecn bod pro
dals zpracovan.
12
3 Detekce hernch objekt
u z obrazku
Obrazek 3.4
Postup overovan hodnot pixelu pri detekci hranoveho bodu.
13
3 Detekce hernch objekt
u z obrazku
Obrazek 3.5
Znazornen vytrasovanych bodu rajcete spolu s vysledkem RANSACu.
U tohoto bodu se zkontroluje jemu odpovdajc hodnota v masce. V te jsou oznaceny
oblasti, ktere odpovdaj jiz detekovanym objektum. Takto se zabranuje vcenasobne
detekci stejneho objektu.
Zakryty rajcat jsou reseny tak, ze z masky jsou odstranovany oblasti odpovdajc
nalezenym objektum. Predstavuje-li tedy oblast vce prvku zaroven, jsou z n postupne
odstranovany casti nalezenych rajcat. Detekce konc tehdy, pokud v masce nezustaly
zadne nezkontrolovane oblasti.
3.4.3
Zji
st
en
hranov
ych bod
u
Z teziste oblasti, urceneho v predchozm bode, vychazme pri hledan hranovych bodu
rajcete. Kazdy hranovy bod hledame iterac po prmce pod danym uhlem. Tyto uhly
jsou dany tak, aby rovnomerne pokryvaly interval 0 360. Vyhodou toho zpusobu
detekce je nezavislost na pocatecnm bode uvnitr objektu.
Okraje objektu hledame postupnou iterac po prmce o dane smernici, kdy prochazme
jednotlive pixely a u kazdeho overujeme, zda-li stale odpovda povrchu rajcete. Pokud
tomu tak nen, iterace se zastav a aktualn bod je hledanym hranovym bodem objektu.
Postup je znazorneny na diagramu 3.4.
Zda-li bod odpovda povrchu rajcete urcujeme pomoc look-up tabulky sestavene pro
rajcata. To, jestli bod odpovda podkladu hriste zjist'ujeme pomoc look-up tabulky,
ktera je vytvorena z obrazu hriste s ostatnmi hernmi prvky.
Protoze se ale na povrchu objektu mohou vyskytnout vyraznejs nespojitosti (naprklad odlesky), ktere iteraci predcasne zastav, postup v danem smeru nekolikrat
opakujeme. Tm muzeme zskat pro kazdy smer mnozinu bodu. Presahneme-li iterac
okraje obrazku, bod nen do vysledku pridan. Pokud pocet iterac nepresahne stanovene
minimum nalezeny bod nen pridan do vysledku.
Vysledkem tohoto kroku jsou mnoziny bodu v danych smerech. Vysledek hledan
hranovych bodu je znazornen na obrazku 3.5.
3.4.4
Hled
an
parametr
u kru
znice
Nasm ukolem je nalezt optimaln parametry kruznice, ktere odpovda nejvets mnozstv
nalezenych hranovych bodu z predchozho detekce. K tomu vyuzvame metodu RANSAC.
Vstupnmi daty je mnozina:
U = f u j u = (x; y)T j x 2 R+ j y 2 R+ g
(3.5)
14
3 Detekce hernch objekt
u z obrazku
Hledame parametry = (x0; y0; r) rovnice:
r2 = (x x0)2 + (y y0)2
(3.6)
Pro vzdalenost bodu u = (x; y)T od kruznice denovane parametry plat:
p
(3.7)
d(p; ) = (x x0)2 + (y y0)2 r
A konecne - hodnotc funkci nalezenych parametru jsme zadenovali jako:
J (; U ; ) = jf p 2 U j d(p; ) < gj
(3.8)
Parametry kruznice jsou poctany ze tr nahodne volenych bodu, ktere nesm byt
kolinearn. Ze vstupn datove struktury, pokud jej velikost dosahne pozadovaneho minima, jsou nejprve nahodne vybrany tri uhly. V kazdem uhlu se mohou vyskytovat az
tri body, z nichz jeden je opet nahodne vybran. Takto zskame tri body, zs kterych
vypoctame parametry .
Pocet iterac je pevne dany. Pokud je pocet nalezenych inlieru pri nejlepsch parametrech mens, nez uzivatelem stanovene minimum, nebere se detekovany objekt v potaz.
U vysledku je take kontrolovan maximaln povoleny prumer nalezeneho objektu.
Pokud vysledek projde vsemi predchozmi testy, vystupem detekce jsou parametry
kruznice. Z nich jsou urceny vyznacne body rajcete:
utop = (x0 + r; y0)T ubottom = (x0 r; y0)T
(3.9)
Tmto sice zanedbavame skutecny tvar obrazu rajcete v obrazku, protoze se ale jeho
skutecna poloha pocta jako prumerna hodnota techto souradnic pretransformovanych
do souradnic hriste, vznikla chyba se tm snz.
Body uvnitr nalezene kruznice se vyznac v masce. Tyto body jiz nemohou byt
vybrany jako pocatecn body pro hledan hranovych bodu. Takto zabranujeme duplicitn detekci stejneho objektu (vznikajc naprklad pri nalezen vce oblast na povrchu
jednoho objektu).
3.5
Detekce kuku
ric
Kukurice rozpoznavame podobnym zpusobem jako rajcata. Nejprve nalezneme oblasti
odpovdajc povrchu kukuric, ktere pouzijeme pro urcen pocatecnch bodu, jenz jsou
pote vyuzity pri hledan hranovych bodu kukuric.
Protoze jsou kukurice vyrabeny z materialu v odstnu sedi, jejich barevna slozka
je idealne r = 1=3 a g = 1=3. Skutecnou hodnotu chromaticit ale velmi ovlivnuje
barva osvetlen a svetla odrazeneho od povrchu hriste. Proto prirazen pixelu k povrchu
kukurice podle chromaticit nen prlis robustn a vce vyuzvame prahovan intenzit.
Navc maj falesne kukurice opticke vlastnosti velmi podobne okrajum hriste. Lezc
kukurice nedetekujeme.
15
3 Detekce hernch objekt
u z obrazku
Obrazek 3.6
Postup detekce kukuric.
16
400
0
300
0.2
1500
0.4
200
1000
g
Cetnost
3 Detekce hernch objekt
u z obrazku
0.6
500
100
0
0
0.8
200
a)
400
Intenzita
600
1
0
800
0.2
0.4
0.6
0.8
1
0
r
b)
c)
Vlastnosti obrazu prave kukurice a) Puvodn obraz b) Histogram intenzit jasu
c) 2D Histogram barevnych slozek
2000
0
1500
0.2
0.4
1000
1000
0.6
500
500
0
0
a)
1500
g
Cetnost
Obrazek 3.7
0.8
100
200
Intenzita
300
400
1
0
0.2
0.4
0.6
0.8
1
0
r
b)
c)
Vlastnosti obrazu falesne kukurice a) Puvodn obraz b) Histogram intenzit jasu
c) 2D Histogram barevnych slozek
Obrazek 3.8
Obrazek 3.9
Znazornen nalezenych hranovych bodu kukuric spolu s vysledky RANSACu.
17
3 Detekce hernch objekt
u z obrazku
3.5.1
Detekce oblast
Postup je velmi podobny jako u detektoru rajcat. Pro zjisten prslusnosti pixelu obrazku
k bodu povrchu kukurice se vyuzva hlavne intenzity jasu, ktere nejvce odlisuj povrch
hriste od povrchu kukurice. Pro kazdy typ kukurice je na zaklade predem ulozenych
obrazku kukuric vytvorena vlastn look-up tabulka. Modely jsou znazorneny na obrazku
3.7 a 3.8. V tabulce jsou tak zaneseny i ty chromaticity odpovdajc snmanemu povrchu
kukurice spolu s sumem. Pouzity postup ale vede k detekci rady false-positive oblast
vznikajc naprklad odlesky od povrchu hriste.
Pixely jsou podle hodnoty rozdeleny do tr trd - pixelu falesnych kukuric, pixelu
pravych kukuric a pixelu neodpovdajcch kukuricm. Spojite oblasti pixelu falesnych
kukuric jsou vyznaceny ve vlastnm binarnm obrazku, stejne jako oblasti pravych
kukuric. Mame tedy dve binarn masky polovicn velikosti puvodnho obrazku.
Kazdou oblast testujeme na tvar pomoc morfologickych operac. Zde je voleno takove
jadro (obdelnk o rozmerech 5 10), aby oblast splnovala podmnku minimaln tloust'ky
ve svislem a vodorovnem smeru. Oblasti, ktere toto kriterium nesplnuj, jsou z masky
odstraneny (jedna se naprklad o okraje hriste, ktere jsou detekovany jako oblasti
odpovdajc falesnym kukuricm).
U kazde oblasti, ktera splnila predchoz podmnku, je vypoctan jej obsah. Pokud se
nenachaz v danem intervalu oblast se dale nezpracovava (vysoky objem ma naprklad
bocn deska kopce s pomeranci). Dale je kontrolovan pomer mezi druhymi centralnmi
momenty ve smerech os x a y. Pokud ma oblast vyrazne vyss druhy centraln moment
ve smeru osy x oproti momentu ve smeru osy y, povazujeme tuto oblast za neplatnou. Pokud je vse v poradku, teziste dane oblasti se urc jako pocatecn bod hledan
hranoveho bodu kukurice.
3.5.2
Ur
cen
hranov
ych bod
u kuku
rice
Pro hledan hranovych bodu objektu na prmce je pouzito podobneho zpusobu jako pri
detekci rajcat (viz diagram 3.4).
Nejprve se z pocatecnho bodu iteruje po vertikaln prmce v obou smerech, aby se
zjistila priblizna vyska kukurice. Zskame tak prvn odhad hornho bodu ute = (xte; yte)
a spodnho bodu ube = (xbe; ybe) kukurice. U secka dana temito body je rozdelena na
nekolik cast a z kazde se po horizontalnch prmkach hledaj prave a leve bocn hranove
body kukurice. Zskame tak mnozinu bodu Ul a Ur . Vysledek je znazornen na obrazku
3.9.
Pro oba okraje kukurice pomoc RANSACu nalezneme parametry rovnice prmky,
ktere lze velmi snadno urcit pomoc dvojice nahodne vybranych bodu a jez jsou dany
jako:
= (u;~v) u = (xu; yu)T ~v = (v1; v2)T
(3.10)
Pro vzdalenost bodu od prmky plat:
d(p; ) = j~v j~v~vj puj ~vpu = (xp xu; yp yu)T
(3.11)
Hodnotc funkce je stejne jako u kruznice dana:
J (; U ; ) = jf p 2 U j d(p; ) < gj
(3.12)
Z mnoziny Ul zskame parametry prmky l = (ul ;~vl ) a z mnoziny bodu Ur parametry
r = (ur ;~vr ), jimz odpovda nejvets mnozstv okrajovych bodu. Pokud RANSAC
18
3 Detekce hernch objekt
u z obrazku
neuspeje, pouzijeme jako vyznacne body objektu puvodne nalezene body ute a ube a
dale jiz nepokracujeme.
Clem je zskat rovnici stredove prmky kukurice, na nz se nachaz horn a spodn
bod objektu. U hel teto prmky je urcen jako stredn hodnota z uhlu bocnch prmek
kukurice (tyto uhly jsou zaroven kontrolovany, zda-li jsou v danem intervalu). Pro
stredovou prmku je zvolen bod, pro nejz plat:
x + x
ur
ul
uc =
(3.13)
2 ; yc yc 2 (xte; xbe)
Vybran je bod, jehoz y souradnice odpovda souradnici pocatecnho bodu.
Z tohoto bodu se opet pokousme iterac po stredove prmce nalezt spodn a horn
bod kukurice ut a ub.
Tento zpusob hledan okraju kukurice nen prlis spolehlivy na urcovan vysky kukurice, jelikoz vysledne horn a spodn body se pokousme hledat pouze jednou. Pokud
se pri tomto trasovan zastavme v oblasti, ktera jeste odpovda kukurici, je vysledna
chyba detekce velmi vyrazna.
3.5.3
Ur
cen
barvy hern
ho prvku
Behem hledan okrajovych bodu iterac po prmce se sctaj hodnoty intenzit pixelu. Na
konci detekce se tyto hodnoty zprumeruj poctem proslych bodu a z prumerne hodnoty
intenzit se urc typ objektu.
3.6
Ov
e
rov
an
p
r
tomnosti hern
ho prvku na h
ri
sti
Pokud je pro planovan dulezite pouze overit prtomnost aktivnch prvku na hristi,
muze si planovan od modulu rozpoznavan vyzadat pouze overen jejich pozice. Tento
proces je (oproti plne detekci ze vstupnho obrazu) vyrazne rychlejs. Vyuzvame jej
take pro detekci typu kukuric ze vstupnch dat od statickych kamer, protoze pozice
kukuric v obrazku je predem znama.
Pro overen se vyuzvaj stejne postupy jako pri detekci danych objektu s tm rozdlem,
ze souradnice pocatecnho bodu odpovdajcho povrchu objektu v obrazku je predem
znama (urcena zpetnou transformac stredoveho bodu objektu ze souradnic hriste do
souradnic obrazku). Vzdy se overuj jen objekty, ktere jsou v uhlu zaberu kamery.
U overovaneho objektu rajcete je jeho stara poloha vzdy aktualizovana nove zjistenymi udaji. U kukuric zaroven kontrolujeme, zda-li byl zachovan typ objektu. Pokud
nen znama varianta, typ overene kukurice oznamme detektoru variant.
U statickych kamer navc uzivatel pri kalibraci kamer zada i body stredu kukuric.
Tato moznost byla pridana proto, ze u vzdalenych kukuric byla chyba zpusobena spatne
zkalibrovanymi transformacemi jiz tak velka, ze startovn bod v obrazku vychazel mimo
telo kukurice. Pokud jsou u aktualn kamery nastaveny pevne body stredu kukuric, jsou
vyuzity pri jejich verikaci.
3.6.1
Ov
e
rov
an
p
r
tomnosti pomeran
c
u
Tato funkce byla do programu pridana proto, aby mel robot informaci o tom, zdali jsou na hristi jeste "nescesane\ pomerance. Postup jejich overovan je stejny jako
pri overovan prtomnosti
rajcat s tm rozdlem, ze jejich startovn body jsou zadany
uzivatelem pri kalibraci kamery.
19
4 Detekce hern varianty
Na zacatku hry je vzdy rozhodcmi vylosovana hern varianta. Hern varianta je urcena
jako kombinace dvou nahodnych losovan. V prvnm losovan se vybra varianta rozlozen falesnych kukuric pri okrajch hriste (devet moznost) a ve druhem rozlozen ve
stredu hriste (ctyri moznosti) (Eurobot, 2009, s. 29).
Varianta je detekovana pomoc jednoducheho zpusobu zjist'ovan te nejpravdepodobnejs z moznych. Na zacatku je sestrojena databaze variant (zvlast' jsou poctany
stredove a okrajove varianty). Ke kazde variante je prirazena hodnota predstavujc
kolik rozpoznanych kukuric odpovdalo dane variante (dale ohodnocen varianty\). Pro
kazdou pozici na hristi jsou vytvoreny dva seznamy. Prvn"z nich predstavuje seznam
variant, ktere obsahuj falesnou kukurici na dane pozici. Druhy seznam obsahuje vycet
vsech variant, ktere na dane pozici nejsou.
Kazde pozici na hristi, kde muze byt umstena kukurice, je prirazeno unikatn cslo
(index), se kterym se pracuje v detektoru variant. Vstupem do detektoru je index pozice
kukurice a jej typ. Jedna-li se o falesnou kukurici, tak se vsem variantam obsahujcch
falesnou kukurici na dane pozici inkrementuje ohodnocen o jednicku. Pote se naopak
variantam, ktere danou kukurici neobsahuj, ohodnocen o jednicku snz. Pri detekci
prave kukurice se pracuje se stejnymi seznamy s tm rozdlem, ze variantam, kterym by
falesna kukurice zvysila ohodnocen, se ohodnocen snz a naopak.
Zda-li je varianta znama se urcuje tak, ze se vsechny varianty setrd sestupne dle
ohodnocen a varianta je zdetekovana, pokud existuje jen jedna, ktera ma leps (ne
stejne) ohodnocen nez ostatn. Toto se provad separatne pro obe losovac karty.
Vyhodou tohoto zpusobu urcovan hern varianty je relativn odolnost proti chybnym
vstupnm datum. Kazdy hern prvek ma zde stejnou vahu a nedojde-li k detekci varianty
hned pri zpracovan prvn sady dat, dals vstupn data jen posl jiz nejpravdepodobnejs
variantu a vysledek se tedy stava o to vc odolny proti dalsm chybnym detekcm.
20
5 Reprezentace prostred
5.1
Sou
radnicov
e syst
emy
V OpenCV je obrazek reprezentovan jako matice pixelu.
Souradnice v obrazku je rovna "porad\ pixelu od leveho hornho rohu obrazku:
ui = (c; r)T
Kde c znac sloupec a r radek pole pixelu.
Souradnice bodu v obrazku:
Tyto souradnice vyjadruj polohu bodu na
hristi vuci zlutemu startovnmu rohu hriste. Zakladn jednotkou jsou [mm]. Vce lze
videt na obrazku 5.1. Svetove souradnice budeme dale znacit:
uw = (xw ; yw )T
Souradnice hriste (svetove souradnice):
Tyto pomocne souradnice slouz k vyjadren polohy bodu vuci
aktualn poloze robota (kamery). Pocatkem souradnic je obecny stred robota, jehoz
poloha na hristi je nam znama (popsana polohou v souradnicch hriste (tx; ty ) spolu
s uhlem natocen ).
ur = (xr ; yr )T
Relativn souradnice:
5.2
Ur
cen
polohy objektu z obr
azku
Nedlnou soucast rozpoznan objektu je i urcen jeho polohy v hernm prostred. Vystupem algoritmu pro identikaci objektu je poloha jeho vyznacnych bodu v souradnicch
obrazku. Nasm ukolem je nalezt transformaci, ktera dokaze zskanym bodum priradit
polohu v hristi.
Obecnou polohu bodu budeme reprezentovat homogenn souradnic (Hartley { Zisserman, 2003, s. 27) popsanou vektorem x. Pro homogenn souradnici plat, ze je dimenze d + 1, kde d znac dimenzi prostoru nehomogenn souradnice. V nasem prpade
se jedna dvou-dimenzionaln prostor, tudz pro prevod z nehomogennch souradnic do
homogennch a nazpet plat:
un = (xn; yn)T ! uh = (xn; yn; 1)T
x y T
T
uh = (xh; yh; zh) ! un = zh ; zh
h
21
h
5 Reprezentace prostred
Obrazek 5.1
Obrazek 5.2
Zvolene souradnicove systemy.
Znazornen transformac souradnic.
22
5 Reprezentace prostred
5.2.1
Transformace sou
radnic
Homograe (projektivn transformace) je dana jako zobrazen P d 7! P d, ktere je v prostoru homogennch souradnic Rd+1 linearn (SONKA et al., 2008, s. 555). Homograe
nam tedy obecne slouz pro transformaci puvodn souradnice u na vektor u0 v jinem
souradnicovem systemu. Plat:
u0 ' H u
(5.1)
Kde H je v prpade, ze uvazujeme dvou-rozmerne souradnice, matice o rozmerech 3 3.
Clem je zskat takovou matici H , abychom byli schopni pomoc rovnice 5.1 transformovat souradnice obrazku na souradnice hracho stolu.
Snmame-li kamerou objekt v realne scene je jeho poloha v obrazku ovlivnena polohou
kamery a jejmi vlastnostmi. V nasem prpade predpokladame, ze plat:
1. Poloha kamery ma pouze tri stupne volnosti - kamera je umstena ve xn vysce na
tele robota nebo na majaccch na okraji hriste.
2. Vnitrn vlastnosti kamery se v prubehu hry nemen.
Jelikoz i objekty na hristi maj zpravidla jen dva stupne volnosti (objekty "lez\ na
stole), je nas problem zjednodusen, protoze se jedna o transformaci z dvou-rozmerneho
obrazku do dvou-rozmernych svetovych souradnic. Abychom vsak mohli bod priradit
do spravne roviny, musme vedet v jake vysce nad hern deskou se nachaz. Naprklad
pro bod reprezentujc vrsek rajcete pouzijeme jinou transformaci souradnic nez pro bod
spodn casti rajcete. Zavadme tedy transformace mezi obrazkem a rovinou desky stolu
(Higw - image-ground-world ), obrazkem a rovinou vrsku rajcat (Hitw - image-tomatoworld ) a obr
azkem a rovinnou vrsku kukuric (Hicw - image-corn-world ). Toto jsou
zadane transformace, ktere pouzvame pro prevod polohy bodu v obrazku do polohy ve
svetovych souradnicch.
U kamery, u nz se jej pozice na hristi behem hry men ( "dynamickych kamer\),
transformace rozdelujeme do dvou pomocnych transformac.
Prvn, projektivn transformace, ktera zajist'uje transformaci bodu z obrazku do relativnch souradnic kamery, je ruzna pro ruzne roviny, cmz tedy zskavame trojici transformacnch matic Hig , Hit, Hic. Vyhodou je, ze pokud je kamera pevne pripevnena
v konstantn vysce, tyto transformace se v prubehu hry nemen a lze je dopredu vypoctat.
Druha transformace, ktera prevad podle aktualn pozice robota relativn souradnice
na svetove, se sklada ze dvou isometrickych transformac (zachovavaj eukleidovske
vzdalenosti) - rotace a translace. Matice teto transformace je dana jako (Hartley {
Zisserman, 2003, s. 38):
0
cos sin tx 1
Hiso = @ sin cos ty A
0
0 1
Kde tx, ty , odpovdaj poloze robota jak je znazorneno na obrazku 5.1.
Vysledna transformace mezi obrazkem a rovinou desky stolu bude dana jako:
Higw = Hiso Hig
(5.2)
Obdobne pro transformaci do roviny vrsku rajcat a roviny vrsku kukuric.
Postup je tedy takovy, ze z detektoru zjistme pozici hornho a spodnho vyznacneho
bodu objektu v obrazku. Na zaklade aktualn polohy a natocen kamery urcme dve
transformacn matice odpovdajc temto bodum (naprklad pro desku stolu a vrsky
rajcat), z nichz vypoctame svetove souradnice techto bodu. V idealnm prpade by
tyto souradnice mely byt stejne, coz lze dale pouzt naprklad pro zpresnen. Pokud se
23
5 Reprezentace prostred
vsak nalezene souradnice budou prlis lisit, objekt povazujeme za chybne detekovany.
Postup je znazornen na obrazku 5.2.
U statickych kamer, tj. kamer umstenych v majaccch na okraji hriste, transformaci
nerozdelujeme. Pro vypocet polohy objektu na hristi mame nakalibrovane transformacn
matice, ktere se v prubehu hry nemen.
5.2.2
Kalibrace kamery
Pro zjisten polohy objektu je kriticke spravne zkalibrovan kamery. V nasem prpade je
kalibrac mysleno zskan spravnych transformacnch matic Hig , Hit a Hig . Tyto matice
lze zskat naprklad z bodovych korespondenc (dvojice odpovdajcch souradnic bodu
z obrazku a hriste (u0i; ui)). Problem se tedy zjednodusuje na resen rovnic:
iu0i = H ui
(5.3)
Kde:
i predstavuje souhrnne mertko, na kterem obecne nezalez (pri prevodu do nehomogennch souradnic se zkrat)
u0i odpovda svetovym souradnicm bodu
ui jsou souradnice bodu v obrazku
Pro vyresen rovnic potrebujeme znat ctverici bodu (SONKA et al., 2008, s. 558).
Tyto rovnice lze resit naprklad pomoc DLT algoritmu, ktery je popsany naprklad
v Hartley { Zisserman (2003, s. 88) nebo v SONKA et al. (2008, s. 559). Rovnice
se prevedou do formy resitelne pomoc SVD (popis naprklad v Wikipedia (2010)).
Vyhodou tohoto zpusobu resen je, ze se minimalizuje tzv. algebraicka vzdalenost (Hartley { Zisserman, 2003, s. 93) a ze lze toto resen pouzt i pro vets pocet dvojic.
V nas implementaci vyuzvame funkce knihovny OpenCV, ktera pro vypocet transformac pouzva vyse popsany postup. Dale jeste vyuzva metodu RANSAC (Hartley {
Zisserman, 2003, s. 117) pro vyber nejvhodnejsch korespondencnch dvojic. Hledanymi
parametry modelu je u teto ulohy transformace mezi body a jsou poctany ze ctyr
nahodne vybranych korespondencnch dvojic. S odhadnutymi parametry se zjist'uje,
u kolika dvojic je transformace uspesna (tzn. pokud je vzdalenost mezi bodem a jeho
transformovanym protejskem ze dvojice mens nez parametr ). Pro vypocet SVD tato
knihovn funkce vyuzva knihovny clapack.
Dvojice odpovdajcch bodu zskavame jednoduchou metodou, kdy uzivatel na obrazku vybra detekovane body (napr. body odpovdajc spodnm castem rajcat) a k nim
odpovdajc polohy rajcat na hristi. Po vybran sady ctyr odpovdajcch bodu jsou
vypoctany matice pro transformaci bodu z obrazku do hriste.
U dynamickych kamer\ potrebujeme transformaci nezavislou na aktualn poloze.
Pro p"repocet na transformaci do relativnch souradnic postupujeme tak, ze matici zleva vynasobme inverzn matic odpovdajc aktualn poloze (slozene opet z rotacn a
translacn matice).
Prklad vypocet matice pro rovinu desky stolu:
Hig = Hiso1 Higw
(5.4)
Jedna se v podstate pouze o upravu rovnice 5.4. Obdobne postupujeme i pro matice
Hit a Hig s tm, ze uzivatel mus vybrat nove odpovdajc dvojice bodu. Tyto matice
jsou pote ulozeny v XML souborech.
U statickych kamer ukladame prmo matice Higw , protoze se jejich poloha v prubehu
hry nemen.
24
5 Reprezentace prostred
5.3
Mapa prost
red
Mapa prostred ma za ukol spravovat aktualn pozice hernch prvku na hristi. Realizujeme j pomoc dvou datovych kontejneru pro rajcata a kukurice, ktere se lis prstupem
k pridavan nove nalezenych objektu. Zatmco rajcata se mohou vyskytovat v jakekoliv
pozici na hristi, stojc kukurice mohou byt umsteny jen v pevnych pozicch.
Dals funkc mapy prostred je informovat ostatn moduly robota o poloze hernch
prvku. Proto pri kazdem pridan noveho objektu do mapy je poslana zprava mapovemu
modulu o jeho pozici a typu. Pokud se hern prvek deaktivuje (tj. nebyl naprklad
verikovan), posle se mape pozadavek na jeho odstranen.
5.3.1
Reprezentace objekt
u v map
e
Kazdy nalezeny prvek z obrazku je reprezentovan instanc trdy, ktera je potomkem
zakladn trdy hernch prvku. Vlastnostmi teto trdy jsou horn a spodn souradnice
prvku na hristi a v obrazku, cas detekce, typ objektu a detekcn vzdalenost objektu
(euklidovska vzdalenosti objektu od kamery). U kazdeho objektu se uklada informace
o jeho validite. Plat, ze kazdy validn (aktivn) prvek je ulozen ve spolecnem mapovem
modulu.
C as detekce je denovan jako celocselna hodnota, ktera se inkrementuje pri kazdem
prubehu hlavn smyckou programu. Informuje tedy o tom, kolikata sada dat se aktualne
zpracovava.
Skutecna poloha ve svetovych souradnicch hriste je denovana jako prumer ze svetovych souradnic hornho a spodnho bodu objektu.
x + x y + y T
uw = wt 2 wb ; wt 2 wb
Kde vektor uwt = (xwt; ywt)T predstavuje pozici hornho bodu prvku ve svetovych
souradnicch a uwb = (xwb; ywb)T pozici spodnho bodu.
Hern prvky podle jejich tvaru dale delme na trdy rajcat (pro pomerance a rajcata)
a kukuric (pro falesne a prave kukurice). Tyto trdy reprezentujc dva zakladn typy
hernch prvku ve hristi (tj. pomerance - rajcata a falesna - prava kukurice) se mezi
sebou lis jen hodnotou promenne vyjadrujc typ objektu. Trdy rajcat a kukuric pouze
implementuj specicke metody pro dany hern prvek, naprklad overen polohy hernho
prvku v obrazku, prepocet souradnic obrazku na svetove souradnice apod. U kazde
kukurice navc ukladame informaci o tom, ktere pevne pozici ve hristi byla kukurice
prirazena.
25
5 Reprezentace prostred
5.3.2
Spr
ava objekt
u v map
e
Vystupem detekcnho algoritmu je seznam nalezenych hernch prvku. U kolem mapy
prostred je tyto objekty spravne priradit do mapy s ohledem na objekty detekovane
v predchozch krocch (tj. naprklad zamezit tomu, aby byl jeden hern prvek v mape
dvakrat).
Datovy kontejner pro rajcata ma specicky zpusob pridavan objektu do mapy. Nove
nalezeny prvek se prida pouze tehdy, nen-li v denovanem kruhovem okol v mape
nalezen jiny hern objekt. Pokud se v okol nachaz stars objekt, pouze se aktualizuje
cas detekce a jeho poloha. Pokud jsou casy detekce stejne (dochaz k tomu naprklad
v prpadech, kdy je objekt rozpoznan ze dvou kamer zaroven), objekt s mens detekcn
vzdalenost se uchova. Jestlize zadny nejblizs prvek nalezen nen, hern prvek se prida
do mapy bez uprav.
Datova struktura pro kukurice res spravu objektu podobne. Na zacatku je vsak
tato struktura naplnena falesnymi kukuricemi s prirazenym unikatnm indexem. Oproti
rajcatum se kukurice do mapy neprida, pokud vzdalenost pridavaneho prvku od pevne
pozice je vets nez denovane maximum. Tmto zpusobem se kukurice udrzuj jen na
pevnych pozicch, ve ktery mohou byt ke stolu pripevneny.
Pri pridavan nove kukurice se navc kontroluje, zda-li je znama hern varianta rozlozen kukuric. Pokud tomu tak nen, preda se informace o indexu a typu kukurice
detektoru variant. Pokud se rozpozna hern varianta, vsechny dosud nalezene kukurice
se z mapy odstran a pridaj se hern prvky odpovdajc nalezene variante.
Dale je u mapy prostred implementovana moznost kontroly zastaralych hernch
prvku. Ta se provad tak, ze po pridan cele sady detekovanych prvku se podle casu
detekce zjist'uje, ktere objekty v zornem uhlu nebyly nove prchozmi daty potvrzeny.
Nepotvrzene prvky se deaktivuj (tzn. vymazou se ze spolecne mapy robota).
Verikac se overuje, zda-li je prvek stale prtomny v obrazku. Pokud detekcn algoritmus jeho prtomnost nepotvrd, prvek se deaktivuje. Jestlize je objekt nalezen,
aktualizuje se jeho cas detekce a u rajcat i jeho aktualn pozice.
26
6 Implementace
6.1
Softwarov
a implementace
C ast navrhnutych algoritmu byla prototypovana v programu Matlabr R2009a rmy
The Mathworks Inc., ale vetsina algoritmu byla prmo implementovana na clove softwarove platforme.
Program poctacoveho viden byl vyvjen pro operacn system GNU/Linux z toho
duvodu, ze tento operacn system vyuzva i vypocetn hardware robota a ze na PC
Toradex Robin, ktery jsme meli k dispozici, je vestaveny Solid-State disk o kapacite jen
2GB. Proto tedy byla tedy vybrana distribuce Debian squeeze1 (v dobe psan prace se
jednalo o vyvojovou verzi Testing).
Program byl psany v jazyce C++ a pro kompilaci a debugging zdrojoveho kodu
jsme vyuzili nastroju ze sady GNU Toolchain. Pro usnadnen prace byla vyuzita rada
knihoven. Zakladem byla knihovna Standard Template Library. Pro serializaci objektu,
konguraci aplikace a na radu dalsch drobnost jsme vyuzily knihovny z projektu Boost
C++ Libraries2. Pro logovan se jevila jako nejvhodnejs knihovna log4cxx.
Pro praci s obrazem jsme vyuzily knihovnu OpenCV3 verze 2.0 pro C++, vyvjenou
puvodne spolecnost Intelr a obsahujc implementace rady algoritmu pro zpracovan
obrazu. Tato knihovna mimo jine take implementuje maticove operace, protoze samotne
obrazky jsou ulozeny jako datove matice. Vce informac o teto sade nastroju lze nalezt
na strance projektu.
Pro praci s kamerami rmy PointGrey bylo vyuzito jejich softwarove knihovny FlyCapturer SDK4. Jedna se o proprietarn knihovnu vyrobce, ktera zprstupnuje snadne
API pro ovladan kamer. Kazda kamera pouzvana v programu, ma svoj vlastn pozici a
je potomkem abstraktn trdy, ktera implementuje transformace souradnic a orezavan
nezajmavych cast obrazku. Tuto zakladn trdu rozsiruje trda staticke kamery, ktera
pridava spravu bodu v obrazku, ze kterych by se pro zvysen presnosti meli trasovat
kukurice.
Parametry aplikace jsou ulozeny v konguracnch souborech, aby bylo mozne co nejsnaze editovat. Zaroven jsou v souborech take ulozeny transformacn matice kamer a
startovn body pro overovan kukuric a pomerancu u statickych kamer. Konguracn
soubory jsou snadno citelne a ulozene ve formatu konguracnch souboru Boost nebo
v XML. To umoznuje snadnou konguraci programu dalkove na clovem poctaci naprklad pres SSH.
6.2
Hardwarov
a implementace
Aplikace je pripravena pro umsten kamer do majacku i na samotneho robota. Ve
vysledku jsme se vsak rozhodli, ze kamery umstme pouze do statickych pozic v majaccch, ze kterych je o hre vets prehled.
1
<http://www.debian.org/>
2
<http://www.boost.org/>
3
<http://opencv.willowgarage.com/wiki/>
4
<http://www.ptgrey.com/products/pgrflycapture/>
27
6 Implementace
a)
Obrazek 6.1
b)
Hardware rozpoznavan a) Vypocetn jednotka b) Kamera
Byl vyroben energeticky sobestacny system skladajc se z trojice majacku, ktere
maj na starost poctacove viden robota. Hlavn majacek obsahuje vypocetn Hardware
Toradex Robin Z530 spolu s komunikacnm modulem a bateri. Ostatn dva majacky
jsou kamerove. Kazda kamera je pripojena pomoc USB portu k hlavnmu majacku.
System komunikuje s robotem pomoc bezdratovych modulu XBeer rmy Digi International Inc.5. Dvojice techto modulu je nakongurovana v rezimu tunelovan RS232
tak, ze kazdy z modulu zna hardwarovou adresu toho druheho, cmz se mezi nimi ihned
po zapnut napajen vytvor plne duplexn spojen. Za zapujcen modulu a desek s USBUART prevodnkem velmi dekujeme Ing. Petru Novakovi z katedry kybernetiky.
Dky modularite programoveho vybaven robota nebyl problem komunikace resit pomoc zvlastnho programoveho modulu - translatoru zprav. Tato aplikace po startu
nasloucha na nastavenem TCP socketu a vsechny prchoz zpravy posla pres zadane
unixove znakove zarzen. Stejne tak druhe vlakno aplikace prijma data ze zadaneho
znakoveho zarzen a (je-li zprava kompletn) preposla zpravu pres TCP sockety na
predem urcene kanaly. Tmto jednoduchym zpusobem se preposlaj zpravy z robota do
rozpoznavan a zpet jsou preposlany prkazy do mapoveho modulu.
System je napajen z trclankove modelarske Li-Pol baterie s vystupnm napetm
11,1 V a kapacitou 2200 mAh. S touto bateri by mel byt system schopny, dle specikac vyrobce, bezet pres hodinu. Konkretn testy vsak nebyly provedeny. Kamery jsou
napajeny pres USB port.
5
<http://www.digi.com/products/wireless/point-multipoint/xbee-series1-module.jsp>
28
6 Implementace
Obrazek 6.2
Umsten kamer a znazornen uhlu zaberu u modre varianty.
Obraz je snmam kamerami PointGrey ChameleonTM6. Tato kamera byla vybrana
pro moznost pripojen pres USB port, kterym disponuje pouzity vypocetn hardware.
S kamerou je pouzit objektiv o ohniskove vzdalenosti 6.5 mm. S tmto objektivem, dky
male velikosti optickeho senzoru kamery, dosahuje kamera horizontalnho uhlu zaberu
jen cca 40. Dky usporadan hriste je jedna z kamer umstena vzdy na opacnem konci
nez vypocetn jednotka. Proto je tato kamera pripojena pres aktivn 3 m dlouhy USB
kabel.
Kamery jsou vzajemne odliseny pomoc serioveho csla. Spolu s pozadavkem na start
detekce je od planovan obdrzena i informace o startovn barve, podle ktere jsou nacteny
transformacn matice kamer.
Nastaven kamer je znazorneno v obrazku 6.2. Toto nastaven bylo zvoleno proto, aby
kamera s poradovym cslem 1 mela v uhlu zaberu vyvyseny prostor spolu s pomeranci.
Avsak takto nastavene kamery nemaj prehled o celem hristi. Mezi slepe oblasti patr
hlavne clova oblast protivnka, ktera je vsak pro naseho robota jen velice malo zajmava.
Za zapujcen kamer a vypocetn jednotky dekujeme Centru strojoveho vnman pri
katedre kybernetiky, jmenovite Ing. Pavlu Krskovi. Za vyrobu stojanu kamer velmi
dekujeme panu Oldrichu Mudrovi.
6
<http://www.ptgrey.com/products/chameleon/index.asp>
29
7 Experimenty
V teto kapitole se venujeme zhodnocen vysledku modulu rozpoznavan z nekolika
pohledu. Zakladn testy jsou provedeny prevazne na schopnost detektoru rozpoznat
objekty v obrazku. U techto testu vyhodnocujeme spolehlivost detekce, dosazenou
presnost detekce a casovou narocnost pro zpracovan jednoho obrazku.
Ve vsech obrazcch jsou detekovane objekty znazorneny stejnymi symboly:
Rajcata
Prave kukurice
Falesne kukurice
7.1
Spodn bod Horn bod
Ide
aln
pr
ub
eh detekce
V obrazcch 7.1 az 7.3 je na obrazku se startovnm rozlozenm hernch prvku podrobne znazornen prubeh detekce. Pri znazornen nalezenych oblast je neplatna oblast
ohranicena cervenym okrajem. Zaroven je uveden kod chyby, predstavujc podmnku,
ktere detekovany objekt nevyhovel.
Lze videt, ze zpusob detekce oblast kukuric, znazorneneho v obrazku 7.2, nen prlis
robustn. V tomto prpade jsme prehledli dve kukurice a jedna z nalezenych falesnych
kukuric nevyhovovala podmnce minimalnho poctu inlieru pri zjist'ovan rovnic prmek
(kod chyby R). To bylo zpusobeno tm, ze na pozad kukurice je okraj hriste se stejnymi
optickymi vlastnostmi. Nektere z oblast byly z vysledku vyrazeny z duvodu nevyhovujcho tvaru (kod chyby M ). Nektere detekovane oblasti zase nevyhovely pozadavku
uhlu nalezenych prmek (kod chyby A).
Pri detekci ze dvou statickych kamer jsou vysledky kombinovany do jedne mapy.
Vizualizace mapy robota, spolu s detekovanymi objekty ze dvou obrazku, je znazornena
na obrazku 7.4.
30
7 Experimenty
a)
b)
a) Vysledek hledan oblast rajcat. C ervene krzky znazornuj teziste oblasti.
b) Vysledek hledan bodu na hranici objektu a parametru kruznic rajcat.
Obrazek 7.1
a)
b)
a) Vysledek hledan oblast kukuric. Modre obtazene oblasti odpovdaj
nalezenym kukuricm, zatmco cervene nektere z podmnek nevyhovely. b) Vysledek hledan
bodu na hranici objektu a parametru prmek kukuric.
Obrazek 7.2
a)
Obrazek 7.3
b)
a) Nalezene objekty v obrazku b) Pozice nalezenych objektu na hristi.
31
7 Experimenty
a)
b)
c)
Obrazek 7.4
robota.
a) Obraz z prvn kamery b) Obraz z druhe kamery c) Vysledek zaneseny v mape
32
7 Experimenty
Rajcata
Kukurice
Falesne kuk.
Obrazek HR[%] FP i[px] HR[%] FP i[px] HR[%] FP i[px]
7.5a
7.5b
7.5c
7.5d
7.5e
7.5f
7.5g
7.5h
7.5i
7.5j
7.5k
7.5l
7.5m
7.5n
7.5o
90% 0
90% 0
100% 0
100% 2
83% 0
88% 29
100% 2
100% 1
100% 0
100% 0
69% 1
62% 1
67% 0
100% 4
67% 0
Prumer: 89% 1.64
4.76 71% 0
4.24 100% 0
5.29 0%
0
3.84 0%
0
3.66 0%
1
25.83 33% 1
3.66 0%
1
4.39 80% 0
3.36 50% 0
4.01 0%
0
7.42 0%
1
6.94 57% 2
5.28 100% 0
3.36 0%
0
4.76 0%
0
5.21 54% 0.65
6.95 50% 0
6.67 50% 0
67% 3
75% 0
6.95 100% 0
8.3
0%
0
50% 0
5.23 50% 2
4.95 67% 3
67% 0
67% 1
4.7 50% 0
10.04 100% 0
67% 1
100% 0
5.82 58% 0.81
4.84
6.51
4.83
9.21
4.79
10.82
5.93
10.88
5.67
8.01
5.87
12.68
8.79
15
7.31
Vysledky testovan spolehlivosti detekce objektu, HR - procentualn uspesnost
(Hit Rate), FP - Pocet klamnych detekc (False Positive), - Absolutn chyba. Prumer je
poctan ze 32 obrazku.
Tabulka 7.1
7.2
Spolehlivost detekce
Vysledek detekce zavis na kvalite osvetlen sceny. Protoze kamera automaticky koriguje
vyvazen ble, jsou nektere obrazky hure detekovatelne. Mezi ne patr naprklad obrazek
7.5f. Zde byla scena osvetlena silnym halogenovym osvetlenm a vysledny obraz je
nacervenaly. To vedlo k nalezen velkeho mnozstv klamnych rajcat, protoze naprklad
povrch hriste mel podobnou chromaticitu jako rajce osvetlene svetlem odrazenym z hriste.
Z vysledku lze take videt, ze detekce kukuric nen prlis robustn na osvetlen. V rade
obrazcch nebyly vubec nalezeny oblasti, ktere by odpovdaly kukuricm. V obrazku
7.5c snzen jasu kamery vedlo k tomu, ze prave kukurice se rozpoznaly jako falesne.
V obrazku 7.5k byla cast povrchu hriste nalezena jako prava kukurice (v tomto prpade
to zpusobil nzky prah poctu inlieru u RANSACu, takze oblast, omezena rajcaty a
prusvitem mezi nimi, se jevila jako prava kukurice).
Zakryty rajcat take v nekterych prpadech nebyly rozpoznany uplne idealne. Naprklad
v obrazku 7.5l, kde jsou rajcata v rade za sebou, doslo k tomu, ze byla nalezena kruznice
odpovdajc nekolika rajcatum zaroven. Tento problem by se dal vyresit naprklad
overovanm nalezenych kruznic.
Detektor kukuric take nen prlis odolny proti cizm prvkum v obraze, coz se projevujilo v obrazcch 7.5g, 7.5h, 7.5i. Ciz cerveny objekt byl take urcen jako rada
rajcat (obrazek 7.5n). Jak jiz bylo receno, tento problem by se dal vyresit overovanm
barevnych hodnot na nalezene kruznici. Tento postup jsme vsak neimplementovali,
protoze bychom nemohli detekovat rajcata v zakrytu stejnym zpusobem jako v obrazku
7.5a.
V 7.5e a 7.5m nebylo rajce u nacervenaleho objektu detekovano proto, ze oblast
velkeho objektu splynula s oblast rajcete, ktere nacez bylo vyrazeno kvuli velkemu
33
7 Experimenty
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
k)
l)
m)
n)
o)
Obrazek 7.5
Vizualizace vysledku testovan spolehlivosti detekce objektu.
34
7 Experimenty
objemu.
7.3
P
resnost ur
cen
pozice objektu v obr
azku
Presnost detekce objektu v ramci obrazku (i) je hodnota, ktera popisuje jen vlastnosti
detektoru. Presnost detekce objektu ve svetovych souradnicch (souradnicch hriste) je
zavisla jak na kalibraci kamer, tak na detekcn vzdalenosti (vzdalenost objektu od
kamery). Chyba jednoho pixelu v obrazku u vzdaleneho objektu muze zpusobit chybu
na hristi az v jednotkach centimetru. Presnosti detekce z obrazku z 7.5 je uvedena
v tabulce 7.2.
Na mnozine 32 testovacch obrazku byla spoctana prumerna chyba detekce vyznacnych bodu objektu:
Rajcata Kukurice Falesne kukurice
i [px]
5.21
5.82
7.31
w [mm]
44.03
43.14
57.87
w [mm/m] 21.06
24.76
34.55
Hodnota w je prumerna absolutn chyba v souradnicch hriste. A jak jiz bylo zmneno,
je ovlivnena vzdalenost objektu od kamery (vzdalenejs objekty maj vets chybu detekce nez blizs objekty). Proto jsme pro kazdy nalezeny prvek vypoctali relativn
chybu vuci euklidovske vzdalenost pudorysu stredu kamery od nalezeneho objektu
v metrech. V tabulce je uvedena jako hodnota w . Naprklad hodnota 21.06 mm/m
u rajcat znamena, ze u objektu nalezenych 1 m od kamery je prumerna chyba 21.06 mm
v souradnicch hriste.
7.4
V
ypo
cetn
n
aro
cnost
Doba potrebna pro zpracovan jednoho obrazku (o rozmerech 640 480 pixelu) byla
merena na clovem vypocetnm prostredku. Jedna se o prumernou hodnotu z 32 testovych
souboru. Namerene hodnoty jsou jen orientacn, protoze byly zmereny pomoc funkce
clock() s presnost v radu ms.
Rajcata Kukurice
Detekece oblast 79.72 ms 63.89 ms
Urcen polohy 40.83 ms 41.39 ms
Celkem
225.83 ms
7.5
V
ysledky ze sout
e
ze
C eske kolo souteze se konalo dne 1.5.2010. V te dobe byla implementace systemu
rozpoznavan funkcn, ale bohuzel nebyla v samotne soutezi pouzita. Z technickych
duvodu, ktere vznikly dva dny pred zacatkem souteze (poskozena odometrie), byl robot
schopen pouze zakladnho pohybu s velkymi nepresnostmi. Cela nase strategie se tedy
omezila na prujezd hristem po diagonale a vysypan nasbranych rajcat do clove oblasti.
Behem hry byl na robotovi spusten pouze zakladn modul ovladan kol spolu s frontou
prkazu pro pohyb robota.
Presto jsme se s touto jednoduchou strategi umstili na ctvrtem mste a na zaklade
pravidel tak postupujeme do evropskeho kola konaneho dne 27.5.2005 ve Svycarskem
Rappersvill-Jona.
35
7 Experimenty
V prubehu souteznho klan se vyskytly problemy s pouzitou USB sbernic u kamery
pripojene pres aktivn kabel, s nz se nedarilo navazat spojen. Pokud se stejna kamera
pripojila pres krats kabel, problem se znovu neobjevil. Bohuzel se nam zatm nepodarilo
zjistit presnou prcinu tohoto problemu.
Behem souteze byly take porzeny fotky hernho prostred, ktere zde pouzvam pro
nektere experimenty.
36
8 Zaver
V ramci prace jsem se seznamil se zaklady zpracovan obrazu, predevsm vsak s metodami segmentace obrazu a implementacn strankou problemu.
Vysledkem prace je system rozpoznavan hernch prvku na zaklade jejich barevnych
vlastnost. Pro detekci byl navrzen jednoduchy a rychly zpusob barevne segmentace,
ktery by byl s malymi upravami pouzitelny i v jinych aplikacch.
Protoze maj rajcata v obrazku velmi vyraznou barvu oproti okol, dar se je realizovanym zpusobem pomerne spolehlive detekovat. V prpade vetsch zakrytu vsak
nen segmentace schopna rozlisit jednotlive objekty a proto v techto prpadech detekce selhava. Protoze jsou objekty zjist'ovany na zaklade barvy, pri velke zmene barvy
osvetlen robustnost algoritmu klesa.
Realizovane detekovan kukuric nen prlis spolehlive, protoze pro zjist'ovan polohy
v obrazku byl zvolen podobny zpusob detekce jako u rajcat. Ten vsak vychaz z barvy
objektu, ktera nen u kukuric natolik vyrazna. Navc je barva techto objektu ovlivnena
odrazenym svetlem od povrchu hriste a tak je nekdy obtzne je vzajemne odlisit. Ve
samotne hre je pouzito pouze jejich overen ze statickych kamer, ktere je spolehlivejs.
Vhodnejs metodou pro detekci kukuric by byla naprklad hranova detekce.
V ramci prace byla take implementovana jednoducha mapa prostred spravujc detekovane objekty. System dokaze objekty i overovat, coz vede predevsm k uspore
vypocetnho vykonu.
System rozpoznavan byl zabudovan do majacku, ktere jsou umsteny na okrajch
hriste. Pro pripojen kamer byla pouzita sbernice USB, kde se vsak u delsch kabelu v souteznm prostred objevili problemy s komunikac. Pokud by se podarilo
tento problem odstranit, naprklad pridanm dalsch aktivnch prvku, je tato sestava
vyuzitelna i pro dals rocnky souteze. Zpusob komunikace pomoc XBeer bezdratoveho
rozhran je snadno pouzitelny s sirokou skalou vypocetn techniky (od stolnch poctacu
po osmibitove mikrokontrolery).
37
Literatura
CHUM, O. Two-View Geometry Estimation by Random Sample and Consensus: PhD
VUT Fakulta Elektrotechnicka, 2005. ix, 90 s.
Thesis. Praha : C
EUROBOT. Eurobot 2010 rules [online]. Planete Sciences, 2009. Dostupne z: <http://www.eurobot.org/commonfiles/docs/2010/E2010_rules_and_
drawing_EN.pdf> .
EUROBOT. Eurobot 2010 - dodatky [online]. Katedra softwareveho inzenyrstv
Matematicko-fyzikaln fakulty, Univerzita Karlova v Praze, 2010. Dostupne z:
<http://www.eurobot.cz/faq2010.php> .
FORSYTH, D. A. { PONCE, J. Computer Vision: A Modern Approach. Upper Saddle
River : Prentice Hall, 2003. xxv, 693 s. ISBN 0-13-085198-1.
HARTLEY, R. I. { ZISSERMAN, A. Multiple View Geometry in Computer Vision.
Cambridge : Cambridge University Press, second edition, 2003. xvi, 655 s. ISBN
0-521-54051-8.
KRAVTCHENKO, V. { LITTLE, J. J. Ecient Color Object Segmentation Using the
Dichromatic Reection Model. 1999 IEEE Pacic Rim Conference on Communications, Computers and Signal Processing. 1999, s. 90 { 94.
SHAPIRO, L. G. { STOCKHAM, G. C. Computer Vision. Upper Saddle River :
Prentice Hall, 2001. 608 s. ISBN 0-13-030796-3.
SONKA, M. { HLAVA C , V. { BOYLE, R. Image Processing, Analysis, and Machine
Vision. Toronto : Thomson, third edition, 2008. xxv, 829 s. ISBN 978-0-495-24438-7.
WIKIPEDIA. SVD [online]. Wikimedia Foundation, Inc., 2010. Dostupne z: <http:
//en.wikipedia.org/wiki/Singular_value_decomposition> .
38
Obsah CD
Prilozene CD obsahuje zdrojove kody modulu viden, text bakalarske prace ve formatu
PDF a zdrojove kody celeho textu pro system LATEX. V nasledujc tabulce je popsana
struktura CD.
Adresar
Popis
src
zdrojove kody modulu
lib
pouzite knihovny
doc
zdrojove kody textu bakalarske prace
thesis.pdf text bakalarske prace
Tabulka .1
Adresarova struktura na CD
39

Podobné dokumenty

VYU ZIT I METODY NELINE ARN ICH NEJMEN S ICH CTVERC U

VYU ZIT I METODY NELINE ARN ICH NEJMEN S ICH CTVERC U cmz se dostane rozsrena normaln rovnice. Nediagonaln prvky matice N jsou shodne s nediagonalnmi prvky matice J T J . Diagonaln prvky se vol jako Nii =  + [J T J ]ii , kde ...

Více

Mčstskf úÍad Kraslice - Odbor Zivofního prostÍedÍ

Mčstskf úÍad Kraslice - Odbor Zivofního prostÍedÍ d ) P i i Ò i n n o s l e c!h b l i T k o s l l| c d e n i V K S j e p o v i n e nI e s p e k t ( ì ! apLr a v i d l as t a n o l c n àp r Ì i l n r n ì r p i e d | i ( ! p r o o c h | a n n i p i ...

Více

Digitalizace

Digitalizace Příkazy Matlabu pro práci s filtry obrazok.m fft2 … 2D rychlá Fourier. transformace fftshift…posunutí počátku frekv. Souřad. systému remez…návrh 1D filtru freqz… frekvenční charakteristika 1D filt...

Více

MATEMATICK A ANAL YZA III

MATEMATICK A ANAL YZA III Turistka ma tu opovazlivost stat v bode [3; 2].  Kterym smerem z bodu [3; 2] tece potok?  Urcete rovnici krivky, po ktere tece potok  Kterym smerem (v jakem uhlu smerem k potoku...

Více

a ˇ se?

a ˇ se? hovou sami. Jestlize si na modlitby vyhrazujeˇ ´ ˇ ˇ me dostatek casu, nas vztah k nemu se bude ˇ prohlubovat. (Jak. 4:7, 8) A to je neco velmi

Více

Mezinárodní projekty mladých psychiatrů v Evropě

Mezinárodní projekty mladých psychiatrů v Evropě • Volba druhu léčby , případně farmak u běžných psychiatrických onemocnění • Volba druhu léčby v případě vlastního onemocnění • Pilotní studie byla provedena na posledním fóru EFPT v Göteborgu na d...

Více

KOMBINATORIKA A GRAFY I

KOMBINATORIKA A GRAFY I 2. Uvazme libovolny bod x 2 X . Existuje prmka, ktera bodem x neprochaz. Proc? Uvazme mnozinu 4 bodu, kde zadne 3 nejsou v prmce (podle axiomu). Necht' a; b; c jsou jej 3 body ...

Více