sustav za detekciju usmjerenosti pogleda - · pdf filebi došlo do greške u...

46
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 476 SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA Ivan Kaurić Zagreb, veljača 2013.

Upload: doanthu

Post on 06-Feb-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 476

SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA

Ivan Kaurić

Zagreb, veljača 2013.

Page 2: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 476

SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA

Ivan Kaurić

Zagreb, veljača 2013.

Page 3: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

(izvorni zadatak)

Page 4: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko
Page 5: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Sadržaj1. Uvod...................................................................................................................................1

1.1. Pozadina......................................................................................................................11.2. Opis problema.............................................................................................................11.3. Pregled rada................................................................................................................2

2. Praćenje pogleda.................................................................................................................32.1. Definicija praćenja pogleda ......................................................................................32.2. Motivacija..................................................................................................................32.3. Pogled i komunikacija...............................................................................................42.4. Pogled kao ulazna informacija..................................................................................52.5. Povijest praćenja pogleda..........................................................................................72.6. Područja primjene praćenje pogleda .........................................................................82.7. Praćenje pogleda i budućnost..................................................................................10

3. Temelji praćenja usmjerenosti pogleda............................................................................123.1. Fiziologija oka ........................................................................................................123.2. Gibanja oka..............................................................................................................14

3.2.1. Fiksacije ...........................................................................................................143.2.2. Sakade...............................................................................................................153.2.3. Blaga potraga....................................................................................................153.2.4. Šumovitost pogleda...........................................................................................163.2.5. Preciznost sustava i pogleda.............................................................................163.2.6. Problem neželjenih odabira...............................................................................17

3.3. Tehnike praćenja oka................................................................................................183.3.1. Elektro-okulografija (EOG)..............................................................................183.3.2. Leće...................................................................................................................183.3.3. Video-okulografija (VOG)................................................................................18

3.4. Temelji estimacije pogleda.......................................................................................204. Opis razvijenog rješenja...................................................................................................21

4.1. Detekcija lica............................................................................................................214.2. Detekcija područja oka.............................................................................................224.3. Detekcija centra oka ................................................................................................224.4. Detekcija ruba oka....................................................................................................234.4. Estimacija usmjerenosti pogleda..............................................................................254.5. Kalibracija................................................................................................................26

5. Implementacija.................................................................................................................275.1. Opis implementacije kritičnih dijelova algoritma....................................................27

5.1.1. Implementacija detekcije lica..........................................................................275.1.2. Implementacija traženja centra........................................................................275.1.3. Implementacija traženja ruba oka....................................................................295.1.4. Implementacija kalibracije i mapiranja............................................................30

5.2. Primjer izvođenja algoritma.....................................................................................335.3. Opis aplikacije..........................................................................................................34

6. Rezultati i primjena..........................................................................................................357. Zaključak..........................................................................................................................37Literatura..............................................................................................................................38Sažetak .................................................................................................................................40Abstract................................................................................................................................41

Page 6: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

1. Uvod

1.1. Pozadina

Praćenje pogleda (eng. Gaze tracking) označava proces detektiranja i praćenja

usmjerenost pogleda odnosno smjera u kojem osoba gleda. Takva informacija se može

koristiti za interakciju čovjeka sa računalom (eng. HCI). Postojeći sustavi većinom koriste

IR luminaciju kako bi osvijetlili oko, odnosno zjenicu, osobe i na temelju takve

informacije pratili njenu poziciju.

Praćenje pogleda ima niz primjena, vjerojatno najpoznatije kao pomoć osobama

koje se teško kreću, posebno onima kojima je jedini kanal komunikacije sa okolinom

pokret oka. U novije vrijeme sve više se koriste i u promidžbenoj industriji za praćenje

reakcija korisnika takvih usluga, rašireno je i korištenje za praćenje reakcija na promjene u

okolini, primjerice prilikom vožnje automobila, u različitim vojnim situacijama i slično.

Postoje različite kompanije specijalizirane za ovo područje koje su u zadnje vrijeme

privukle investitore, a raste i broj patenata vezano uz tehnologije praćenja pogleda koje

izdaju vodeće IT kompanije. Također, razvijaju se i open source projekti koji omogućuju

širu raširenost inače skupog softwarea. Ipak, većinom se radi o sustavima koji zahtijevaju

poseban hardware, bilo da se radi o nešto jednostavnijem sustavu sa IR iluminacijom i

prikladnom kamerom, ili nešto složeniji sustavi koji uključuju i posebne naočale, složenije

sustave kamera koje prate niz promjena na ljudskom licu i okolini. Iako padaju cijene

uređaja i potrebne programske podrške, još uvijek većina sustava zahtjeva dodatne, uz

računalo ili konzolu, uređaje zbog čega tehnologija nije toliko raširena.

U ovome radu mi je cilj razviti jednostavan sustav koji omogućuje praćenje

usmjerenosti pogleda samo pomoću obične web kamere.

1.2. Opis problema

Razviti algoritam koji omogućuje estimaciju pogleda u sustavu obične web kamere,

računala i korisnika. Iz video signala koji prikazuje korisnika kako radi na računalu

prepoznati u koju regiju odnosno točku je usmjerio svoj pogled. Potrebno je pokazati

1

Page 7: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

uspješnost sustava u nekoj primjeni.

1.3. Pregled rada

U drugom poglavlju dan je pregled područja praćenja pogleda, opisana je povijest,

raširenost, prednosti i nedostaci, primjena i izazovi. Treće poglavlje pruža pregled

fiziologije oka, osnovne vrste pokreta oka, određena ograničenja i probleme prilikom

estimacije pogleda, kao i tehnička ograničenja.

Četvrto poglavlje nudi razradu problema i opis metode rješavanja potproblema,

odnosno detekcije centra i ruba oka, kalibracije i mapiranja. Peto poglavlja opisuje

implementaciju, a u šestom poglavlju su ponuđeni rezultati i primjena razvijenog

algoritma.

2

Page 8: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

2. Praćenje pogleda

Razvojem računala razvila se i potreba za novim načinima komuniciranja između

korisnika i računala što je dovelo do razvoja posebnog područja HCI (eng. Human

computer interaction) sa ciljem razvoja lakše, intuitivnije i učinkovitije komunikacije sa

računalima. Praćenje pogleda je jedini način komuniciranja za osobe sa određenim

bolestima, ali osim toga postoji niz područja u kojima se primjenjuje praćenje pogleda,

najčešće u kombinaciji sa drugim ulaznim jedinicama.

2.1. Definicija praćenja pogleda

Pojam praćenja pogleda označava estimiranje usmjerenosti pogleda neke osobe.

Većinom se pritom misli na određivanje objekta na koje se pogled fokusira, ali kada

govorimo o računalima najčešće mislimo na određivanje piksela odnosno regije na ekranu.

Postoje i složeniji sustavi koji prate usmjerenost pogleda u 3D prostoru.

2.2. Motivacija

Danas se većina sustava praćenja oka temelji na video signalu odnosno snimanju

lica, ili konkretnije područja oka, zajedno sa izvorom infracrvene svjetlosti. Većina

današnjih uređaja dolazi sa već ugrađenim kamerama; prijenosna računala, mobiteli,

tableti, pa i neki monitori. Povećanjem snage računala, odnosno procesora, obrada signala

u realnom vremenu postaje moguće i na najmanjim uređajima što omogućuje i širenje

tehnologije praćenja oka. Veliki broj ljudi većinu radnog vremena provode uz računala,

uostalom kao i slobodnog, koriste se tipkovnicama i miševima, koristeći obje ruke, što

dovodi do različitih zdravstvenih problema. S obzirom na taj stalni porast interakcije sa

računalima, postoji potreba i za alternativnim načina upravljanja računalom.

Unatoč padu cijena, i procjenama kako je širenje tehnologije samo stvar vremena, i

kako će uskoro svatko imati uređaj za praćenje oka po cijeni miša ili današnje web kamere,

to se još uvijek nije dogodilo. Iako cijena takvog sustava (kamera i izvor IR svjetlosti) nije

velika, ona se još uvijek nije raširila tako da sam u ovome radu odlučio razviti sustav koji

3

Page 9: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

koristi običnu web kameru.

2.3. Pogled i komunikacija

Pogled je bitan za komunikaciju, primjerice često ćemo upitati "što je ovo?"

gledajući neki objekt, pritom očekujemo da osoba sa kojim razgovaramo prepoznaje na što

mislimo. Slično tome, kada u društvu pričamo sa nekim onda tu osobu i gledamo kako ne

bi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

razlikuje od oka životinja čija bjeloočnica nije bijela pa je teško odrediti gdje gledaju.

Jasno je iz toga kako i oko, odnosno pogled, ima važnu ulogu u svakodnevnoj

komunikaciji.

Razlika u kulturnom odgoju rezultira

i razlikom u kretanju oka, kao što pokazuju i

istraživanja, primjerice kinezi se više

fokusiraju na pozadinu fotografija od

amerikanaca. Čak i bez takvih istraživanja,

znamo da će osoba drugačije proučavati

sliku ukoliko se na njoj nalazi neki tekst

kojeg zna čitati nego ukoliko nije upoznata

sa jezikom tog teksta. Još su davno

obavljena istraživanja koja pokazuju kako

osobe drugačije promatraju fotografije

ukoliko se fokusiraju na neki od zadataka. Kao što pokazuje slika 1, osobe kojima je dan

zadatak da odrede godine ljudi na fotografiji su je drugačije promatrali od onih koji su

trebali zapamtiti što je tko nosio i slično.

Unatoč nekim univerzalnim biološkim datostima trzaja oka, takva kretanja ovise o osobi.

Činjenica da ljudi koriste oči kao sredstvo komunikacije dovela je do slijedećih zaključaka

u području HCI;

• Imamo sposobnost kontroliranja pogleda(oka) i koristiti ga kao izlaz

Primjerice gledamo ljude sa kojima razgovaramo. Ipak, postoje tvrdnje kako je

neprirodno opterećivati vidni kanal sa zadacima motoričke kontrole.

4

Slika 1. Ovisno o tome koju informaciju na slici traže, osobe će drugačije analizirati sliku

Page 10: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

• Za prirodnu komunikaciju sa računalima, računala moraju biti u stanju

prepoznati usmjerenost našeg pogleda

Slično kao što računalo koje koristi analizu i sintezu govora mora biti u stanju

potpuno komunicirati jezikom sa nama, tako mora biti upoznat i sa pogledom.

• Analiziranje pogleda otkriva informacije o osobi

Oči različitih ljudi reagiraju različito ovisno o raspoloženju, namjerama i životnom

iskustvo. Takve informacije mogu pomoći računalu da pomaže osobi koja ga

koristi.

2.4. Pogled kao ulazna informacija

Tradicionalno, nepokretni ljudi koriste sustave praćenja kako bi komunicirali sa

okolinom[16]. U novije vrijeme, čini se kako bi praćenje pogleda moglo zamijeniti, barem

dio, postojećih interakcija sa računalom. Iako su sustavi koji pomažu nepokretnima velika

pomoć, takvi sustavi su u pravilu sporiji za korištenje od miša ili tipkovnice, iako postoje

istraživanja uspješnosti određenih akcija koja su pokazala kako je upravljanje pogledom

brže. Činjenica da su takvi sustavi ipak većinom sporiji od tradicionalnih ulaza, nije u

skladu sa činjenicom kako je pogledom lagano i brzo upravljati [13]. Sustavi praćenja

pogleda mogu ponuditi više prednosti:

• Lagano korištenje

Korištenje praćenja pogleda može smanjiti pritisak na ruku i mišiće tako što bi

pogled zamijenio dio aktivnosti. To ne mora značiti nikakav novi pritisak na oči jer

se u velikom broju akcija pogled već i koristi, primjerice pritisak miša na neku

ikonu

• Ubrzanje interakcije

Oči su brze, što znači da mogu dovesti do brže interakcije. Iako su postojeći sustavi

sporiji, postoji prostor za napredak, posebno u kombinaciji sa drugim ulazima.

• Nema potrebe za održavanjem

5

Page 11: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Sustavi za praćenje ne zahtijevaju nikakav fizički kontakt, nema potrebe za

čišćenjem uređaja. Postavljanje kamere iza neprobojnog stakla sprečava vandalska

oštećenja što nije moguće izbjeći sa tipkovnicom.

• Higijensko sučelje

U okruženjima koja zahtijevaju minimalni kontakt, primjerice u operacijskim

salama, takvi sustavi bi bili pogodni jer nema potrebe za dodirivanjem. Također,

različite tipkovnice u javnim mjestima mogu prenositi različite neželjene pojave.

• Daljinsko upravljanje

Sustavi omogućuju daljinsku kontrolu, čak i oni sa lošijim kamerama omogućuju

udaljenost veću od duljine ruku.

• Sigurnija interakcija

Sustavi praćenja pogleda zahtijevaju ne samo prisutnost nego i pažnju, primjerice

mobitel ne bi pritisnuo slučajno neku tipku. Takav sustav također omogućuje

ostvarenje zahtjeva da se pročita neki tekst upozorenja prije nastavka funkcije.

• Više informacija o korisnikovim aktivnostima

Oči govore puno o tome što osoba radi. Praćenje oka pruža puno korisnih

informacija za sustav koji se bavi kontekst situacije. Osim očitoga, praćenja

pogleda, već jednostavniji sustavi mogu odrediti čita li netko tekst, a složeniji

sustavi bi mogli odrediti fizičko ili emocionalno stanje korisnika, dob, ili stupanj

pismenosti.

Naravno, postoje problemi;

• Mogućnost kontrole

Oči imaju niz nekontroliranih ponašanja što bi moglo ozbiljno narušiti mogućnost

oka kao ulaza. Nije jasno do kojeg stupnja ljudi mogu kontrolirati svoj pogled.

Jasno je kako možemo kontrolirati u društvenim interakcijama, ali nije jasno

možemo li istrenirati oko kao što možemo istrenirati prste da sviraju klavir.

• Konflikt ulaza i vida

Primarna funkcija oka je vid. Korištenje oka za ulazne podatke može dovesti do

6

Page 12: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

konflikta sa vidom. Sustav mora biti u stanju razlikovati prirodne geste od

namjernih. Različiti objekti koji se kreću ili na neki drugi način odvlače pažnju

mogu rezultirati sa dodatnim problemima na koje bi trebalo paziti prilikom

osmišljavanja.

• Zamor očnih mišića

Na temelju drugih ulaznih jedinica poznato je kako neke dovode do zamora

određenih mišića odnosno mišićnih grupa što rezultira fizikalne probleme,

takozvani RSI (eng. repetitive strain injury). Postoji bojazan, da je isto moguće i za

očne mišiće, ali kako su oni stalno u uporabi, opasnost se čini manjom.

2.5. Povijest praćenja pogleda

U ranoj fazi razvoja područja praćenja pogleda, pokreti oka su se proučavali kako

bi saznali više o njihovoj prirodi, a ne kao nečemu što bi omogućilo komunikaciju sa

okolinom. Prvi uređaji za praćenje pogleda koji su davali objektivne i precizne podatke su

bili izrazito invazivni i neudobni. Primjerice krajem 19. stoljeća, Delabarre je koristio

aparaturu (svojevrsni poklopac za oko) koja se stavljala direktno na oko (što je zahtjevalo

prethodnu anesteziju), subjekt bi mogao gledati kroz rupicu na tom poklopcu što bi

pomicalo polugicu i davalo objektivne rezultate. Početkom dvadesetog stoljeća razvijene

su metode koje se temelje na fotografiji odnosno refleksiji svjetla od rožnice.

Unapređenjem tehnologije uskoro su kategorizirani različita svojstva i tipovi pokreta oka.

Miles Tinker je 1930-ih istraživao utjecaj veličine, fonta i drugih obilježja teksta prilikom

čitanja.

Jung je 1939. godine mjerio horizontalne i

vertikalne pomake oka sa elektrodama na koži blizu

oka. Metoda poznata kao elektrookulografija

omogućila je prvu mogućnost procesiranja pogleda u

realnom vremenu korištenjem analogne elektronike.

Paul Fitts, poznat po Fittovom zakonu, je 1947. godine

koristio kameru kako bi snimio pokrete oka pilota

prilikom spuštanja aviona. Zanimalo ga je kako piloti

7

Slika 2. Jedan od prvih uređaja za detekciju pogleda

Page 13: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

koriste sve kontrole u kabini.

Razvoj računalne snage doveo je do mogućnosti obrade podataka u realnom

vremenu, a samim time i uređaja koji su mogli pomagati ljudima pri komunikaciji. Slika 2.

prikazuje jedan takav uređaj. Naočale (na vrhu uređaja) su omogućavala korisniku da

odabire redove odnosno stupce i tako dolazi do željenog slova. Iako spor, sustav je bio

učinkovit.

Od 1990-ih, dolazi do stalnog porasta korištenja sustava za praćenje pogleda.

Padanje cijene je rezultiralo sa sve većim korištenjem u različitim područjima, kao i u

interakciji između čovjeka i računala.

2.6. Područja primjene praćenje pogleda

Danas se sustavi za praćenje koriste u različitim područjima[22];

• Istraživanje tržišta i testiranje oglasa

Gledano po količini novca, najveće područje korištenja sustava je istraživanje

tržišta. Prije nego što počnu oglašavati, tvrtke žele testirati učinak svojih oglasa.

Predstavljaju plakate potencijalnim klijentima te prati njihov pogled kako bi saznali

odgovore na pitanja poput; "Je li osoba vidjela svaki proizvod?"; "Koliko vremena

je osoba provela gledajući logo tvrtke?" i slično. Koristeći prijenosne sustave može

se provjeriti kako se kupac ponaša u dućanu, koje proizvode nije vidio, koji su mu

privukli pažnju i slično. Vidi sliku 3 za primjer.

8

Slika 3. Primjer korištenja tehnologije detekcije pogleda

Page 14: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

• Istraživanje uporabljivosti

Jedno od komercijalno najprivlačnijih područja je testiranje uporabljivosti [7,15].

Prvo istraživanje spomenuto u prethodnom poglavlju je bilo u kabini pilota kako bi

odredili koji je najbolji položaj za raspoređivanje različitih kontrola. Kada ponudite

nekom novi proizvod, lagano je pratiti kako se snalazi i što mu privlači odnosno

odvlači pažnju.

Razvojem weba, uporabljivost stranica je postala bitna stvar o kojoj ovisi

posjećenost i uspješnost stranice. Za stranice je bitno stvoriti pregledno sučelje koje

omogućava korisniku da se odmah snađe i koristi dostupne sadržaje.

• Kontrola pogledom za nepokretne

Jedno od najvažnijih područja primjene je kao pomagalo nepokretnim osobama.

Kvadriplegičari i osobe sa drugim bolestima, zbog gubitka kontrole nad mišićima,

koriste sustave praćenja pogleda kako bi komunicirali sa svijetom [25]. Takvi

sustavi primjerice omogućuju tipkovnicu odnosno pretvaranje teksta u govor, kao i

neke druge kontrole, pokretanje kolica, upravljanje televizorom i drugim uređajima.

Postoje različite primjene, primjerice crtanje očima, skladanje i slično.

• Psihologija i istraživanje vida

Sustavi za praćenje pogleda su vrijedan alat za istraživanje vida, percepcije i

psihologije. Jedna od prvih stvari za koje su sustavi praćenja uporabljeni je bila

proučavanje procesa čitanja. Postoji niz različitih istraživanja iz područja

psihologije [10].

• Medicinska istraživanja, dijagnostika i istraživanje

Sustavi praćenja se također koriste u medicinske svrhe kako bi istražili funkciju

oka, posebno kod osoba koje su imale ozljedu oka ili mozga koja je rezultirala sa

djelomičnim gubitkom vida. Sustav se koristi i za praćenje rehabilitacije

• Interakcija pogledom i sustavi upravljanja autom

Polako se uvode sustavi koji omogućuju komunikaciju sa uređajima koje

svakodnevno koristimo, primjerice paljenje televizora kada netko gleda u njega i

slično. U autoindustriji se razvijaju sustavi koji bi pomagali vozaču, primjerice ako

9

Page 15: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

bi zaspao sustav bi ga na to upozorio i slično. Istraživanja u ovom području još nisu

toliko raširena.

• Industrija zabave

Razvijene su konzole koje omogućuju praćenje pogleda, najčešće u kombinaciji sa

drugim načinima interakcije, ali postoje i igrači automati koji koriste samo pogled,

primjerice u igrici asteroid gdje se pogledom puca po objektima. Postoje različite

aplikacije koje spadaju u ovu skupinu proizvoda[21].

Ovo je okvirni pregled područja korištenja, naravno postoje i druga područja. Primjerice u

testiranju sportaša (i vojnika), kako se snalaze u prostoru, kako reagiraju na određene

situacije i slično. Jedna od mogućih primjena su i bankomat koji bi postali sigurniji ukoliko

bi korisnik samo pogledom birao svoju šifru. S obzirom da je upravljanje pogledom sve

veći dio HCI, u svaku uporaba računala koja zahtjeva interakciju se može u nekoj mjeri

uključiti upravljanje pogledom.

2.7. Praćenje pogleda i budućnost

Razvojem novih metoda interakcije sa uređajima, praćenje pogleda će zasigurno

imati sve veći utjecaj. Sve veća pozornost istraživanju uporabljivosti, kao i razvoj

interaktivnijih prijenosnih uređaja potvrđuju taj trend. Takvo predviđanje temeljimo na

različitim podacima;

• Snižavanje cijene uređaja

Stalno dolazi do smanjivanja cijene odnosno do povećanja brzine procesora što

omogućuje izvršavanje različitih metoda obrada signala. Sve kvalitetnije i jeftinije

kamere omogućuju izgradnju relativno jeftinih sustava i širu rasprostranjenost što

je posebno bitno za pacijente koji se nalaze u siromašnijim državama.

• Tvrtke koje se bave praćenjem pogleda

Postoji više tvrtki koje su se specijalizirale za sustave praćenja pogleda.

Najpoznatija od njih je švedska kompanija tobii koja je nedavno prodala udio od

10% za 20 milijuna dolara HP-u. Postoje različite manje start-up kompanije koje

10

Page 16: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

se bave tim područjem, neke od njih su kupile veće kompanije, primjerice

facebook.

• Open Source projekti

Unatoč sve manjim cijenama sklopovlja, sustavi sa pripadnim softwareom koštaju

i do nekoliko desetaka tisuća eura zbog čega su nedostupni velikom djelu

populacije. Ipak, postoje open source projekti koji besplatno nude svoj software

tako da je moguće kupiti kvalitetnu kameru, izvore IR svjetla, i računalo koje će

sve to pokretati za manje od tisuću dolara što znači da si sve veći broj ljudi može

priuštiti takvu pomoć[4,5,6].

• Patentni

Pregledavanjem patenata pronalazimo da veće kompanije koje se bave

potrošačkom elektronikom odnosno prodajom softwarea imaju svoje patente iz

ovog područja.

• Trendovi

Nedavno je lenovo u suradnji sa, već spomenutim, tobiiem osmislio laptop koji u

sebi ima ugrađeno sklopovlje za praćenje pogleda i omogućuje korištenje

programa kombinacijom standarnih metoda i pogleda, što je primjerice posebno

prikladno za pregledavanje karti. Novi windowsi također imaju svoje sučelje koje

omogućuje upravljanje pogledom.

Jedan od najiščekivanijih IT proizvoda su google naočale koje omogućuju

korisniku da u stvarnom svijetu dobiva različite informacije koje mu se prikazuju

na staklu. Naočale su u razvoju, ali po opisu se uvelike temelje upravo na praćenju

pogleda.

11

Page 17: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

3. Temelji praćenja usmjerenosti pogleda

Oko je glavni organ kojim percipiramo svijet oko sebe. Koristimo oči kako bi

prikupili informacije o okolini tako što usmjerimo pogled na neki objekt. Osim toga, oči

imaju važnu ulogu u društvenoj interakciji; iz njih možemo saznati o nečijem raspoloženju,

pažnji i emocionalnom stanju. Oko je organ koji tradicionalno promatramo kao,

računalnim rječnikom, ulaznu jedinicu, naravno za osobu čije je oko, ali ono također može

poslužiti kao vanjska jedinica koja signalizira okolini o našem stanju i fokusiranosti.

Oko nam služi za interakciju sa svijetom, prije odabira nekog smjera ponašanja

koristimo se pogledom kako bi procijenili situaciju, što znači da nam pogled govori o

intencionalnosti osobe. Iako usmjerenost pogleda ne mora nužno značiti i stvarnu

fokusiranost osobe na taj objekt, u pravilu možemo prateći promjene oka zaključiti što

promatrač gleda.

3.1. Fiziologija oka

Shematski prikaz ljudskog oka dan je na slici 4. Očna jabučica je kuglasti objekt

promjera oko 12 mm. Ono što možemo vidjeti izvana je; šarenica (obojeni dio), zjenica

12

Slika 4. Fiziologija oka

Page 18: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

(tamni dio u centru šarenice) i bjeloočnica (bijeli dio). Zjenica i šarenica su pokrivene

rožnicom, prozirnim slojem koji lomi svjetlo prije nego što uđe u oko. Granica između

zjenice i bjeloočnice se naziva limbus (što je zbog kontrasta najzanimljiviji dio oka za ovaj

rad).

Svjetlost ulazi u oko kroz zjenicu koja može kontrolirati količinu svjetlosti tako što

se širi odnosno skuplja. Nakon što svjetlo uđe u oko, prelomi se od leće, prozirne strukture

koja se nalazi iz zjenice. Leća mijenja svoj oblik kako bi usmjerila zrake svjetlosti do

mrežnice, površine koja sadrži fotoreceptore. Fotoreceptori su vrsta neurona osjetljivih na

svjetlost, pretvaraju ju je u električni impuls koji se optičkim živcima šalje dalje do mozga.

Postoje dvije skupine fotoreceptora; čunjiči i štapići. Štapići omogućuju monokromatski

pogled i osjetljivi su na svjetlost što znači da omogućuju snalaženje i kada nema toliko

svjetla, a čunjići omogućuju razlikovanje boja. Slika 5 daje shematski prikaz oka. Oko nije

potpuno simetrično; ali možemo ga tako aproksimirati s obzirom na optičku os odnosno

liniju usmjerenosti (line of gaze), ta linija nije ista kao i linija pogleda (line of sight)

odnosno vizualne osi. Optička i vizualna os se sjeku u centru zjenice[24].

Postoje dvije strukture u oku koje lome svjetlost, rožnica i leće. Osim što lome

svjetlost, djelomično je i odbijaju što rezultira sekundarnom slikom izvora, takozvane

Purkinje slike. Prva Purkinje slika se stvara na površini rožnice i najuočitljivija je od svih

četiri Purkinje slika.

Iako se jedan dio sustava za praćenje pogleda bavi detekcijom Purkinje slika, za

takvo što je potrebna usmjerenost kamere na oko, luminacija i visoka rezolucija tako da

one nisu bitne za ovaj rad.

13

Slika 5. Prikaz osi

Page 19: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

3.2. Gibanja oka

Stalno primamo veliku količinu vizualnih informacija tako da je potrebno stalno

pomicanje našeg oka kako bi odlučili koje od tih informacija su bitne za nas. O tome

odlučujemo na temelju; naših namjera i očekivanja odnosno na temelju isturenosti neke

regije u prostoru, primjerice kretanje objekta u statičnoj sceni će izazvati našu pažnju.

Postoje dvije vrste kretanja koje omogućuju da naš vizualni sustav odabere relevantne

objekte; sakade i blaga potraga. Kada se oko ustabili, onda dolazi do fiksacije

3.2.1. Fiksacije

Do fiksacije dolazi kada se usmjerimo na

neki objekt, obično se smatra da ima trajanje barem

100 do 150 ms. Tijekom fiksacije prikupljamo

podatke od naše okoline. Iako nam se čini kako je

slika potpuno mirna, tijekom fiksiranja dolazi do

različitih mikropokreta; driftova, tremoran i

mikrosakada [12]. Cilj tih pokreta je da se

fotoreceptori konstantno pobuđuju jer bi inače

odmah izgubili sliku objekta na kojeg se

fokusiramo, i kako bi objekt došao u centar

mrežnice. Slika 7 prikazuje utjecaj mikrogibanja tijekom fiksiranja. Disperzija zbog takvih

gibanja je u pravilu oko jedan stupanj vizualnog kuta.

14

Slika 7. Demonstracija utjecaja mikrogibanja tijekom fiksiranja

Slika 6. Purkinje slike

Page 20: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

3.2.2. Sakade

Sakada je brzo izmjenično gibanje oka koje premješta oko tako da je objekt u

vizualnoj sceni projektiran na fovei. Sakade se javljaju tijekom dvije fiksacije, i za to

vrijeme ne prikupljaju se nikakve informacije u vizualnom sustavu.

Tijekom sakade oči rotiraju velikom brzinom, često i do 700 stupnjeva po sekundi

za veće amplitude, trajanje nije konstantno, povećava se sa povećanjem gibanja. Trajanje

sakade za više od 5 stupnje je oko 30ms sa dodatnih 2ms za svaki dodatni stupanja

amplitude. Kod gibanja veća od 30 stupnjeva doći će i do gibanja glave. Razdoblje između

sakada je od 100 do 200 ms.

3.2.3. Blaga potraga

Do blage potrage dolazi kako oči prate objekt u pokretu. Vizualni sustav je us tanju

pratiti objekte brzinom od 1 do 30 stupnja po sekundi, iako su zabilježeni slučajevi i preko

100 stupnjeva po sekundi. Ova vrsta gibanja oka zahtjeva stimulus kretanja.

Sastoji se od dvije komponente; komponente kretanja koja stabilizira foveu na

objekt u pokretnu i sakadne komponente koje vrši male korekcije i premješta foveu na

metu. Postoje tri faze ovakvog kretanja; 125ms nakon stimulusa dolazi do inicijalnog

gibanja, nakon 100ms dolazi do korektirajuće sakade, zatim dolazi do konačne blage

potrage, oči se polako stabliziraju na brzini mete. Saturacijska brzina iznosi 25 do 30

stupnjeva po sekundi, za više brzine dolazi do korektirajućih sakadnih pokreta.

15

Slika 8. Trajanje gibanja

Page 21: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

3.2.4. Šumovitost pogleda

Sve opisano znači da se u pokretima oka inherentno nalazi "šum". Slika 9 prikazuje

kako ljudsko oko prati

geometrijske likove. Ovisno o

sustavu, potrebno je koristi

različite metode kako bi se

izbjegli takvi problemi[23].

3.2.5. Preciznost sustava i pogleda

Slika 10 prikazuje dva kruga, unutarnji krug odgovara polovici, a vanjski jednom

stupnju (gledano iz kuta prosječne udaljenosti korisnika od kamere). Suvremeni sustavi

imaju preciznost od 0.5-1 stupanja tako da nisu u stanju raspoznati samo na temelju

pogleda određena područja na ekranu. Sustavi kojima se komunicira pogledom se

dizajniraju tako da područja odabira budu veća i općenito da sustav bude što prilagođeniji

osobi koja ga koristi [11,15]. Kada govorimo o ljudima koji na taj način komuniciraju sa

okolinom, kod njih je često potrebno dizajnirati sustav sa samo par gumba kako bi olakšali

korištenje. Postoje različita programska rješenja za taj problem, jedan je korištenje zooma

kada se prepozna da je korisnik fokusiran na područje ekrana te onda unutar te

"zoomirane" regije odabire normalno ono što je želio.

Gledanje oka u nekom smjeru zapravo znači rotiranje bjeloočnice kako bi ušla

svijetlost iz tog smjera. Neki od parametara ljudskog oka su dani u donjoj tablici.

Neintruzivni sustavi nisu u stanju postići zadovoljavajuću preciznost zbog male rezolucije

slike oka. Tipična situacija je 40x25, što znači da se šarenica može kretati unutar 20x20

piksela. Kada govorimo o pikselima, to znači da je najbolja preciznost koja se može postići

70°/20=3,5°.

16

Slika 9. Praćenje linija okom zapravo izgleda ovako

Page 22: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Veličina ljudskog vizualnog polja ~ 135° x 160°

Rotacija bjeloočnice ~ 70° x 70°

Promjer foveje ~ 5,2°

Polumjer bjeloočnice 1,3 cm

Ukoliko računamo smjer pogleda na temelju razlike neke fiksne

točke na licu (centar ili rub oka) i centra šarenice (odnosno

zjenice), uz 20 piksela, prema jednostavnom modelu oka

možemo izračunati da će doći do pogreške od oko 3° za svaki

pogrešni piksel [3]. Neki modeli oka unose svoje dodatne

pogreške, primjerice pogreška od 0.2cm radijusa pri modeliranje

bjeloočnice kao sfere rezultirat će sa pogreškom od 6%.

Taj problem se može riješiti zumiranjem oka odnosno stavljanjem kamere blizu

subjekta. Iako analitički pristup nije u stanju ponuditi veliku preciznost, pristup preko

neuronskih mreža daje bolje rezultate[18,19,20]. Razlog za bolju preciznost je u tome što

imati sliku od 40x25 piksela zapravo znači da teoretski, barem matematički, postoji

256^(40x25) kombinacija, uz pretpostavku da se koriste jednokanalna slika od 8 bita po

pikselu. Unatoč toj prednosti, neuronske mreže se ne koriste same za sebe u realnim

sustavima jer već i mala promjena u vanjskim okolnostima rezultira sa potpuno pogrešnim

procjenama, primjerice promjena svijetla ima veći utjecaj od promjene pozicije šarenice.

3.2.6. Problem neželjenih odabira

Kada koristimo miš ili tipkovnicu onda smo sigurni da naš pritisak određene tipke

rezultira akcijom, ali kada koristimo oko kao ulaz onda postoji problem razlikovanja

želimo li stvarno nešto odabrati ili se radi tek o (ne) svjesnom pregledavanju ekrana. Taj

problem se obično naziva "midas touch". Čak i ako kompenzirate šumove, napravite

najprecizniji sustav (s obzirom na mogućnosti fokusiranja oka) još uvijek ostaje problem

kako biti siguran da je usmjerenost pogleda znak i odabira te regije. Zbog toga se često

detekcija pogleda koristi u kombinaciji sa drugim ulaznim jedinicama.

17

Slika 10. Unutarnji kut odgovara pola stupnja, vanjski jednom stupnju

Page 23: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

3.3. Tehnike praćenja oka

Pokrete oka možemo pratiti različitim tehnologijama. Postoje sustavi različitih

preciznosti i stupnja invazivnosti, ovisno o korištenim metodama i korištenom hardwaru.

Obično se motode dijeli u tri kategorije;

3.3.1. Elektro-okulografija (EOG)

Elektro-okulografija se temelji na postojanju električnog polja koji mijenja svoj

potencijal ovisno o kretanju oka. Kako bi se detektirale takve promjene električnog

potencijala, postavljaju se elektorde na kožu oko oka. Takav sustav se smatra invazivnim s

obzirom da je potrebno postaviti elktorde izravno na lice korisnika. Prednost metode je što

leće i naočale ne utječu na rezultat, te postoji velika tolerancija na pomake glave. Sama

oprema je skupa.

3.3.2. Leće

Najpreciznija metoda za praćenje pogleda razvijena je korištenjem posebnih

kontaktnih leći. Radi se o izrazito invazivnoj metodi jer korisnik mora umetnuti leću koja

je spojena sa žicama. Zbog toga se koristi samo u laboratorijskim istaživanjima.

3.3.3. Video-okulografija (VOG)

Ova metoda koristi kameru koja snima pokrete oka, te različite značajke kako bi

odredila točku usmjernosti pogleda odnosno liniju pogleda. Takve metode nisu intruzivne i

često toleriraju pokrete glavom tako da su najraširenije.

18

Slika 11. Primjer leće i EOG metode

Page 24: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Sustave koje koriste kameru odnosno video signal dijelimo na; udaljene (eng.

remote) sustave praćenja i na sustave montirane na glavi (eng. head mounted). U sustavima

za udaljeno praćenje kamera i izbori svjetlosti (za IR luminaciju) se nalaze pokraj ekrana

tako da ih korisnik nije niti svjestan. Takvi sustavi omogućuju i pomicanje glave, ali je

potrebno da oči budu u videokrugu kamere. Postoje različite verzije sustava, neke

zahtjevaju da korisnik na sebi ima neko obilježje kako bi se postigla veća brzina i

preciznost. Sustavi koji su montirani na glavi korisnika uključuju naočale ili kacigu na

kojoj se nalazi kamera i izvor IR luminacije.

Metode koje uključuju videosignal koriste različite tehnike računalnog vida kako bi

pratili kretanje oka, možemo ih podjeliti na tehnike; temeljene na obliku, temeljene na

izgledu i hibridne. Tehnike koje se temelje na obliku koriste prijašnje modele strukture oka,

uspoređuju podatke na slici sa prethodno definiranim modelima oka tako da se radi o

bottom-up pristupu. Tehnike temeljene na izgledu koriste modele izgrađene treningom

velikog broja subjekata u različitim situacijama što omogućuje dana svakoj slici postoji

mogućnost detekcije. Hibridne metode kombiniraju takva dva pristupa.

Većina sustava koriste izvor IR svjetlosti i prikladnu kameru, ali kao što sam ranije

u radu objasnio to nije pristup koji sam odabrao jer sam želio razviti sustav koji omogućuje

da svatko može na svome računalo koristiti sustav. Slika 13 prikazuje oko pod običnim i

pod IR svjetlom. Metode korištene u sustavu sa odnosno bez IR svjetla se razlikuju.

Vidljivo je iz slike kako IR omogućuje raspoznavanje zjenice što je u pravilu nemoguće

kada ga nema.

19

Slika 12. Ljevo detekcija purkinje slike, desno sustav montiran na glavi

Page 25: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Prema Duchowskom[1], trenutno se nalazimo u četvrtoj generaciji uređaja za praćenje

pogleda. Prva generacija je omogućavala mjerenje pokreta oka unutar glave (eng. Eye-in-

head), to uključuje elektro-okulografiju i slične metode koje nisu bile u stanju mjeriti točku

usmjerenosti (eng. Point-of-regard). Druga generacija su foto i video-okulografni uređaji

koji također nisu računali POR. Treća generacija su analogne tehnike utemeljene na vidu,

koje su mogle pratiti odsjaj zjenice. Dobivene podatke danas obrađujemo tehnikama

računalnog vida i algoritmima digitalne obrade signala. Kroz generacija, povećala se

uporabljivost, a smanjila cijena tehnologije.

3.4. Temelji estimacije pogleda

Cilj estimacije pogleda je pružati preciznu informaciju o korisnikovom pogledu s

obzirom na neku informaciju koju imamo o tome oku, kada govorimo o sustavu

temeljenom na videosignalu te informacije su najčešće centar zjenice, rubovi oka i slično.

Temeljni problem estimacije pogleda je pronaći vezu između informacija na slici i

usmjerenosti pogleda. Razvijeni su različiti pristupi ovisno o sustavu koji se koriste;

metode temeljene na geometriji i metode temeljene na interpolaciji.

Metode temeljene na geometriji uključuju informaciju o 3D pozicijama različitih

uređaja u prostoru, primjerice izvora IR svjetla i kamere. Metode koje se temelje na

interpolaciji koriste neke opće jednadžbe, poput liberalnih ili kvadratnih polinoma kako bi

mapirali podatke sa slike sa koordinatama pogleda. Metode estimacije pogleda uključuju

znanje o parametrima koji se računaju prilikom kalibracije koja u pravilu znači da korisnik

ima trening fazu u kojoj gleda od 4 do 16 točaka i tako sustavu predaje informacije

potrebne za daljnje korištenje.

20

Slika 13. Primjer oka pod vidljivim i pod IR svjetlom

Page 26: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

4. Opis razvijenog rješenja

U ovom radu sam se odlučio za analitički pristup problemu. Najzanimljivija točka

za detekciju pogleda je naravno centar zjenice, odnosno šarenice jer obična web kamera ne

dopušta dovoljno kvalitetno razlikovanje granice. Osim pomične točke koja određuje

usmjerenost pogleda potrebno je poznavati i neku fiksnu točku na licu. Iz praktičnih

razloga odabrao sam vanjski rub oka. Poznavanje informacija o pozicijama šarenica i

rubova oka nije samo za sebe dovoljno kako bi odredili područje ekrana na koje je korisnik

usmjeren, potrebno je poznavati njegov položaj u prostoru odnosno potrebna je trening

faza u kojoj se kombinira znanje o fiksnoj (rubnoj) poziciji ekrana sa znanjem o

detektiranom položaju šarenice i ruba oka. Na kraju svega potrebno je mapirati detektirane

pozicije lica na ekran.

Jedan od glavnih ciljeva ovog rada bio je razviti analitički pristup problemu

estimiranja pogleda, kako bi to postigli sve komponente sustava su razvijene tako da

omogućuju dosta slobode pri izboru radne okoline.

4.1. Detekcija lica

Prvi korak u razvijenom sustavu je detekcija

lica. Pokušaji da razvijem vlastiti detektor lica su se

pokazali neuspješnim odnosno imali su previše

ograničenja. Primjerice detektor koji bi se temeljio na

bojama lica (kože) zahtijevao bi da pozadina iza osobe

nije slične obje, a različiti izvori svjetlosti bi također

onemogućavali uspješnu i robusnu detekciju [8,9].

Jedan od problema je primjerice i položaj ruke, neki od alternativnih detektora ne

omogućuju da osoba na neki način dodiruju svoje lice.

Za detekciju lica iskorištena je metoda Viola-Jones koja se temelji na četiri ključna

koncepta; jednostavne pravokutne značajke odnosno Haarove značajke, integralnu sliku za

brzu detekciju značajki, AdaBoost metodu strojnog učenja i kaskadni klasifikator.Harrove

značajke odnosno Haarovi valići su u dvodimenzionalnom prostoru zapravo kvadratni

21

Slika 14. Haar klasifikatori

Page 27: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

valovi, par pravokutnika – jednog crnog jednog bijelog.

U sustavu je iskorištena već napisana metoda odnosno već istrenirani podaci u

obliku .xml dokumenta koji omogućuju detektiranje lica. Pozvana metoda vraća

pravokutnik koji okružuje detektirano lice.

4.2. Detekcija područja oka

Isprobana je metoda slična detekciji lica za oko, ali je

davala nezadovoljavajuće rezultate. Kako bi odredili otprilike

položaj oka iskorišteni su antropometrijski podaci. Širina regije

oka je 0.35 x širine regije lica, a visina regije oka je 0.2 x visine

regije lica. Početna pozicija desnog oka je 0.3x širina, odnosno

0.4x visina regije lica; a ljevog 0.7 x širina, odnosno 0.4 x

visina lica. Vrijednosti se mogu malo pomaknuti prema gore ili

prema dolje.

4.3. Detekcija centra oka

Sada kada znamo gdje se otprilike nalazi oko potrebno je odrediti gdje se točno

nalazi bjeloočnica odnosno šarenica (kao što je već objašnjeno, zbog tehničkih ograničenja

web kamere nije moguće odrediti točno zjenicu). Kako bi pronašli centar oka koristimo

metodu gradijenata. Geometrijski, centar kružnog objekta možemo odrediti analizirajući

vektorsko polje gradijenta slike [2]. Neka c bude potencijalni centar, a gi je gradijent

vektor na poziciji x. Onda normalizirani vektor udaljenosti d bi trebao imati istu orjentaciju

22

Slika 15. Regije oka

Slika 16. Centar okruglog objekta će imati isti smjer kao i pikseli sa najvećim gradijentom

Page 28: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

(osim predznaka) kao i gradijent gi. Tu činjenicu možemo iskorsiti tako što izračunamo

skalarni produkt između normaliziranog vektora udaljenosti (od centra) i gradijent vektora

gi. Optimalni centar c* onda možemo izračunati preko formula.

Osim normaliziranja vektora udaljenosti potrebno je normalizirati i vektore

gradijenta zbog linearnih promjena. Kako bi smanjili računsku složenost zanemarujemo

gradijente sa malom vrijednošću. Gornja formula vrijedi za svaki okrugli objekt, a s

obzirom da znamo kako je naš krug zapravo šarenica odnosno tamnija je od okoline svaki

skalarni produkt ćemo pomnožiti sa invertiranom vrijednošću izvorne slike, tako će

doprinos tamnijih biti veći od doprinosa svjetlijih piksela. Rezultat takvog postupka vidimo

na slici 17;

4.4. Detekcija ruba oka

Za estimaciju smjera pogleda potrebno je poznavati i jednu fiksnu točku na licu

pomoću koje ćemo računati relativnu udaljenost od šarenice odnosno fokusa osobe. Postoje

različite metode za detekciju ruba oka, vanjskog ili unutarnjeg, ali nažalost nisu se

pokazale uspješnima u ovom sustavu. Metode koje koriste posebno osmišljene filtre daju

dobre rezultate kada radimo sa kvalitetnijim slikama, ali za ovako malu rezoluciju se nisu

pokazale uspješnima. Testirao sam i metode koje razvijaju svoj prostor boja odnosno

23

Slika 17. Centar oka će imati najveću vrijednost opisane funkcije

Page 29: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

posebne funkcije koje iskorištavaju njihov odnos, ali niti one nisu dale željeni rezultat.

Ono što smo za sada razvili je traženje centra oba oka. Nameće se rješenje da

iskoristimo te informacije za traženje ruba oka. Jedno potencijalno rješenje bi bilo povući

liniju kroz centre oba oka te na produžetku tih linija pronaći rubove oka. Unutarnji rub je

teško pronaći zbog male rezolucije slike, a i cilj je razviti robustan sustav koji bi radio i

pod lošijim svjetlosnim uvjetima, nos može praviti sjenu odnosno prepreku koju sustav

onda prepoznaje kao granicu. Iako i vanjski rub predstavlja izazov, zbog trepavica ga je

lakše pronaći. Jedno rješenje bi bilo tražiti sjecište dužine koja spaja središta oči sa

trepavicom i tako pronaći rub, ali takvo označavanje rubova nam ne bi dalo dovoljno novih

informacija odnosno možemo ga primjeniti primjerice u sustavu koji koristi neuronske

mreže, ali za ovakav analitički pristup nije dovoljno dobro jer bi rub uvijek bio u istoj

visini kao i centar. Za svaki slučaj, isprobao sam rezultate, tražeći najveći gradijent po liniji

koji bi predstavljao prijelaz sa bjeloočnice na trepavicu, ali rezultat je stalno varirao i nije

bio dovoljno dobar.

Kombinirajući različite tehnike razvijena je slijedeća metoda za detektiranje vanjskog ruba

oka;

1. Zumiranje područja oka u omjeru ~70x30 piksela (znamo centar oka)

2. Konvolucija sa Gaussom

3. Rotacija područja oka da bude horizontalno ( znamo dužinu koja spaja centre oka)

4. Zbrajanje R,G i B vrijednosti slike (poveća se kontrast)

5. Rađenje maske preko praga Th= -3/4*StdVal + meanVal; (std- standarna devijacija)

6. Median filtar 3x3 (kako bi uklonili osamljene piksele)

7. Uklanjanje komponenti spojenih sa rubom

8. Morfološka analiza (Preostalo je područje šarenice i trepavice-kapka, pretraga sa

vanjske strane do prve značajne pojave preostalih piksela označava vanjski rub –

trepavice.)

Metoda se pokazala uspješnom, iako nije u stanju prepoznati rub kada dolazi jaka svijetlost

sa strane odnosno kada potpuno (nejednako) osvjetljuje taj prostor. Isto tako, prisutnost

kose na tom području će rezultirati pogrešnim detekcijama.

24

Page 30: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

4.4. Estimacija usmjerenosti pogleda

Sada kada samo pronašli fiksnu točku (rub) i pokretnu točku, potrebno je tu

informaciju pretvoriti u informaciju o usmjerenosti pogleda. Računanje usmjerenosti

pogleda iz značajki oka nije lagan zadatak, uključuje različite geometrijske modele i

pretpostavke [17], poput onih o veličini i kretanju bjeloočnice. Takvi izračuni ne samo da

smanjuju robustnost sustava nego često unose i pogreške. U ovome radu iskoristio sam

jednostavnu shemu za računanje usmjerenosit pogleda [3]. Unatoč jednostavnosti, sustav je

precizan. Shema je;

1. Korisnik u fazi kalibracije gleda u poznate točke u ravnini, poput rubova i sličnih

specifičnih točki. Zapamte se odgovarajuće pozicije ruba oka i centra šarenice. Te

točke služe kao kalibracijske točke.

2. Konstruira se 2D linerno mapiranje iz vektora između ruba oka i centra prema kutu

gledanja. Usmjerenost pogleda u slijedećim slikama se računa interpolacijom.

Primjerice, pretpostavite da su kut gledanja i vektor između ruba i centra oka za

kalibracijske točke P1,P2; {(α1,β1),(x1,y1)} i {(α2,β2),(x2,y2)}, ukoliko

detektiramo vektor (x,y), odgovarajući kut računamo iz formula;

Gornja estimacijska shema ima slijedeće prednosti;

1. Računski je jednostavna i učinkovita.

2. Iznimno je precizna. Unatoč jednostavnosti, jedina aproksimacija modela je

pojednostavljenje rotacijskog kuta bjeloočnice kao projekcija kretanja centra

šarenice. Radi se o aproksimaciji θ~=sin(θ) što je zanemariva pogreška za male

iznose. Čak i za velike kuteve od 35° unesena greška iznosi samo 1.2°, a najčešće

ppromjene u kutu gledanja su oko 15° tako da je unesena pogreška samo 0.17°.

25

Page 31: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

3. Brzna je, lagana i adaptivna. U mnogim aplikacijama nije nam potrebno poznavati

kut nego su α i β zapravo koodrinate na ekranu. Zbog toga je kalibracijski proces

izuzetno jednostavan, traje svega par sekundi.

4.5. Kalibracija

Postoje različiti postupci kalibracije, ovisno o metodama korištenim u sustavu.

Ukoliko sustav koristi neuronske mreže onda je potrebna duža kalibracija gdje korisnik

prati niz kalibracijskih točki po cijelom ekranu. (Obično se radi o zig-zag kretanju.) Kada

govorimo o analitičkom pristupu potrebno je od 4 - 16 točaka. U ovom sustavu koristio

sam pet točaka, četiri rubne i jedna centralna. Kalibracija je izuzetno brza, potrebno je

kratko gledati u svaku od točaka, sustav pamti pozicije ruba i centra oka za poznate

koodrinate na ekranu. Na kraju kalibracije računa se aritmetička sredina za svaku od

odgovarajućih točaka te se dobivene vrijednosti koriste poslije za estimaciju pogleda.

26

Slika 18. Model oka, odnosno mapiranja na ekran

Page 32: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

5. Implementacija

Sustav je implementiran u C# , razvojna okolina Visual Studio 2008, pomoću Emgu

wrappera koji omogućuje korištenje i pozivanje OpenCV biblioteka.

5.1. Opis implementacije kritičnih dijelova algoritma

U nastavku su opisane implementacije određenog dijela sustava. Implementacija nije potpuno opisana, ali dovoljno da se opišu specifičnosti korištenih algoritama.

5.1.1. Implementacija detekcije lica

Kao što je objašnjeno u prethodnom poglavlju, za detekciju lica iskorištena je

postojeća openCV metoda kojoj predajemo dokument sa prethodno istreniranim

vrijednostima ("haarcascade_frontalface_alt2.xml"), faktor skaliranja prozora,najmanji

broj susjeda koji čine pravokutnik, tip operacije i najmanju veličinu prozora.

MCvAvgComp[] faces = grayframe.DetectHaarCascade( haarface, 1.2, 2, HAAR_DETECTION_TYPE.DO_CANNY_PRUNING, new Size(nextFrame.Width / 5, nextFrame.Height / 4))[0];

Nakon što nam metoda pozvana nad sivom slikom vrati polje sa područjima lica,

izaberemo najveće te iz njega odredimo područje ljevog i desnog oka kao što je već

opisano. Sustav ne prati vremensku zavisnost tako da je za svaku novu sliku potrebno

pozvati metodu.

5.1.2. Implementacija traženja centra

Funkcija FindEyeCenter napisana je da nađe sliku. Predaje joj se float polje sa

vrijednostima piksela područja oka. Iako funkcija radi u različitim prostorima boja, ipak je

odabrana value komponenta u HSV prostoru boja. Dakle na ulaznoj slici se

(antropometrijski) izdvoji područje oka, pretvorti se u hsv prostor, te se value komponenta,

27

Page 33: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

filtrirana gaussom, preda funkciji koja vrati poziciju centra šarenice. U nastavku opis

ključnih djelova funkcije, nisu uključne petlje, deklaracije i slični pomoćni djelovi;

public int[] FindEyeCenter(float[,] eyeRegion) { // Računanje x i y gradijenta matXGradient = ComputeMatXGradient(eyeRegion); pomocnazaYGradient = ComputeMatXGradient(pomocnazaYGradient); transpose(pomocnazaYGradient, matYGradient, rows, cols);

// Računanje magnitude Gradijenta magnitudeGradient = matrixMagnitude(matXGradient, matYGradient);

// Računanje praga, iznosi -0.75 stdDevValue+ meanValue float gradientThresh = computeDynamicThreshold(magnitudeGradient, (float)0.75);

// Izrada matrice tezina, najtamnije imaju najveći doprinos (petlja nije prikazana) weight[i, j] = 255-eyeRegion[i, j]; // Za svaku točku pozovi funkciju testPossibleCentersFormula // Funkcija izračuna sve vrijednosti za formulu opisanu u prethodnom poglavlju // Izračunaj koordinate najveće vrijednosti return centerPosition;

Funkcija testPossibleCentersFormula je implementirana;

public static void testPossibleCentersFormula(int x, int y, float weight, float gx, float gy, ref float[,] outSum) { // dobije piksel sa koordinatama (x,y), tezinom weight (invertirana vrijednost), gradijentom gx i gy // za svaki potencijalni centar izračuna doprinos predanog piksela, zanemaruje rub od par piksela

for (int cy = 0+rub; cy < rows-rub; cy++) { for (int cx = 0 + rub; cx < cols - rub; cx++) { if (x == cx && y == cy) { continue; } // računa vektor udaljenosti od potencijalnog centra float dx = x - cx; float dy = y - cy; // normalizira na jediničnu vrijednost float magnitude = (float)Math.Sqrt((dx * dx) + (dy * dy)); dx = dx / magnitude; dy = dy / magnitude;

float dotProduct = dx * gx + dy * gy; // produkt će biti negativan ako vektori pokazuju u suprotnom smjeru // zanemarujemo takve vrijednosti jer su nebitne i unose pogrešku

28

Page 34: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

dotProduct = (float)Math.Max(0.0, dotProduct);

outSum[cy, cx] += dotProduct * dotProduct * weight; } }

5.1.3. Implementacija traženja ruba oka

Postupak je već prethodno opisan u dovoljno detalja, poznate su pozicije centra

oka, nazovimo te točke A i B. Lagano je odrediti točku C sa kojom čine pravokutni trokut.

Nakon računanje pripadnih stranica trokuta, računamo i kut (u radijanima).

float kut = (float)Math.Atan(duljina_BC / duljina_AC);

S obzirom da znamo poziciju centra oka, možemo zumirati regiju, empirijski smo

odredili aproksimativni omjer širine odnosno visine oka i lica. Iz tog omjera izračunamo

regiju oka, za normalnu udaljenost nekih 70x30 piksela.

float omjerLiceOko_Width = (float)35 / 250;

float omjerLiceOko_Height = (float)15 / 250;

Rotacija slike(RGB) za izračunati kut, slika se nadopunjuje sa vrijednostima pa je

potrebno pamtiti i masku zbog kasnije morfološke analize. Nakon toga se normalizira

svaka komponenta (R,G,B) te zbrajaju vrijednosti u jednu sivu sliku. Takvo zbrajanje

povećava kontrast između bjeloočnice okoline. Dobivenu vrijednost pomnožimo sa

spremeljnom maskom rotacijom kako bi zanemarili rubne(dodane rotacijom) djelove.

Nakon toga izračunamo prag (preko formule Th=stdVal*faktor+meanVal). U izračunu

standardne devijacije odnosno srednje vrijednosti uzimaju se samo nenul vrijednosti.

float prag = computeDynamicThresholdRot(rightEye, (float)-0.75); RightEyeCorner = RightEyeCorner.ThresholdBinary(new Gray(prag), new Gray(255)); RightEyeCorner = RightEyeCorner.SmoothMedian(3);

Dobivena maska može imati u gornjem desnom odnosno gornjem lijevom (za ljevo

oko) nenul vrijednosti zbog kose (ili pozadine) pa je potrebno ukloniti sve piksele koji

diraju gornji kut. Nakon toga maska prikazuje tamna područja, odosno područje šarenice i

29

Page 35: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

trepavica, ruba oka. Izrađeni su histogrami, vertikalni i horizontalni; krenemo od vanjskog

ruba i tražimo prvu pojavu piksela koji predstavljaju područje ruba.

5.1.4. Implementacija kalibracije i mapiranja

Za kalibraciju je osmišljena posebna forma koja crta krugove odnosno kalibracijske

točke. Nakon pokretanja kalibracije pojavljuje se točka (plava) koja upućuje korisnika gdje

da gleda, nakon par frameova krug postaje crvne odnosno aktivan i pamte se podaci

odnosno uzimaju u obzir. Taj korak je potreban kako bi uklonili potencijalnu pogrešku koju

uvodi zbog nagle promjene kalibracijskih točki. Točke se nalaze na svakome rubu

(goreljevo, goredesno, doljeljevo i doljedesno) te u samom centru slike.

Pokretanje kalibracije;

private void Trainingform_Load(object sender, EventArgs e) { image = new Image<Bgr, byte>((int)(pictureBox1.Width), (int)(pictureBox1.Height));

center = new PointF(image.Width / 2, image.Height / 2);

//...

Form1.calibration = true; Form1.phases[0] = true; }

Nakon što se otvori nova forma za kalibraciju preko cijelog ekrana, pokreće se

kalibracija u glavnoj formi. Ovisno o fazi kalibracije, prikazuju se odgovarajuće

kalibracijske točke te se zbrajaju detektirane vrijednosti;

if (calibration) { if (phases[1]) initialrightcorrect++;

if (phases[3]) { if (brojacKalibracije[0] > waitToCalibrate) { correctrightframes++; centercornerrighteye.X += (int)edgeRightEye_X; centercornerrighteye.Y += (int)edgeRightEye_Y; centerpupilrighteye.X += (int)aRight; centerpupilrighteye.Y += (int)bRight; // isto i za ljevo oko }

30

Page 36: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Nakon što se određena faza završi, računa se aritmetička sredina svih prikupljenih

vrijednosti.

if (calibration) { if (phases[0]) { Trainingform.DrawText("Kalibracija: Drzati glavu u videokrugu kamere, mirno..."); textframecounter++; if (textframecounter == 15) { phases[0] = false; phases[1] = true; Trainingform.ClearImage(); } }

//... if (phases[3]) {

Trainingform.CenterCircle();

brojacKalibracije[0]++; if (brojacKalibracije[0] < waitToCalibrate) { Trainingform.CenterCircleDontCount(); }

else if ((correctleftframes > noofdotcorrectframes) && (correctrightframes > noofdotcorrectframes)) { phases[3] = false; phases[4] = true; centercornerlefteye.X = centercornerlefteye.X / correctleftframes; centercornerlefteye.Y = centercornerlefteye.Y / correctleftframes; centerpupillefteye.X = centerpupillefteye.X / correctleftframes; centerpupillefteye.Y = centerpupillefteye.Y / correctleftframes; centercornerrighteye.X = centercornerrighteye.X / correctrightframes; centercornerrighteye.Y = centercornerrighteye.Y / correctrightframes; centerpupilrighteye.X = centerpupilrighteye.X / correctrightframes; centerpupilrighteye.Y = centerpupilrighteye.Y / correctrightframes;

correctleftframes = 0; correctrightframes = 0; } }

Tako dobivene vrijednosti predstavljaju fiksne podatke koje koristimo za mapiranje.

Nakon što završi kalibracija znamo poziciju kalibracijskih točaka te odgovarajuće vektore

udaljenosti između ruba i centra šarenice oka koje poslije iskoristimo za mapiranje.

Poznavajući fiksnu poziciju kalibracijske točke, i vektor razlike za oko u nekom trenutku

računamo;

31

Page 37: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

/* imamo dvije kalibracijske tocke TopLeft( Xs1,Ys2) i BottomRight (Xs2,Ys2) * imamo vrijednost oka TopLeftCorner(a11,a21) TopLeftPupile(a12,a22) * imamo vrijednost oka BotomRightCorner(a21,a21) BottomRightPupil(a22,a22) * * racunamo vektor od ruba oka do centra * iks2= BotomRightCorner.x-BottomRightPupil.x * ipsilon2= BotomRightCorner.y-BottomRightPupil.y * * iks1= TopLeftCorner.x-TopLeftPupile.x * ipsilon1= TopLeftCorner.y-TopLeftPupile.y * * * Formule za preslikavanje su; * ALPHA=Xs1+(x-iks1)* (Xs2-Xs1) /(iks2-iks1) * BETA=Ys1+(y-ipsilon1)*(YS2-YS1)/(ipislon2-ipsilon1) * */

int WidthScreen = Trainingform.ReturnWidth() / 2; int HeightScreen =Trainingform.ReturnHeight() / 2;

int Xs1 = -WidthScreen+10; // pozicija kalibracijske tocke top left int Ys1 = HeightScreen-10;

float iks1 = (topleftcornerlefteye.X - WidthScreen) - (topleftpupillefteye.X-WidthScreen); float ipsilon1 = (topleftcornerlefteye.Y-HeightScreen) - (topleftpupillefteye.Y-HeightScreen);

float iks2 = (bottomrightcornerlefteye.X-WidthScreen) - (bottomrightpupillefteye.X-WidthScreen); float ipsilon2 = (bottomrightcornerlefteye.Y-HeightScreen) - (bottomrightpupillefteye.Y-HeightScreen);

int Xs2= WidthScreen-10; // pozicija kalibracijske tocke bottomright int Ys2= -HeightScreen+10;

float AlphaScreen; float BetaScreen;

int x = edgeLeftEye_X - aLeft; int y = edgeLeftEye_Y - bLeft; AlphaScreen = Xs1 + (x - iks1) * (Xs2 - Xs1) / (iks2 - iks1); BetaScreen = Ys1 + (y - ipsilon1) * (Ys2 - Ys1) / (ipsilon2 - ipsilon1);

Dobivene vrijednosti AlphaScreen i BetaScreen označavaju gdje ljevo oko gleda na

ekranu (x i y koordinate). Potrebno je napomenuti kako je centar koordinatnog sustava

postavljen na sredinu ekrana. Odnosno ono što je pozicija slike (W/2,H2) je u

koordinatnom sustavu zapravo (0,0). Nakon izračuna potrebno je prebaciti koordinate iz

sustava pomaknutog u centar ekrana u sustav koji ima ishodište u gornjem ljevom kutu

ekrana.

32

Page 38: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

5.2. Primjer izvođenja algoritma

U nastavku slijedi prolazak kroz obradu jedne slike;1. Detekcija lica i regije oka (antropometrijski)

2. Detekcija centra šarenice oka (crveno označene regije se uzimaju u obzir, uzima se

V vrijednost iz HSV prostora boja, podotipka, predaje algoritmu koji vraća centar)

3. Detekcija ruba oka (Izdvoji se

područje oka – znamo informaciju

o centru, rotiramo sliku za kut

izračunat iz dužine koja spaja

centre šarenica, zbrojimo R,G i B

vrijednosti te novodobivenu sliku

pretvorimo u binarnu pomoću

dinamičkog praga, uklonimo rubne

piksele te područje koje preostaje

najbliže vanjskom rubu predstavlja rub oka.

33

Slika 20. Područja oka se pretvaraju u HSV prostor, podotipkaju, value komponenta se predaje opisanoj funkciji, rezultat je centralna pozicija šarenice

Slika 21. Desno detektirani centri oka i dužina iz koje izračunamo kut nagiba, lijevo izdvojeno područje, zatim rotirano za izračunati kut te zbrojene vrijednosti R, G, B komponenti, izračunata maska sa rubom

Slika 19. Detektirano lice i regije očiju

Page 39: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

5.3. Opis aplikacije

Razvijena je aplikacija prikazana na slici, omogućuje crtanje različitih parametara.

Kallibracija se pokreće iz posebne forme. Pojavljuje se novi prozor preko cijelog

ekrana koji iscrtava na rubovima kalibracijske točke koje je potrebno pratiti. Nakon

kalibracije moguće je pratiti mapiranje na ekran pomocu novog prozora (otvara se

pritiskom na "Prati mapiranje"). Za rad aplikacije potrebno je u folderu Temp snimiti .xml

dokument kojeg predajemo metodi za detekciju lica.

("C://Temp//haarcascade_frontalface_alt2.xml")

34

Slika 22. Izgled aplikacije

Slika 23. Forma za pokretanje kalibracije

Page 40: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

6. Rezultati i primjena

Kao što je već objašnjeno, analitički pristup ne daje veliku preciznost tako da sustav

ne omogućuje precizni odabir. Osim podataka o kalibraciji, u sustav nije uključena nikakva

vremenska zavisnost, iskoristivši te podatke mogla bi se postići veća preciznost. Sustav

omogućuje puno bolji raspon po horizontalnoj komponenti od vertikalne. Sa prosječne

(korisničke) udaljenosti visina ekrana je svega 3-4 piksela, ovisno o položaju, što znači da

je vertikalno moguće raspoznati mali broj pozicija. Uz to, nisu dopuštena veća kretanja

korisnika nakon kalibracije.

Sustav omogućuje rad u različitim svjetlosnim uvjetima, iako postoji problem kada

snop svjetlosti pada na rub oka. Kosa koja pada preko oka također može dovesti do

pogrešne detekcije ruba oka, a ovisno o količini, i do pogrešne estimacije centra. Naočale u

pravilu nije moguće koristi zbog velikog odsjaja, iako to ovisi o uvjetima okoline.

Vremenski najzahtjevniji dio je sama detekcija lica što se može ubrzati ukoliko

pretpostavimo blizinu korisnika (pa predamo podotipkanu sliku) odnosno ako

pretpostavimo statičnost pa taj korak možemo potpuno isključiti, barem na kraćim

intervalima.

Na udaljenosti od ~50cm i monitoru

od 15", idealna razlučivost je;

Horizontalni pomak ~15 piksela

Vertikalni pomak ~3 piksela

Sustav je primjenjen za pokretanje miša, odnosno estimaciju smjera pokreta, dakle

samo četiri pozicije (gore, dolje, lijevo, desno). Sustav je također iskorišten za estimaciju

smjera pogleda odnosno koordinate na ekranu. S obzirom da sustav ne koristi nikakvu

vremensku zavisnost, već i male promjene između dvije slike dobivene iz kamere

rezultiraju sa promjenom estimiranog centra odnosno smjera pogleda. To je posebno bitno

kada govorimo o vertikalnom smjeru jer tada promjena od jednog piksela rezultira sa

velikom pogreškom.

Velikim ograničenjem sustava se pokazala nestabilnost slike odnosno česta

35

Page 41: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

promjena estimacije centra za piksel što rezultira unosom velike pogreške. Kako bi to

otklonili potrebno je uvesti vremensku zavisnost između pojedinih dobivenih slika. Iako

sustav omogućuje tek određene primitivne primjene, razvijene komponente se mogu

koristiti u drugim sustavima, ili u kombinaciji sa drugim pristupima, primjerice sa učenjem

neuronskih mreža.

36

Page 42: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

7. Zaključak

Većina sustava razvijenih za estimaciju smjera pogleda koriste izvore IR svjetlosti i

odgovarajuće kamere. Postojeći sustavi su često izuzetno skupi, te zahtijevaju opremu koja

nije svima dostupna. S obzirom da svatko ima kameru u nekom od uređaja, u zadnje

vrijeme se razvijaju sustavi koji omogućuju estimaciju usmjerenosti pogleda u vidnom

području, samo pomoću web kamera. Takvi sustavi imaju svoja ograničenja koja su

opisana i u ovome radu. Za kvalitetniju estimaciju pogleda potrebno je pratiti pokrete

glave, rotaciju oko sve tri osi i druge podatke. Osim analitičkog pristupa, moguć je i

pristup preko strojnog učenja odnosno neuronskih mreža, ali tada je potrebna duža

kalibracija i sustav je osjetljiv na promjene.

U ovome radu razvijeni sustav omogućuje tek primitivne primjene, iako su

razvijene komponente koje rade pod različitim uvjetima, krajnji rezultat nije dovoljno

robustan. Potrebno je još raditi na samom sustavu jer se za sada sustav zapravo sastoji od

više komponenti koje nisu toliko međusobno povezane i ne nude dovoljno kvalitetnu

informaciju. Sami pokreti oka, uz horizontalnu razliku od samo 15 odnosno vertikalnu od

samo 3 piksela, na normalno udaljenosti od ekrana, ne omogućuju dovoljno kvalitetno

razlikovanje, posebno zato što razvijene metode ponekad pogriješe u estimaciji za jedan

piksel što uvodi veliku pogrešku.

Unatoč tome, razvijene su komponente koje omogućuju primjenu u drugačijim

sustavima, odnosno uz doradu postojećeg, metoda detekcija centra šarenice i ruba

omogućuju relativno brzu detekciju područja oka što se može iskoristiti kao polazište za

druge metode.

37

Page 43: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Literatura

1. Duchowski, A.T, Eye Tracking Methodology, 2006. Springer

2. Barth E., Timm F., Accurate Eye centre localisation by means of gradients, In

proceeding of: VISAPP 2011 - Proceedings of the Sixth International Conference

on Computer Vision Theory and Applications, Vilamoura, Algarve, Portugal, 5-7

March, 2011

3. Zhu J.,Yang J., Subpixel Eye Gaze Tracking, Automatic Face and Gesture

Recognition, 2002. Proceedings. Fifth IEEE International Conference

4. Li D., Parkhurst D., Open-SOurce Software for Real-Time Visible Spectrum Eye

Tracking, The 2nd Conference on Communication by Gaze Interaction COGAIN

2006.

5. Kumar, M. Reducing the Cost of Eye Tracking Systems, Stanford Tech Report

CSTR 2006-08, April 2006

6. Tall M. Barret M. MollenBach E.m Agustin J., Skovsgaard H., Evalution of a Low-

Cost Open Source Gaze tracker, ETRA 2010, Proceedings of the 2010 Symposium

on Eye-Tracking Research & Applications, Pages 77-80

7. Pannaasch S., Helmert J., Celichkovsky B., Eye Tracking and usability research: an

introduction to the special issue,Journal od Eye Movement Research

8. Waibel A. Schiele B., Gaze tracking based on Face-Color,In International

Workshop on Automatic Face- and Gesture-Recognition, p.344–349, (1995)

9. Back D., Neural Network Gaze Trackingusing Web Camera, Thesis, IMT, 2005

10. Silva M., Mohamed A.O., Courboulay, Gaze tracking, attention and interactive

applications

11. Skovsgaard H.H.T., Estimating acceptable noise levels on gaze and mouse selection

by zooming, Student Paper, 2008 Annual IEEE Conference

12. Mackink S., Hubel D., Martinez-Conde S., The role of fixational eye movements in

visual perception, Nature reviews, volume 5, p 229, 2004.

13. Sibert L., Jacob Robert, Evaluation of Eye Gaze Interaction, CHI '00 Proceedings

of the SIGCHI conference on Human Factors in Computing Systems, p. 281-288

14. Fono D, Vertegaal R., EyeWindows: Evaluation of Eye-Controlled zooming

windows for focus selection, CHI 2005.

38

Page 44: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

15. Winograd T., Kumar M., GUIDe: Gaze-echanced UI Design

16. Kingstone A. Birmingham E., Bischof W., Why do we look at people's eyes?

Journal od Eye Movement Research

17. Cabeza R., Villanueva A., Models for Gaze trackign Systems, EURASIP Journal of

Image and vido processing, volume 2007.

18. Baluja S. Pomerleau D., Non-intrusive gaze trackingusing artificial neural networks

19. Pratla M., Jayasumana A., A neural network based real-time gaze tracker, Journal

od Network and Computer Applications, 2002, 179-196.

20. Sewell W. Komogorstev O., Real time Eye gaze trackiing with an unmodified

commodity webcam empoying a neural network, Proceedings od ACM Conference

on Human Factors in Computing Systems(CHI), Atlanta, Ga, 2010.

21. Jonsson E., If Looks Could Kill – An Evaluation of Eye Tracking in Computer

Games, Master degree project, KTH

22. Drewes H., Eye Gaze Tracking for Human Computer Interaction, PhD Thesis, der

Ludwig-Maximilians-Universität, 2010.

23. Skovsgaard H., Noise Challenges in Monomodal Gaze Interaction, PhD Thesis, IT

University of Copenhagen, 2011.

24. Lopez J., Of-the-Shelf Gaze Interaction, PhD Thesis, IT University of Copenhagen,

2009.

25. Majaranta P., Text Entry by Eye Gaze, PhD Thesis, University of Tampere, 2009.

39

Page 45: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Sažetak

Sustav za detekciju usmjerenosti pogleda

Praćenje pogleda označava proces detektiranja i praćenja usmjerenost pogleda

odnosno smjera u kojem osoba gleda. Praćenje pogleda ima niz primjena, ali

većinom se koriste sustavi koji zahtijevaju uređaje koje mnogi nemaju, primjerice izvor IR

svijetla i prikladnu kameru. Kako bi se izbjeglo to ograničenje, razvijen je jednostavan

sustav temeljen na analitičkim tehnikama koji omogućuje praćenje pogleda pomoću obične

web kamere. Iako je sustav pokazao očekivana ograničenja, ponajviše malu preciznost,

ipak pokazuje da se može koristiti u jednostavnijim primjenama. Razvijena je metoda za

detekciju ruba oka, a sustav je iskorišten za upravljanje mišem.

Ključne riječi: detekcija pogleda, praćenje pogleda, praćenje oka, detekcija ruba oka

40

Page 46: SUSTAV ZA DETEKCIJU USMJERENOSTI POGLEDA -  · PDF filebi došlo do greške u komunikaciji. Ljudi su po tome donekle specifični jer se ljudsko oko

Abstract

System for automatic detection of gaze direction

Gaze tracking means detecting and following direction in which person looks. Gaze

tracking has many applications, but use of this technology isn't widespread because most of

them use special IR luminance source and camera. To avoid this problem, we developed

simple system, based on analytical technics, using regular web cam. Although system has

expected limitations, it can still be used for simple applications. New method for eye

corner detection was developed, and system was used for mouse control.

Keywords: gaze tracking, gaze detection, eye detection, eye corner detection

41