1 Obsah: 1. ÚVOD...4 1.1 Obecné použití...4 1.2 Konkrétní použití...5 2. ZPRACOVÁNÍ OBRAZU...7 2.1 Snímání obrazu...8 2.2 Další zpracování...9 2.3 Omezující vlivy...11 2.3.1 Odlesk zdroje svtla na lesklých zaoblených plochách...11 2.3.2 Nerovnomrné nasvtlení pedmtu...12 2.3.3 Promnný jas a kontrast...12 2.3.4 Geometrické zkreslení...12 2.3.5 Šum...13 2.3.6 Vzorkování...13 2.3.7 Posun brýlí...13 2.3.8 Nároky na výpoetní výkon...14 2.4 Filtry...14 2.4.1 Natení snímku...16 2.4.2 Zobrazení snímku...16 2.4.3 Zobrazení kíže...16 2.4.4 Zmna jasu a kontrastu...16 2.4.5 Použití souadnice...16 2.4.6 Prmry bod podle os...17 2.4.7 Hranování...18 2.4.8 Poloha minima...19 2.4.9 Prahování...20 2.4.10 Prmr tverc...21 2.4.11 Rozdíl snímk...22 2.4.12 Tmavé okolí...23 2.4.13 Hledání bílé oblasti...24 2.4.14 Vyhlazení...26
2 2.4.15 Zamení kížem...26 2.4.16 Zamení pomocí hledání obrysu...27 2.4.17 Prohledávání okolí...29 2.5 METODY...29 2.6 Geometrická korekce obrazu...30 2.7 Chyba urení polohy...32 2.8 Výstupní sériové rozhraní...33 3. TESTOVACÍ APLIKACE...34 3.1 Hlavní okno...34 3.2 Výbr zdroje...37 3.3 Náhled...37 3.4 Histogram...38 3.5 Editace metod...39 3.6 Vlastnosti kroku...40 4. ZÁVR A ZHODNOCENÍ...41 5. LITERATURA...43 Seznam obrázk: Obrázek 1 Ukázka obrazu robotického systému Orpheus viditelného operátorem.. 6 Obrázek 2 Blokové schéma etzce pro urení polohy oní zornice... 7 Obrázek 3 Nákres umístní kamery... 8 Obrázek 4 Snímek získaný z kamery umístné pímo ped okem... 10 Obrázek 5 Snímek oka vyfocený kamerou umístnou bokem na brýlích virtuální reality... 11 Obrázek 6 Ukázka skládání filtr... 15 Obrázek 7 Ukázka filtru výpotu prmr podle os... 18 Obrázek 8 Ukázka hranování... 19 Obrázek 9 Ukázka aplikace filtru Prahování... 20 Obrázek 10 Prmrování jasu do tverc... 21 Obrázek 11 Snímek ped výpotem a po aplikaci filtru... 23 Obrázek 12 Snímek oka s referenní znakou... 25
3 Obrázek 13 - Upesnní polohy pomocí metody Zamení kížem... 27 Obrázek 14 - Upesnní polohy pomocí metody hledání obrysu... 28 Obrázek 15 Umístní kalibraních bod na snímku... 31 Obrázek 16 Ukázka geometrické deformace... 32 Obrázek 17 Hlavní okno... 35 Obrázek 18 Okno náhledu... 38 Obrázek 19 Okno histogramu... 38 Obrázek 20 Okno editace metod... 39 Obrázek 21 Okno vlastnosti kroku... 40 Seznam tabulek: Tabulka 1 Ukázka namených hodnot pro korekci geometrického zkreslení... 31 Seznam rovnic: Rovnice 1 Výpoet hran... 18 Rovnice 2 Výpoet prmru pro vyhlazování... 26 Rovnice 3 Obecné vztahy pro pepoet souadnic... 30 Rovnice 4 Transformaní funkce pro kompenzaci geometrického zkreslení... 30 Rovnice 5 Korekce obrazu podle maxim... 36
4 1. ÚVOD Jelikož stroje, které lidé vytvoili, nejsou schopny pracovat samostatn, je nutno je njakým zpsobeb ovládat. Nejjednodušší možnost ovládání lidskou bytostí je pomoci rukou. Napíklad pi ízení automobilu rukama ovládáme volant a adící páku. Jelikož však nelze ovládat rukama píliš mnoho prvk najednou, byla snaha využít i jiné ásti tla. V pípad auta jsou také využity nohy pro ovládání plynu, spojky a brzdy. Další lidský výstupní orgán, který dokážeme ovládat je hlas. Hlas by bylo možno dekódovat a využít také k zadávání povel. Jiná ást tla, kterou jsme schopni ovládat je hlava. Pomocí natoení a náklonu hlavy je nap. možno ovládat na dálku pohyblivou kameru. Lze však využít i další ásti tla k ovládání dalších prvk stroje? Vtšina pímých ovládání je realizováno pomocí pohybu nkteré ásti tla (nohy, ruce, hlava, hlasivky a ústa). Poslední zajímavá pohyblivá ást tla jsou oi. Práv oi jsou orgán, kterým dokážeme pesn polohovat a umožuje nám zamovat zrak i na pedmty, které nejsou pímo ped námi bez toho abychom museli natáet hlavu. Otázkou však je, pro jaký druh ízení lze oi použít, nebo na rozdíl od ostatních jmenovaných ástí tla jsou oi ureny primárn pro získávání obrazové informace z okolí. Cílem této práce je prozkoumat možnosti snímání polohy zornice oka a zjistit, pro jaké typy ízení lze oi vbec použít. Pedevším však prozkoumat algoritmy pro rozpoznávání obrazu a nalezení stedu zornice oka pomocí kamery s co nejvyšší pesností. 1.1 OBECNÉ POUŽITÍ Vyhodnocování polohy zornice oka mže mít mnoho použití. Dvody použití oí pro ízení je možnost ovládání pomocí další ásti tla. To má význam hlavn tam, kde je poteba ovládat další prvky a nelze již použít z rzných dvod nohy, ruce, hlavu a ústa. Mže jít o pípad, kdy jsou již využity pro ízení jiných prvk, nebo pokud je lovk hendikepovaný. Možnosti využití ovládání pomocí oí
5 Ovládání polohy kurzoru myši na obrazovce Lze využít pedevším pro osoby, které nemohou ovládat myš rukou. Automatické natáení kamery podle místa, na které smuje zrak Je vyhodnocena poloha pozorovaného místa na obraze a následn je natáena kamera tak, aby se pozorovaný objekt pesunul do stedu obrazu. Mže být použito jako alternativa k natáení kamery podle natoení a náklonu hlavy. Vhodné hlavn pi pohybu ve virtuální realit, kdy lovk pozoruje obrazovku a nepohybuje hlavou. Mení smru pohledu osoby Jsou zaznamenávána místa, na které se osoba dívá. Mže sloužit nap. pro vyhodnocení poutavosti míst na reklamních materiálech nebo pro zamení senzor a dálkové vyhodnocení pozorovaného místa. Ostení a pibližování podle zmny velikosti zornice Lze využít zmny velikosti zornice pi pohledu na vzdálené a blízké objekty a díky tomu mnit zvtšení obrazu. Detekce zavírání oí a mrkání Využití nap. v automobilovém prmyslu pro zjišování zda idi nepechází do mikrospánku, nebo pro ovládání v závislosti na potu mrknutí (nap. potvrzení operace dvojmrknutím). Snímání oní sítnice sítnice. Nap. pro bezpenostní systémy využívající k identifikaci osob snímání oní 1.2 KONKRÉTNÍ POUŽITÍ Tato práce však byla zadána s ohledem na jedno konkrétní použití, a to využití k ovládání obrazových prvk robotického systému Orpheus. U tohoto
6 systému má operátor na hlav nasazené brýle virtuální reality a rukama ovládá dva joysticky. Obraz viditelný operátorem obsahuje mimo obraz snímaný kamerou také nkolik informaních blok, které informují o okolních podmínkách jako je nap. teplota, dále funkci vnitních podsystém a poloze kamery. Díky urení polohy zornice oka by bylo možno nap. vybrat nkterý z tchto postranních panel pouhým pohledem na nj a mnit jeho vlastnosti. Obrázek 1 Ukázka obrazu robotického systému Orpheus viditelného operátorem I pes možné zjednodušení plynoucí z konkrétní aplikace, zamil jsem se na zobecnné zadání, a to získat polohu zornice oka co nejlépe tzn. pesn, rychle a robustn.
7 2. ZPRACOVÁNÍ OBRAZU Jedno oko je snímáno miniaturní CCD kamerou, která je pipojena k digitalizanímu zaízení. Toto zaízení je pak napojeno na poíta, který provádí analýzu jednotlivých snímk a získávání výsledných souadnic. Tyto souadnice lze pak využít pímo v poítai, a nebo penést nkterou sériovou sbrnicí mimo poíta. Obrázek 2 Blokové schéma etzce pro urení polohy oní zornice Pi prvních testech jsem si mohl dovolit umístit kameru pímo ped oko. Ve skutenosti však nelze snímat oko kamerou umístnou ped okem, nebo oi primárn slouží k vidní a kamery by clonila pohledu oka. Reáln není ani možné kameru ped oko umístit, protože tento prostor zabírají brýle. Proto je nutné umístit kameru tak, aby snímala oko z boního pohledu pod uritým úhlem a to bu posunutou horizontáln nebo vertikáln. Výhodnjší je horizontální posunutí, protože pi posunutí vertikálním cloní kamee víka a asy. Posun kamery zpsobuje jisté geometrické zkreslení, které je nutno kompenzovat. Na následujícím obrázku je horního pohledu naznaeno umístní kamery vzhledem k hlav s oima a dvma projekním plochám.
8 Obrázek 3 Nákres umístní kamery 2.1 SNÍMÁNÍ OBRAZU Vhodná kamera je umístna tak, aby co nejlépe snímala obraz oka. Pro testovací úely lze kameru umístit pímo ped oko, v praxi však bude umístna kamera pod uritým úhlem tak, aby nebránila pohledu osoby. Díky tomu je získaná poloha zornice nelineární. Nelinearita je také zpsobena zaobleností oka a soudkovitostí. Nelinearitu je pak nutno kompenzovat. Kameru je nutno upevnit na brýle tak, aby nedocházelo k chvní obrazu, které by zpsobovalo pídavnou chybu zjištné polohy. V praxi to však není dost možné, protože konstrukci brýlí nelze mnit a pipoutání brýlí k hlav je problémové také s ohledem na rzné velikosti lidských hlav. Pro správné rozpoznávání obrazu je také vyžadováno rovnomrné nasvícení oka. To lze zajistit z pídavného zdroje nepímého svtla. Svtlo však nemže být ve viditelném spektru, aby nenarušovalo normální funkci oka. Proto je poteba zvolit zdroj infraerveného svtla. CCD kamera Sníma kamery obsahuje matici bod vytvoených na speciální polovodiové struktue. Každý bod má schopnost uchovat náboj získaný z dopadajících foton. Po expozici jsou všechny ádky pesouvány na konec snímae, kde jsou pak všechny body jednotlivých ádk posouvány ven sériovým výstupem.
9 Pro správné snímání obrazu je mimo poet obrazových bod také rozhodující optika. Smyslem optiky je zamit snímaný obraz na povrchu senzoru tak, aby nebyl obraz rozostený a rozkládal se na celém povrchu CCD senzoru. Zvolená miniaturní kamera CCD umožuje snímat obraz na velmi krátkou vzdálenost až jednotek milimetr. Avšak konec objektivu kamery pipevnné na brýlích je vzdálen od povrchu oka asi 8 mm. Bližší umístní by znamenalo jednak stínní dopadajícího svtla na oko a také možný dotyk objektivu s povrchem oka. Objektiv použité kamery lze zaostit pouze run. Pro poteby snímání oka pln dostauje ernobílá kamera. Snímáním barev nezískáme žádnou další užitenou informaci a zvyšuje se tak množství dat, které je nutno zpracovat. Pro pesné urení polohy zornice oka je rozhodující rozlišení kamery. Vyšší rozlišení umožní pesnjší zjištní polohy, avšak vede také ke zvýšení množství zpracovaných dat. Pro poteby testování byla k dispozici ernobílá kamera s maximálním rozlišením 720x576 bod. Tento režim kamery však již využívá prokládání, které posílá stídav liché a sudé plsnímky. Pi pohybu objektu pak dochází k nepíjemnému efektu, kdy sudé a liché ádky jsou vi sob posunuty. Toto však píliš nevadí pi statickém snímání oka. istý neprokládaný obraz kamera dokáže snímat s maximálním rozlišením 352x288 bod. Pi snímání v maximálním rozlišení pi formátu RGB24 (24 bit) a 25 snímk/sekundu je poteba penést teoreticky 31 MB dat za sekundu. Díky prokládání to však je mén, asi 15 MB. Použité digitalizaní zaízení bylo pipojeno k poítai pes rozhraní USB 2.0, které umožuje teoreticky penést až 60 MB/s. Získaný obraz je však poteba dostaten rychle zpracovávat tak, aby byla analýza každého snímku dokonena ješt ped píchodem dalšího. Pi 25 snímcích/sekundu to znamená as pro zpracování jednoho snímku maximáln 40 ms. 2.2 DALŠÍ ZPRACOVÁNÍ Z digitalizaního zaízení jsou získávána obrazová data s periodou 1/25 sekundy. Každý snímek je nejprve peveden do úspornjšího formátu nebo pro poteby vyhodnocování polohy oní zornice není poteba informace RGB, ale pouze jas. Každý bod je tedy peveden z formátu RGB24 na odstíny šedi o velikosti
10 zabírající v pamti jeden bajt (256 kombinací) na bod. Tato transformace vede jednak k úspoe obsazené pamti, a jednak k zrychlení výpot. Následn je na takto upravený obraz použita ada filtr. Tyto filtry je možno adit za sebe tak, že na konci etzce získáme hledanou polohu stedu oka. Rozdlení na filtry je výhodné pedevším proto, že filtry je možno rzn kombinovat a vytváet z nich metody. Metodou pak nazvme uritou posloupnost filtr. Rozdlení na filtry také umožuje vyhodnocovat asové nároky jednotlivých krok. První filtr je vždy nastaven jako získávání obrazu z kamery a poslední zpravidla jako zobrazení výsledku. Filtry pro rozpoznávání polohy zornice oka vycházejí z pedpokladu, že na zpracovávaném snímku je zachyceno jedno celé oko vetn as. Dležitý pedpoklad je, že nejvtší a nejtmavší plocha ve snímku je práv zornice oka. Proto je poteba, aby do obrazu nezasahovaly jiné tmavé plochy ležící nejastji vedle hlavy nebo za ní. Správn zachycené oko je zobrazeno na následujícím obrázku. Obrázek 4 Snímek získaný z kamery umístné pímo ped okem V reálných aplikacích však nemže kamera snímající oko ležet pímo ped okem, protože by clonila sledovaný obraz. Proto je nutno kameru umístit mimo zorné pole oka. Pak je oko snímáno pod uritým úhlem v horizontální a vertikální ose. Vhodnjší je posunout kameru horizontáln, protože v pípad posunu vertikáln
11 kamee cloní víko a asy. Pokud je kamera pipevována na brýle virtuální reality, je volba omezena samotnou konstrukcí brýlí. Obrázek 5 Snímek oka vyfocený kamerou umístnou bokem na brýlích virtuální reality Pro pesné vyhodnocování polohy je nutno, aby se kamera vi oku nepohybovala a nezanášel se tak pídavná chyba do výsledné polohy. Tohoto však s testovanými brýlemi nelze dosáhnout nebo brýle po ase sklouzávají po ele. Tuto pídavnou chybu by bylo možno odstranit pouze urováním polohy zornice relativn vi víkm a asám což pináší znané komplikace. 2.3 OMEZUJÍCÍ VLIVY 2.3.1 Odlesk zdroje svtla na lesklých zaoblených plochách Povrch oí je lesklý a oi jsou zaoblené. Ob tyto vlastnosti zpsobují pi nevhodn umístném bodovém zdroji svtla odlesk. Odlesk se projevuje jako silné svtlé místo na jinak tmavé zornici. Tento jev siln narušuje postupy rozpoznávání, které vycházejí z faktu, že celá zornice je tém erná. Jeden ze zpsob potlaení odlesk je polarizované sklo. Pokud by bylo svtlo ze zdroje odlesk polarizované v jednom smru, bylo by možno jej potlait
12 kolmo natoeným polarizaním filtrem. Na brýlích virtuální reality jsou použity jako projekní plocha pro oi dva miniaturní LCD panely. LCD panely produkují sice polarizované svtlo, avšak polarizaní sklo je možno umístit až ped objektiv kamery a svtlo dopadající ke kamee již není polarizováno nebo polarizace je pi odrazu o oko rozptýlena. Navíc svtlo dopadající z LCD panel není jediný zdroj odlesk. Další odlesky picházejí z okolí nebo prostor mezi projekní plochou, okem a kamerou není zakryt. Tento prostor by bylo možno zakrýt, ale pak by bylo poteba pídavného nasvícení. Pi vypracovávání této práce tato varianta nebyla realizována. 2.3.2 Nerovnomrné nasvtlení pedmtu Zanáší významnou chybu do získaného obrazu. Lze je rozdlit na celkové a místní. Celková nerovnomrnost se projevuje v rozdílu jasu mezi protjšími okraji snímku. Do celého snímku zanáší gradientní zmnu jasu. Místní nerovnomrnosti se projevují v ástech snímku a jsou zpsobeny nap. stínem as, nosem nebo samotným upevnním kamery na hlav. 2.3.3 Promnný jas a kontrast CCD kamera automaticky pizpsobuje dobu expozice podle svtelných podmínek. Díky tomu není nezbytné upravovat kontrast a jas. Jelikož má kamera omezený rozsah kontrastu, zpsobuje problémy píliš kontrastní dopadající svtlo. Další problém pak vzniká bhem procesu rozpoznávání díky zmn okolních svtelných podmínek nap. v pípad, že je v místnosti rozsvíceno nebo se operátor otáí s brýlemi vi silnému zdroji svtla jako je teba okno. 2.3.4 Geometrické zkreslení Pi snímání kamerou dochází ke geometrickému zkreslení obrazu, které zpsobuje zaoblení hran a pitažení roh snímk ke stedu. Tento jev je možno kompenzovat, ale protože snímané oko je od kamery vzdáleno jen málo a pi výpotech se nevyužívají rohy obrazu, soudkovitost nemá podstatný vliv. Vtší problémy však zpsobuje to, že kamera musí snímat oko ze strany. Toto zkreslení
13 bylo nutno vykompenzovat. Proto je nutné ped používáním aplikace nejdíve souadnice zkalibrovat. Kompenzace geometrického zkreslení je popsána dále. Úhel, z kterého kamera oko snímá, závisí na proporcích 3D brýlí. Mnohem výhodnjší je však snímat oko kamerou posunutou horizontáln. Pokud by byla kamera upevnna pod brýlemi a snímala oko zespodu, oko by clonilo víko s asami. 2.3.5 Šum Obraz snímaný CCD kamerou je zatížen zvlášt pi slabém osvtlení znatelným šumem. Filtrování šumu není nikterak nový problém a pro jeho potlaení byla vytvoena ada metod. Šum lze odstranit metodami jako jsou prmrování, konvoluní filtr, filtrace mediánem, despeckle (odzrnní). Pokud jsou však tyto metody aplikovány plošn na celý snímek, vyžadují znaný výpoetní výkon, který není vzhledem k použitému hardware k dispozici. 2.3.6 Vzorkování Pesnost rozpoznání polohy zásadn ovlivuje rozlišení kamery. Kamera je nastavena tak, aby snímala jedno celé oko. Zjištný sted oka se však pohybuje jen na malé ásti snímku. Díky tomu je rozlišení získaných souadnic znateln menší než rozlišení kamery (asi 30 % z rozlišení celého snímk). Tato vysoká nepesnost se pak také projeví na pepotených souadnicích obrazovky. 2.3.7 Posun brýlí Velký problém urení polohy zornice oka zpsobuje posouvání brýlí virtuální reality na hlav. Brýle nejsou k hlav pipevnny napevno a vlivem váhy sjíždjí dol. Tento vertikální posun je pi dívání se na projekní plochu zanedbatelný. Avšak pi snímání oka i malý posun zpsobí posun y souadnice o nkolik bod na snímku a dále pak o mnoho více bod na obrazovce. Posun x-ové souadnice není tak významný.
14 2.3.8 Nároky na výpoetní výkon Kvalitní analýza obrazu vyžaduje velké množství výpoetních operací. Pi rychlosti zpracování 25 snímk za sekundu je nutno stihnout zpracování jednoho snímku za 40 ms. Pi rozlišení snímku 720x576 nelze použít složitjší algoritmy. Testování bylo provádno na osobním poítai s procesorem AMD Athlon XP 2500+ a i tak bylo nutno nkteré algoritmy zjednodušit a nebo vbec nepoužít. Algoritmy zapsané v itelné abstraktní form bylo nutno zrychlit optimalizací a tím zesložitit. Prvotním zámrem bylo realizovat algoritmus rozpoznání pomocí signálového procesoru. Vzhledem k nedostatku výkonu na osobním poítai by bylo obtížné pevést program do této jednotky. Jako zajímavé ešení se ukázalo použít tzv. embedded PC (vestavný poíta), který mže být také osazen výkonným procesorem, má potebné vstupy a výstupy a je na nm nainstalován operaní systém Windows. 2.4 FILTRY Filtr je logický blok, který mže mít nkolik vstup a výstup a provádí mezi nimi definovanou transformaci. Filtry lze mezi sebou spojovat a vytváet z nich tak etzce. Rzn sestavené etzce vytvoí metody rozpoznávání polohy zornice oka. Každý filtr mže mít vlastnosti, kterými lze upravit jeho chování. Tento systém provádní výpot pomocí kombinování blok není nic neobvyklého. Jde o realizaci tzv. modulárního systému. Tento pístup je také zvolen pro vykreslování videa a audia v rozhraní DirectX, konkrétn pak v podskupin DirectShow. Na následujícím obrázku je ukázáno blokové uspoádání filtr, které v této konfiguraci tvoí jednu metodu. Na tomto schématu je vidt, že každý filtr mže mít více vstup a výstup, které jsou napojeny na další filtry. Každý vstup/výstup má svj typ, který mže být snímek, souadnice nebo jiný nadefinovaný typ. Lze propojovat pouze vstup výstup stejného typu. Filtry jsou provádny shora dol. Filtr Nati snímek produkuje pouze výstupní snímek. Filtr Tmavé okolí tento snímek naítá a vytváí na výstupu další upravený snímek a zjištné souadnice. Filtr Hledání obrysu zde slouží k upesnní polohy. Filtr Zobrazit snímek vykreslí snímek do okna
15 Náhled a filtry Zobrazit kíž vykreslí do stejného okna zvolenou barvy kíž. Filtr Použít souadnice ovládá kurzor myši, kompenzuje geometrické zkreslení a prmruje souadnice. Obrázek 6 Ukázka skládání filtr Filtry lze rozdlit na filtry plošné, které provádí uritý výpoet pro každý bod obrazu, a na filtry bodové, které provádjí výpoet jen pro nkteré body. Plošné filtry používají hrubou sílu a jsou oproti bodovým více nároné na výkon. Plošné filtry jsou použity pi detekci polohy zornice oka v první fázi pro pedzpracování obrazu a pro orientaní zjištní polohy stedu. Jde nap. o filtry Zmna jasu a kontrastu, konvoluní filtry, Prahování a Hranování. Plošné filtry také trvají zpravidla pokaždé stejnou dobu. Naproti tomu bodové filtry provádjí výpoty jen nad nkolika body a jsou mén nároné a doba jejich provádní se mže dynamicky mnit. Bodové filtry
16 jsou nap. Zamení stedu kížem a Hledání obrysu. Tyto dva patí do skupiny filtr pro zpesnní polohy. 2.4.1 Natení snímku Tento filtr pouze naítá obrazová data z kamery s využitím rozhranní Direct Show a pevádí je do potebné datové struktury s jedním bajtem na pixel a tedy s 256 úrovnmi šedi. 2.4.2 Zobrazení snímku okna Náhled. Zobrazování snímku se provádí pomocí rychlé API funkce OS Windows do 2.4.3 Zobrazení kíže Pro grafické znázornní získaného stedu tento filtr vykresluje do okna Náhled kíž definované barvy. 2.4.4 Zmna jasu a kontrastu Tento filtr mní hodnoty obrazových bod podle zadané zmny jasu a kontrastu. Vzhledem k promnlivým svtelným podmínkám lze využít pro korekci jasu a kontrastu. Vtšina CCD sníma se však dokáže pizpsobovat intenzit okolního svtla a umí automaticky mnit jas. Kontrast je u CCD sníma dosti omezený. Filtr mže mít význam v kombinaci s jinými filtry. Nap. pro zvýraznní kontrastu po provedení Hranování nebo Rozdílu snímk. Jas a kontrast je možno nastavit run na konkrétní hodnoty a nebo zapnout automatické získávání optimálních parametr z obrazu. 2.4.5 Použití souadnice Tento filtr provádí korekci polohy, prmrování a demonstraní nastavování polohy kurzoru myši. Korekce polohy spoívala nejdíve v získání maximálních
17 možných souadnic a jejich pepotení pomocí posunu a zmny mítka na souadnice obrazovky. V další verzi je pak pepotení souadnice provádno pomocí geometrické transformace. Poet krok prmru a ovládání polohy kurzoru myši lze nastavit v hlavním okn. 2.4.6 Prmry bod podle os Tento mechanizmus poítá zvláš prmry bod po horizontálních a vertikálních linkách. Výsledkem jsou pak dva vektory. Jeden o velikosti šíky snímku a druhý o velikosti výšky snímku. Nalezením minima v tchto vektorech lze pak urit polohu nejtmavjšího místa v ose x a y. Výsledek této metody však není dosti pesný. Je zatížen chybou zpsobenou ostatními tmavými oblastmi, nebo prmrování probíhá pes celý snímek. Chybu pedevším zpsobují tmavé asy a tmavé pedmty na pozadí mimo obliej, pokud není kamera správn nasmrována pímo na celé oko. Chyba zpsobená asami se projevuje více na vertikálním histogramu nebo as jsou rozprosteny horizontáln. Další chyba, kterou lze obtížn odstranit je chyba zpsobená nerovnomrným nasvtlením oka. Gradient jasu negativn ovlivuje rozpoznání nejtmavšího místa v histogramu. Výhody: Malé nároky na výpoetní výkon Nevýhody: Nepracuje lokáln, jiné velké i malé tmavé objekty negativn ovlivují výsledek Poteba rovnomrného osvtlení Urení polohy ve vertikální rovin narušují asy Nedokáže zamit sted pesn, jde o filtr s hrubým urením polohy
18 Obrázek 7 Ukázka filtru výpotu prmr podle os 2.4.7 Hranování Detekce hran spoívá ve výpotu intenzity zmny jasu bod snímku. Pro zjednodušení jsou v tomto filtru vypoítány body vztahem F( x, y) = ( f ( x, y) f ( x + n, y) ) + ( f ( x, y) f ( x, y + n) ) 2 Rovnice 1 Výpoet hran kde F(x,y) je nový bod, x a y jsou souadnice zpracovávaného bodu a n je vzdálenost mezi testovanými body. Parametr n by mohl být pro jednoduchost 1, avšak ukázalo se, že pro snímky s vyšším rozlišením by pi rozdílu sousedních bod by nebyly hrany dostaten výrazné. Proto je parametr n vypoítáván vzhledem k rozlišení snímku. I tak je vhodné zaadit za tento filtr korekci jasu a kontrastu.
19 Obrázek 8 Ukázka hranování Takto získaný obraz však nezjednodušuje proces hledání stedu. Jak je ukázáno na obrázku výše, pokud do snímaného obrazu zasahuje okolí, dostávají se zde cizí hrany, které je pak nároné odlišit od správných. Na tomto obrázku je také vidt, že by bylo možné zamit kružnici vzniklou na pechodu tmavé a svtlé ásti oka. To je však obtížné vzhledem k možnému ástenému pekrytí kružnice víky, deformací kružnice odlesky a také zmnou velikosti a tvaru této hrany pi natáení oka. jasem. 2.4.8 Poloha minima Tento jednoduchý filtr pouze hledá souadnice obrazového bodu s nejnižším Výhody: Velmi rychlý algoritmus Nevýhody: Nepotlauje šum
20 V pípad více bod se stejným minimálním jasem volí první nalezený bod Upednostuje tmavší a menší oblasti ped zornicí oka, která nemusí být nejtmavší Celkov je tato metoda vhodná spíše pro nalezení globálního minima nebo maxima v oblasti, kde je námi hledaný extrém jediný. 2.4.9 Prahování Tento filtr prování pepoet celého snímku na dvoubarevný snímek. Výsledný snímek bude ernobílý a erná barva bude dosazena za body, které leží pod zvolenou hranicí. Hranice mohou být také dv a pak erná barva bude dosazena za body ležícími mezi hranicemi. Ostatní body budou bílé. Jelikož zornice oka je prakticky nejtmavší oblast na snímku, dokáže tento filtr potlait okolí a zvýraznit samotnou zornici. Problém však spoívá ve zvolení prahu jasu, který bude zvýraznn. Tato rozhodovací úrove jasu závisí na svtelných podmínkách okolního prostedí. Navíc se mže v obraze projevit nerovnomrnost nasvtlení oka, boním osvtlením a stíny. Obrázek 9 Ukázka aplikace filtru Prahování Výhody: Velmi rychlý algoritmus
21 Nevýhody: Nepotlauje šum Pro zjištní stedu je poteba použít další krok Nutno stanovit práh Závislost na svtelných podmínkách, problém se stíny 2.4.10 Prmr tverc Toto je další zajímavá metoda, jak zvýraznit vtší tmavou oblast oproti menším teba i tmavjším oblastem. Filtr jednoduše poítá prmr tvercových oblastí v mížce pes celý obraz. Díky tomu lze pak snadno rozpoznat vtší nejtmavší místo. Metoda je velmi rychlá, protože prochází všechny body pouze jednou. Nevýhodou je pak pedevším nepesnost odhadu, protože odhadované nejtmavší místo leží nkde uvnit tverce. Obrázek 10 Prmrování jasu do tverc Bílou barvou je zde naznaen rozpoznaný obrys. Rozpoznávání obrysu probíhá v pvodním obraze, zde je jen pro ilustraci aplikován pímo do výsledného
22 obrazu. Velikost tverce je nutno stanovit na základ rozlišení obrazu kamery a velikosti zornice nap. jako 10 % z výšky obrazu. Výhody: Rychlý a nenároný algoritmus Spolehlivá metoda Potlaení šumu prmrováním Nevýhody: Uruje polohu jen v rámci mížky dané velikostí bunk Nezohleduje kruhový tvar zornice Vhodná velikost kroku je závislá na rozlišení a na velikosti zornice oka 2.4.11 Rozdíl snímk Tento filtr poítá rozdíl mezi aktuálním a pedchozím snímkem. Tímto výpotem získáme nový snímek, ve kterém budou zvýraznna místa, která v ase zmnila svj jas. Pi statickém snímání oka se takto projeví práv zornice oka, která se pi zamování pohledu pohybuje. Navíc se však pohybují také asy a víka, což zpsobuje problém. Tento filtr by pak bylo možno použít pro omezení oblasti snímku, kde by byla zornice hledána a tím bychom mohli ušetit výpoetní výkon. Na druhou stranu samotný výpoet rozdílu snímk také vyžaduje jistý výkon, takže výsledný efekt není jednoznaný. Tento filtr by teoreticky bylo možno použít také pro detekci posunu brýlí vi oku, nebo pi vertikálním spadávání brýlí by se projevili zmny jasu na rozdílovém snímku. Toto ešení je však píliš nároné a nejisté vzhledem k množství šumu v obraze. Filtr lze také využít pro detekci mrkání. Pi mrknutí dochází v krátkém ase k znanému posunu víek, což se projeví významn práv u rozdílového snímku.
23 2.4.12 Tmavé okolí Jde o transformaci, která provádí výpoet nových bod obrazu podle urité konvoluní matice. Pro každý bod je prakticky vypoten prmr bod daných ortogonálním kížem se zadaným rozptím. Tzn. pi rozptí 20 bod je prmrováno 10 bod v každé ze svtových stran. Hlavní výhoda tohoto filtr je, že tímto zpsobem je možno zamit velkou tmavou plochu a vylouit tak sice tmavší, ale menší místa, která se nepodobají kulaté zornici. Algoritmus by ml prmrovat pes celou kruhovou plochu, ale vhledem k rychlosti výpotu jsou prmrovaný jen body v ose x a y. I tak je algoritmus pomalý, protože poítané kíže se navzájem pekrývají a každý bod je poítán vícekrát podle délky kíže. Proto bylo nutno provést optimalizaci, která nakonec velmi snížila množství potebných výpot a tak tuto metodu povýšila na první místo. Velikost kíže by mla být nastavena nejlépe na velikost zornice. Toho se dá dosáhnout pedpokladem, že velikost kíže bude nap. 10 % bod z výšky obrazu. Obrázek 11 Snímek ped výpotem a po aplikaci filtru Tento obrázek ukazuje obraz ped a po provedení transformace. Je zde dobe vidt, že i tmavá oblast vpravo dole byla potlaena, protože není dostaten velká. Na obrázku vpravo lze také pozorovat jemné linie zpsobené tmavými asami. Jako vedlejší efekt se zde výhodn projevuje potlaení šumu prmrováním.
24 Výhody: Zohleduje kruhový tvar zornice Nejspolehlivjší metoda Dobrá schopnost filtrovat šum, pokud se dále pracuje s výsledným obrazem Oproti obecné konvoluní matici lze výpoet dobe optimalizovat Nevýhody: Trochu náronjší a komplikovanjší Nutnost volit rozptí kíže podle rozlišení obrazu a velikosti oka 2.4.13 Hledání bílé oblasti Cílem tohoto filtru je nalézt souadnice bílé oblasti umle umístné poblíž koutku. Jde o bílou nálepku umístnou na takovém míst, které se nehýbe vi kamee. Smyslem tohoto umlého bodu je kompenzace aditivní chyby zpsobené pedevším vertikálním posunem brýlí vi hlav. U všech pedchozích metodách je totiž urována poloha zornice absolutn vi okrajm snímku. Pokud se brýle posouvají po ele, zvyšuje se aditivní chyba souadnic. Tuto chybu je možné odstranit urováním souadnic relativn vi vztažnému bodu. Protože žádný takový výrazný bod okolo oka není, je nutno bod vytvoit umle. Volba barvy, velikosti a tvaru není prakticky omezena. Zde byla pro jednoduchost použita bílá nálepka. Tato metoda hledá souadnice bodu jako polohu bodu s maximálním jasem. Jak je vidt na následujícím obrázku, velmi svtlé místa také prosvítají na pravém okraji snímku. Proto byly hranice prohledávané oblasti omezeny tak, aby hledaný referenní bod byl jediný globální extrém.
25 Obrázek 12 Snímek oka s referenní znakou Od souadnic zornice oka je pak odetena poloha referenního bodu a výsledné souadnice jsou pak relativní vi tomuto bodu. Pesnost výsledné souadnice je však nižší nebo k chyb souadnic zornice se piítá chyba souadnic referenního bodu. Navíc pi praktických zkouškách nebyla metoda dostaten odolná vi vertikálnímu posunu brýlí, protože pi posunu brýlí se mní úhel, pod kterým kamera snímá oko. To má za následek rzné zmny v obraze jako pivírání a otvírání víek, posunu odlesk a zmnu nasvícení oka. Celkov se pak ukázalo, že tento druh kompenzace chyby není dostatený a je nutno vymyslet jiné lepší postupy. Výhody: Kompenzuje aditivní chybu souadnic pepotem souadnic na relativní Znaku lze zvolit podle poteby Nevýhody: Nutno umístit k oku znaku
26 K chyb polohy zornice se piítá chyba polohy znaky Neeší všechny chyby, které se projevují pi pohybu brýlí Vyžaduje další výpoetní výkon 2.4.14 Vyhlazení Tento filtr provádí nejjednodušší operaci pro odstranní šumu, a to prmrování. Prmrování bod je poítáno jednoduchým vztahem: F ( x, y) = f ( x, y) + f ( x + 1, y) + 3 f ( x, y + 1) Rovnice 2 Výpoet prmru pro vyhlazování Tato metoda je však plošná a tím také výpoetn nároná. Odstranní šumu není dostatené, a proto metoda nebyla nakonec využita. K odstranní šumy by bylo poteba použít složitjší algoritmy jako je filtrace mediánem, konvoluní gaussovou maticí nebo teba rotující maskou. 2.4.15 Zamení kížem Tato metoda je založena na testování bod ve smr svtových stran do chvíle než jas testovaného bodu pekroí toleranci jasu vi hlavnímu bodu. Postupuje tedy ve tyech smrech po jednotlivých bodech dokud nenarazí na bod, který již není v toleranci. Výhoda metody je bezesporu rychlosti, protože oproti dalšími dvma metodami testuje nejmenší poet bod a algoritmus je nejmén náronjší. Tato metoda se však nedokáže vyrovnat s pípadným odleskem, který velmi asto leží blízko stedu zornice. Pro upesnní je možno tuto metodu provádt i vícekrát.
27 Obrázek 13 - Upesnní polohy pomocí metody Zamení kížem Modrá ára znaí sted oka získaný metodou Tmavé okolí a ervený kíž ukazuje jak byly rozpoznány okraje oka pomocí metody Zamení kížem. Výhody: Rychlá metoda Možno aplikovat vícekrát pro vtší zpesnní Nevýhody: Závislost na jasu výchozího bodu a zadané toleranci Nedokáže se vypoádat s odleskem Je nutno volit toleranci, která je ale také závislá na kontrastu 2.4.16 Zamení pomocí hledání obrysu U této metody je nejdív nalezen poátení obrysový bod podobn jako u pedchozí metody. Každý další bod je nalezen kontrolou sousedících bod proti
28 smru hodinových ruiek. Pokud nkterý z bod vyhovuje tolerannímu pásmu, je na nj pemístn ukazatel. Pi každém pechodu na nový bod je ukazatel smru otoen ve smru hodinových ruiek. To zpsobí, že hledací bod se bude snažit zahýbat stále doprava. Absolvovanou cestu je vhodné si oznait, abychom vdli, které body byly již testovány. Oznaení však nepoítá s tím, kdy ze startovního bodu se lze vydat pouze dvma protilehlými smry. V takovém pípad by totiž dospl hledací bod pouze zpt k startovnímu bodu a neprohledal by druhou vtev. Další problém je, že okraje toleranního pásma jsou pedevším vlivem šumu kostrbaté a obsahují výbžky o šíce jeden bod. Kdyby byla zakázáno procházet znovu již prošlou cestou, znamenalo by to, že by terík uvízl ve slepé ulice. Proto je nevýhodnjší kontrolovat zda hledací bod nedospl zpt do startovací pozice se stejným smrem s jakým z nj vycházel. Výsledný sted je pak možno urit dvma zpsoby. Bu jako polovina mezi maximální a minimální procházenou hodnotou nebo jako prmr poloh všech bod. Obrázek 14 - Upesnní polohy pomocí metody hledání obrysu Modrá ára opt vyznauje polohu nejtmavšího místa. Bílá kivka ukazuje trasu na okraji toleranní oblasti a ervená zobrazuje ohraniení této oblasti a její sted.
29 Výhody: Dokáže analyzovat obrys zornice Dokáže obejít odlesk, pokud leží uvnit Lze provést vícekrát Nevýhody: Pomalejší než Zamení kížem Závislá na jasu poáteního bodu a toleranci Je nutno volit toleranci 2.4.17 Prohledávání okolí Metoda prohledávání okolí pedpokládá znalost velikosti objektu. V ureném okolí se zapoítají vybrané body a podle jejich rozložení lze klasifikovat povahu objektu. Výhoda metody spoívá v tom, že dokáže pracovat i z perušenými objekty. V pípad zornice oka k perušením dochází pedevším vlivem odlesk. Protože velikost oka dopedu neznáme, není tato metoda vhodná. Navíc patí mezi výpoetn náronjší plošné metody oproti dvma pedchozím. 2.5 METODY Sestavené metody vycházejí z nkterých hlavních filtr. Každá metoda obsahuje jako první filtr Natení snímku. Zatímco pro hrubé urení polohy slouží metody Tmavé okolí, Prmry tverc, Prmry podle os a Prahování, pro upesnní polohy v dalším kroku lze použít Zamení kížem nebo Zamení hledáním obrysu. Doplkový filtr, který lze pidat ke všem metodám je pak Hledání bílé oblasti pro korekci chybu zpsobené posunem brýlí. Nejvýhodnjší metoda je složená z filtr Natení snímku, Tmavé okolí, Hledání obrysu, Použití souadnice s geometrickou korekcí, pípadn Zobrazení snímku a kíž. V tomto uspoádání s maximálním rozlišením kamery 720 x 576 byla chyba po prmrování 5 vzorky asi 10 % z výšky obrazu obrazovky. Urení
30 polohy však není dostaten robustní a pokud je do etzce zaazen filtr Hledání bílé oblasti pro pepoet absolutních souadnic na relativní vi referennímu bodu, je chyba již vtší než 20 %, což je pro potebnou aplikaci neúnosné. 2.6 GEOMETRICKÁ KOREKCE OBRAZU Obraz snímaný kamerou je zatížen chybou, která zpsobuje, že získaná poloha zornice oka na snímku pomrov neodpovídá poloze zornice oka ve skutenosti. Zkreslení je zpsobeno jednak soudkovitostí obrazu a také kulovým tvarem oka a jeho umístním a možném natoení vi kamee. Soudkovité zkreslení by bylo možno kompenzovat statickou transformací, která by obraz vyrovnala. Avšak zkreslení zpsobené okem mže být pro rzné osoby promnlivé, a proto je poteba ped použitím systému provést kalibraci získaných souadnic. Korekce spoívá v pepotu získaných souadnic zornice oka ve tvaru: x y 1 1 = = f f x y ( x0, y0 ) ( x, y ) 0 0 Rovnice 3 Obecné vztahy pro pepoet souadnic Jako transformaní funkci jsem zvolil funkci: 2 2 f = a0 + a1x + a2 x + a3 y + a4 y + a5xy Rovnice 4 Transformaní funkce pro kompenzaci geometrického zkreslení Kalibrace pak spoívá v získání tabulky sob odpovídajících bod v systému 0 a 1. Systém 0 je obrazová plocha v poítai a systém 1 jsou snímky získané z kamery. Získaná tabulka bod mže vypadat nap. takto:
31 Tabulka 1 Ukázka namených hodnot pro korekci geometrického zkreslení Poadí x 0 y 0 x 1 y 1 1 211 108 34 14 2 214 96 32 359 3 226 60 36 756 4 204 63 539 753 5 183 60 1001 745 6 172 100 1005 344 7 174 109 1011 28 8 191 110 491 13 9 188 93 503 328 Vhodný poet zmených bod by ml být alespo 9, nebo je poteba dostaten zachytit proporce obrazu. Více bod zpesní transformaní funkce. Umístní bod je naznaeno na následujícím obrázku. Obrázek 15 Umístní kalibraních bod na snímku Získání hodnot bod je provádno tak, že uživatel umístí ukazatel myši do bodu, který chce mit, podívá se na nj a aktivuje zaznamenání bod do tabulky. Jde tedy o zaznamenání zmené a skutené polohy.
32 Získané souadnice lze pak metodou nejmenších tverc použít k urení koeficient transformaní funkce. Píklad získané geometrické transformace je na následujícím obrázku. Obrázek 16 Ukázka geometrické deformace Tato korekce tedy kompenzuje jak chybu kamery, tak chybu vzniklou vlastnostmi oka uživatele. 2.7 CHYBA URENÍ POLOHY Celkovou chybu je možno uvádt v obrazových bodech nebo v procentech. Skládá se ze samotné chyby urení polohy, která je zpsobena hlavn zmnou geometrie oka a šumem. Tu je pak poteba pepoítat vzhledem k geometrické transformaci. Chyba zpsobená touto transformací je pi maximálním rozlišení kamery 720 x 576 bod a rozlišení obrazovky 1024 x 768 bod vysoká. Je to zpsobeno tím, že z celého snímku je pro urení polohy využito jen asi 30 % plochy. Díky tomu pi uvedených rozlišeních odpovídá jednomu bodu na kamee asi 8 bod na ploše obrazovky. Vzhledem k tomu, že dochází k redundanci souadnic pi pepotu ze souadnic kamery na souadnice obrazovky, nebo jeden bod je pepoten na n bod na obrazovce, bylo by vhodné njak zvýšit pesnost polohy. Pro tyto úely lze výhodn využít dithering. Ten spoívá v pidáním malého šumu do signálu ped jeho kvantováním. Díky tomu nedojde k takové ztrát informací. Pokud je takto kvantované hodnot pidána redundantní složka a je následn zprmrována, získáme pesnjší hodnotu, než tu, kterou jsme dostali hned po kvantování. V našem pípad je šum již v obraze obsažen pirozen, takže staí již jen prmrovat. Šum
33 sice není takový, jaký bychom pro poteby ditheringu potebovali, i tak však mírn zlepšuje pesnost polohy. Prmrování získaných souadnic je výhodné kvli odstranní šumu. Avšak prmrování zmenšuje rychlost odezvy. Rozumný poet vzork prmru vzhledem k rychlosti zpracování 25 snímk za sekundu je asi 5-10. 2.8 VÝSTUPNÍ SÉRIOVÉ ROZHRANÍ Každou získanou polohu zornice oka aplikace lze odeslat na vybraný port sériového rozhraní. Poloha je odesílána v ASCII formátu jako etzec ukonený nulou. etzec obsahuje polohu ve formátu x,y, tedy nap. 124,65.
34 3. TESTOVACÍ APLIKACE Pro poteby testování jsem vytvoil v prostedí Delphi aplikaci, která umožuje zobrazovat a zpracovávat obraz z kamery nebo z video souboru. Aplikace byla vytvoena pod operaním systémem Windows, který disponuje funkcemi pro práci s multimédii. Konkrétní rozhraní pro práci s digitalizaními zaízeními se jmenuje DirectShow a umožuje mimo jiné obecný pístup ke kamerám a video souborm. Jelikož Delphi neobsahuje komponenty pro práci s rozhraním DirectShow, použil jsem voln dostupnou knihovnu DSPack. Pi testování vhodných algoritm pro rozpoznávání polohy zornice oka se ukázalo jako výhodné rozdlit jednotlivé algoritmy do logických krok. Jednotlivé transformaní a vykreslovací funkce jsem nazval Filtry, podobn jako jsou používány filtry v pípad rozhraní DirectShow. Skládáním filtr je pak možno dospt rznými zpsoby k požadovanému výsledku. Testovací aplikace umožuje vytvoit si rzné Metody a piadit k nim etzec filtr. Testovací aplikace také umožuje ovládat polohu kurzoru myši podle úhlu pohledu oka. Polohování kurzoru je však dosti nepesné, protože rozlišení obrazovky je vtšinou znateln vyšší než rozlišení kamery. Doporuené rozlišení pro bžnou velikost monitoru 17 je 1024 x 768. Naproti tomu maximální rozlišení použité kamery je 720 x 576. Sted oka se navíc pohybuje jen v malé oblasti snímku. Ovládání kurzoru je tedy již z principu nepesné a jeho pesnost ješt negativn ovlivují další faktory. 3.1 HLAVNÍ OKNO V hlavním okn je zobrazen malý náhled zdroje videa, seznam Metod, seznam filtr vybrané metody, tlaítko pro výbr zdroje videa, pehrávání, pozastavení, zastavení, editaci metod a zobrazení okna geometrické transformace. Dále je zde nkolik voleb a rámeek pro ovládání myši a odesílání dat na sériový port. V seznamu filtr jsou uvedeny ve sloupcích poadí kroku, názvy filtr a asy zpracování v milisekundách. Poslední ádek ve výpisu filtr je celkový souet as provádní jednotlivých filtr a tato hodnota by nemla být vyšší než maximální doba
35 pro výpoet jednoho snímku 40 ms. Pokud není snímek zpracován do píchodu následujícího, je následující snímek zahozen. V seznamu metod jsou zobrazeny možné metody, které lze kliknutím zvolit. Obrázek 17 Hlavní okno Ovládání myši pracuje pouze, je-li použit filtr Použij zjištný bod. Lze použít dva filtry Použij zjištný bod 1 a 2. První filtr používá kalibraci na principu násobení a pitení korekních hodnot k souadnicím ze snímku, druhý používá pro korekci geometrickou transformaci. První kalibrace spoívá v zmení minim a maxim souadnic. Uživatel stiskne tlaítko Start kalibrace, pohlédne do všech tyech roh a pak stiskne znova stejné tlaítko pejmenované na Stop kalibrace. Program zaznamená hodnoty x min, x max, y min, y max souadnic na snímku. Z tchto hodnot vypoítá souadnice obrazovky pepotem:
36 kde x y o o = = ( x x ) s s min ( y y ) x o, y o jsou souadnice na obrazovce x s, y s jsou souadnice na snímku s s min x x y y o max s max o max s max x x o min s min y y o min s min Rovnice 5 Korekce obrazu podle maxim Tento výpoet byl dostaující v pípad, že kamera snímala oko pímo zepedu. Pi snímání pod uritým úhlem se uplatuje složitjší geometrické zkreslení a proto je tato korekce nedostaující. Druhá kalibrace je složitjší a je popsána v ásti Geometrická korekce obrazu. Pro získání tabulky souadnice snímku a obrazovky slouží tlaítka Reset a Vložit. Tlaítkem Reset je tabulka vymazána a tlaítkem Vložit jsou postupn vkládány body do tabulky. Vložení bodu spoívá v pesunu kurzoru myši na mící bod a sledování stejného místa na obrazovce zrakem. Po každém vložení bodu je aktualizováno okno Geometrická transformace a je vykreslena symbolická mížka. Poet ádk tabulky je zobrazen jako v kolonce Poet vzork. Získané souadnice na obrazovce jsou ped nastavením polohy kurzoru myši prmrovány a poet vzork prmru je možno nastavit. V okn je také umístno nkolik voleb. Volba zobrazení a skrytí náhledu ovládá viditelnost okna Náhled a také zapíná a vypíná filtry, které slouží pouze ke kontrolnímu zobrazení. Vypnutím náhledu jsou vypnuty pedevším filtry Zobrazení snímku, Zobrazení kíže a Histogram. Dále lze úpln vypnout provádní všech filtr vypnutím volby Provádt filtry. Lze nastavit aby byl náhled vidt vždy nad ostatními okny volbou Náhled navrchu. Volba Zobrazit vlastnosti ovládá viditelnost okna Vlastnosti kroku a volba Zobrazit histogram ovlivuje viditelnost okna Histogram. Ve stavové lišt je zobrazena informace o vyhrazené a použité pamti v bajtech a dále pak stav zvoleného sériového portu.
37 Metody, kroky a parametry krok jsou ukládány do soubor Options.cfg. Nastavení aplikace je ukládáno do registru systému. 3.2 VÝBR ZDROJE V tomto okn je možno vybrat jako zdroj obrazu bu digitalizaní zaízení nebo soubor. Soubor je zde uveden spíše pro testovací úely. U kamery lze vybrat jedno ze zaízení pipojených k systému a pak nkteré z možných podporovaných rozlišení. 3.3 NÁHLED Pi samotném procesu získávání souadnic x,y není poteba zobrazovat výsledný obraz. Ten je zobrazován spíše pro kontrolu filtr a pro nastavení polohy kamery tak, aby snímala celé oko. Náhled je tedy možno voliteln zobrazit zaškrtnutím prvku Zobrazovat náhled na hlavním okn. Pokud náhled není zobrazován, nejsou provádny žádné zobrazovací filtry a tím je ušeten as procesoru. V titulku okna je vedle slova Náhled zobrazován ješt jas bodu, na který ukazuje kurzor myši. Velikost okna náhledu lze mnit.
38 Obrázek 18 Okno náhledu 3.4 HISTOGRAM Pokud je zaazen do metody filtr Histogram, jsou v tomto okn zobrazovány etnosti jednotlivých úrovní jasu. Obrázek 19 Okno histogramu
39 3.5 EDITACE METOD Po stisknutí tlaítka Editace metod na hlavním okn se zobrazí okno umožující editaci metod. Lze zde pidávat, odebírat, pejmenovávat metody, piazovat k nim filtry seazené do jednotlivých krok. Editace probíhá pomocí kontextové nabídky. Ped piazením filtru je poteba nejdív vybrat cílovou metodu a zdrojový filtr a pak v seznamu Kroky vyvolat akci Pidat filtr. Každý filtr mže mít nkolik vstup a výstup, nazvaných v rozhraní DirectShow piny. Tyto piny je nutno vzájemn propojit. Propojení je realizováno piazením stejného ísla požadovaným vstupm a výstupm. Nap. krok Nati snímek má výstup s íslem 0 a následný krok, který pracuje s tímto musím mít vstup s íslem 0. Tento filtr má pak výstup 1 a další filtr má pak zase vstup 1. Propojování se tedy dje skrz íselné hodnoty. Nelze však propojovat kterýkoliv vstup s kterýmkoliv výstupem. Každý vstupy nebo výstup má svj typ, který mže být snímek nebo souadnice. Filtry mžou mít vlastnosti, které ovlivují jejich chování. Vlastnosti mohou být typu barva, celé íslo, desetinné íslo nebo logická hodnota a je možno je za bhu mnit v okn Vlastnosti po výbru nkterého kroku. Obrázek 20 Okno editace metod
40 3.6 VLASTNOSTI KROKU V tomto okn lze mnit parametry filtr jednotlivých krok. Obsah okna se mní dynamicky podle aktuáln zvolené metody a kroku. Vlastnosti lze mnit také pokud je zdroj videa pozastaven, což lze využít pro ladní parametr. Obrázek 21 Okno vlastnosti kroku
41 4. ZÁVR A ZHODNOCENÍ Seznámil jsem se získáváním videa z kamery do poítae v operaním systému Windows. Obraz je získáván pes rozhraní DirectShow, které umožuje pistupovat ke kamerám obecn. Dále jsem prozkoumal možnosti rozpoznávání polohy zornice oka. Hlavními kritériemi pro volbu nejvhodnjší metody jsou asová náronost, robustnost a pesnost urení polohy. Vytvoil jsem adu filtr pro zpracování obrazu. Filtry lze rozdlit na filtry pedzpracování obrazu, filtry urující orientaní polohu zornice v celém obraze, na ty, které podle této polohy zjistí pesnou polohu stedu zornice oka a na funkní filtry, které se starají o natení obrazových dat a využití získaných souadnic. Nejvhodnjší filtr pro urení orientaní polohy je filtr Tmavé okolí. Zpesnit souadnice pak dokáže nejlépe filtr Hledání obrys. Vytvoil jsem testovací aplikaci a v ní realizoval vybrané algoritmy pro práci s obrazem. Prozkoumal jsem metody pro rozpoznávání obrazu a z jednotlivých krok jsem sestavil etzce pro získání výsledné polohy. Aplikace umožnuje sestavovat filtry do etzc a ty ukládat na disk, mit asy potebné pro provedení jednotlivých filtr, nastavovat vybrané parametry filtr bhem procesu rozpoznávání a polohovat kurzor myši podle získaných souadnic. Pestože se mi podailo vytvoit metodu pro urení polohy zornice oka, není výsledek dostatený pro praktickou realizaci. Dvody pro se nepodailo realizovat rozpoznání polohy jsou nedostatené rozlišení kamery, problematické umístní kamery na rzné brýle virtuální reality, nedostatené upevnní brýlí na hlav a jejich postupné sklouzávání, odlesky projekních ploch a okolí narušující obraz, nerovnomrné nasvtlení, šum, vysoké nároky na výpoetní výkon pro použití náronjších metod a také geometrické zkreslení, které se neobejde bez kalibrace a korekce. Celkov se dá íci, že i když bylo dosaženo pijatelné pesnosti pro poteby systému Orpheus, nelze tuto metodu v praxi použít, protože není dostaten robustní a bhem práce ztrácí metoda svoji pesnost a je nutno opt provádt kalibraci. Pro další vývoj by bylo vhodné zvolit jiný typ kamery, zaclonit brýle a použít vlastní zdroj osvtlení oí mimo viditelnou oblast pro odstranní odlesk, vytvoit
42 algoritmus pro lepší korekci chyby pi posunu brýlí, vytvoit takový systém, který nevyžaduje vícenásobnou kalibraci a použít vhodný algoritmus pro odstranní šumu. Optimalizacemi by mly být také sníženy nároky na výpoetní výkon a systém by ml být penesen do embedded PC. Pi vývoji se projevilo to, co už je bžn známo, že pokud je informace ztacena již ve fyzické ásti, v softwareové ásti zpracování obrazu již tuto informaci zpt nezískáme.
43 5. LITERATURA [1] Everett, H.R. : Sensors for Mobile Robots. A K Peters, Ltd., ISBN 1-56881-048-2, 1995 [2] Jones L.J.; Flynn M.A.; Seiger A.B.: Mobile Robots. Inspiration to Implementation. A K Peters, Ltd., ISBN 1-56881-097-0, 1999