Masterproef Ontwerp van een eyetracker
Studiegebied Industriële wetenschappen en technologie Opleiding Master in de industriële wetenschappen: elektrotechniek Afstudeerrichting Automatisering Academiejaar 2009-2010
Wouter Lemahieu
Academische bachelor- en masteropleidingen, Graaf Karel de Goedelaan 5, 8500 Kortrijk
Woord vooraf Een thesis is een project dat bedoeld is om alle opgedane kennis gedurende de opleiding te tonen aan de buitenwereld. Daarom wil ik eerst alle leerkrachten bedanken die mij gedoceerd hebben gedurende de vier jaar dat ik in Kortrijk studeerde. Naast de praktische kennis komt vooral de opgedane ervaringen naar voren in een masterproef. Denk daarbij vooral aan het leren onderzoeken, kritisch oordelen, opzoeken van informatie en communiceren met anderen. Deze eigenschappen worden meestal niet beoordeeld in een vak of examen maar zijn minstens even belangrijk voor mij. Speciale dank wil ik daarbij besteden aan de twee promotoren van mijn eindwerk, Tom Gurdebeke van de Hogeschool West-Vlaanderen en Bart Wyns van de Universiteit Gent. Beide docenten toonden een zeer hulpvaardige houding tegenover mijn problemen die ik hen voorlegde gedurende het voorbije jaar. Telkenmale namen ze ruim de tijd om met mij hierover in dialoog te treden. Daarnaast wil ik ook enkele andere mensen bedanken die mij geholpen hebben met deze opdracht. Bruno Bauwens, doctoraatsstudent aan de Universiteit Gent, voor zijn hulp bij de start van het ontwikkelen van de beeldverwerkingssoftware. Mijn zussen Griet en Sofie die dit werk ook overlezen hebben en zo de leesbaarheid van dit werk hielpen op punt stellen. En de vele mensen van verschillende bedrijven en instellingen voor hun hulpvaardigheid bij het helpen oplossen van mijn problemen. De talrijke testpersonen die tijd vrijmaakten om mee te helpen aan mijn onderzoek. Door hun input konden de verschillende methoden objectief beoordeeld worden. Deze personen bedank ik ik vooral voor de eerlijke commentaren die ze gaven voor en na de experimenten. Naast al deze personen die mij geholpen hebben, wil ik ook de vele andere mensen bedanken die mij steunden gedurende de duur van mijn studies en in hoofdzaak tijdens het afgelopen jaar: mijn ouders, vriendin, familie, en vrienden. Tenslotte dank ik u als lezer voor de interesse in mijn werk, ik hoop dat u bijleert van mijn ervaringen. Indien u opmerkingen, vragen of interesse hebt, aarzel dan niet om mij te contacteren. Ik zal met veel plezier u info verschaffen over mijn thesis.
Wouter Lemahieu Kortrijk, 24 april 2010
I
Inhoudsopgave Woord vooraf
I
Inhoudsopgave
II
Lijst van figuren
IV
Afkortingen- en woordenlijst
VII
Abstract
X
1
2
3
Inleiding 1.1 Wat is een eyetracker? . . . . . . . . . . 1.2 Waarvoor wordt een eyetracker gebruikt? 1.3 Probleemstelling . . . . . . . . . . . . . 1.4 Doelstellingen . . . . . . . . . . . . . . . 1.5 Voorstelling Universiteit Gent . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
1 1 2 5 6 6
Het eyetracker model 2.1 Literatuurstudie . . . . . . . . 2.1.1 Overzicht bouwvormen 2.1.2 Head mounted model . 2.1.3 Remote model . . . . 2.2 Commerciële eyetrackers . . . 2.3 Keuze model en uitwerking . . 2.4 Besluit . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
8 8 8 10 13 15 15 16
. . . . . . . . . . . . . . . . . .
17 17 18 19 19 20 21 22 22 23 25 25 26 26 27 29 29 31 35
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
Beeldverwerkingssoftware 3.1 Literatuurstudie . . . . . . . . . . . . . 3.2 Keuze programmeertaal . . . . . . . . . 3.3 Beeldverwerkingsfuncties . . . . . . . . 3.3.1 Kleurconversie . . . . . . . . . 3.3.2 Histogam equalisatie . . . . . . 3.3.3 Drempelwaarde . . . . . . . . . 3.3.4 Dilate en Erode . . . . . . . . . 3.3.5 Contourdetectie . . . . . . . . . 3.3.6 Ellipsfitting . . . . . . . . . . . 3.4 Filters . . . . . . . . . . . . . . . . . . 3.4.1 Probleemdefinitie . . . . . . . . 3.4.2 Reflectiefilter . . . . . . . . . . 3.4.3 Randfilter . . . . . . . . . . . . 3.5 Opbouw software eyetracker . . . . . . 3.6 Opbouw pupil detectie . . . . . . . . . 3.6.1 Algemene opbouw . . . . . . . 3.6.2 Verhogen contrast pupildetectie 3.7 Opbouw reflectie detectie . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . .
II
3.8
Tijdsanalyse beeldverwerkingsfuncties . . . . . . . 3.8.1 Tijdsanalyse eyetracker . . . . . . . . . . . 3.8.2 Tijdsanalyse van pupil- en reflectiedetectie 3.8.3 Discussie . . . . . . . . . . . . . . . . . . 3.9 Beperkingen van het beeldverwerkingsalgoritme . . 3.10 Besluit . . . . . . . . . . . . . . . . . . . . . . . . 4
5
6
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
35 35 37 37 40 41
Berekenen kijkrichting 4.1 Literatuuroverzicht . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Mapping methoden . . . . . . . . . . . . . . . . . . . . . . . 4.1.2 3D-model methoden . . . . . . . . . . . . . . . . . . . . . . 4.2 Geïmplementeerde methoden . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Methode met twee kalibratiepunten en één infrarode reflectie . 4.2.2 Methode met drie kalibratiepunten en één infrarode reflectie . 4.2.3 Methoden met vier kalibratiepunten en één infrarode reflectie 4.2.4 Methode zonder kalibratiepunten en twee reflecties . . . . . . 4.2.5 Methode zonder kalibratiepunten en vier reflecties . . . . . . 4.3 Vergelijking van de verschillende methoden . . . . . . . . . . . . . . 4.4 Het combineren van de kijkpunten van beide ogen . . . . . . . . . . . 4.5 Invloed van verschillende gebruikers op de eyetracker . . . . . . . . . 4.6 Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
42 42 42 44 45 45 46 47 49 50 51 56 57 57
Ontwikkeling van een demo-applicatie 5.1 Inleiding . . . . . . . . . . . . . . 5.2 Koppeling met Dasher . . . . . . 5.3 Resultaten . . . . . . . . . . . . . 5.4 Besluit . . . . . . . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
59 59 60 62 62
Algemene besluiten 6.1 Herhaling van de probleemstelling . . 6.2 Doelstellingen van dit eindwerk . . . 6.3 Algemene besluiten . . . . . . . . . . 6.4 Verdere evolutie . . . . . . . . . . . . 6.4.1 Onderzoek beeldverwerking . 6.4.2 Weglaten restricties head fixed 6.4.3 Bruikbaarheid verbeteren . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
63 63 63 63 64 64 64 65
Bibliografie
. . . .
66
III
Lijst van figuren 1.1 1.2 1.3 1.4 1.5 1.6 1.7
Voorbeelden eyetrackers . . . . . . . . . . . . . . . . . Overzicht onderdelen van een eyetracker . . . . . . . . . Voorbeelden gebruik eyetracker in de zorgsector . . . . . Voorbeeld gebruik eyetracker door psychologen . . . . . Voorbeeld gebruik eyetracker in de reclamesector . . . . Voorbeeld gebruik eyetracker voor veiligheidsdoeleinden Voorbeeld gebruik eyetracker in de medische sector . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
1 2 3 3 4 4 5
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12
Minder vaak voorkomende modellen eyetrackers . . . . . . . Stereo camera . . . . . . . . . . . . . . . . . . . . . . . . . . Bright/dark image techniek . . . . . . . . . . . . . . . . . . . Pan-tilt-zoomsysteem . . . . . . . . . . . . . . . . . . . . . . Bevestigingsstatief . . . . . . . . . . . . . . . . . . . . . . . "On-site"-toepassing . . . . . . . . . . . . . . . . . . . . . . Goedkope uitvoering eyetracker . . . . . . . . . . . . . . . . Kalibratiesysteem met blad . . . . . . . . . . . . . . . . . . . Kalibratiesysteem met laser . . . . . . . . . . . . . . . . . . . Eyetracker met spiegel . . . . . . . . . . . . . . . . . . . . . Camera met gedemonteerde lens en verwijderde infraroodfilter. Contrastverschil door infraroodlicht . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
8 9 10 10 10 11 12 13 13 14 16 16
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 3.17 3.18 3.19 3.20 3.21 3.22 3.23
Voorbeeld irisdetectie . . . . . . . . . . . . . . . . Kleurenconversie . . . . . . . . . . . . . . . . . . Histogram equalisatie . . . . . . . . . . . . . . . . Drempelwaardefunctie . . . . . . . . . . . . . . . Erode en dilate . . . . . . . . . . . . . . . . . . . Contourdetectie . . . . . . . . . . . . . . . . . . . Ellipsfitting . . . . . . . . . . . . . . . . . . . . . Ransac filter . . . . . . . . . . . . . . . . . . . . . Probleem invloed reflectie . . . . . . . . . . . . . Probleem invloed rand . . . . . . . . . . . . . . . Reflectie filter . . . . . . . . . . . . . . . . . . . . Rand filter . . . . . . . . . . . . . . . . . . . . . . Flowchart eyetracker . . . . . . . . . . . . . . . . Flowchart voor detectie van de pupil. . . . . . . . . Beeldverwerkingsmethode 1 . . . . . . . . . . . . Grenswaardebepaling beeldverwerkingsmethode 1 Beeldverwerkingsmethode 2 . . . . . . . . . . . . Grenswaardebepaling beeldverwerkingsmethode 2 Beeldverwerkingsmethode 3 . . . . . . . . . . . . Flowchart voor detectie van reflectie. . . . . . . . . Grenswaardebepaling reflectiedetectie . . . . . . . Tijdsanalyse eyetracker . . . . . . . . . . . . . . . Tijdsanalyse pupil- en reflectiedetectie . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
18 20 21 21 22 23 23 24 25 25 26 27 28 30 31 32 32 33 34 36 37 38 39
4.1 4.2
Cross ratio berekeningsmethode . . . . . . . . . . . . . . . . . . . . . . . . . Virtuele projectiepunten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43 43
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
IV
4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13
Wiskundig model van het oog . . . . . . . . . . . . 3D-berekeningsmethode . . . . . . . . . . . . . . . Methode met twee kalibratiepunten en één reflectie . Methode met drie kalibratiepunten en één reflectie . . Methode 1 met vier kalibratiepunten en één reflectie . Mehtode 2 met vier kalibratiepunten en één reflectie . Pupil-reflectie vectoren . . . . . . . . . . . . . . . . Berekende kijkpunten . . . . . . . . . . . . . . . . . Voorbeeld verliezen van aandacht van testpersoon . . Probleemschets bij grote kijkhoek . . . . . . . . . . Samensmelting van verschillende reflecties . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
44 45 46 47 48 49 52 53 54 55 56
5.1 5.2
Opstartscherm Dasher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Werking van Dasher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
60 61
V
Lijst van tabellen 3.1
Vergelijking beeldverwerkingsmethoden . . . . . . . . . . . . . . . . . . . . .
34
4.1 4.2
Vergelijking berekeningsmethoden . . . . . . . . . . . . . . . . . . . . . . . . Nauwkeurigheid bij combineren beide ogen . . . . . . . . . . . . . . . . . . .
51 57
VI
Afkortingen- en woordenlijst 3D-model methode
Berekeningsmethode voor eyetrackers gebaseerd op het geometrisch oogmodel waarbij pixelcoördinaten via ruimtemeetkunde verrekend worden naar beeldschermcoördinaten.
CMOS
Complementary Metal Oxide Semiconductor; halfgeleidertechnologie gebruikt bij het produceren van camera’s. Een berekeningsmethode voor eyetrackers gebaseerd op de cross ratio van een bundel rechten. De cross ratio is gedefinieerd als: indien een groep van vier rechten die elkaar snijden in eenzelfde punt andere rechten snijden die niet door dit snijpunt gaan, dan zullen deze laatste rechten verdeeld worden in lijnstukken met lengten waarvan de onderlinge verhoudingen constant zijn.
cross ratio
donkere pupilafbeelding
Een afbeelding van het oog onder infrarode belichting, de pupil in deze afbeeldingen kleurt opvallend donker.
elektrode
Metalen geleider die dient voor het opmeten van het potentiaal van de huid.
head mounted
Op het hoofd gemonteerd; slaat op een model van eyetrackers waar de persoon een deel van de uitrusting dient te dragen en het oog van dichtbij gefilmd wordt. heldere pupilafbeelding Een afbeelding van het oog waarbij infrarood licht dicht bij de camera geplaatst werd. Doordat het oog dit licht reflecteert, wordt een afbeelding bekomen waarin de pupil wit kleurt. heldere/donkere-beeldentechniek Beeldverwerkingstechniek voor het detecteren van de pupillen van een persoon gebaseerd op het verschil tussen een heldere pupilafbeelding en een donkere pupilafbeelding. histogram Een grafiek die de frequentie van de verschillende waardes in de dataset weergeeft. integro-differentiaalvergelijking
Een vergelijking die zowel de integraal als de afgeleide van een functie bevat.
kalibratie
Aanleren, instellen van het toestel. Tijdens de kalibratie wordt het toestel ingesteld om zodoende een correcte meting of werking te bekomen.
VII
kernelgebied
Het gebied rond de doelpixel waarop de berekeningen worden uitgevoerd bij de beeldverwerkingsfuncties.
led
Light Emitting Diode; een miniatuurlampje dat veel licht geeft op een klein oppervlakte en zeer weinig stroom verbruikt.
mapping methode
Berekeningsmethode gebaseerd op het geometrisch oogmodel waarbij pixelcoördinaten door een lineair verband getransformeerd worden naar beeldschermcoördinaten.
neuraal netwerk
Een mathematisch berekeningsmodel met zelflerende structuur. Door deze structuur zal het neuraal netwerk complexere verbanden kunnen aanleren. Door het aanbieden van een groot aantal voorbeelden zal het neuraal netwerk het verband ontdekken in de data en deze doortrekken naar nieuwe data. Knooppunt, het nodaal punt van een camera of een oog is het punt waar alle invallende lichtstralen elkaar snijden.
nodaal punt
on-site
optische as
pan-tilt-zoomsysteem
pan-tiltsysteem
remote
resolutie
Ter plaatse; aanduiding van activiteiten die niet gesimuleerd werden in een labo maar op een externe locatie uitgevoerd werden. De optische as van het oog is de rechte die het middelpunt van de oogbol en de pupil verbindt. Om deze as wordt het oog gedraaid met behulp van de verschillende oogspieren. Een toestel dat de camera horizontaal en verticaal doet draaien en de zoomfactor van de camera kan veranderen. Een toestel dat de camera horizontaal en verticaal doet draaien. Van op afstand; slaat op een model eyetrackers waar de persoon van op afstand gefilmd wordt en de persoon niks dient te dragen van de apparatuur. Aanduiding van het aantal pixels van een camera of beeldscherm. Of de kleinste nog te onderscheiden grootte van de meetwaarde.
VIII
stereo camera
Camera met twee beeldsensoren en interne elektronica. Deze camera’s bevatten de mogelijkheid om de afstand tot de elementen in de afbeelding te berekenen.
ultrasoon
Trillingen die niet hoorbaar zijn. De frequentie van deze trillingen is hoger dan 20 kHz en lager dan 800 Mhz.
visuele as
De visuele as van het oog is de rechte die vertrekkend vanuit het kijkpunt, door de ooglens gaat, en eindigt in de gele vlek. Deze duidt de kijkrichting aan van de persoon.
IX
Abstract The use of computers and controllers in the world has increased dramatically during the last decade. But the growth is most noticeable in consumer electronics. Where the use of computersystems is already integrated in industrial enviroments for a longer time, the use of these systems is quite new in the daily life for most people. One of the main problems with these new introductions of computers is the way of interaction with the users. In the industrial enviroments users are trained to work with these products. The users now needs a more intuïtive and more simpler way of interacting with the controllers. For that reason many researchers are developping new ways to communicate in a natural way with a computer. Famous examples of this tendency are voice controlled applications, touch screens and motion sensing remotes like the wii remote. In this thesis we are developping another way to communicate with computers. In our research we only use the eyes to control the device. With only a webcam and an infrared light source we developped an apparatus that lets us move and click the mouse with our eyes. This thesis describes the development of the eyetracker beginning from the choice of the hardware. Further in this work the image processing software and different algorithms for calculating the point of gaze of the person are described and evaluated with different tests. The developped remote eyetracker achieved an accuracy of 1,5◦ during experiments with several test persons. This all with off-the-shelf components and a maximum hardware cost of e100 for the entire eyetracker. To demonstrate and check the opportunities of this eyetracker we developed a connection with an existing textinput software. This application is the ultimate prove of the functionallity of the eyetracker.
X
1 Inleiding Vooreerst definiëren we het begrip "eyetracker"en geven we een kort overzicht van de componenten van een eyetracker. Vervolgens wordt de relevantie van dergelijke toestellen geïllustreerd aan de hand van enkele vaak voorkomende praktijkvoorbeelden. Aan het einde van dit hoofdstuk wordt de actuele probleemstelling, de doelstellingen van deze masterproef en het bedrijf Universiteit Gent voorgesteld. In de hieropvolgende hoofdstukken wordt dieper ingegaan op de verschillende aspecten van het volgen van de oogbeweging.
1.1 Wat is een eyetracker? Kijkend naar de opbouw van het woord kan al informatie afgeleid worden over de functie van een eyetracker. Eye wordt herkend, wat staat voor oog, en tracking wat staat voor volgen, opsporen, traceren. Een eyetracker is een toestel dat de oogbewegingen van een persoon analyseert en het fixatiepunt van de gebruiker traceert. Het toestel zal dus proberen te bepalen naar welk punt de persoon aan het kijken is. Dat punt in de ruimte komt in de meeste toepassingen overeen met een punt op een beeldscherm zoals in figuur 1.1(a). In een toepassing als deze kan de coördinaten van de muiscursor gekoppeld worden aan de coördinaten van het gevonden kijkpunt om zo de computer te besturen met de ogen. Bij andere eyetrackers, waarvan u in figuur 1.1(b) een voorbeeld ziet, is het doel niet een punt op een scherm volgen, maar wel het punt in de omgeving bepalen waarnaar de persoon kijkt. Aan de hand van een camera die het gezichtsveld van de persoon filmt, kan later onderzocht worden wat de aandacht trok van de onderzochte persoon.
(a)
(b) Figuur 1.1: Voorbeelden van een eyetracker.
1
Zoals te zien is in figuur 1.2 bestaat een eenvoudige eyetracker uit twee delen: • Camera: deze neemt beelden van de omgeving of van de ogen van de te volgen persoon. Dit kunnen één of meerdere speciale camera’s zijn met inzoomlenzen. Dit kan echter ook een eenvoudige videocamera of webcam zijn. • Computer, processor met specifieke software: deze verwerkt de opgenomen beelden en berekent het kijkpunt. Dit gebeurt meestal in een gewone computer. Soms wordt deze taak op zich genomen door speciaal ontwikkelde elektronica in een ingebed systeem. Bij commerciële eyetrackers gebeurt dit altijd in een zelf ontwikkelde rekeneenheid. Om de performantie te verhogen, worden er vaak nog verschillende andere elementen aan eyetrackers toegevoegd zoals speciale belichtingsapparatuur, pan-tiltsystemen of een hoofdsteun om het hoofd te fixeren. Deze elementen zijn in principe niet noodzakelijk en zijn niet bij elke eyetracker aanwezig.
Figuur 1.2: Overzicht van de onderdelen van een eyetracker.
1.2 Waarvoor wordt een eyetracker gebruikt? Om de praktische relevantie van een eyetracker te duiden, vindt u hierna enkele voorbeelden uit verschillende vakgebieden waar een eyetracker gebruikt wordt. Zorgsector Een eyetracker wordt binnen de zorgsector gebruikt door mensen met een spierverlamming of een andere ernstige handicap voor het besturen van hun omgeving zoals in figuur 1.3 [1].
2
Figuur 1.3: Verschillende voorbeelden waar personen met een ernstige handicap door middel van eyetracking kunnen communiceren met de computer.
Psychologie Een eyetracker wordt al langer gehanteerd binnen de psychologie. Psychologen kunnen bijvoorbeeld symptomen van autisme opsporen bij jonge kinderen [2]. Hierbij weten de onderzoekers dat wanneer aan een persoon met autisme de opdracht wordt gegeven om de emoties te herkennen van een persoon op een foto, de autist minder lang focust op de ogen van de persoon op de afbeelding in vergelijking met een controlegroep (zie figuur1.4).
Figuur 1.4: Resultaat van een onderzoek naar het kijkgedrag van autisten, HFA (hoogfunctionerend autisme), en gewone mensen, Controls. De onderste rij geeft twee maal het verschil aan tussen beide foto’s zodat duidelijk wordt dat mensen met autisme minder op de ogen gefocust zijn dan mensen zonder autismestoornissen.
3
Reclamesector/grafische sector Zowel advertenties als websites worden door fabrikanten eerst onderworpen aan een eyetrackingtest vooraleer er wordt overgegaan tot publicatie. Na het analyseren van de resultaten kan voorspeld worden of de belangrijke delen van de website genoeg aandacht zullen krijgen. Een voorbeeld van het resultaat van deze analyse ziet u in figuur 1.5 [3].
Figuur 1.5: Analyse van het eyetracken uitgevoerd op de website van de gemeente Utrecht. Rode vlekken wijzen op een verhoogde interesse.
Veiligheid Als voorbeeld in dit vakgebied wordt de controle van een bestuurder tegen het indommelen achter het stuur gegeven zoals weergegeven is in figuur 1.6 [4]. De bestuurder is zich tijdens het rijden niet bewust dat hij gecontroleerd wordt, maar wanneer de bestuurder dreigt in te dommelen of een te lange tijd afgeleid is, zal de eyetracker dit opmerken en de bestuurder alarmeren met een geluidssignaal.
Figuur 1.6: Voorbeeld van een eyetracker die bewaakt of de bestuurder niet indommelt tijdens het rijden.
4
Medische behandeling Erg precieze en hoogtechnologische eyetrackers worden bij laseroperaties aan het oog (zie figuur 1.7) gebruikt. Gedurende de hele behandeling filmt een hoogresolutiecamera het oog waarna dan de te laseren plaats berekend wordt.
Figuur 1.7: Lasertoestel voor de ogen uitgerust met een eyetracker.
1.3 Probleemstelling Al lang wordt gezocht naar mogelijkheden waardoor mensen met ernstige fysieke beperkingen zoals ALS1 terug kunnen functioneren binnen de maatschappij. Daarbij werd het gebruik van eyetrackers erkend als een mogelijke oplossing voor deze mensen om te communiceren met de buitenwereld. Daarnaast wordt de eyetracker reeds binnen de faculteit psychologie van de Universiteit Gent gebruikt bij diverse onderzoeken [5, 6]. Dit gebeurde tot op heden steeds met een commercieel toestel. Nu kwam de vraag van de onderzoeksgroep SYSTeMS om een goedkope eyetracker te ontwikkelen binnen de Universiteit Gent. Deze onderzoeksgroep concentreert zich onder andere op het ontwikkelen van alternatieve communicatiepaden tussen mens en machine. De bestaande commerciële eyetrackers zijn meestal te duur (6000 - 30000 e [7:hoofdstuk 2]) en moeilijk aanpasbaar aan de noden van de gebruiker. Daarom wordt er onderzocht of het mogelijk is zelf een eyetracker te ontwikkelen tegen een aanvaardbare prijs. 1
ALS, Amyotrofische Lateraal Sclerose: een geleidelijke verlamming van alle spieren waarbij de patiënt uiteindelijk rolstoelgebonden wordt en het spraakvermogen verliest.
5
1.4 Doelstellingen Het doel van deze masterproef is het ontwerpen van een eyetracker. Zowel de Hogeschool West-Vlaanderen als de Universiteit Gent hadden nog geen voorkennis van deze materie. Het toestel wordt ontwikkeld met het besturen van een computerapplicatie las beoogde toepassing. Deze eyetracker zal niet vergelijkbaar zijn met een commerciële eyetracker inzake kwaliteit. Maar door de ontwikkeling van dit prototype wordt inzicht in de geavanceerde beeldverwerking verkregen en dit maakt het mogelijk het ontwerp van de eyetracker gemakkelijker aan te passen aan de noden van de toepassing. Verder is het ook de bedoeling om verschillende moeilijkheden van het ontwikkelingsproces van een eyetracker in kaart te brengen en te documenteren. Het eerste deel van dit eindwerk is vooral gericht op het verzamelen van kennis rond eyetracking door het onderzoeken van reeds gepubliceerde werken in dit vakgebied. Een uitgebreide literatuurstudie in dit verslag is hiervan het resultaat. Het ontwikkelen van een eyetracker begint met het maken van een eyetracker waarvoor hoofdfixatie vereist is. Indien dit erg snel ontwikkeld wordt, zal worden overgegaan naar het ontwikkelen van een eyetracker waar deze vereiste niet meer opgelegd wordt. Het is hierbij het doel tijdens het volledige ontwikkelingsproces van de eyetracker onderbouwde keuzes te maken en deze te documenteren. Indien nodig, worden meerdere methoden uitgetest om zo vergelijkingen te kunnen maken tussen de verschillende opties. Tenslotte willen wordt een applicatie ontwerpen of gebruikt die bestuurd wordt met behulp van de eyetracker. De vormgeving van deze applicatie stond bij het begin van dit project nog niet vast. Hieraan werd later een invulling gegeven, mede bepaald door de beschikbare tijd.
1.5 Voorstelling Universiteit Gent Dit eindwerk werd uitgevoerd aan de Universiteit Gent, meerbepaald voor de vakgroep EESA: Elektrische Energie, Systemen en Automatisering. De vakgroep EESA maakt deel uit van de faculteit ingenieurswetenschappen. De Universiteit Gent werd opgericht in 1817 met vier faculteiten, ondertussen telt de Universiteit Gent in totaal 11 faculteiten die onderverdeeld zijn in 130 vakgroepen. Sinds 2003 heeft de Universiteit Gent associatieverbanden met de Hogeschool Gent, de Arteveldehogeschool en de Hogeschool West-Vlaanderen. Binnen zijn faculteiten telt de Universiteit Gent ongeveer 32 000 studenten en 7 100 personeelsleden. Daarmee is het een van de grootste Vlaamse universiteiten [8]. De vakgroep Elektrische Energie, Systemen en Automatisering is opgesplitst in twee onderzoeksgroepen. De onderzoeksgroep EELAB, Electrical Engineering Laboratory en de onderzoeksgroep SYSTeMS.
6
De onderzoeksgroep SYSTeMS [9], waaronder dit eindwerk valt, heeft binnen zijn onderzoeksonderwerpen onder andere kunstmatige intelligentie, mechatronica, robotica en brain-computer interfaces. Deze onderzoeksgroep bestaat uit ongeveer dertig leden, waarvan acht voltijdse professoren, enkele post-doctoraatsmedewerkers, drie technische en administratieve medewerkers en ongeveer tien onderzoekers.
7
2 Het eyetracker model Dit hoofdstuk begint met een literatuurstudie van eyetrackers die werden onderzocht voorafgaand aan de realisatie van het prototype. De eyetrackers werden opgedeeld volgens hun bouwwijze. De twee meest voorkomende modellen worden uitvoerig besproken. Waar mogelijk, worden de belangrijkste kenmerken en eventueel de nauwkeurigheid meegegeven. In het laatste deel van dit hoofdstuk vindt u een overzicht van de uitwerking die gekozen werd voor dit eindwerk.
2.1 Literatuurstudie 2.1.1 Overzicht bouwvormen De twee vaakst voorkomende eyetrackers zijn de remote en head mounted eyetrackers. Bij de head mounted eyetrackers draagt de gebruiker een deel van de apparatuur op zich, meestal op een pet of op een brilmontuur. Remote eyetrackers daarentegen werken volledig van op afstand en hinderen de persoon bijgevolg niet tijdens het volgen van de oogbeweging. Verder worden ook nog minder vaak voorkomende modellen gebruikt zoals (figuren 2.1): • Toren model: model dat gebruik maakt van een steunbeugel met daaraan de camera’s bevestigd. Deze opstelling wordt vooral toegepast als nauwkeurige eisen gesteld worden (zie figuur 2.1(a)). • Elektroden model: model opgebouwd met elektroden die op de huid rond het oog gekleefd worden. Door verandering van de potentiaal van de huid rond het oog bij oogverdraaiingen kan de oogbeweging geregistreerd worden (zie figuur 2.1(b)). • Lens model: De gebruiker dient hier een speciale lens te dragen. Een spoel wordt in de lens verwerkt of de lens wordt bedekt met reflectief materiaal. Door deze methoden kan de oogbewegingen erg nauwkeurig opgemeten worden (zie figuur 2.1(c)).
(a)
(b)
(c)
Figuur 2.1: Voorbeelden van minder vaak voorkomende modellen van eyetrackers.
8
De eyetrackers van de twee meest voorkomende modellen bestaan altijd uit één of meerdere camera’s, met eventueel een infrarood belichtingssysteem, geplaatst op een pan-tilt-zoomsysteem of bevestigingsstatief. Elk van deze componenten wordt nader toegelicht. Het aantal camera’s van een eyetracker is sterk variërend. Bij systemen met verschillende camera’s zullen deze elk een aparte functie hebben. De camera’s worden aangewend voor het opnemen van een globaal beeld van het hoofd, een close-up van het oog of een beeld van de kijkrichting. Meestal wordt gebruik gemaakt van gewone camera’s zoals webcams, videocams of CMOSbeeldsensoren. Bij een keuze van een camera dient vooral gelet te worden op de beschikbare interface, de resolutie van de beeldsensor en het aantal beschikbare beelden per seconde. CMOS-camera’s zijn door hun kleine oplage meestal duurder dan webcams die dezelfde eigenschappen hebben. Webcams hebben dan weer als nadeel dat ze reeds ingebouwde filters of beeldverwerkingsfuncties in hun hardware toepassen waardoor enkel een gefilterd beeld verkrijgbaar is. Soms wordt er gebruik gemaakt van stereo camera’s (zie figuur 2.2). Deze beschikken over een interne processor en twee beeldsensoren die onder een lichte hoek staan ten opzichte van elkaar. Aan de hand van de twee opgenomen beelden berekent de processor van de stereo camera de afstand tot de elementen op de afbeeldingen.
Figuur 2.2: Een stereo camera opgebouwd uit twee gewone camera’s.
Infrarode belichting bij eyetrackers kan gebruikt worden voor verschillende doeleinden. Door het gebruik van infrarode belichting vergroot het contrast van de pupil tegenover de rest van het oog. Daarnaast zullen de reflecties in de ogen van de gebruiker veroorzaakt door infrarode belichting ervoor zorgen dat de positie van het oog in de ruimte berekend kan worden. Deze reflecties geven hier dus informatie over waar de persoon zich bevindt. De infrarode belichting wordt ook nog gebruikt om de pupil te detecteren zonder dat geweten is waar het oog zich bevindt. Hiervoor wordt gebruik gemaakt van het heldere pupileffect. Wanneer een led dicht bij de camera geplaatst wordt, gaat het oog dit licht helemaal weerkaatsten, zo wordt een reflecterend beeld van het oog bekomen. Na een vergelijking tussen een beeld van een oog belicht met infrarood licht dat niet bij de camera staat, een en een beeld van een oog belicht 9
met infraroodlicht dat wel dicht bij de camera staat kan op een eenvoudige manier het oog uit een afbeelding gefilterd worden (zie figuur 2.3). Deze techniek wordt meestal de "bright/dark image techniek"genoemd of in het Nederlands de heldere/donkere-beeldentechniek.
Figuur 2.3: De linker figuur werd verkregen met gewone infrarode belichting. De middelste foto werd verkregen door infrarode belichting die dicht bij de camera werd geplaatst. De laatste figuur geeft het verschil aan tussen beide figuren. Door deze methode is de pupil véél gemakkelijker te detecteren in de afbeelding.
Een pan-tilt-zoomsysteem (zie figuur 2.4) is een combinatie van een lens waarvan het inzoomgehalte kan geregeld worden en een statief waarop een camera staat die verdraaid kan worden door middel van twee servo’s. Met dit systeem kan van op afstand het oog gevolgd worden en een close-up nemen. Een pan-tiltsysteem is een systeem dat de camera enkel kan draaien, maar daarbij niet kan inspelen op het zoomgehalte van de lens. Tenslotte wordt er soms gebruik gemaakt van een soort bevestigingsstatief (figuur 2.5). Wanneer geen zoomlens gebruikt wordt en een close-up beeld van het oog nodig is, wordt dit hulpmiddel gebruikt. Op dit bevestigingsstatief worden de camera’s geplaatst, en vervolgens is het de bedoeling dat de gebruiker dit statief draagt tijdens het gebruik van het toestel.
Figuur 2.4: Een voorbeeld van een camera met en pan-tilt-zoomsysteem.
Figuur 2.5: Hier doet een deel van een veiligheidsbril dienst doet als bevestigingsstatief.
2.1.2 Head mounted model Een head mounted toestel wordt bijna altijd gemonteerd op een brilmontuur. De eyetracker wordt bij dit model meestal nog uitgebreid met een camera die het gezichtsveld van de persoon filmt voor positie en richtingsbepaling in de ruimte. Deze modellen vinden hun toepassing dus vooral in "on-site"-toepassingen waar een onderzoek uitgevoerd wordt dat plaatsgebonden is. Deze eyetrackers worden bijvoorbeeld gebruikt bij marktonderzoeken waar het kijkgedrag van een persoon in een supermarkt geobserveerd wordt (figuur 2.6) [10].
10
Figuur 2.6: Voorbeeld van een "on-site"-toepassing: resultaten van een onderzoek in de supermarkt waarbij de persoon op zoek moest naar een bepaald product in de winkel.
Naast de eyetrackers voor "on-site"-toepassingen zijn ook veel head mounted modellen ontwikkeld voor het besturen van een computer. Daarvoor moet de positie en kijkrichting van de persoon gekend zijn om het kijkpunt van de persoon te bepalen op het beeldscherm. Dit kan bepaald worden aan de hand van: • Infrarode leds: de reflectie van deze leds in de ogen van de gebruiker geven, indien de positie van de leds gekend is, kennis van de positie van de persoon. • Vastgelegde hoofdpositie: hierbij wordt verondersteld dat de gebruiker gedurende de hele sessie stilzit. In dit geval dient een speciale hoofdsteun voorzien te zijn om het de gebruiker zo comfortabel mogelijk te maken. • Ultrasone afstandmeting of stereo camera: via deze metingen wordt onmiddellijk de afstand tot de persoon gemeten. • Een extra camera bij het beeldscherm die aan de hand van gezichtsherkenning of infrarode leds op een hoofddeksel de positie van het hoofd bepaalt. Een head mounted toestel waarbij geen toelating is voor hoofdbewegingen, is één van de eenvoudigste vormen van eyetrackers. Hierbij dienen de camera’s niet over een hoge resolutie te beschikken omdat ze voldoende dicht bij het oog geplaatst zijn. Als camera wordt meestal een webcam gebruikt waardoor de kostprijs van de materialen onder de e 50 kan blijven. Wanneer vervolgens een open source softwaretool gebruikt wordt, zoals de ITU Gaze Tracker [11], kan vrij snel een eyetracker opgebouwd worden. De ITU Gaze Tracker is een gratis beschikbare softwaretool ontwikkeld aan de universiteit van Kopenhagen die bruikbaar is met zowel infrarode belichting, infrarode camera’s en gewone camera’s. Deze software maakt het eenvoudig een eyetracker te ontwerpen zonder een 11
eigen berekenings- en beeldverwerkingsalgoritme te moeten ontwikkelen. Met behulp van deze software werden nog verschillende andere eyetrackers opgebouwd. Een verzameling van alle onderzoeken uitgevoerd met deze eyetracker vindt u op de website van de ITU GazeGroup [11].
Figuur 2.7: Hier ziet u een eyetracker die gebruik maakt van de ITU Gaze Tracker en opgebouwd is op een houten mondstuk, op deze manier kan de prijs van de eyetracker erg laag gehouden worden.
Een opstelling zoals op figuur 2.7 heeft echter nogal wat nadelen. Het grootste nadeel is dat de persoon stil moet zitten tijdens het gebruik van het toestel. Bij een beweging van het hoofd gaat de nauwkeurigheid van de tracker verloren. Daarom concentreren onderzoekers zich vooral op het ontwikkelen van manier om de positie van de persoon in de ruimte te bepalen om zo de nauwkeurigheid te verbeteren. Wanneer infrarode leds aangebracht worden bij het scherm kan terug van de ITU Gaze Tracker software gebruik gemaakt worden om tot een nauwkeurigere registratie van de coördinaat van de pupil te komen. Een kleine hoofdbeweging is voor deze opstelling geen probleem meer. Bij een grote beweging komt het oog nog steeds buiten het bereik van de camera waardoor de tracking terug gestopt wordt. J. D. Smith [12] heeft hierop een eigen OpenCV variant gemaakt in het kader van zijn thesis. Zoals vermeld, wordt naast het gebruik van infrarode leds voor positiebepaling bij head mounted eyetrackers nog verschillende methoden gebruikt. Het onderzoek beschreven in [13] werkt met een bril met twee oogcamera’s en een led op de bril gericht naar het computerscherm. Deze lichtbron wordt gezien door een derde camera die zich boven het computerscherm bevindt. Uit de afbeeldingen van de derde camera wordt de positie van de led en de persoon gehaald. Een eenvoudigere variant hiervan is een systeem dat slechts gebruik maakt van één oogcamera en één camera die het hoofd registreert [14]. Nu wordt er geen led gebruikt om de persoon te detecteren maar wordt aan de hand van gezichtskenmerken zoals neus, mond, ogen, gezichtsomtrek de positie van de persoon berekend. De omgekeerde opstelling van [13] en [14] wordt ook gebruikt. J. D. Smith [15] plaatst in een tweede door hem ontwikkeld model de camera bij de persoon en een infrarode led bij het 12
scherm. Hij bekwam een nauwkeurigheid van 1,05◦ met experimenten met een kunstmatig oog. Nog een ander onderzoek [16] plaatst ook een camera bij de gebruiker maar gaat aan de hand van beeldherkenning verschillende referentiepunten in de omgeving detecteren. Dit laatste onderzoek beweert een nauwkeurigheid van 1,5◦ te behalen. Een complexere methode om de positie van het hoofd op te meten maakt gebruik van twee elektromagnetische afstandsmeters [17], deze methode wordt weinig toegepast. Soms wordt er gebruik gemaakt van nog een andere methode gebaseerd op een versnellingssensor die de zes vrijheidsgraden van het hoofd opmeet [18, 19]. Na een kalibratie in het begin van het gebruik van de eyetracker kan het hoofd continu gelokaliseerd worden. Tenslotte werden er in de literatuur ook nog enkele voorbeelden gevonden van head mounted toestellen die niet bedoeld zijn voor het besturen van een computer. Voor dit model eyetracker is het voldoende om één oogcamera en één camera die het kijkveld filmt te gebruiken [20]. De ontwerpers van dit model hebben hun kalibratie uitgevoerd door naar een poster met kalibratiestippen (zie figuur 2.8) te kijken. De onderzoekers van [21] vervangen deze kalibratie door een geprojecteerd grid (figuur 2.9) van een laserstraal op een zelf uit te kiezen muur.
Figuur 2.8: Aan de hand van grid van punten op een blad wordt de kalibratie van de eyetracker uitgevoerd.
Figuur 2.9: Een lasersysteem dat een grid van punten projecteert om de kalibratie uit te voeren.
Uit bovenstaande samenvatting kan besloten worden dat bij de head mounted eyetrackers alleen al een grote variëteit aan eyetrackers bestaat. Het voornaamste verschil situeert zich in de manier waarop de positiebepaling van de persoon ten opzichte van het beeldscherm gebeurt.
2.1.3 Remote model Remote eyetrackers werken met één of meerdere camera’s die de persoon van op afstand filmen. De beeldkwaliteit van deze camera’s is bij deze eyetrackers meestal de beperkende factor om goede nauwkeurigheden te bekomen. Ook remote eyetrackers bestaan in veel verschillende vormen met verschillende cameraopstellingen, variërend aantal camera’s en ledgroepen of andere variaties in de opstelling. Een goed begin om remote eyetrackers te bespreken is een verslag van Cogain [22], een onderzoeksgroep die zich focust op eyetracking. Cogain beschrijft de belangrijkste onderzoeken binnen de remote eyetrackers en geeft tevens een overzicht van de ontwikkelingen in het laatste decennium. 13
Een eerste groep eyetrackers [23–25] werkt met één breedhoekcamera en één camera op een pan-tilt-zoomsysteem gecombineerd met twee of vier infrarode referentiediodes en twee infrarode belichtingsringen rond de camera. Op deze manier kunnen ze aan de hand van de heldere/donkere-beeldentechniek eenvoudig de pupil detecteren. De onderzoekers behalen met deze methode meestal een nauwkeurigheid van minder dan 1◦ . Een kleine variant hierop is terug te vinden in [26], de infrarode leds werden in L-vormige groepen opgesteld en er werd geen gebruik gemaakt van de heldere/donkere-beeldentechniek. Ook T. Ohno en N. Mukawa [27] gebruiken een model met een breedhoekcamera en een camera met een pan-tilt-zoomsysteem. De auteurs beweren een nauwkeurigheid te bereiken van 0,5◦ voor de kijkrichting. Een systeem ontwikkeld door de universiteit van Shizuoka [28] maakt gebruik van een camera op een pan-tiltsysteem. De onderzoekers gebruiken een ultrasone afstandmeter voor de positiebepaling van de persoon. Hier wordt gebruik gemaakt van het heldere/donkere-beeldentechniek, met deze methode wordt een nauwkeurigheid bekomen van minder dan 1◦ . Vervolgens bestaat er een tweede groep eyetrackers die geen gebruik maakt van een pantiltsysteem maar van roterende spiegels [29]. Dit model laat de gebruiker toe vrij te bewegen door gebruik te maken van een stereo camera met een breed kijkveld. De ogen worden gevolgd door aparte camera’s waarvan het kijkveld gericht wordt met behulp van de roterende spiegels. De methode van de draaiende spiegels werd ook gebruikt door de universiteit van Shizuoka [30], maar dan in combinatie met een ultrasone afstandmeter zoals te zien is in figuur 2.10. Hun onderzoek bekomt echter veel minder goede resultaten bij hoofdbewegingen.
Figuur 2.10: De eyetracker met spiegel voor het richten van de camera naar de gebruiker
Een derde groep eyetrackers maakt enkel gebruik van infrarood licht. Een Amerikaans onderzoek [31] is hiervan een voorbeeld. Vier reflecties worden gebruikt voor positiebepaling. Er wordt met deze methode een nauwkeurigheid van 1◦ bekomen. Een alternatief hierop is beschreven in [32], dit systeem laat vrije hoofdbewegingen toe maar dit gaat echter ten koste van de nauwkeurigheid. De nauwkeurigheid bedraagt bij hen slechts 1,7◦ . Twee onderzoeksgroepen [33] [34] beweren zelfs een nauwkeurigheid te halen van 1◦ met vrije hoofdbewegingen door slechts gebruik te maken van één camera met 1,3 megapixel resolutie en twee infraroodbelichtingsgroepen. Hierbij is de hoofdbeweging echter beperkt tot het kijkveld van de camera wat zo’n 10 cm op 10 cm is. Een laatste groep eyetrackers staat beschreven in [35–38]. Zij gebruiken geen infrarood licht. Hun berekeningen zijn volledig gebaseerd op neurale netwerken en bereiken in het gunstigste geval een nauwkeurigheid van ongeveer 1,5◦ . Bij dit systeem is terug geen hoofdverdraaiing toegestaan, een hoofdverplaatsing evenwijdig met het scherm dan weer wel. Een uitgebreide beschrijving van het gebruik van neurale netwerken bij eyetrackers is te vinden in de thesis van D. Bäck [39]. 14
2.2 Commerciële eyetrackers Bij commerciële toestellen zijn meestal remote eyetrackers. Tobii [40], de marktleider bij eyetrackers, heeft verschillende remote eyetrackers in hun assortiment waarvan sommigen reeds ingebouwd zijn in een beeldscherm, anderen kunnen worden gebruikt in combinatie met een gewoon computerscherm. Ook LC Technologies [41] en Eyetech [42], twee bekende fabrikanten, brengen de laatste jaren vooral remote modellen op de markt. Afhankelijk van fabrikant tot fabrikant zullen de prijzen, prestaties en modellen uiteenlopen naargelang de beoogde toepassingsgebieden. In een marktonderzoek van de onderzoeksgroep Cogain [43] werd reeds eerder een verzameling opgesteld van de meeste fabrikanten met hun apparatuur. Commerciële toestellen kunnen tot 1000 beelden per seconde verwerken en dit met een nauwkeurigheid van ongeveer 0,5◦ . Bij de aankoop worden meestal ook software meegeleverd voor het gebruik van de eyetracker en het verwerken van de resultaten van de onderzoeken die uitgevoerd werden.
2.3 Keuze model en uitwerking Voor deze thesis werd geopteerd om een remote model te ontwikkelen. Er wordt verwacht het gebruik van head mounted modellen in de komende decennia beperkt zal worden tot "on-site"toepassingen en dat het besturen van computers en omgeving vooral zal gebeuren door remote toestellen. Daarom gaat de interesse uit naar dit systeem. Er werd gekozen om een gewone webcam te gebruiken als camera. Voor deze webcam werden verschillende lenzen verkregen waarmee het inzoomgehalte veranderd kan worden. De lenzen hebben een brandpuntsafstand van 3, 8, 12 en 16 mm. De lens van 8 mm bleek optimaal. Deze lens geeft een beeld van beide ogen met nog 5 cm bewegingsruimte aan beide zijden van de persoon indien de afstand tussen de persoon en de camera ongeveer 40 cm is. Om later vrije hoofdbeweging toe te laten werd geopteerd om verschillende infrarode belichtingsgroepen te gebruiken. Er wordt echter geen gebruik gemaakt van het heldere/donkerebeeldentechniek (zie sectie 2.1.1) omdat deze techniek extra synchronisatie vergt tussen de leds, computer en camera. Tenslotte werd ervoor gezorgd dat de camera infraroodlicht waarnam. Initieel was het niet mogelijk een goed contrast te onderscheiden tussen pupil en oogwit. Er waren twijfels of de camera reeds geschikt was voor het herkennen van infrarood licht. Op de beelden was het infrarode licht duidelijk waarneembaar, maar er was geen contrastverhoging van de pupil waarneembaar. Bij contact met enkele onderzoekers die reeds een eyetracker hadden ontworpen, werd een infraroodfilter als oorzaak van dit verschijnsel gevonden. Na het verwijderen van een infraroodfilter (zie figuur 2.11) verbeterde het contrast van de pupil opmerkelijk (zie figuur 2.12).
15
Figuur 2.11: Camera met gedemonteerde lens en verwijderde infraroodfilter.
Figuur 2.12: Links een afbeelding opgenomen zonder infraroodbelichting met een gewone camera. Rechts een afbeelding opgenomen met infraroodbelichting en een infraroodcamera. Rechts is het contrast tussen pupil en de rest van het oog groter.
2.4 Besluit Na het overlopen van ontwikkelde eyetrackers kan besloten worden dat een nauwkeurigheid van 1◦ zeer goed is. Eyetrackers die meer dan 3◦ afwijken daarentegen zijn weinig bruikbaar voor het besturen van een computer. In dit hoofdstuk stond het onderzoek naar de twee soorten eyetrackers voorop: de head mounted eyetrackers en de remote eyetrackers. Algemeen kan er besloten worden dat een eenvoudige head mounted eyetracking met goedkopere componenten mogelijk is, maar dat de kijkrichtingsbepaling voor computerbesturing van een head mounted model moeilijker is dan bij een remote model. Bovendien wordt de hinder die de persoon ondervindt door het dragen van de camera’s als een groot nadeel beschouwd. Een Remote eyetracker vereist meestal een pan-tiltsysteem met meerdere camera’s, inzoomlenzen of camera’s met hoge resolutie. Door een daling van de kostprijs en de stijging van de resolutie van camera’s is de remote technologie de optie die de meeste fabrikanten kiezen voor de toekomst. Daardoor werd gekozen om in deze thesis een remote model te ontwikkelen.
16
3 Beeldverwerkingssoftware Voor het volgen van de oogbeweging moet zowel de positie van de pupil als de posities van de reflecties gekend zijn. Deze eigenschappen dienen uit de verkregen beelden gehaald te worden. In dit hoofdstuk wordt deze activiteit besproken. Beginnend met de keuze van de programmeertaal, vervolgens worden de belangrijkste beeldverwerkingsfuncties overlopen en tenslotte wordt de uitgewerkte oplossing voor het detecteren van de pupil en reflecties geïllustreerd aan de hand van een flowchartdiagram. De resultaten van tijdsanalyses van deze functies worden beschreven op het einde van dit hoofdstuk.
3.1 Literatuurstudie Bij het overlopen van de onderzochte beeldverwerkingsmethoden kan terug het verschil tussen een head mounted en een remote eyetracker opgemerkt worden. De afbeelding van het oog van een head mounted eyetracker zal groter en gedetailleerder zijn dan de afbeeldingen van een remote eyetracker. Het detecteren van de pupil zal dus bij een head mounted eyetracker eenvoudiger kunnen gebeuren dan bij een remote toestel. In deze thesis werd de keuze gemaakt voor een remote eyetracker. Daarom zijn de hieronder vermelde methoden enkel daarvoor van toepassing. De meest gebruikte methode [23–25, 34, 44, 45] werd reeds in sectie 2.1.3 vermeld. Dit is namelijk de heldere/donkere-beeldentechniek . Door het verschil te maken tussen een heldere en een donkere pupilafbeelding vergroot het contrast en wordt de pupil sterker geaccentueerd. Daarna kan ofwel onmiddellijk de pupil onderscheiden worden door alle pixels te vergelijken met een grenswaarde, ofwel wordt een een methode gebruikt waarbij vertrekkend vanuit het vorige pupilmiddelpunt de afbeelding radiaal overlopen wordt naar overgangen van donker naar helder. De methode waarbij men radiaal de afbeelding overloopt werd oorspronkelijk onder de naam Starburst algoritme [20, 46, 47] ontwikkeld, gebruik makend van de donkere pupilafbeeldingen. Zij stellen een driefasige methode voor. In de eerste fase wordt vanuit het startpunt in alle richtingen gezocht naar een donker naar helder overgang. In de tweede fase wordt voor ieder punt dat gevonden werd in de vorige fase opnieuw in alle richtingen gezocht naar de rand. Daarna wordt in de derde fase een gemiddelde genomen van de punten van de vorige iteratie. Dit punt is dan het startpunt voor het detecteren van een bijkomende reeks randpunten. Het zoeken naar nog meer verzamelingen komt tot een eind als het gemiddelde van deze punten constant wordt. Madrileense onderzoekers [26] breiden deze methode uit met nog een fase waarin er gezocht werd naar de iris. Deze fase was nodig omdat de berekeningen van het kijkpunt enkel geldig zijn als de reflecties binnen de iris gelegen zijn. Om dit te kunnen controleren hadden zij de afmetingen van de iris dus nodig voor het berekenen van het kijkpunt. Er zijn enkele onderzoekers die geen gebruik maken van infrarode belichting. Dit vergt extra inspanningen voor het op punt stellen van de beeldverwerkingssoftware. Hier gaat men meestal 17
over tot het detecteren van de iris. In daglicht geeft de iris een groter contrast dan de pupil maar wordt de iris voor een deel bedekt door het ooglid. Daarom verschillen de irisdetectiealgoritmes van de pupildetectiealgoritmes. Daughman’s algoritme [48,49] is een algoritme speciaal ontwikkeld voor het detecteren van iris en pupilrand bij gewoon omgevingslicht. Deze methode maakt gebruik van een hoger wiskundig verband (3.1), een integro-differentiaalvergelijking , voor het detecteren van de irisrand. I ∂ max(r, x0 , y0 ) Gσ (r). ∂r
r,x0 ,y0
I(x, y) ds 2πr
(3.1)
Het onderzoek beschreven in [50] gebruikt ook geen infrarode belichting. Door slim gebruik te maken van ruisverwijdering en een randdetectie slagen zij erin de iris te detecteren. Hun methode is grafisch voorgesteld in figuur 3.1 Over de robuustheid van hun methode is echter weinig geweten.
Figuur 3.1: Het irisdetectiealgoritme voorgesteld in [50]. Door drempelwaardefunctie en ruisverwijdering wordt vanuit de eerste figuur de tweede figuur bekomen. Door een randdetectie bekomen zij de derde figuur. Tenslotte bepalen ze de juiste contour voor het fitten van een ellips. Op deze vrij eenvoudige manier wordt de contour van de iris bekomen.
De nieuwste ontwikkelingen op beeldverwerkingsgebied is het inzetten van neurale netwerken [36,38,51]. Bij deze methode is het eveneens niet nodig te werken met infrarode belichting of speciale beeldverwerkingsfuncties. Een afbeelding van het oog wordt gebruikt als invoergegevens voor het neuraal netwerk dat de coördinaten van de pupil berekent. Deze netwerken zijn zelflerend, dat wil zeggen dat het netwerk zelf intern de parameters berekent met behulp van trainingsdata (kalibratiedata) waarvoor het resultaat al geweten is. Met behulp van deze parameters kunnen na de kalibratie de coördinaten van de pupil bepaald worden.
3.2 Keuze programmeertaal Gezien de toepassing werden er verschillende eisen gesteld aan de programmeertaal: • Snelheid: om genoeg beelden per seconde te kunnen verwerken dient een voldoende snelle programmeertaal te gebruikt te worden. • Beschikbaarheid van bibliotheken: inzake beeldverwerking zijn verschillende bibliotheken reeds beschikbaar. Door gebruik te maken van deze bibliotheken kan de programmeertijd gevoelig beperkt worden. Een nadeel van een bibliotheek is dan weer dat indien 18
een functie niet helemaal naar wens werkt, de broncode van deze functie moeilijk of zelfs onmogelijk bereikbaar en aanpasbaar is. • Kennis van de taal of gemak van aanleerbaarheid: indien kan gestart worden met een reeds gekende taal versnelt dit het programmeerproces. • Beschikbaarheid van voorbeelden en opensource projecten: als voorbeeldprogramma’s voorhanden zijn kan dit terug een besparing in tijd betekenen in het programmeerproces. Eventueel kunnen zelfs bepaalde delen van deze voorbeeldprogramma’s gebruikt worden indien de auteur hiertegen geen bezwaar heeft. Indien er gekeken wordt welke programmeertaal gebruikt wordt door andere ontwikkelaars van eyetrackers komt men meestal op twee mogelijkheden uit. Ten eerste gebruiken de ontwikkelaars de programmeeromgeving Matlab. Binnen Matlab wordt dan gebruik gemaakt van de Image Processing Toolbox die een groot aantal beeldverwerkingsfuncties bevat. Grootste voordeel aan Matlab is het reeds beschikbaar zijn van functies voor het verwerken en weergeven van resultaten. Zoals functies voor het opmaken van grafieken, weergeven van afbeeldingen en het uitwerken van statistische berekeningen. Daarnaast zijn er ook verschillende onderzoekers die gebruik maken van de programmeertaal C++ in combinatie met de OpenCV bibliotheek [52]. Deze open source bibliotheek werd oorspronkelijk ontwikkeld door Intel en bevat een groot aantal beeldverwerkingsfuncties. Deze bibliotheek is bruikbaar voor de programmeertalen C++, C en Python. Voor dit onderzoek werd gekozen om gebruik te maken van de C++ taal in combinatie met de OpenCV bibliotheek. Vooral de beschikbaarheid van de vele voorbeelden is voor deze taal een voordeel. C++ staat ook dichter bij de hardware zodat hogere snelheden gehaald kunnen worden. Bovendien bestaat er een grote online gebruikersgroep [53] waar vragen gesteld kunnen worden en is er met "O’Reilly Learning OpenCV" [54] een erg duidelijk naslagwerk beschikbaar. Deze argumenten gaven de doorslag bij de keuze tussen beide talen.
3.3 Beeldverwerkingsfuncties In dit onderdeel worden de verschillende beeldverwerkingsfuncties die gebruikt werden in dit eindwerk kort uitgelegd. Wanneer later overgegaan wordt naar het overlopen van de opbouw van de beeldverwerking zullen onderstaande functies terugkeren in het programmaverloop. De ideeën voor de verschillende methoden waren gebaseerd op verschillende wetenschappelijke werken. De theorie achter de gebruikte methoden staat beschreven in verschillende naslagwerken handelend over beeldverwerkingstechnieken [54–56].
3.3.1 Kleurconversie Kleurconversie is een eerste bewerking die op de verkregen beelden moet worden uitgevoerd. Deze actie is nodig omdat het grote deel van de beeldverwerkingsfuncties enkel toepasbaar zijn op 1-kanaalsafbeeldingen. Een kleurenfoto is in oorsprong een 3-kanaalsafbeelding. Het bezit per punt drie verschillende waarden, namelijk een waarde voor elk van de verschillende
19
Figuur 3.2: Een oorspronkelijke kleurenafbeelding vier maal geconverteerd, eenmaal naar grijswaarden (linksboven) met de conventionele parameters en driemaal door een kleurkanaal af te zonderen (rechtsboven rood, linksonder blauw en rechtsonder groen).
basiskleuren: rood, groen en blauw. Per kanaal kan de kleurintensiteit variëren tussen 0 en 255 waardoor de afbeeldingen soms ook 8-bit kleurafbeeldingen genoemd worden. Voor conventionele kleurconversie van een kleurenafbeeldingen naar een grijswaardenafbeelding wordt 30% van de waarde van het rode kanaal, 59% van de waarde van het groene kanaal en 11% van de waarde van het blauwe kanaal genomen. Deze parameters werden bepaald aan de hand van de ooggevoeligheid voor de verschillende kleuren [54:p59-60]). Afhankelijk van de toepassing kan beslist worden om af te wijken van deze verhoudingen of bepaalde kleuren volledig weg te laten.
3.3.2 Histogam equalisatie Door wisselende omstandigheden zal de helderheid en het contrast van de beelden variëren met de omgevingsomstandigheden. Om in alle omstandigheden de pupil te kunnen detecteren, bestaat de behoefte aan functies die de invloed van veranderende belichting wegfilteren. Een veel toegepaste oplossing [37, 57, 58] is histogram equalisatie. Deze functie zal een histogram opstellen waarbij per kleur de frequentie van dat kleur in de afbeelding berekend wordt. Vervolgens worden de kleurwaarden herverdeeld zodat een uniforme verdeling van de kleuren over het hele kleurengebied bekomen wordt. Praktisch zal bijvoorbeeld een afbeelding die overbelicht was en geen donkere kleuren bevat, verwerkt worden zodat deze een normalere belichting vertoont en meer contrast bevat (zie figuur 3.3 ). Ieder pixel wordt als volgt berekend [55]:
Histogram equalisatie(x, y) =
k X nj j=1
n
.255
(3.2)
20
Met nj het aantal pixels met j als waarde, n het totaal aantal pixels in de afbeelding en k de waarde van de het punt (x, y).
Figuur 3.3: Voorbeeld van een verhoging van het contrast door het gebruik van histogram equalisatie. De linkerfiguur vertoont weinig heldere en donkere pixels. Na het toepassen van histogram equalisatie zijn de kleuren herverdeeld en daardoor is het contrast in de afbeelding ook verbeterd.
3.3.3 Drempelwaarde De drempelwaardefunctie is waarschijnlijk de meest toegepaste functie bij beeldherkenning. In talloze onderzoeken werd deze functie gebruik. Bij het toepassen van een drempelwaardefunctie wordt de waarde van de pixels vergeleken met een vooraf ingestelde waarde. Vervolgens kan opgeven worden welke actie dient ondernomen te worden indien de waarde van de pixel kleiner of groter is dan de ingestelde waarde. De waarde van de oorspronkelijke pixel wordt ofwel gelijkgesteld aan 1, 0 of de oorspronkelijke waarde van de pixel. Op deze manier kan de afbeelding met grijswaarden geconverteerd worden naar een binaire afbeelding, ook soms wel een monochrome afbeelding genoemd, waarvan de waarden van de pixels nu enkel 1 of 0 zijn. Een voorbeeld van de drempelwaardefunctie (DW) in pseudocode waarbij D de drempelwaarde is, pixels die een waarde groter dan D hebben worden gelijkgesteld aan 1, en punten die een waarde lager dan D worden gelijkgesteld aan 0 ziet u hier:
∀ punten P (x, y) 3 Bronaf beelding ( 0 if P (x, y) < D DW (x, y) = 1 if P (x, y) ≥ D
(3.3)
Figuur 3.4: Op de grijsschaalafbeelding van de linkerafbeelding werd een drempelwaardefunctie toegepast met bovenstaand resultaat.
21
3.3.4 Dilate en Erode Deze functies worden gebruikt voor het verwijderen van ruis in een afbeelding. Na een drempelwaardefunctie wordt een afbeelding met een zeker patroon verwacht. Maar door verstoring van de overdracht naar de computer, verontreinigingen op de lens of een mindere kwaliteit van beeldsensoren gebeurt het vaak dat het verwachtte patroon doorkruist wordt door willekeurige stippen, ook wel ruis genoemd. Dilate gaat heldere regio’s uitbreiden en samenvoegen zodat zwarte verontreinigingen in heldere gebeiden verwijderd worden. En erode gaat heldere regio’s inkrimpen en donkere regio’s samenvoegen zodat witte stippen in donkere gebieden onderdrukt worden. Figuur 3.5 is hiervan een voorbeeld. De berekeningen die achter deze functies schuilgaan ziet u in formules 3.4 en 3.5.
Erode(x, y) = Dilate(x, y) =
min
src(x + x0 , y + y 0 )
(3.4)
max
src(x + x0 , y + y 0 )
(3.5)
(x0 ,y 0 )∈kernel
(x0 ,y 0 )∈kernel
(x, y) zijn de coördinaten van de beschouwde pixel. Rond de doelpixel wordt het kernelgebied gedefiniëerd waarop de functie uitgevoerd wordt. Door x’ en y’ te variëren volgens de afmetingen van het kernelgebied zijn x+x’ en y+y’ de coördinaten van de pixels rond de doelpixel. De functie src(x+x’,y+y’) geeft vervolgens de waarde van een van de pixels in het kernelgebied.
Figuur 3.5: De middelste figuur is het resultaat van een erode bewerking op de eerste figuur. Een groot deel van de wenkbrauw is weggefilterd maar ook het oog is gekrompen. Daarom volgt een dilate bewerking tot de derde figuur. Het oog is nu uitgebreid zonder extra ruis te creëren.
3.3.5 Contourdetectie Contourdetectie betekent op een binaire afbeelding zoeken naar de randen in de figuur. Als resultaat van deze functie wordt een reeks coördinaten verwacht van alle punten die op een rand liggen. Binnen OpenCV werd deze functie ook geïmplementeerd. De implementatie van de OpenCV bibliotheek heeft het voordeel dat veel meer informatie dan enkel de randpunten berekend wordt. Zo worden onder andere de punten gegroepeerd per rand en wordt er een onderscheid gemaakt tussen gaten en omrandingen. De contourdetectiefunctie gebruikt enkel binaire afbeeldingen. Geheel de afbeelding wordt overlopen op overgangen van licht naar donker en omgekeerd. Iedere overgang resulteert in een randpunt. Vervolgens worden aaneengesloten randpunten gegroepeerd in gesloten lussen en wordt bepaald of de lus een gat of een omranding voorstelt. 22
Figuur 3.6: In het midden ziet u de gevonden contouren van de contourdetectiefilter op de linker figuur. Na het selecteren van randen die kans maken een ellips voor te stellen aan de hand van de afmetingen van de ellipsen blijft één contour over.
3.3.6 Ellipsfitting Met de reeks coördinaten wordt getracht een goede bepaling te maken van het middelpunt van de pupil. Daarvoor wordt aan de hand van de gevonden contour een ellips berekend die de pupilrand voorstelt. Het middelpunt van deze ellips stemt overeen met het middelpunt van de pupil. Voor het berekenen van de best passende ellips werden twee methoden onderzocht. De eerste methode is de kleinste kwadraten methode. Het is de meest gebruikte methode in de literatuur voor het zoeken van het pupilmiddelpunt. Deze functie gaat door alle punten de cirkel berekenen waarvoor de som van de kwadraten van de afwijkingen minimaal is. Met behulp van deze functie die in OpenCV voorhanden is, kunnen de lengtes van beide assen van de ellips en de hoek waaronder de ellips gedraaid is, verkregen worden.
Figuur 3.7: De ellipsfitting met de kleinste kwadratenmethode (rechts) door de rand (links).
De tweede onderzochte methode is de ransac methode [20, 59]. Ransac staat voor RANdom SAmple Consensus en is een alternatief voor de kleinste kwadraten methode voor het berekenen van de best passende ellips. Deze methode kan net als de kleinste kwadratenmethode gebruikt worden bij het zoeken van best passende rechten en het bepalen van de best passende ellips. Bij het detecteren van de pupil via deze methode dient volgende methodologie gevolgd te worden. 1. Selecteer willekeurig vijf punten uit de dataset. Het aantal geselecteerde punten is gelijk aan het aantal punten dat eenduidig een ellips beschrijft, namelijk vijf. 2. Bepaal de ellips die door deze vijf punten past. 3. Ga voor ieder punt binnen de dataset na hoe ver dit punt ligt van de berekende ellips. 4. Ieder punt dat dicht genoeg ligt bij de ellips wordt in een nieuwe dataset gestopt. 23
5. Na het doorlopen van de contour wordt gecontroleerd of het aantal gevonden punten in de nieuwe dataset groter is dan het maximum aantal punten van een dataset van een vorige benadering. Indien dit het geval is, wordt het aantal gevonden punten het nieuwe maximum en worden de gegevens van de ellips (centrumcoördinaten, lengtes van de assen en rotatiehoek) opgeslagen. 6. Stap één tot en met vijf worden herhaald totdat: • Het aantal punten in de nieuwe dataset groot genoeg is zodat kan gesteld worden dat alle goede punten in dit model vervat zitten. Nu kunnen de gegevens van de pupil gebruikt worden als een goede voorstelling van de dataset. • Er een groot aantal benaderingen gemaakt werden waarin geen geldige benadering gevonden werd. Daarbij kan besloten worden dat bovenstaande dataset niet nauwkeurig kan benaderd worden met een ellips.
Figuur 3.8: Toepassing van de ransac filter. Op bovenstaande figuren is duidelijk te zien hoe de ransac filter de afwijkingen in de ellips ten gevolge van onregelmatige belichting wegfiltert. De linkerfiguur toont de oorspronkelijke rand, de middelste figuur toont de punten die dicht genoeg bij de benadering liggen. De afwijkingen in de rand zijn hier verdwenen. In de laatste figuur ziet u de oorspronkelijke rand en de benaderende ellips geprojecteerd op de afbeelding van het oog.
Voor het toepassen van deze methode dienen drie zaken ingesteld te worden, namelijk het minimum aantal punten dat nodig is voor een correcte benadering, het maximum aantal cycli dat uitgevoerd wordt en de grensafstand die bepaalt of een punt dicht genoeg bij de benaderende ellips ligt. Het aantal punten dat vereist is voor een correcte benadering kan afhankelijk zijn van het aantal vooraf toegepaste filters (zie sectie 3.4). Indien vooraf reeds de reflectie- en randfilter toegepast werd, zal een veel hoger percentage van goedgekeurde punten nodig zijn om een goede benadering van de contour te bepalen. De ransac methode heeft als voordeel dat uitschieters weggefilterd worden uit de data. Het nadeel van deze methode is echter dat de berekeningstijd voor het berekenen van de best passende ellips niet meer constant is en dat het mogelijk is dat bij een goede dataset geen goede benadering gevonden wordt.
24
3.4 Filters 3.4.1 Probleemdefinitie Voor het goed detecteren van de pupilrand dringen aanvullende maatregelen zich op tijdens het ontwerp van het pupildetectiealgoritme. Volgende problemen traden op tijdens deze thesis: Eerste probleem: Invloed van reflectie op de rand van de pupil. Indien de reflectie dicht bij de pupilrand ligt, zal dit een effect hebben op de contourdetectie. Het berekende pupilcentrum zal daardoor niet nauwkeurig bepaald worden (figuur 3.9). Bij afbeeldingen met een lage resolutie of grote reflecties is deze invloed het grootst.
Figuur 3.9: Doordat de reflectie in de nabijheid van de pupilrand valt, ondervindt de pupilrand een afwijking die meegenomen wordt in de berekening van de pupil. Daardoor zullen de pupilcoördinaten eveneens onnauwkeurig zijn.
Tweede probleem: Invloed van het ooglid op de rand van de pupil. Het deel van het oog dat bedekt wordt door het ooglid verschilt sterk per persoon. Bij verschillende personen die deelnamen aan de experimenten van ons onderzoek bedekte de oogleden ook deels de pupillen. Bij deze personen kon de bovenkant en de onderkant van de pupil bijgevolg niet gedetecteerd worden. De contourdetectiefunctie detecteert in de plaats van de pupil op deze plaats het ooglid. Dit zorgde terug voor een foutieve beïnvloeding van het pupilcentrum (zie figuur 3.10).
Figuur 3.10: De rand van de pupil wordt in bovenstaande figuur bedekt door het ooglid, dit veroorzaakt een fout bij de berekening van de ellips.
Verschillende filters die gecombineerd of afzonderlijk kunnen gebruikt worden, werden ontwikkeld als oplossing voor deze problemen. Deze filters proberen net als de hierboven beschreven ransac methode ongewenste punten uit de dataset te halen. Het is echter niet uit te sluiten dat ook goede punten verwijderd worden. Daarom is het aan te raden vooraf te onderzoeken of het oog vaak bedekt wordt door het ooglid of niet bij de geobserveerde persoon. Bij een eyetracker 25
met hoofdstabilisatie kan het hoofd bijvoorbeeld lichtjes voorovergebogen worden zodat slechts zelden bedekking ontstaat van het oog door het ooglid en een filter dus overbodig wordt. Bij vrije oogbeweging is dit niet mogelijk.
3.4.2 Reflectiefilter Bij verschillende publicaties [29, 60] worden de punten rond de reflectie uitgesloten als randpunten van de pupil. Voor deze reflectiefilter is het nodig de positie van de reflectie eerst te bepalen. Vervolgens wordt van ieder punt van de pupilcontour de afstand berekend tot het centrum van de reflectie. Alle punten die dichter liggen dan een grenswaarde G worden uit de contour gehaald.
∀ punten P (x, y) 3 M ogelijke punten ( p P 3 Randpunten if (Px − Rx )2 + (Py − Ry )2 > G p P ∈ / Randpunten if (Px − Rx )2 + (Py − Ry )2 ≤ G
(3.6)
Figuur 3.11: Toepassing van de reflectiefilter.
3.4.3 Randfilter Om de nadelige invloed te beperken van een ooglid dat een deel van het oog bedekt kan ook een filter toegepast worden. In de literatuur [50, 51, 61] werden verschillende methoden gevonden die slechts de contour detecteerden in horizontale richting. De bovenkant en onderkant van de pupil werden niet gedetecteerd, enkel de beide zijkanten. Ook in dit onderzoek werden problemen ondervonden door bedekking van het oog door het ooglid en daarom is een variatie op bovenstaande oplossing uitgewerkt. Hierbij wordt de onderste en bovenste strook van de contour weggesneden. De grootte S van deze strook wordt experimenteel bepaald, een te kleine strook zorgt ervoor dat de rand niet volledig weggefilterd wordt, een te grote zone vermindert het aantal punten dat overblijft voor een ellipsfitting.
∀ punten P (x, y) 3 M ogelijke punten ( P 3 Randpunten if Randmin + G < Py < Randmax −G y y min P ∈ / Randpunten if Randy + G ≥ Py ∨ Py ≥ Randmax −G y
(3.7)
Doordat de camera onder het scherm gepositioneerd is, zal het minder voorkomen dat het oog bedekt wordt met het bovenste ooglid. Daarom kan er geopteerd worden om enkel de onderste 26
Figuur 3.12: Toepassing van deze filter waarbij de bovenrand en de onderrand weggefilterd werden. De onregelmatigheden in de pupilrand veroorzaakt door de wimpers en het onderste ooglid hebben geen invloed op de ellipsfitting.
randfilter te gebruiken. Enkel de punten die te dicht bij de onderste rand van de contour liggen worden nu verwijderd. Hierdoor blijven meer punten over voor de ellipsfitting en wordt een nauwkeuriger resultaat bekomen.
3.5 Opbouw software eyetracker De opbouw van de werking van de eyetracker wordt weergegeven in figuur 3.13. Dit diagram is voor een eyetracker waarbij slechts één van de twee ogen gebruikt wordt voor het berekenen van de kijkpositie. Indien beide ogen gebruikt worden, dan wordt het detectiealgoritme ook op het andere oog toegepast. De berekeningen van het kijkpunt worden vervolgens voor beide ogen apart verwerkt waarna het gemiddelde wordt genomen van de coördinaten van beide kijkpunten. Het afgebeelde schema toont enkel de werking tijdens het volgen van de oogbeweging. Alvorens hiervan gebruik kan gemaakt worden, dient eerst een kalibratieprocedure doorlopen te worden. Uit de gegevens van de kalibratie worden vervolgens berekeningsparameters bepaald zodat overgegaan kan worden tot het tracken. De werking van de eyetracker bestaat uit een lus die voor ieder afbeelding herhaald wordt. In deze lus wordt eerst een afbeelding opgehaald van de camera. Van deze afbeelding worden de groene en blauwe kleurkanalen opgeteld en in een nieuwe afbeelding opgeslaan voor de pupildetectie. Het rode kanaal wordt ook afgezonderd voor de reflectiedetectie. Vervolgens wordt de pupil- en reflectiedetectie uitgevoerd. Indien een pupil gedetecteerd werd met een correct aantal reflecties kan het kijkpunt van de persoon berekend worden. Meer informatie over de gebruikte berekeningsmethoden wordt in Hoofdstuk 4 beschreven. Het berekende kijkpunt wordt vervolgens uitgemiddeld. Om te voorkomen dat de cursor constant heen en weer beweegt rond het kijkpunt wordt het gemiddelde genomen van de laatste 10 kijkpunten. Op deze manier beweegt de muiscursor soepeler en is het aangenamer werken met de eyetracker. De computercursor wordt daarna verplaatst naar het berekende kijkpunt zodat met de cursor een toepassing bestuurd kan worden. Tenslotte wordt gecontroleerd of er een toetsaanslag gebeurde. Dit maakt het mogelijk de luswerking af te breken en het programma te stoppen of een menu op te roepen.
27
Figuur 3.13: Flowchart van de werking van de eyetracker.
28
3.6 Opbouw pupil detectie 3.6.1 Algemene opbouw In figuur 3.14 wordt de flowchart voor het detecteren van een pupil weergegeven. De afbeelding wordt onmiddellijk verkleind tot een gebied waarin de pupil ongeveer verwacht wordt. Omdat er gewerkt wordt met een gefixeerd hoofd kan aangenomen worden dat het oog altijd op dezelfde plaats gevonden wordt. Wanneer bewegingen toegelaten zijn kan gezocht worden naar de pupil op de plaats waar het oog laatst gevonden werd. Met hoofdstabilisatie werken beide opties. Vervolgens worden de afbeeldingen bewerkt zodat het contrast optimaal is voor de contourdetectie. Hiervoor werden verschillende methoden ontwikkeld. Deze methoden en de manier waarop de keuze gemaakt werd tussen deze methoden vindt u in 3.6.2. Als laatste stap bij deze contrastverhoging wordt altijd een drempelwaardefunctie gebruikt. Daardoor wordt een binaire afbeelding verkregen. Op de verkregen binaire afbeelding wordt contourdetectie toegepast. Daarna wordt een lus doorlopen voor iedere contour die gevonden werd in de drempelwaardeafbeelding. Binnen die lus wordt eerst aan de hand van de lengte van de contour gecontroleerd of deze contour in aanmerking komt om een pupil voor te stellen. Indien dit niet het geval is, wordt onmiddellijk verdergegaan naar de volgende contour. Indien dit wel het geval is wordt de kleinste omhullende rechthoek van de contour berekend. Aan de hand van de breedte en de hoogte van deze rechthoek wordt nogmaals gekeken of de contour een pupil zou kunnen voorstellen. Deze controles gebeuren altijd door het vergelijken van de afmetingen met bovengrenzen en ondergrenzen. Vooraf werd van een reeks afbeeldingen de lengtes van de contouren, de hoogtes en de breedtes van de omhullende rechthoeken van goede pupillen bepaald en aan de hand van deze waarden werden de boven- en ondergrenzen opgesteld. Deze waarden zijn afhankelijk van de gebruikte lens en resolutie van de camera. Daarom is het gebruik van de ontwikkelde eyetracker beperkt tot het gebruik van de 8mm lens samen met een camera die afbeeldingen neemt van 1024 op 768 pixels. In een volgende stap worden de reflecties gezocht en wordt de controle gedaan of het aantal gevonden reflecties gelijk is aan het verwachte aantal. Daarna worden op de pupilrand eventueel nog filters toegepast om de invloed van de reflectie of het ooglid op de pupilrand te minimaliseren. Tenslotte wordt door de goedgekeurde contourpunten ellipsfitting toegepast. Doordat de fitting gebruik maakt van een vrij groot aantal punten om de ellips te berekenen, worden voor het centrum van de ellips coördinaten verkregen die tot het subpixelniveau nauwkeurig zijn. Deze ellipsfitting kan de ransac methode zijn of de kleinste kwadratenmethode zoals beschreven in sectie 3.3.6.
29
Figuur 3.14: Flowchart voor detectie van de pupil.
30
3.6.2 Verhogen contrast pupildetectie Vooraleer de randdetectie kan uitgevoerd worden op de verkregen afbeelding moeten het contrast in de afbeelding verhoogt worden en de afbeelding omgezet worden in een binaire afbeelding. Deze functies zijn de kern van de pupildetectie, ze bepalen hoe goed de pupildetectie in staat zal zijn de pupil te detecteren. Daarom werden drie verschillende methoden ontwikkeld voor de invulling van dit probleem. Methode 1: Een drempelwaardefunctie selecteert de donkere gebieden van de bronafbeelding. Daarna wordt een dilate bewerking uitgevoerd zodat de gevonden gebieden aaneengesloten worden. Hierna is de afbeelding klaar voor de randdetectie.
Figuur 3.15: Grafische voorstelling van beeldverwerkingsmethode 1.
Bij deze eenvoudige functies dient één parameter ingesteld te worden: de grenswaarde voor de drempelwaardefunctie. Om deze waarde te bepalen werd een reeks afbeeldingen genomen en werd voor alle afbeeldingen berekend hoeveel pupillen gevonden werden wanneer deze grenswaarde varieert van 0 naar 255 (8-bit afbeeldingen). Het resultaat van deze test wordt weergegeven in grafiek 3.16. Uit deze grafiek kan afgeleid worden rond welke waarde de grenswaarde gelegen moet zijn. De grenswaarde blijkt ook het zwakke punt te zijn van deze methode. Bij verandering van belichting dient de grenswaarde ook opnieuw bepaald te worden. De grenswaarde is met andere woorden vrij constant over korte termijn, echter bij langdurig gebruik of bij sterk variërende belichting moet deze aangepast worden. Daarom werd geprobeerd de invloed van de belichting te minimaliseren met een tweede methode. Methode 2: Om de belichtingsinvloeden te verminderen wordt eerst een histogram equalisatie toegepast. Vervolgens wordt analoog aan methode 1 terug de drempelwaardefunctie en de dilate bewerking toegepast. Een erode bewerking werd nog toegevoegd om de aanwezige ruis in de afbeelding weg te filteren. Hoewel er een grote verbetering merkbaar is, blijft de vastgelegde drempelwaarde een zwak punt. Daarom werd gezocht naar een manier om deze waarde automatisch te laten meevariëren met de belichtingsintensiteit. Methode 3: Deze methode is opgebouwd uit dezelfde functies als methode 2. Terug is een histogram equalisatie aanwezig om de belichtingsinvloeden te minimaliseren. Een drempelwaardefunctie zondert de donkerste gebeiden van de figuur af. De Erode en Dilate bewerkingen zorgen voor een
31
Figuur 3.16: Om snel een duiding te krijgen van de grenswaarde werd bovenstaande figuur opgesteld. Daarin werden per afbeelding het aantal gevonden pupillen uitgezet in functie van deze grenswaarde. Voor deze dataset moet de grenswaarde ongeveer 60 zijn omdat in dit gebied bij alle afbeeldingen het aantal gevonden pupillen gelijk is aan één.
Figuur 3.17: Grafische voorstelling van beeldverwerkingsmethode 2.
32
Figuur 3.18: Dezelfde werkwijze als in figuur 3.16 werd ook voor beeldverwerkingsmethode 2 toegepast. Uit de grafiek kan afgelezen worden dat de grenswaarde ongeveer 60 moet worden genomen. Merk op: de gevonden pupillen voor grenswaarden boven 100 zijn meestal valse positieven, cirkels die gedetecteerd werden maar geen pupillen voorstellen.
33
onderdrukking van de ruis in de bronafbeelding. Het verschil tegenover methode 2 is de variabele grenswaarde van de drempelwaardefunctie. Bij methode 2 lag de grenswaarde vast voor alle figuren, bij deze methode wordt de drempelwaarde voor ieder figuur berekend.
Figuur 3.19: Grafische voorstelling van beeldverwerkingsmethode 3.
De grenswaarde wordt als volgt berekend : Grenswaardeaf beelding = (Gemiddeldeaf beelding − X).Y
(3.8)
De waarden van X en Y worden bepaald met behulp van enkele afbeeldingen met verschillende lichtintensiteit waarvoor de optimale grenswaarde gekend was. Hiermee kunnen X en Y berekend worden. Merk op dat deze gemiddelde waarden van de afbeeldingen berekend worden nadat de histogram equalisatie reeds op die figuren uitgevoerd is. Deze methode biedt de mogelijkheid de grenswaarde te laten variëren met de lichtintensiteit. Daardoor wordt ook verwacht dat deze methode beter presteert onder verschillende belichtingscondities. Om de efficiëntie van bovenstaande methoden te controleren werd een verzameling afbeeldingen gevormd. De afbeeldingen werden zo geselecteerd zodat een grote variatie aan oogkleuren, belichtingsomstandigheden en pupilgroottes aanwezig waren. Iedere afbeelding van die dataset werd met alle drie de methoden verwerkt. Onderstaande tabel geeft het slaagpercentage van de methoden weer. Tabel 3.1: Onderstaande tabel geeft het percentage weer van de afbeeldingen waarin een contour werd gevonden door de beschouwde methode.
Methode 1 Methode 2 Methode 3 Percentage 55% 69% 75% Methode 3 bekomt een slaagpercentage van 75% wat vrij hoog is, maar voor een optimaal gebruik van de eyetracker bij verschillende belichtingsinvloed is dit nog steeds onvoldoende. Want als de eyetracker in het dagelijkse leven zou gebruikt worden door personen met een handicap, wordt er verondersteld dat het toestel functioneert in alle omstandigheden. Bij het handmatig bepalen van de drempelwaarde worden percentages tot boven 90% behaald bij een reeks afbeeldingen met dezelfde belichtingsinvloeden. Daarom wordt voorgesteld de gebruiker de keuze te laten tussen de grenswaarde manueel in te stellen met een schuifbalk of te werken met de beeldverwerkingsmethode 3.
34
3.7 Opbouw reflectie detectie Figuur 3.20 geeft de programmaopbouw weer voor het detecteren van één reflectie. Deze is geheel analoog aan het detecteren van de pupil. Het detecteren van de reflectie is echter gemakkelijker omdat het contrast van nature groot genoeg is. Voor de reflectiedetectie wordt gebruik gemaakt van het rode kleurkanaal van de afbeelding. Extra beeldbewerking om het contrast te verhogen is hierna niet meer nodig. Een enkele drempelwaardefunctie is voldoende voor het selecteren van de reflectie. Het bepalen van de grenswaarde van de drempelwaardefunctie werd voor deze actie opnieuw uitgevoerd. Figuur 3.21 is hiervan het grafische resultaat. Deze figuur toont dat de keuze van deze drempelwaarde binnen een groter gebied mag gelegen zijn. Met deze grafiek kan terug de grenswaarde bepaald worden.
3.8 Tijdsanalyse beeldverwerkingsfuncties Wanneer gewerkt wordt met een toepassing zoals een eyetracker is het nuttig te onderzoeken hoeveel beelden per seconde de eyetracker kan verwerken. Aangezien de berekening van het kijkpunt volgend op de beeldverwerking slechts enkele lineaire vergelijkingen zijn, zal dit veel minder tijd in beslag nemen dan de beeldverwerkingsfuncties. Deze zijn van nature erg tijdrovend omdat de bewerkingen op alle punten in die afbeelding moeten uitgevoerd worden. Daarom kan nu reeds, zonder dat het berekeningsalgoritme vaststaat, een goed overzicht verkregen worden van de totale snelheid van de eyetracker. Alle tijden werden opgemeten op een laptop met 1,83 GHz Intel Duo Core processor, 1GB RAM geheugen en Windows XP besturingssysteem zonder andere actieve programma’s.
3.8.1 Tijdsanalyse eyetracker In Grafiek 3.22 is de tijdsverdeling weergegeven voor het ophalen en verwerken van één afbeelding door de eyetracker. De totale verwerkingstijd is ongeveer 40 milliseconden. Dit komt overeen met 25 beelden per seconde. De functies cvQuerryFrame1 . en cvWaitKey kunnen alleen samen gebruikt worden. Ze zorgen samen voor het ophalen van de afbeeldingen vanuit de webcam. 40 milliseconden blijkt de snelst mogelijke verwerkingstijd te zijn met de gekozen camera bij de opgegeven resolutie. De functies cvQuerryFrame en cvWaitKey blijken de rest van de tijd te wachten totdat de camera de afbeelding opgeslagen heeft in zijn interne geheugen en klaar is voor het overdragen van de afbeelding naar de computer. Het verkorten of verlengen van de overige functies zal dus weinig invloed hebben op de totale bewerkingstijd zolang het beeldverwerkingsalgoritme onder de 25 milliseconden blijft (15 milliseconden voor overdracht afbeelding naar computer). Daarom kan binnen de voorziene tijd voor beide ogen de pupil- en reflectiedetectie uitgevoerd worden. Het detecteren van één pupil en reflectie (de functie getfeatures) duurt ongeveer 6,7 ms. 1
Functies beginnend met "cv "zijn functies voorzien door de OpenCV bibliotheek.
35
Figuur 3.20: Flowchart voor detectie van reflectie.
36
Figuur 3.21: Resultaten van de drempelwaarde bepaling voor de reflectiedetectie. De grafiek toont dat de grenswaarde voor de reflectie in een veel ruimer gebied kan worden gekozen. Voor waarden tussen 90 en 190 wordt in alle figuren de reflectie gedetecteerd.
3.8.2 Tijdsanalyse van pupil- en reflectiedetectie Wanneer de verwerkingstijd voor het detecteren van één pupil en bijbehorende reflecties geanalyseerd wordt, blijkt onmiddellijk dat de functie cvSplit de grootste brok inneemt. Deze functie vergt immers veel bewerkingen aangezien vóór deze functie de afbeelding nog niet verkleind is tot het interessegebied. De functie gaat de afbeelding opsplitsen in drie aparte afbeeldingen van de drie kleurkanalen. Daardoor zijn er veel geheugenbewerkingen nodig die tijd vergen om uit te voeren. De rest van de functies blijken minder dan 0,3 milliseconden te duren. Indien het nodig zou zijn, zullen verdere inspanningen om de tijdsduur te verminderen vooral moeten gewijd worden aan het vinden van een vervanging voor de cvSplit functie.
3.8.3 Discussie Met ongeveer 40 milliseconden per afbeelding kunnen 25 afbeeldingen per seconde verwerkt worden met de camera. Om de totale bewerkingstijd te verlagen moet gewerkt worden met een betere camera of een lagere resolutie. Een lagere resolutie betekent wel een verminderde nauwkeurigheid voor de bepaling van het kijkpunt. Maar hoeveel beelden per seconde moet een eyetracker praktisch aankunnen? Hoe snel dient de eyetracker te werken om de oogbeweging op een natuurgetrouwe manier te kunnen uitbeelden? Daarvoor is er nood aan de kennis van hoe snel een oog beweegt en welke oogbewegingen gekend zijn in de literatuur [62, 63]. 37
Figuur 3.22: Bovenstaand taartdiagram geeft de tijdsverdeling weer voor het verwerken van één afbeelding.
38
Figuur 3.23: Bovenstaand taartdiagram geeft de tijdsverdeling weer van de pupil- en reflectiedetectie.
39
De oogbewegingen worden onderverdeeld in volgende categorieën: • Convergentie: het naar elkaar toe bewegen van het linker- en rechteroog. • Divergentie: het van elkaar weg bewegen van het linker- en rechteroog. • Volgbeweging: de langzame gecontroleerde beweging die gemaakt wordt bij het volgen van een object. • Saccade: een snelle oogbeweging, zoals tijdens het lezen. • Fixatie: de beide ogen blijven gedurende een bepaalde tijd op een doel gericht staan. • Tremor of microsaccades: een kleine maar frequente trilling rond het fixatiepunt tijdens de fixatie. • Drift: het wegglijden van het fixatiepunt, weg van het oorspronkelijke richtpunt bij een fixatie. • Regressie: Een terugkeer naar een recent fixatiepunt. Het knipperen van het oog duurt tussen de 300 en 400 milliseconden. Een saccade, zoals bij het verspringen van een woord naar een ander tijdens het lezen, duurt ongeveer 40 milliseconden. Een fixatie, zoals bij het lezen van een moeilijk woord, duurt ongeveer 250 milliseconden. Het lezen van een tekst zal meestal een mengelmoes zijn van saccades, fixaties en regressies. De gemiddelde leessnelheid bedraagt 240 woorden per minuut. Voor het registreren van leesbewegingen is daarom een frequentie van 100 hertz vereist. Voor het besturen van een omgeving is het enkel nodig de fixaties te kunnen onderscheiden en is een eyetracker met een frequentie van 25 hertz voldoende. Voor het opnemen van microsaccades moeten erg nauwkeurige eyetrackers gebruikt worden. Microsaccades variëren immers tussen 0,03◦ en 2◦ waarbij de meerderheid onder de 0,5◦ blijft.
3.9 Beperkingen van het beeldverwerkingsalgoritme Voor deze thesis werd extra aandacht besteed aan het robuust detecteren van de pupil en reflectie in een afbeelding. Dit verhinderde echter niet dat de ontwikkelde methode nog steeds verschillende beperkingen kent. Een eerste beperking is het verbod tot dragen van een bril. Deze zal net als het oog het infrarode licht terugkaatsen. Daardoor ontstaan te veel reflecties en is het niet gegarandeerd dat de eyetracker de juiste reflecties neemt voor het berekenen van de kijkrichting. Hoewel er speciale maatregelen werden getroffen om belichtingsinvloeden te verminderen is het nog steeds niet toegelaten dat er zich andere felle lichtbronnen voor de persoon bevinden. De zon, een lamp of een groot reflecterend oppervlak (zoals een witte muur waar de zon op reflecteert) zorgen ervoor dat de rand van de pupil niet correct waarneembaar is. 40
Een laatste probleem doet zich voor bij snelle oogbewegingen. Bij snelle oogbewegingen neemt de camera een onvoldoende scherp beeld van het oog. Voor snelle, en veel variërende oogbewegingen kan er dus bij het gebruik van de in dit werk gebruikte camera geen zekerheid gegeven worden voor het goed detecteren van de kijkrichting.
3.10 Besluit In dit hoofdstuk werd geprobeerd de coördinaten van de reflecties en het centrum van de pupil op een afbeelding te bepalen. Tijdens deze masterproef werd dit uitgewerkt in de programmeertaal C++ met behulp van de OpenCV beeldverwerkingsbibliotheek. Het opgestelde beeldverwerkingsalgoritme voor het detecteren van de pupil maakt gebruik van histogram equalisatie en een variabele drempelwaarde waardoor de invloed van belichting verminderd werd. Voor het detecteren van de reflecties werd een eenvoudigere en robuustere oplossing uitgewerkt aan de hand van een drempelwaardefunctie op het rode kleurkanaal van de verkregen afbeeldingen. Doordat een voldoende groot aantal punten gebruikt wordt voor het bepalen van de ellips, hebben de verkregen coördinaten een voldoende grote nauwkeurigheid. Door te werken met deze hogere resolutie zullen de fouten in de kijkrichting, die zouden ontstaan door het verkeerd bepalen van het centrum van pupil en reflecties, behoorlijk meevallen. De tijdsanalyse bewees dat 25 beelden per seconde kunnen verwerkt worden. De beperkingen liggen hier niet bij de software maar bij de camera die gebruikt werd. Daarom is het niet nodig nog verdere inspanningen te doen om de software te beperken. Eenmaal deze coördinaten gekend zijn, kan overgaan worden naar het bepalen van de kijkrichting uit deze gegevens. In het volgende hoofdstuk wordt hierop dieper ingegaan.
41
4 Berekenen kijkrichting Een volgend probleem bij het ontwikkelen van een eyetracker is de keuze van een passende berekeningsmethode voor het bepalen van de kijkrichting. Deze keuze heeft de grootste invloed op de nauwkeurigheid van het toestel. De fysische opstelling bepaalt de methoden die bruikbaar zijn. Remote eyetrackers op basis van neurale netwerken of head mounted toestellen zullen andere berekeningsmethoden gebruiken dan onze opstelling. Na een overzicht van de in de literatuur beschreven methoden volgt de beschrijving van de gehanteerde technieken samen met de bekomen resultaten.
4.1 Literatuuroverzicht De gepubliceerde werken over de bepaling van het kijkpunt bij remote eyetrackers worden ingedeeld in twee categorieën [64, 65], de mapping methoden en de 3D-model methoden.
4.1.1 Mapping methoden De mapping methoden zijn de eenvoudigste methoden voor het berekenen van het kijkpunt. Deze methoden vereisen het gebruik van minimum één infrarode led. De berekeningen kunnen op verschillende manieren ingevuld worden. Een mapping methode kenmerkt zich doordat een verzameling vectoren in pixelcoördinaten (Px , Py ) verschaald wordt naar schermcoördinaten ... ... (P x , P y ) 1 . In een eerste beschreven methode wordt de vector tussen het centrum van de pupil P (Px , Py ) en de reflectie R(Rx , Ry ) als input genomen. A. Perez [26] gebruikte bijvoorbeeld deze methode. Hij stelde een kwadratische functie ... ... op ... die het verband legde tussen de pixelcoördinaten en de coördinaten van het kijkpunt K (K x , K y ) . De nauwkeurigheid van zijn eyetracker is echter niet bekend. Omdat één reflectie meestal in mindere nauwkeurigheden resulteert, wordt gebruik gemaakt van meerdere reflecties. Hierdoor verhoogt de nauwkeurigheid en kan de kalibratie eventueel weggelaten worden. Een methode waar bijvoorbeeld geen kalibratie vereist is, wordt voorgesteld in [25]. Bij de berekeningen maken de auteurs gebruik van vier reflecties (R1 , R2 , R3 , R4 ) van lichtbronnen die op de hoekpunten van het beeldscherm geplaatst zijn. Hiermee bepalen ze de vier vectoren →
→
→
→
R1 P , R2 P , R3 P , R4 P tussen pupil- en reflectiemiddelpunten. De coördinaten van deze vier vectoren vormen de hoekpunten van de vierhoek ABCD. ... ...Deze ... ... vierhoek wordt vervolgens via de cross ratio methode geschaald naar een rechthoek AB C D. Meer informatie over de cross ratio methode is beschreven in 4.2.3 . Deze methode houdt geen rekening met de rondheid van het oog. Door ook dit in rekening te brengen kan deze methode nog verder geperfectioneerd worden. Punten aangeduid met ... zijn punten in het beeldschermassenstelsel in beeldcoördinaten, punten zonder ... zijn punten in op de afbeelding (pixelcoördinaten). 1
42
Figuur 4.1: Grafische voorstelling van het bepalen van een kijkpunt aan de hand van de cross ratio methode.
Om tegemoet te komen aan de beperkingen van bovenstaand model maakten Koreaanse onderzoekers [23] gebruik van een tussenstap in het berekeningsproces. Met de pixelcoördinaten werden eerst de virtuele projectiepunten berekend, om vervolgens de virtuele projectiepunten om te zetten naar beeldschermcoördinaten. Virtuele projectiepunten geven aan waar de reflecties theoretisch zouden moeten liggen indien het oog een plat vlak loodrecht op de filmrichting zou zijn. De bepaling van virtuele punten gebeurt theoretisch aan de hand van de geometrische opbouw van het oog. De auteurs concludeerden echter dat deze omzetting vereenvoudigd kan worden tot een lineaire vergelijking die hieronder beschreven is. Vx1 = Cx + A + B(Rx1 + Cx ) Vy1 = Cy + A + B(Ry1 + Cy )
(4.1) (4.2)
Waarbij A en B bepaald worden tijdens een kalibratieproces en de punten V, R en C op onderstaande figuur afgebeeld worden.
Figuur 4.2: Voorstelling van de te zoeken virtuele projectiepunten. De punten R1 en R2 worden waargenomen in de opgenomen afbeeldingen. De virtuele projectiepunten V 1 en V 2 worden bepaald om zodoende een nauwkeurigere berekeningsmethode te bekomen.
43
In [31] werden bovenstaande methode geëvalueerd en verder verbeterd. In de nieuwe methode werd een extra berekening toegevoegd om van de optische as van het oog over te gaan naar de visuele as van het oog. Op deze wijze behaalden ze 0,91◦ nauwkeurigheid. Daarmee beschikken ze over een zeer grote nauwkeurigheid voor een niet-commerciële realisatie. Verschillende onderzoekers van de universiteit van Toronto hebben zich gespecialiseerd in mapping methoden. Zij publiceerden dan ook meerdere methoden die proberen de invloed van de ronding van het oog te beperken. In hun eerste paper [66] stellen ze de resultaten voor van een eigen methode vergeleken met drie andere mapping methoden. Hun transformatie maakt gebruik van een 3x3 matrix van schaalfactoren. Tijdens de kalibratieperiode diende de persoon naar minimum vier punten te kijken en werd daarna door middel van de kleinste kwadraten methode de beste parameters bepaald. Voor hun onderzoek moesten de testpersonen op één meter van het scherm plaatsnemen en gedurende het onderzoek stil blijven zitten. Hun eigen methode was drie maal beter dan de methode van de Koreaanse onderzoekers die eerder besproken werden in deze thesis [23] en lichtjes beter dan de laatst vermelde methode [31]. Deze methode presteerde veel beter dan wanneer er geen correctie toegepast wordt voor de oogronding.
4.1.2 3D-model methoden Bij het overlopen van de mapping methoden kan geconcludeerd worden dat een eenvoudige mapping methode in lagere nauwkeurigheden resulteert. Deze methoden houden geen rekening met de ronding van het oog of de breking van het licht op het hoornvlies waardoor het kijkpunt minder accuraat berekend wordt. Daarom worden extra transformaties toegevoegd met parameters die tijdens de kalibratiefase bepaald worden. Deze transformaties moeten de vereenvoudigingen, gemaakt bij het opstellen van het berekeningsmodel, compenseren. Daarom baseren veel ontwikkelaars zich op een uitgebreider berekeningsmodel dat rekening houdt met de geometrische opbouw van het oog. Daarvoor wordt het oog benaderd aan de hand van twee bollen zoals te zien is op figuur 4.3. De kijkrichting wordt vanuit dit model met behulp van ruimtemeetkunde berekend. Daarbij wordt rekening gehouden met de brekingshoeken van het hoornvlies en de lens. Een grafische voorstelling van deze methode vindt u in figuur 4.4. Op deze manier wordt de invloed die de ronding van het oog had bij de mapping methoden verrekend.
Figuur 4.3: Op de linkerafbeelding is de bouw van het menselijk oog weergegeven. De rechterafbeelding is een wiskundig benaderde voorstelling van een oog.
De nauwkeurigheid van de afmetingen van de verschillende onderdelen van het oog vormen bij deze methode de beperkende factor voor de nauwkeurigheid van het bekomen berekeningsmo44
del. Daarom wordt getracht deze parameters zo correct mogelijk in te schatten door middel van het kalibratieproces. Bij de eerste ontwikkelingen van eyetrackers gebaseerd op het 3D-model van het oog werd gewerkt met meerdere camera’s. Doordat deze camera’s gesynchroniseerd dienen te worden, hebben recente pogingen zich toegelegd op het ontwikkelen van eyetrackers waarvoor slechts één camera nodig was.
Figuur 4.4: Op bovenstaande figuur is het 3D-model van het oog weergegeven dat opgesteld werd bij het gebruik van de 3D-model methode.
[27, 32, 60] zijn allen voorbeelden van eyetrackers die ongeveer een nauwkeurigheid halen van 1◦ met slechts één camera en één of twee reflectiediodes en een berekeningsmodel gebaseerd op het 3-D model van het oog.
4.2 Geïmplementeerde methoden 4.2.1 Methode met twee kalibratiepunten en één infrarode reflectie Bij deze methode moet de gebruiker eerst twee kalibratiepunten bekijken waarvan de coördinaten op het scherm gekend zijn. Aan de hand van de data verkregen met deze kalibratiepunten worden alle andere punten berekend. Het spreekt voor zich dat indien een van deze kalibratiepunten niet zorgvuldig opgenomen wordt of als er na de kalibratieperiode een verplaatsing van het hoofd gebeurt, de nauwkeurigheid van de eyetracker lager ligt. Concreet wordt voor iedere afbeelding de vector tussen het centrum van de pupil en het centrum van de reflectie berekend. De lengte van deze vector staat uitgedrukt in pixels. Met behulp van de twee kalibratiepunten wordt in de X-richting en in de Y-richting een schaalfactor en een offset berekend om over te gaan van pixelcoördinaten naar beeldschermcoördinaten. Tenslotte worden deze factoren gebruikt om de kijkpunten op het scherm te berekenen. 45
Het verband tussen de schermcoördinaten van het kijkpunt en de coördinaten van de verschilvector kan beschreven worden met volgende vergelijking:
... K x = α1 Kx + α2 ... K y = α3 Ky + α4
(4.3) (4.4)
α1 , α2 , α3 en α4 zijn de parameters die tijdens de kalibratiefase worden bepaald.
Figuur 4.5: Grafische voorstelling van de gebruikte methode. De coördinaten van de pupil-reflectievectoren bij het bekijken van de vier hoekpunten en een kijkpunt werden uitgezet. Twee kalibratiepunten worden gebruikt om de berekeningsparameters te bepalen en vervolgens worden alle punten verschaald naar beeldschermcoördinaten.
4.2.2 Methode met drie kalibratiepunten en één infrarode reflectie Bij de vorige methode was de x-coördinaat van het beeldschermpunt enkel afhankelijk van de x-coördinaat van de verschilvector. Bij de methode uit deze sectie is dit niet het geval, er wordt een uitbreiding voorzien in de vorm van twee extra parameters. Een extra kalibratiepunt is dus nodig bij het gebruik van deze methode. Het vooropgestelde verband is hieronder beschreven.
... K x = α1 Kx + α2 Ky + α3 ... K y = α4 Kx + α5 Ky + α6
(4.5) (4.6)
Deze methode kan grafisch geïllustreerd worden (zie figuur 4.6). De drie kalibratiepunten A, B, C bepalen een parallellogram ABCD met nog een vierde ... ... ... ... onbekend punt D. Dit parallellogram wordt vervolgens verschaald tot een rechthoek AB C D. Het lijnstuk AB komt hierdoor overeen 46
... ... met de bovenzijde van de monitor AB of de ... ...x-as van het beeldscherm. Het lijnstuk BC komt overeen met de linkerzijde van de monitor B C of de y-as van het beeldscherm. Wanneer door het kijkpunt K lijnen getrokken worden evenwijdig met de zijden AB en BC van de parallellogram worden op de parallellogram snijpunten verkregen. Deze snijpunten bepalen punten op de rechten AB en BC en dus de x- en y-coördinaat van het kijkpunt op het beeldscherm.
Figuur 4.6: Wanneer de punten A,B en C gebruikt worden als kalibratiepunten ziet u in bovenstaande afbeelding de grafische voorstelling van deze methode.
4.2.3 Methoden met vier kalibratiepunten en één infrarode reflectie Om een betere nauwkeurigheid te bekomen werd onderzocht om meer punten in de kalibratie te betrekken. Twee methoden met vier kalibratiepunten werden uitgewerkt. Methode 1 met vier kalibratiepunten en één infrarode reflectie Deze berekeningsmethode is gebaseerd op de cross ratio berekeningsmethode beschreven in [25]. In plaats van vier reflecties wordt gebruik gemaakt van vier kalibratiepunten als referentiepunten. Praktisch worden bij de cross ratio methode eerst de snijpunten gezocht van de horizontale en verticale lijnen van de vierhoek ABCD gevormd door de kalibratiepunten. Op deze manier worden het horizontale en het verticale vluchtpunt, V en W, van de vierhoek bekomen. Vervolgens worden de snijpunten, U en R, gezocht van de vierhoek ABCD met de rechten VK en WK. Deze rechten verbinden de vluchtpunten V en W met de coördinaten van de pupilreflectievector K van de beschouwde afbeelding. Daarnaast worden ook de snijpunten, S en T, gezocht van de vierhoek ABCD met de rechten VE en WE waarbij E het snijpunt van de diagonalen van de vierhoek ABCD is.
47
Op de zijden AB en BC van de vierhoek worden op deze manier telkens twee snijpunten, S,R en T,U bekomen. Deze snijpunten verdelen de zijden in drie lijnstukken. De cross ratio methode impliceert nu net dat zowel bij de beeldcoördinaten en bij de schermcoördinaten de verhoudingen van de lengtes van...deze constant blijft. Hierdoor kunnen in het beeldscher... ...lijnstukken ... massenstelsel de punten S ,R,T en U bepaald worden en kan het kijkpunt op het beeldscherm berekend worden. Deze methode is grafisch weergegeven in figuur 4.7.
Figuur 4.7: Grafische voorstelling van de gebruikte methode. De coördinaten van de vectoren bij de vier kalibratiepunten en van een onbekend punt werden uitgezet. Met behulp van de vier hoekpunten van de vierhoek worden de coördinaten van de vectoren vervolgens verschaald naar beeldschermcoördinaten.
De berekeningen gebeuren aan de hand van volgende formules:
CRx =
(Ax Ry − Rx Ay )(Sx By − Bx Sy ) (Ax Sy − Sx Ay )(Rx By − Bx Ry )
(4.7)
CRy =
(Bx Ty − Tx By )(Ux Cy − Cx Uy ) (Bx Uy − Ux By )(Cx Ty − Tx Cy )
(4.8)
... Schermbreedte.CRx Kx = 1 + CRx
(4.9)
... Schermhoogte.CRy Ky = 1 + CRy
(4.10)
Schermbreedte en schermhoogte zijn aangeduid in pixels. Methode 2 met vier kalibratiepunten en één infrarode reflectie Tenslotte werd nog een methode ontwikkeld die gebaseerd is op de projectieve transformatie. De projectieve transformatie beschrijft de veranderingen van de posities van de waargenomen objecten als het gezichtspunt van de persoon verandert. Praktisch wordt het camera-assenstelsel 48
verschaald, verplaatst en over twee hoeken verdraaid zodat de vier kalibratiepunten, een rechthoek voorstellen in het nieuw assenstelsel.
Figuur 4.8: Op beide figuren wordt de projectie van pixelcoördinaten naar beeldschermcoördinaten afgebeeld.
De transformatie van één punt van het camera-assenstelsel naar het beeldschermassenstelsel wordt als volgt beschreven [67]: ... Kx α1 α2 α3 K x ... ρ K y = α4 α5 α6 Ky 1 α7 α8 α9 1
(4.11)
Hierbij is ρ een schaalfactor die verschillend van 1 dient te zijn. De schaalfactor wordt weggewerkt en het stelsel wordt vereenvoudigd tot volgende twee vergelijkingen:
... ... ... α1 Kx + α2 Kx + α3 − α7 Kx K x − α8 Kx K x = K x ... ... ... α4 Ky + α5 Ky + α5 − α7 Ky K y − α8 Ky K y = K y
(4.12) (4.13)
Dit stelsel bevat acht onbekenden. Vier verschillende punten waarvan zowel de beeldschermcoördinaten en de pixelcoördinaten gekend zijn, laten toe dit stelsel eenduidig op te lossen zodat deze acht parameters bepaald kunnen worden.
4.2.4 Methode zonder kalibratiepunten en twee reflecties Het gebruik van twee reflecties zorgt ervoor dat twee referentiepunten verkregen worden. De twee infrarode belichtingsgroepen worden naast het scherm geplaatst en aan deze punten wordt een schermcoördinaat toegekend. Wanneer de twee reflecties gevonden worden in de afbeelding kan besloten worden dat de afstand tussen de twee reflecties op de figuur overeenkomt met de afstand tussen de twee reflecties in beeldschermcoördinaten.
49
Uit ieder opgenomen beeld worden 3 coördinatenkoppels verkregen: • Centrum pupil Px , Py • Centrum reflectie 1 Rx1 , Ry1 • Centrum reflectie 2 Rx2 , Ry2 Bovendien kunnen van de belichtingsgroepen de beeldschermcoördinaten bepaald worden. ... ... • Coördinaat belichtingsgroep 1 R1 x , R1 y ... ... • Coördinaat belichtingsgroep 1 R2 x , R2 y ... ... De kijkpuntcoördinaten K x , K y worden bepaald met volgende formules: ... ... ... Px − Rx1 ...2 1 1 .( R − R Kx = R x + 2 x x) 1 Rx − Rx
(4.14)
... ... Py − Ry1 ...2 ... 1 1 .( R − R Ky = R y + 2 y y) Ry − Ry1
(4.15)
Deze methode werd met succes geïmplementeerd tijdens dit eindwerk. In tegenstelling tot de methodes met één infrarode reflectie werd de nauwkeurigheid echter niet bepaald.
4.2.5 Methode zonder kalibratiepunten en vier reflecties Door het toevoegen van nog twee extra reflecties kan de nauwkeurigheid van de berekening verhoogd worden en vervalt de eis dat het hoofd gefixeerd moet zijn. De berekening gebeurt analoog aan de cross ratio methode of de projectiemethode met één reflectiediode, de gegevens van de kalibratiepunten worden nu vervangen door de gegevens die de extra reflecties opleveren voor het oplossen van de vergelijkingen. Het gebruik van deze methode vindt zijn beperkingen echter in het feit dat het erg moeilijk wordt om vier reflecties te detecteren. Vaak zal de hoek tussen de kijkrichting en de belichtingsgroep te groot worden waardoor de reflectie niet meer zichtbaar is in de videobeelden. Deze methode werd ook in het labo getest. Tijdens de experimenten werd ervaren dat het praktisch niet meer mogelijk was om alle reflecties goed te detecteren met een bruikbare opstelling. Er werd geïnformeerd bij auteurs van verschillende wetenschappelijke bijdragen die deze methode beschreven hadden hoe zij erin geslaagd waren deze methode te gebruiken. Er werd echter geen oplossing gevonden waarbij de bruikbaarheid gegarandeerd was.
50
4.3 Vergelijking van de verschillende methoden Om de verschillende methoden met één infrarode reflectie op een goede manier te kunnen vergelijken werd een experiment opgezet. Daarvoor werden 17 personen gevraagd 15 punten te bekijken terwijl hun oog gefilmd werd. In alle afbeeldingen werd de pupil-reflectievector berekend en opgetekend in grafieken (zie grafiek 4.9). De eerste vijf punten werden gebruikt voor de kalibratie van de methoden. Met de andere tien punten werden de kijkpunten van de personen berekend (zie figuur 4.10). Met deze punten kan de nauwkeurigheid van de eyetracker gecontroleerd worden. Elke vrijwilliger kijkt naar dezelfde punten. De onderlinge verschillen tussen de verschillende berekeningsalgoritmes zijn dus te wijten aan de verschillen tussen de methoden. Het afnemen van de testen gebeurde op verschillende locaties. De personen waren willekeurig gekozen waardoor een mengelmoes van pupilgroottes, huidskleuren en oogkleuren ontstond. Met dit experiment wordt de hoeknauwkeurigheid van de eyetracker bekomen. De resultaten staan afgebeeld in volgende tabel: Tabel 4.1: Onderstaande tabel geeft de hoeknauwkeurigheden weer van de verschillende methoden in graden.
Methode 1 2 3 4 5 6
#Kalibratiepunten #Reflecties Nauwkeurigheid (◦ ) twee één 2,3 drie één 2,4 vier één 2,4 vier één 2,0 geen twee Niet bepaald geen vier Niet bruikbaar
De methode gebaseerd op de projectieve transformatie met vier kalibratiepunten en één reflectie is de beste methode. Merk hierbij op dat de resultaten ook beïnvloed worden door de testpersonen. Wanneer de testpersoon tijdens het experiment afgeleid is, beweegt of wegkijkt, zal deze afwijking ook meegenomen worden in de berekeningen. Deze onregelmatigheden zullen de nauwkeurigheden van alle methoden verminderen omdat de dataset die gebruikt werd voor de nauwkeurigheidsbepaling voor alle methoden dezelfde was. Dat deze bewegingen voorkomen, is in de resultaten duidelijk zichtbaar. Op de afbeeldingen is dan duidelijk te zien dat voor beide ogen de punten op eenzelfde manier afwijken van de verwachte plaats (bijvoorbeeld figuur 4.11). Om dit verschijnsel te vermijden gebruiken andere onderzoekers [68] alleen virtuele beelden om hun berekeningsmethoden te testen. Met behulp van een grafisch tekenpakket simuleerden ze het experiment en namen zo foto’s op van een gesimuleerd oog. Hun resultaten hadden geen invloed van slecht uitgevoerde tests en zijn daardoor nauwkeuriger. In [26] werd de eis opgesteld dat de reflecties binnen de iris dienden gelegen te zijn voor een correcte berekening. De reden waarom deze eis opgelegd werd vond zijn oorsprong tijdens 51
52
Figuur 4.9: De pupil-reflectievectoren van één persoon die het experiment uitvoerde. De vierkantjes zijn de gegevens van het rechteroog van de persoon. De kruisjes zijn de gegevens van het linkeroog. Door de verschillende posities van beide ogen zien is de data horizontaal verschoven over ongeveer 12 pixels. Voor beide ogen kan reeds duidelijk het patroon herkend worden dat geprojecteerd werd tijdens het experiment op het scherm.
53
Figuur 4.10: Voorbeeld van de grafiek met berekende kijkpunten bekomen voor de dataset afgebeeld in figuur 4.9. Opnieuw zijn de vierkantjes gegevens van het linkeroog en kruisjes gegevens van het rechteroog. Cirkels met een kruisje in zijn de punten op het beeldscherm waar de personen naar dienden te kijken tijdens het experiment. De zwarte rechthoek is de omtrek van het beeldscherm.
54
Figuur 4.11: De vier aangeduide punten (twee punten voor het linkeroog en twee punten van het rechteroog) wijken af van de andere data. Doordat deze punten voor beide ogen opeen zelfde manier afwijken wordt verondersteld dat deze afwijking komt door het afgeleid zijn van de testpersoon.
de experimenten. Bij verschillende personen was de nauwkeurigheid erg laag en werd op de grafieken vastgesteld dat één kalibratiepunt erg afwijkend was tegenover de rest van de data. Om dit verschijnsel duidelijker in kaart te brengen werd volgend experiment opgezet: een testpersoon werd gevraagd naar 15 punten te kijken op een horizontale lijn. Aan de hand van de verkregen data was duidelijk te zien dat alle punten ongeveer op een constante afstand van elkaar liggen op een lijn behalve het laatste punt. In de bijbehorende video’s was te zien dat bij het vergroten van de hoek tussen de kijkrichting en de filmrichting, een tweede reflectie zichtbaar werd. Doordat het oogwit en het hoornvlies een andere brekingshoek bezitten voor het invallende licht ontstaan er twee reflecties voor iedere belichtingsbron. Naarmate de hoek nog groter werd, kwamen de reflecties dichter bij elkaar te liggen tot ze te dicht bij elkaar liggen en niet meer afzonderlijk kunnen gedetecteerd worden. Op dit punt zien wordt een sprong in de grafiek opgemerkt.
Figuur 4.12: De coördinaten van de pupil-reflectievectoren uitgezet bij het volgen van een horizontale lijn op het scherm. De grafiek toont dat alle punten even ver van elkaar op een lijn liggen behalve één punt. De oorzaak van deze sprong is het verschuiven van de reflectie van binnen de iris naar buiten de iris.
Aan bovenstaand effect dient vooral aandacht besteed te worden bij het van de afstand die een gebruiker moet houden tot het scherm. Om zo groot mogelijke nauwkeurigheid te bekomen worden de kalibratiepunten best aan de hoeken van het scherm geplaatst. De fout van het beeldverwerkingsalgoritme bij het bepalen van reflectiecentrum en pupilcentrum zal minder invloed hebben wanneer een grote afstand tussen de kalibratiepunten genomen wordt. Dit kan afgeleid worden uit het feit dat de fout van de beeldverwerkingsalgoritme constant zal blijven bij het verplaatsen van de calibratiepunten, maar het verschil tussen de afbeeldingen van het oog groter zal zijn bij het vergroten van de afstand tussen de kalibratiepunten op het scherm. Maar wanneer de persoon te dicht ( ± 20 cm) bij het scherm plaatsneemt zijn het net de punten aan de rand van het scherm die beïnvloed worden door dit fenomeen. Doordat de kalibratie niet correct is, zal bijgevolg voor het gehele scherm een foutieve berekening van het kijkpunt gebeuren. 55
Figuur 4.13: Indien de persoon verder wegkijkt van de camera verschijnt een tweede reflectie. Wanneer de persoon nog verder wegkijkt komen de twee reflecties nog dichter bij elkaar te liggen totdat ze niet meer te onderscheiden zijn.
Om dit probleem te vermijden worden twee mogelijkheden overwogen. Bij de eerste mogelijkheid worden de kalibratiepunten niet meer op de hoeken van het scherm geplaatst. De kalibratiepunten worden bijvoorbeeld op 1/4 en 3/4 van de hoogte en breedte geplaatst. De nauwkeurigheid van de eyetracker daalt daardoor lichtjes. De punten aan de rand van het scherm blijven echter nog beïnvloed en zullen niet correct berekend worden. Bij de tweede mogelijkheid wordt de persoon verder ( ± 40 cm) van het scherm geplaatst en worden de kalibratiepunten terug op de hoeken van het scherm vertoond. Hierdoor zullen de reflecties altijd van elkaar kunnen onderscheiden worden en zal bovenstaand effect niet langer optreden.
4.4 Het combineren van de kijkpunten van beide ogen Voor beide ogen wordt ongeveer dezelfde nauwkeurigheid bekomen, maar zorgt het combineren van de kijkpunten van de twee ogen voor een verbetering? Om hierop een antwoord te weten werd met dezelfde dataset een tweede experiment opgezet. De berekeningen werden nu enkel door de beste methode verwerkt, maar nu vier maal op volgende manieren: • Nauwkeurigheid rechteroog. • Nauwkeurigheid linkeroog • Nauwkeurigheid rechteroog EN linkeroog: Indien één van beide ogen niet gedetecteerd werd, kan het kijkpunt niet bepaald worden en wordt overgegaan naar de volgende afbeelding zonder berekening van het kijkpunt. In het andere geval wordt het gemiddelde berekend van beide kijkpunten. • Nauwkeurigheid rechteroog OF linkeroog: Indien één van beide ogen niet gedetecteerd werd, wordt het kijkpunt van het andere oog genomen. In het andere geval wordt het gemiddelde berekend van beide kijkpunten. 56
Tabel 4.2: Onderstaande tabel geeft de hoeknauwkeurigheden weer bij het combineren van de kijkpunten van beide ogen.
Methode Nauwkeurigheid Oog 1 1.9◦ Oog 2 2◦ Oog 1 EN Oog 2 1,6◦ Oog 1 OF Oog 2 1,5◦ Tabel 4.2 toont aan dat het combineren van beide ogen steeds voordelig is. Dit komt door een compenserend effect. Wanneer beide berekende punten tegenover elkaar rond het verwachtte punt liggen, zal het gemiddelde van deze twee punten dichter bij de echte positie komen te liggen. Dit zorgt voor de verbetering van de nauwkeurigheid van de eyetracker. Als de OF-methode vergeleken wordt met de EN-methode blijkt dat het verschil in nauwkeurigheid niet beduidend is. Daarom wordt het best geopteerd voor de OF-methode. Hierbij zal de eyetracker bij het niet kunnen detecteren van één van beide ogen nog steeds het kijkpunt bereken. Dit zorgt voor een hogere snelheid waarmee het kijkpunt ververst kan worden en maakt een vlotter gebruik van de eyetracker mogelijk.
4.5 Invloed van verschillende gebruikers op de eyetracker De nauwkeurigheden van de verschillende gebruikers blijken te variëren tussen de 3,0◦ en 1,0◦ . De variatie tussen de personen kon echter niet aan één bepaalde oorzaak toegewezen worden. Personen waarvoor minder nauwkeurige resultaten bekomen werden, waren tijdens het experiment afgeleid of hadden ogen die door de beeldverwerking moeilijk detecteerbaar waren (klein, weinig contrast, ...). De invloed van de gebruiker speelt hier dus enerzijds een rol, voert hij het experiment goed uit? Anderzijds komt hier naar voor hoe belangrijk een robuuste pupil- en reflectiedetectie wel is voor de goede werking van de eyetracker. Algemeen kan gesteld worden dat de invloed van verschillende gebruikers zich veel meer zal laten voelen in de beeldverwerkingssoftware (bijvoorbeeld kleine/grote pupil, donkere/heldere ogen, ...) dan binnen de berekeningen. Het dragen van lenzen had geen nadelige invloed op de berekeningen. Het dragen van een bril maakte het echter onmogelijk om het kijkpunt te berekenen.
4.6 Besluit In dit hoofdstuk werden vijf berekeningsmethoden voorgesteld: vier methoden met één reflectie en één methode met twee reflecties. Een zesde methode met vier reflecties werd onderzocht maar niet bruikbaar bevonden. De vier methoden met twee reflecties werden tegenover elkaar getest aan de hand van verschillende experimenten. Daaruit werden volgende conclusies getrokken: 57
• De methode met vier kalibratiepunten en één infrarode reflectie gebaseerd op de projectieve transformatie was duidelijk beter dan de andere methoden. • Door het combineren van de kijkpunten van beide ogen in een OF-functie wordt de nauwkeurigheid nog gevoelig verbeterd. • Met de gekozen methode worden nauwkeurigheden van 1-3◦ bepaald voor de verschillende proefpersonen. Voor de gehele groep werd een gemiddelde van 1,5◦ bekomen. Met een nauwkeurigheid van 1,5◦ beschikt de eyetracker over een goede resolutie. Zeker indien rekening gehouden wordt met de kostprijs van de gebruikte materialen en het feit dat dit resultaat over één jaar behaald werd zonder voorkennis.
58
5 Ontwikkeling van een demo-applicatie De beweringen die te lezen zijn in verschillende wetenschappelijke bijdragen moeten meestal kritisch bekeken worden. De resultaten zijn bijvoorbeeld slechts geldig in beperkte omstandigheden wat het ontwerp eigenlijk niet geschikt maakt voor de beoogde doelstellingen. Daarom wordt in dit eindwerk de proef op de som genomen. Is het mogelijk een toepassing aan te sturen met behulp van de ontwikkelde eyetracker? Dit is de beste test om te kijken of het ontwikkelde apparaat voldoet aan de door de gebruiker gestelde eisen inzake gebruiksgemak, nauwkeurigheid, snelheid, ... . In dit hoofdstuk wordt de toepassing besproken waarmee de eyetracker getest werd. Daarvoor werd terug de literatuur geraadpleegd en de ontwikkelde toepassingen opgesomd. Op het einde van dit hoofdstuk vindt u de resultaten en de ondervindingen die uit de tests met de eyetracker gehaald werden.
5.1 Inleiding Het ontwikkelen van toepassingen gebeurde in het verleden op drie manieren. Een eerste manier is dat de producent (bijvoorbeeld [40–42]) van de eyetracker zelf software produceerde voor het gebruik met zijn toestel. Deze programma’s zijn meestal applicaties voor het verzamelen van kijkgegevens en het statistisch verwerken van de data. Een tweede groep toepassingen werd op vraag van de klant door softwareleveranciers ontwikkeld. Denk hierbij vooral aan applicaties voor het besturen van de omgeving of andere erg specifieke toepassingen van de eyetracker. De derde groep toepassingen werd ontwikkeld door firma’s die zich gespecialiseerd hebben in communicatiehulpmiddelen [69] voor mindervaliden. Naast een ruim aanbod aan programma’s en communicatiehulpmiddelen ontwikkelden zij ook communicatieprogramma’s voor een bepaald type eyetracker. Het probleem bij bovenstaande drie methoden is dat er geen uitwisselbaarheid bestaat van de programma’s tussen de verschillende eyetrackers. Deze programma’s zijn bestemd voor het gebruik met een eyetracker van één bepaald merk. Deze toepassingen gebruiken niet alleen de coördinaten van het kijkpunt en het klikgedrag, ze wisselen ook commando’s uit met de eyetracker voor het starten en stoppen van het volgen van de oogbeweging, het opnieuw starten van de calibratie,... . De manier waarop deze programma’s communiceren is sterk afhankelijk van het merk van de eyetracker. Het is duidelijk dat een gestandaardiseerde interface tussen eyetrackers en softwareapplicaties een nood is zodat alle ontwikkelde softwareapplicaties bruikbaar zullen zijn met alle eyetrackers. Voor de toepassingen bestemd voor mensen met een fysieke handicap werd onder invloed van de Cogain onderzoeksgroep reeds standaardisatie vooropgesteld voor de interface tussen verschillende eyetrackers [70–72]. Daarenboven organiseerde deze onderzoeksgroep een wedstrijd voor studenten. De opdracht was het ontwikkelen van een opensource applicatie voor een eyetracker 59
die voldoet aan de vooropgestelde standaardisatie. Dit zorgde voor een groot aantal gratis te downloaden programma’s die gebruikt mogen worden bij niet-commerciële onderzoeksprojecten. Een overzicht van enkele toepassingen is te vinden in [73]. • Tekstinvoerapplicaties: UKO II, StarGazer en Dasher • Tekenprogramma: EyeArt • Computerspellen: GazeTrain, Puzzle,Gaze Based Sudoku en Road To Santiago • 3D leefomgeving: Second Life via Snap Clutch Interface • Muziekeditor: Music Editor Voor het ontwikkelen van een eigen eyetracker is het dus interessant om aan deze standaard te voldoen. Hoewel de grote producenten van eyetrackers nog niet zijn overgeschakeld is dit reeds een begin naar uniformiteit. In de ontwikkelde eyetracker is deze gestandaardiseerde interface nog niet geïmplementeerd.
5.2 Koppeling met Dasher Voor een demo-applicatie om de eyetracker te testen, kozen wij voor de tekstinvoersoftware Dasher [74]. Dasher heeft als voordeel dat eenmaal het programma opgestart is, het niet meer vereist is te klikken om gebruik te maken van het programma. Daardoor was het niet nodig dat de klikfunctionaliteiten reeds geïmplementeerd waren op het ogenblik van de experimenten. Dasher werkt volgens een horizontaal inzoomsysteem. De gebruiker komt bij de opstart van het programma in de startscherm zoals weergegeven in 5.1.
Figuur 5.1: Overzicht van het opstartscherm van Dasher.
60
Op bovenstaand scherm zijn volgende zaken belangrijk: • 1: De tekstbalk, in deze balk verschijnt de getypte tekst • 2: De cursor, hiermee wordt het programma gestuurd • 3: De keuzelijst met letters, deze staan gedurende het gehele programma in dezelfde volgorde, namelijk van boven naar onder: – Kleine letters– in zelfde kleur als gekozen letter – Hoofdletters– in gele zone – Cijfers– in rode zone – Leestekens– in groene zone – Spatie– in witte zone • 4: Gekozen taal, voor Dasher zijn bibliotheken verkrijgbaar voor verschillende talen. Het typen van tekst gebeurt door achtereenvolgens de verschillende letters te selecteren van het in te geven woord. Het selecteren van één letter gebeurt door de muiscursor te verplaatsen naar het vak van de letter. De letters, cijfers en tekens staan altijd onder elkaar. Tijdens het kijken naar een bepaald punt op het scherm wordt er ingezoomd op de bewuste plaats. Wanneer ingezoomd is op een letter, komt rechts van deze letter reeds een nieuwe reeks met tekens naar voor waar het volgende karakter kan geselecteerd worden. Op deze wijze worden alle karakters van de tekst getypt door telkens op een volgende symbool in te zoomen aan de rechterkant van het scherm. Op figuur 5.2 is te zien hoe het woord "voorbeeld" getypt wordt. Wanneer de gebruiker een fout maakt, kan hij dit corrigeren door naar links te kijken en uit te zoomen.
Figuur 5.2: In bovenstaande figuur is voorgesteld hoe het woord "voorbeeld" getypt moet worden. De letters "voor" zijn reeds geselecteerd en op de figuur is te zien dat het woord "voorbeeld" voorspeld wordt.
Door de combinatie van de geïntegreerde bibliotheek, kleurcodering en een intelligent zoomsysteem worden grote typsnelheden, voor mensen met een handicap, gehaald. 61
5.3 Resultaten De nauwkeurigheid van onze eyetracker was voldoende voor het typen van een tekst met de Dasher software. Vooraleer er optimale typsnelheden kunnen gehaald worden, is het duidelijk dat de gebruiker eerst een leerfase doorloopt. Daarom is het handig om de persoon eerst kennis te laten maken met Dasher met gewone muisbediening. Op deze manier kan de gebruiker bij het gebruik van de eyetracker zich direct concentreren op het typen van tekst in plaats van het verkennen van de software-omgeving. Het gebruik van de ogen als input op zich is ook een element waar de gebruiker dient aan te wennen. Bij het gebruik van Dasher kwam het meermaals voor dat een gebruiker op zoek was naar een letter, maar deze letter moeilijk vond omdat Dasher teveel inzoomde tijdens het zoeken. Het duurde even voordat de testpersonen doorhadden hoe ze op zoek moesten gaan naar het bewuste teken zonder daarbij andere letters te selecteren. Bij het gebruik van een ooggecontroleerde input is het op die momenten belangrijk de kalmte te bewaren om te voorkomen dat er verkeerde signalen worden gezonden naar de computer. Voor het gebruik van eyetrackers is het dus aangeraden voldoende te trainen om tot een optimale gebruikssnelheid te komen. De experimenten met Dasher leerden ons ook dat het gebruik van de beeldverwerkingsalgoritme dat beide ogen detecteert vrij belastend is voor de processor. Bij het gebruik van de eyetracker samen met Dasher, waarvan de berekeningsprocessen ook vrij tijdrovend zijn, werd ondervonden dat de werking van beide programma’s vertraagde.
5.4 Besluit Met het prototype en de gratis beschikbare software Dasher werd in geslaagd tekst te typen met de eyetracker. Zelfs wanneer slechts één oog gebruikt werd voor het berekenen van het kijkpunt ondervond de gebruiker geen problemen voor het besturen van de software. De snelheid waarmee dit gebeurde werd niet opgemeten, maar de experimenten toonden aan dat de ervaring van de gebruiker een grote invloed heeft op de typsnelheid. Daarnaast leerde deze test dat bij het detecteren van beide ogen de werking van de eyetracker vertraagd was.
62
6 Algemene besluiten 6.1 Herhaling van de probleemstelling Een eyetracker bepaalt het kijkpunt van een persoon. De relevantie van een eyetracker werd al meermaals aangetoond met verschillende onderzoeken in de vakgebieden van de psychologie en medische hulpverlening. Tegenwoordig wordt onderzocht of een eyetracker een alternatieve communicatiemethode is tussen mens en computer. Commercieel verkrijgbare eyetrackers blijven echter tot op vandaag nog steeds zeer dure toestellen. Om de eyetracker beschikbaar te maken voor het ruime publiek moet de prijs drastisch naar omlaag. Daarom wil de Universiteit Gent een goedkoper alternatief ontwikkelen voor de commerciële toestellen.
6.2 Doelstellingen van dit eindwerk Binnen de Universiteit Gent was er nog geen ervaring van het ontwikkelen van eyetrackers. Daarom was het nodig zijn dat er eerst een grondige marktstudie gemaakt werd om zo kennis te verwerven van de hedendaagse technologieën in het domein van het eyetracken. Het hoofddoel van dit eindwerk was het ontwikkelen van een prototype. Daarbij werd oorspronkelijk het gebruik van de eyetracker beperkt tot een gebruiker die zijn hoofd stil dient te houden. Er diende extra aandacht besteed aan de achtergrond van de verschillende methoden gebruikt in de beeldverwerkingssoftware en de berekening van de kijkpunten. Als ultieme test voor het ontwikkelde toestel wordt een demonstratie verwacht waarmee de ontwikkelaar het gebruik van zijn eyetracker praktisch kan aantonen.
6.3 Algemene besluiten In dit eindwerk werd een eyetracker met een nauwkeurigheid van 1,5◦ op de kijkrichting gerealiseerd. De kostprijs van de onderdelen werd op minder dan 100 euro geschat. Daarbij werd de restrictie opgelegd dat het hoofd van de gebruiker niet beweegt. Toch kan gesteld worden dat dit een erg goed resultaat is indien we er rekening mee houden dat binnen de Universiteit Gent nog geen voorkennis was in deze materie. Slechts weinig niet-commerciële onderzoeken slaagden erin dergelijke nauwkeurigheid te behalen met zo’n laag budget. In dit eindwerk werd geopteerd om een remote eyetracker te ontwikkelen. Dit impliceert dat we gebruik maken van camera’s die de persoon van op afstand filmen. Daardoor wordt de gebruiker niet gehinderd bij het bepalen van het kijkpunt. In dit model maken we gebruik van infrarode belichting. Hierdoor kan het beeldverwerkingsalgoritme en het berekeningsalgoritme eenvoudiger gemaakt worden. Door gebruik te maken van eenvoudige en in de kleinhandel verkrijgbare componenten kon de kostprijs bewust laag gehouden worden.
63
De beeldverwerkingssoftware werd opgesteld in C++ programmeertaal met de OpenCV beeldverwerkingsbibliotheek. Daardoor werd erin geslaagd een vrij robuust en voldoende snel beeldverwerkingsalgoritme te ontwikkelen. Verschillende methoden werden opgesteld en getest aan de hand van een opgenomen dataset. De verschillende belichtingsomstandigheden waren meestal de moeilijkheid bij het correct detecteren van de benodigde elementen. Tenslotte werden verschillende berekeningsmethoden vergeleken aan de hand van experimenten met proefpersonen. Deze tests waren erg leerrijk. Met behulp van de data verkregen uit de experimenten werd de berekeningsmethoden geoptimaliseerd. Het opzet om een goedkope eyetracker te ontwikkelen mag geslaagd genoemd worden. Natuurlijk zijn er nog veel aanpassingen mogelijk om de eyetracker te verbeteren. Maar dit eindwerk geeft naast het ontwerp van het prototype ook nog ruime informatie over de alternatieve ontwerpen en de mogelijke opties voor de toekomst. Een test met een tekstinvoerapplicatie bewees de werking en capaciteiten van de eyetracker.
6.4 Verdere evolutie 6.4.1 Onderzoek beeldverwerking Het goed kunnen omgaan met extreme omstandigheden bij het detecteren van de pupil was een van de moeilijkste zaken in dit eindwerk. Verdere verbeteringen zijn hier nog steeds mogelijk onder de vorm van nieuwe beeldverwerkingsmethoden die minder gevoelig zijn voor veranderingen in belichtingsomstandigheden. Wanneer men erin slaagt robuuste pupildetectiealgoritmes te ontwikkelen voor remote eyetrackers waar het gebruik van infrarood licht niet meer nodig is, worden vele voordelen bekomen. Dergelijke methoden bestaan reeds voor head mounted toestellen zoals beschreven in [75]. Bij deze methode verdwijnt het probleem dat wanneer de persoon te ver wegkijkt van de belichtingsgroep de reflectie verloren gaat. Deze eyetrackers zullen dus robuuster reageren op bewegingen van de gebruikers. Maar het zou vooral ook de toepassingsmogelijkheden, flexibiliteit en het gebruiksgemak van de eyetrackers verhogen omdat er geen nood is aan infrarood licht. Daardoor zullen softwareontwikkelaars sneller overstappen naar applicaties die gebruik maken van een eyetracker.
6.4.2 Weglaten restricties head fixed Het grootste nadeel aan de eyetracker is de vereiste tot het stilhouden van het hoofd. Door gebruik te maken van dezelfde beeldverwerkingstechniek en hardwareopstelling, maar met een andere berekeningsmethode kan een eyetracker ontwikkeld worden die deze vereiste niet bezit. In deze opstelling zouden hoofdbewegingen van ongeveer 10 cm toegelaten zijn. Voor deze ontwikkelingen werd reeds in hoofdstuk 4 een aanzet gegeven door het opnemen van zowel 3D-model methoden en mapping methoden die vrije hoofdbewegingen toelaten.
64
6.4.3 Bruikbaarheid verbeteren Vooraleer de nu ontwikkelde software echt kan gebruikt worden voor het besturen van aangepaste software voor ooginput dienen echter nog verschillende zaken aangepast te worden. Ontwikkelen van een gebruiksvriendelijke interface naar de gebruiker. Momenteel bestaat de grafische user interface uit een commandoscherm waarin de gebruiker aan de hand van cijfers de de gewenste items in de menu’s kan kiezen. Opdat de andere gebruikers de eyetracker zouden kunnen gebruiken is er nood aan een praktischere bediening van de eyetracker. Het toevoegen van functionaliteiten om te klikken Een essentieel onderdeel dat nog niet aanwezig is in de eyetracker is het voorzien van klikfunctionaliteiten. Daarvoor wordt in sommige onderzoeken de fixatietijd opgemeten. Wanneer een persoon dan lange tijd (bv 1 seconde) kijkt naar een bepaald punt wordt een klikcommando gegenereerd. Deze methode kan er echter voor zorgen dat de gebruiker ongewenst klikt. Knipperen met één oog of het openen en sluiten van de mond gebruiken als klikcommando beperkt het ongewenst klikken tot een minimum. In [76] werd beschreven hoe op een eenvoudige manier de ogen gelokaliseerd kunnen worden en het knipperen van beide kan gedetecteerd worden. De opeenvolgende afbeeldingen van de camera worden met elkaar vergeleken en wanneer op de verschilafbeelding twee even grote regio’s op eenzelfde horizontale lijn voorkomen weet men dat de persoon knipperde met zijn beide ogen. Op basis van dit algoritme werd geprobeerd een knipperdetectie op één oog uit te voeren. Daarvoor werd gezocht naar een regio op de verschilafbeelding ter hoogte van de laatst gevonden pupil. Indien een oog knippert wordt gecontroleerd of het andere oog open is door na te gaan of de pupil van dat andere oog gedetecteerd werd. Dit algoritme kon nog niet optimaal afgesteld worden. Voorzien van een interface naar andere softwareapplicaties Zoals reeds vermeld in sectie 5.1 is het aangewezen te voldoen aan de vooropgestelde standaardisatie voor de communicatie tussen eyetrackers en applicaties. Momenteel wordt hieraan nog niet voldaan. Andere applicaties kunnen momenteel geen commando’s (bijvoorbeeld voor het starten of stoppen van de tracking) sturen naar de eyetracker. De berekende kijkpunten worden momenteel rechtstreeks gekoppeld aan de cursor.
65
Bibliografie [1] M. Donegan, L. Oosthuizen, R. Bates, H. Istance, E. Holmqvist, M. Lundalv, M. Buchholz, en I. Signorile, “D3.3 report of user trials and usability studies,” tech. rep., Communication by Gaze Interaction (COGAIN), 2006. [2] M. Spezio, R. Adolphs, R. Hurley, en J. Piven, “Abnormal use of facial information in high-functioning autism,” Journal of Autism and Developmental Disorders, vol. 37, no. 5, pp. 929–939, 2007. [3] S. Shrestha en K. Lenz, “Eye gaze patterns while searching vs. browsing a website,” Usability News, vol. 9, no. 1, 2006. [4] Q. Ji en X. Yang, “Real-time eye, gaze, and face pose tracking for monitoring driver vigilance,” Real-Time Imaging, vol. 8, no. 5, pp. 357 – 377, 2002. [5] F. Houtman, “De functie van eh en uh,” Master’s thesis, Universiteit Gent, 2008. [6] D. Drieghe, K. Rayner, en A. Pollatsek, “Mislocated fixations can account for parafovealon-foveal effects in eye movements during reading,” The Quartely Journal of Experimantal Psychology, vol. 61, no. 8, pp. 1239–1249, 2008. [7] O. Oyekoya, Eye tracking: a perceptual interface for content based image retrieval. PhD thesis, University College London, 2007. [8] Universiteit Gent , “Homepagina Universiteit Gent,” december 2009. http://www. ugent.be/. [9] Universiteit Gent , “SYSTeMS research group,” december 2009. systems.ugent.be/.
http://www.
[10] Applied Science Laboratories , “Mobile eye and eye tracking services,” Maart 2010. http://www.asleyetracking.com/. [11] IT University of Copenhagen, “ITU GazeGroup: Research on eye tracking and gaze interaction,” Maart 2010. http://www.gazegroup.org/home/. [12] J. D. Smith, R. Vertegaal, en C. Sohn, “Viewpointer: lightweight calibration-free eye tracking for ubiquitous handsfree deixis,” in UIST ’05: Proceedings of the 18th annual ACM symposium on User interface software and technology, (New York, NY, USA.), pp. 53–61, ACM, 2005. [13] C. S. Lin, C. W. Ho, C. N. Chan, C. R. Chau, Y. C. Wu, en M. S. Yeh, “An eye-tracking and head-control system using movement increment-coordinate method,” Optics & Laser Technology, vol. 39, no. 6, pp. 1218 – 1225, 2007. [14] F. Corno en A. Garbo, “Multiple low-cost cameras for effective head and gaze tracking,” in 11th International Conference on Human-Computer Interaction, (Las Vegas, NV, USA.), Lawrence Erlbaum Associates, 2005.
66
[15] K. IRIE, B. A. WILSON, R. D. JONES, P. J. BONES, en T. J. ANDERSON, “A laserbased eye-tracking system,” Behavior Research Methods, Instruments, & Computers, vol. 34, no. 4, pp. 561–572, 2002. [16] M. Pomplun, H. Ritter, en B. Velichkovsky, “An artificial neural network for high precision eye movement tracking,” in Lecture Notes in Computer Science, pp. 63–69, Springer, 1995. [17] K. LUKANDER, “A system for tracking gaze on handheld devices,” Behavior Research Methods, vol. 38, no. 4, pp. 660–666, 2006. [18] J. Ciger, B. Herbelin, en D. Thalmann, “Evaluation of gaze tracking technology for social interaction in virtual environments,” in Proc. of the 2nd Workshop on Modeling and Motion Capture Techniques for Virtual Environments, (Zermatt, Switzerland), pp. 9–11, Springer, 2004. [19] A. H. CLARKE, J. DITTERICH, K. DRÜEN, U. SCHÖNFELD, en C. STEINEKE, “Using high frame rate CMOS sensors for three-dimensional eye tracking,” Behavior Research Methods, Instruments, & Computers, vol. 34, no. 4, pp. 549–560, 2002. [20] D. Li, D. Winfield, en D. J. Parkhurst, “Starburst: A hybrid algorithm for video-based eye tracking combining feature-based and model-based approaches,” in Proceedings of the IEEE Vision for Human-Computer Interaction Workshop at CVPR, (Washington, DC, USA), p. 79, IEEE Computer Society, 2005. [21] J. S. Babcock en J. B. Pelz, “Building a lightweight eyetracking headgear,” in ETRA ’04: Proceedings of the 2004 symposium on Eye tracking research & applications, (New York, NY, USA), pp. 109–114, ACM, 2004. [22] M. Böhme, A. Meyer, T. Martinetz, en E. Barth, “Remote eye tracking: State of the art and directions for future development,” in 2nd Conference on Communication by Gaze Interaction, (Turin, Italy), pp. 10–15, COGAIN, 2006. [23] D. H. Yoo en M. J. Chung, “Non-intrusive eye gaze estimation without knowledge of eye pose,” in Automatic Face and Gesture Recognition, IEEE International Conference on Automatic Face and Gesture Recognition (FG’04), (Los Alamitos, CA, USA), p. 785, IEEE Computer Society, 2004. [24] X. L. Brolly en J. B. Mulligan, “Implicit calibration of a remote gaze tracker,” in CVPRW ’04: Proceedings of the 2004 Conference on Computer Vision and Pattern Recognition Workshop Volume 8, (Washington, DC, USA), p. 134, IEEE Computer Society, 2004. [25] D. H. Yoo, J. H. Kim, B. R. Lee, en M. J. Chung, “Non-contact eye gaze tracking system by mapping of corneal reflections,” in IEEE International Conference on Automatic Face and Gesture Recognition, (Los Alamitos, CA, USA), p. 101, IEEE Computer Society, 2002. [26] A. Pérez, M. Córdoba, A. García, R. Méndez, M. Muñoz, J. Pedraza, en F. Sánchez, “A precise eye-gaze detection and tracking system,” in Proc. of the 11th International Conference in Central Europe of Computer Graphics, Visualization and Computer Vision, (Plzen, Czech Republic), pp. 105–108, 2003.
67
[27] T. Ohno en N. Mukawa, “A free-head, simple calibration, gaze tracking system that enables gaze-based interaction,” in ETRA ’04: Proceedings of the 2004 symposium on Eye tracking research & applications, (New York, NY, USA), pp. 115–122, ACM, 2004. [28] A. Sugioka, Y. Ebisawa, en M. Ohtani, “Noncontact video-based eye-gaze detection method allowing large head displacements,” in Proceedings of the 18th Annual International Conference of the IEEE, (Amsterdam, The Netherlands), pp. 526–528, IEEE Computer Society, 1996. [29] D. Beymer en M. Flickner, “Eye gaze tracking using an active stereo head,” in Proceedings of Computer Society Conference on Computer Vision and Pattern Recognition, (Madison, WI, USA), pp. 451–458, IEEE Computer Society, 2003. [30] Y. Ebisawa, Y. Ebisawa, M. Ohtani, A. . Sugioka, en S. Esaki, “Single mirror tracking system for free-head video-based eyegazedetection method,” in Proceedings of the 19th Annual International Conference of the IEEE Engineering in Medicine and Biology Society Magnificent Milestones and Emerging Opportunities in Medical Engineering, (Chicago, IL, USA), IEEE Computer Society, 1997. [31] F. L. Coutinho en C. H. Morimoto, “Free head motion eye gaze tracking using a single camera and multiple light sources,” in Computer Graphics and Image Processing, 2006. SIBGRAPI ’06. 19th Brazilian Symposium, (Manaus, AM, Brazil), pp. 171–178, IEEE Computer Society, 2006. [32] C. H. Morimoto, A. Amir, en M. Flickner, “Detecting eye position and gaze from a single camera and 2 light sources,” in ICPR ’02: Proceedings of the 16 th International Conference on Pattern Recognition (ICPR’02) Volume 4, (Washington, DC, USA), p. 40314, IEEE Computer Society, 2002. [33] A. Meyer, M. Böhme, T. Martinetz, en E. Barth, “A single-camera remote eye tracker,” in Lecture Notes in Computer Science, pp. 208–211, Springer, 2006. [34] C. Hennessey, B. Noureddin, en P. Lawrence, “A single camera eye-gaze tracking system with free head motion,” in ETRA ’06: Proceedings of the 2006 symposium on Eye tracking research & applications, (New York, NY, USA), pp. 87–94, ACM, 2006. [35] R. Stiefelhagen, J. Yang, en A. Waibel, “Tracking eyes and monitoring eye gaze,” in Proceedings of the Workshop on Perceptual User Interfaces, (Banff, AB, Canada), pp. 98– 100, 1997. [36] S. Baluja en D. Pomerleau, “Non-intrusive gaze tracking using artificial neural networks,” tech. rep., Carnegie Mellon University, 1994. [37] W. Sewell en O. Komogortsev, “Real-time eye gaze tracking with an unmodified commodity webcam employing a neural network,” in CHI EA ’10: Proceedings of the 28th of the international conference extended abstracts on Human factors in computing systems, (New York, NY, USA), pp. 3739–3744, ACM, 2010. [38] L. qun Xu, D. Machin, P. Sheppard, M. Heath, en I. I. Re, “A novel approach to realtime non-intrusive gaze finding,” in Proceedings of the British Machine Vision Conference, (Southampton, United Kingdom), pp. 428–437, British Machine Vision Association, 1998. 68
[39] D. Bäck, “Neural network gaze tracking using web camera,” Master’s thesis, Linköpings universitet, 2006. [40] Tobii Technology AB , “Tobii,” oktober 2009. www.tobii.com. [41] LC Technology International , “ LC technology ,” oktober 2009. eyegaze.com. [42] Eyetech Digital Systems , “Eyetech,” oktober 2009. com/.
http://www.
http://www.eyetechds.
[43] Cogain , “Catalogue of currently available eye trackers for interactive applications within aac,” oktober 2009. http://www.cogain.org/eyetrackers. [44] Y. Ebisawa, “Improved video-based eye-gaze detection method,” in Conference Proceedings of 10th Instrumentation and Measurement Technology Conference, (Hamamatsu, Japan), pp. 963 –966, IEEE Computer Society, 1994. [45] C. H. Morimoto, D. Koons, A. Amir, en M. Flickner, “Pupil detection and tracking using multiple light sources,” Image and Vision Computing, vol. 18, no. 4, pp. 331 – 335, 2000. [46] D. Li, D. Winfield, en D. J. Parkhurst, “Starburst: A hybrid algorithm for video-based eye tracking combining feature-based and model-based approaches,” in CVPR ’05: Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’05) - Workshops, (Washington, DC, USA), p. 79, IEEE Computer Society, 2005. [47] A. Villanueva, G. Daunys, D. W. Hansen, M. Böhme, R. Cabeza, A. Meyer, en E. Barth, “A geometric approach to remote eye tracking,” Universal Access in the Information Society, vol. 8, no. 4, pp. 241–257, 2009. [48] M. A. Hebaishy, “Optimized daugman’s algorithm for iris localization.” Poster, The 16th International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision, 2008. [49] X. Ren, Z. Peng, Q. Zeng, C. Peng, J. Zhang, S. Wu, en Y. Zeng, “An improved method for daugman’s iris localization algorithm,” Computers in Biology and Medicine, vol. 38, no. 1, pp. 111–115, 2008. [50] J.-G. Wang, E. Sung, en R. Venkateswarlu, “Eye gaze estimation from a single image of one eye,” in ICCV ’03: Proceedings of the Ninth IEEE International Conference on Computer Vision, (Washington, DC, USA), p. 136, IEEE Computer Society, 2003. [51] J. Zhu en J. Yang, “Subpixel eye gaze tracking,” in FGR ’02: Proceedings of the Fifth IEEE International Conference on Automatic Face and Gesture Recognition, (Washington, DC, USA), p. 131, IEEE Computer Society, 2002. [52] OpenCV , “Website OpenCV,” december 2010. http://opencv.willowgarage. com/wiki/. [53] OpenCV , “Open source computer vision library community,” december 2009. http: //tech.groups.yahoo.com/group/OpenCV/.
69
[54] G. Bradski en A. Kaehler, Learning OpenCV: Computer Vision with the OpenCV Library. Cambridge, MA, United Kingdom: O’Reilly, 2008. [55] R. C. Gonzalez en R. E. Woods, Digital Image Processing (3rd Edition). Upper Saddle River, NJ, USA: Prentice-Hall, 2006. [56] G. Blanchet en M. Charbit, Digital Signal and Image Processing Using MATLAB (Digital Signal and Image Processing series). Paris, France: International Society for Technology in Education, 2006. [57] Y. Nawaz en S. Sircar, “Real time eye tracking and blink detection using low resolution web cam,” in Proceedings IEEE Newfoundland Electrical and Computer Engineering Conference, (St Johns, NL, Canada), IEEE Computer Society, 2003. [58] Z. Zhu, K. Fujimura, en Q. Ji, “Real-time eye detection and tracking under various light conditions,” in Proceedings of ETRA: Eye Tracking Research and Applications Symposium, (New Orleans, LA, USA), pp. 139–144, ACM Press, 2002. [59] R. C. Bolles en M. A. Fischler, “A ransac-based approach to model fitting and its application to finding cylinders in range data,” in IJCAI’81: Proceedings of the 7th international joint conference on Artificial intelligence, (San Francisco, CA, USA), pp. 637–643, Morgan Kaufmann Publishers, 1981. [60] T. Ohno, N. Mukawa, en A. Yoshikawa, “Freegaze: a gaze tracking system for everyday gaze interaction,” in ETRA ’02: Proceedings of the 2002 symposium on Eyetracking research & applications, (New York, NY, USA), pp. 125–132, ACM, 2002. [61] X. Long, O. K. Tonguz, en A. Kinderman, “A high speed eye tracking system with robust pupil center estimation algorithm.,” in Conference proceedings : Annual International Conference of the IEEE Engineering in Medicine and Biology Society. IEEE Engineering in Medicine and Biology Society., (Lyon, France), pp. 3331–4, IEEE Computer Society, 2007. [62] C. Rein, “Het gebruik van oogbewegingen in leesonderzoek,” Tijdschrift voor Taalbeheersing, vol. 28, no. 3, pp. 220–232, 2006. [63] M. Rolfs, “Microsaccades: Small steps on a long way,” Vision Research, vol. 49, no. 20, pp. 2415 – 2441, 2009. [64] E. Guestrin en M. Eizenman, “General theory of remote gaze estimation using the pupil center and corneal reflections,” IEEE Transactions on Biomedical Engineering, vol. 53, no. 6, pp. 1124 –1133, 2006. [65] C. H. Morimoto en M. R. Mimica, “Eye gaze tracking techniques for interactive applications,” Computer Vision and Image Understanding, vol. 98, no. 1, pp. 4 – 24, 2005. Special Issue on Eye Detection and Tracking. [66] J. Kang, E. Guestrin, W. MacLean, en M. Eizenman, “Simplifying the cross-ratios method of point-of-gaze estimation,” in 30th Canadian Medical Biology and Engineering Conference, (Toronto, ON, Canada), 2007.
70
[67] C. A. Rothwell, A. Zisserman, D. Forsyth, en J. L. Mundy, “Planar object recognition using projective shape representation,” International Journal of Computer Vision, vol. 16, no. 1, pp. 57–99, 1995. [68] S. W. Shih, Y. T. Wu, en J. Liu, “A calibration-free gaze tracking technique,” in Proceedings of the 15th international conference on pattern recognition, (Barcelona, Spain), pp. 201–204, IEEE Computer Society, 2000. [69] Jabbla, “Jabbla, we all have voice,” april 2010. http://www.jabbla.com/. [70] R. Bates, H. Istance, L. Oosthuizen, en P. Majaranta, “D2.1 survey of de-facto standards in eye tracking,” tech. rep., Communication by Gaze Interaction (COGAIN), 2005. [71] H. Bates, R.and Istance en O. Spakov, “D2.2 requirements for the common format of eye movement data,” tech. rep., Communication by Gaze Interaction (COGAIN), 2005. [72] R. Bates en O. Spakov, “D2.3 implementation of cogain gaze tracking standards,” tech. rep., Communication by Gaze Interaction (COGAIN), 2006. [73] Cogain, “Cogain applications,” April 2010. COGAIN_Applications.
http://www.cogain.org/wiki/
[74] D. J. Ward en A. F. Blackwell, “Dasher - a data entry interface using continuous gestures and language models,” in UIST ’00: Proceedings of the 13th annual ACM symposium on User interface software and technology, (New York, NY, USA), pp. 129–137, ACM, 2000. [75] M. Laginestra, “Myeye project,” Maart 2010. http://myeye.jimdo.com/. [76] M. Chau en M. Betke, “Real time eye tracking and blink detection with usb cameras,” tech. rep., Boston University Computer Science, 2005.
71