BAKAL A RSK A PR ACE
Transkript
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
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 ...
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 ...
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...
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...
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
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...
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 ...