Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij...

43
Bachelor Informatica Spoorzoekertje in Augmented Reality Marlous Kottenhagen 8 juni 2018 Supervisor(s): Robert Belleman, Bert Bredeweg Signed: Signees Informatica — Universiteit van Amsterdam

Transcript of Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij...

Page 1: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Bachelor Informatica

Spoorzoekertje in AugmentedReality

Marlous Kottenhagen

8 juni 2018

Supervisor(s): Robert Belleman, Bert Bredeweg

Signed: Signees

Informatica—

Universiteit

vanAmst

erdam

Page 2: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

2

Page 3: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Samenvatting

Spoorzoekertje is een spel waarbij door middel van hints gezocht wordt naar een eindloca-tie. In dit onderzoek wordt gekeken naar hoe spoorzoekertje in AR gespeeld kan worden.Hierbij wordt onderzocht hoe virtuele objecten terug kunnen worden gezet op een gespeci-ficeerde locatie in de wereld en hoe deze positie behouden blijft. Hierbij is gekeken naar demogelijkheid om dit door middel van het ORB feature herkenning algoritme te doen. Uithet onderzoek is het nog niet zeker of ORB een geschikt algoritme is om te gebruiken inspoorzoekertje.

3

Page 4: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

4

Page 5: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Inhoudsopgave

1 Inleiding 71.1 Onderzoeksvraag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Achtergrond 92.1 Augmented reality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 AR toolkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1 Vuforia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.3 HoloLens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.4 Feature herkenning en AR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3 Object plaatsing 133.1 Feature herkenning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1.1 SIFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.2 SURF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.1.3 ORB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.1.4 Vergelijking en keuze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2 Feature matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.3 Positie transformatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.1 Affiene transformatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.3.2 Homografie transformatie . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 Implementatie 234.1 Algemene implementatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.2 Feature detectie en matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3 Object plaatsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.4 Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5 Experimenten 295.1 Snelheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.2 Nauwkeurigheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.3 lichtintensiteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

6 Resultaten 316.1 Snelheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.2 Nauwkeurigheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.3 Lichtintensiteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326.4 Verwerking resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

7 Discussie 35

8 Conclusie 378.1 vervolgonderzoek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

5

Page 6: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

A Experiment foto’s 41A.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41A.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42A.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6

Page 7: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 1

Inleiding

Spoorzoekertje is een spel dat zowel door kinderen als volwassenen gespeeld kan worden. Hierbijmoeten de spelers door middel van een serie hints het juiste pad volgen om zo bij de eindbestem-ming uit zien te komen. Dit kan gedaan worden met behulp van getekende pijlen op de weg ofpuzzels die opgelost moeten worden. De moeilijkheidsgraad van de hints hangt af van de leeftijdvan de spelers.

Het doel van dit project is om een app te ontwikkelen waarmee spoorzoekertje gespeeld kan wor-den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegevenmet behulp van AR. Wanneer de speler met zijn camera over de plek van een hint beweegt wordtdeze zichtbaar voor de spelers.

Om spoorzoekertje in AR te kunnen verwezenlijken zijn er twee belangrijke deelonderzoeken.

• Positie tracking: Voor de spoorzoekertje applicatie is het belangrijk dat de positie van despeler nauwkeurig wordt bepaald. Als we weten waar de speler zich bevindt, kan dit handigin de applicatie worden toegepast. Zo kunnen we kijken in een gebied om de speler om teweten welke hints in de buurt zijn. Ook kan de positie van de speler gebruikt worden omte kijken of deze het juiste pad volgt.

• Beeldregistratie: Wanneer spoorzoekertje wordt gespeeld is het belangrijk dat de objectenop de juiste positie staan zodat deze juist geınterpreteerd worden door de spelers. Bij hetgebruiken van de applicatie is het belangrijk dat de virtuele objecten op hun positie blijvenstaan en dat na het afsluiten van de app de virtuele objecten op de juiste positie wordenteruggezet.

Figuur 1.1 weergeeft een flow chart van het verloop van de spoorzoekertje applicatie.

1.1 Onderzoeksvraag

Het onderzoek beschreven in deze scriptie gaat over het tweede deelonderzoek: beeldregistratie.Mijn onderzoeksvraag hierbij is ”Wat is een geschikte methode voor het plaatsen van een virtueelobject in AR waarbij zijn positie behouden blijft ten opzichte van de werkelijke wereld?”Om mijn onderzoeksvraag te kunnen beantwoorden beginnen we met een overzicht van de belang-rijkste literatuur rondom feature herkenning methodes. Features zijn punten in een afbeeldingdie herkenbaar zijn. Deze methodes worden aan de hand van de literatuur met elkaar vergeleken.Aan de hand van het literaire onderzoek wordt bepaald met welke methodes verder onderzochtgaan worden. Om te bepalen welke methodes geschikt zijn, worden ze beoordeeld aan de handvan een aantal eisen waaraan de methode moet voldoen om gebruikt te kunnen worden voorspoorzoekertje. Voor de gekozen methodes wordt onderzocht of ze inderdaad aan de eisen vol-doen door middel van een aantal experimenten en wordt gekeken of de methodes gebruikt zouden

7

Page 8: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Figuur 1.1: Flow chart verloop spoorzoekertje

kunnen worden voor de app.

Met behulp van de gekozen methode zal gekeken worden waar het object moet worden geplaatst.Hierbij wordt gekeken naar de features van de oorspronkelijke locatie en de features van dehuidige locatie. Wanneer voldoende matches zijn gevonden wordt het object geplaatst en zaldeze gezien kunnen worden door de spelers.

8

Page 9: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 2

Achtergrond

2.1 Augmented reality

Augmented reality (AR) is het weergeven van virtuele objecten in de werkelijke wereld. Op tweeverschillende manieren kan gebruik worden gemaakt van AR, met markers of markerless. Eenmarker is een visueel beeld waarop het virtuele beeld wordt geplaatst. De marker is een referentievoor het bepalen van de positie en schaal. Bij markerless AR worden virtuele beelden zondergebruikt te maken van een marker in de wereld geplaatst. Voorbeelden hiervan zijn te zien in defiguren 2.1en 2.2.

Figuur 2.1: Een voorbeeld van mar-kerless AR.Bron:http://acreelman.blogspot.com/2016/07/

\pokemon-and-source-criticism.

html

Figuur 2.2: Een voorbeeld van ARmet een marker.Bron:https://library.vuforia.com/\articles/Training/

Image-Target-Guide

AR wordt gebruikt in verschillende mobiele applicaties. Zo wordt het veel gebruikt in mobielespelletjes. Een voorbeeld hiervan is pokemon GO [12]. Pokemon GO is een mobiel spel waar-bij je pokemon kon vangen, deze pokemon kon je door middel van AR in de werkelijke wereldlaten verschijnen. Maar AR wordt niet alleen gebruikt voor spelletjes. Met behulp van de Ikeaapp kunnen meubels in je kamer worden geplaatst[7]. Op deze manier kun je kijken hoe het inje kamer past voordat je het koopt. De Albert Heijn had een spaaracties waarbij verschillendedino plaatjes gebruikt konden worden als marker [6]. Zo kon je dino’s over je tafel laten wandelen.

In spoorzoekertje zal gebruik worden gemaakt van markerless AR. Spoorzoekertje zal buitenworden gespeeld en het zoeken naar hints zal een stuk makkelijker zijn wanneer overal markersworden opgehangen.

9

Page 10: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

2.2 AR toolkits

Er bestaan verschillende AR toolkits waarmee het mogelijk is om AR applicaties te creeren.Voorbeelden hiervan zijn Vuforia, ARkit en ARcore [18][2][1]. Met behulp van deze toolkits ishet mogelijk om een app te maken, gebruik makend van markerless of markerbased AR. Vuforiais een toolkit die gebruikt kan worden voor zowel Android als Apple, ARkit is ontwikkeld voorApple en ARcore voor Android.

2.2.1 Vuforia

Vuforia kan gebruikt worden voor markerless AR. Dit kan worden gedaan met behulp van ground-planes [19]. Hierbij detecteert Vuforia horizontale oppervlakken die gebruikt kunnen worden omvirtuele objecten neer te zetten. Het object op zijn plek gehouden met behulp van ankers. Eenanker is een 6 degrees of freedom punt in de wereld, 6 degrees of freedom betekend dat het ankerkan transleren en roteren in de x, y en z as. Deze ankers worden gebruikt om bij te houdenwaar het object staat in de wereld. Wanneer een object wordt geplaatst zal deze zijn positie inde wereld behouden. De gebruiker kan wegkijken met zijn telefoon en later weer naar dezelfdepositie terugkijken om het object daar nog steeds te zien staan. Het gebruik van deze ankerskan alleen binnen de huidige sessie. Zodra de applicatie wordt afgesloten kunnen ze niet meerworden teruggevonden en op dezelfde positie worden teruggeplaatst.

Voor ons onderzoek wordt gekeken of het plaatsen van objecten gecombineerd kan worden metVuforia groundplane. Hierbij zou dan door middel van het feature herkenning algoritme wordengezocht wanneer het object moet worden neergezet en wordt de plaats waar het object wordtneergezet bepaald. Wanneer deze in een Vuforia grounplane wordt neergezet kan om het objectheen bewogen worden en lijkt het echt een onderdeel van de wereld.

2.3 HoloLens

De HoloLens is een draagbaar apparaat dat gebruikt kan worden voor het plaatsen van holo-grammen in de werkelijke wereld [11]. Hologrammen zijn objecten gemaakt van licht of geluiddie om je heen te zien zijn met behulp van de HoloLens. Deze hologrammen kunnen op eenspecifieke positie in de wereld worden geplaatst. Hierdoor kan je om het hologram heen lopen enzal deze op dezelfde positie in de wereld blijven staan. Een voorbeeld van een hologram gezienmet een HoloLens wordt weergeven in figuur 2.3.

Figuur 2.3: Voorbeeld van een hologram die gezien kan worden door het dragen van de HoloLens.Bron:https://docs.microsoft.com/en-us/windows/mixed-reality/hologram

10

Page 11: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

De hologrammen worden met behulp van een spatial anchor op hun positie gehouden. Dezeankers geven aan dat de HoloLens deze locatie moet tracken. De spatial anchors zijn persistent.Hiervoor wordt er een string key opgeslagen die door een applicatie kan worden gebruikt om hetanchor later weer te kunnen identificeren.

Voor het onderzoek is de HoloLens interessant om te ontdekken hoe ze onthouden op welke locatieobjecten stonden en of dit ook gebruikt zal kunnen worden in spoorzoekertje.

2.4 Feature herkenning en AR

In eerder onderzoek is gekeken naar het implementeren van een outdoor mobiele AR applicatie[16]. Deze applicatie geeft informatie weer over objecten die door de applicatie worden her-kend. In de applicatie wordt de huidige camera afbeelding vergeleken met afbeeldingen die ineen database staan opgeslagen. Aan de hand van de locatie van de gebruiker wordt gezocht naarafbeeldingen uit de database die relevant zijn. Van de gevonden afbeeldingen worden featuresherkend met behulp van het SURF algoritme [3]. De afbeeldingen worden met de features ineen boom structuur geplaatst. De features voor het huidige camerabeeld worden ook bepaalden vergeleken met de features in de boom. Hieruit worden de afbeeldingen gerangschikt op hetaantal features die matchen met het huidige camera frame.

Uit dit onderzoek blijkt dat SURF en andere feature herkenning algoritme al eerder zijn gebruiktvoor het herkennen van afbeeldingen en het plaatsen van virtuele objecten over de afbeelding.SURF zou ook een goede kandidaat kunnen zijn om te gebruiken in spoorzoekertje.

11

Page 12: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

12

Page 13: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 3

Object plaatsing

Voor het plaatsen van een object worden verschillende stappen doorlopen. Eerst wordt gekekenof het huidige beeld een locatie is waar het object wordt geplaatst. Vervolgens wordt gekekenwaar het object in de wereld geplaatst moet worden. Hier worden de verschillende techniekenbeschreven die gebruikt zullen worden in de implementatie.

3.1 Feature herkenning

De hint wordt geplaatst zodra de speler de plek van de hint in beeld heeft. Om te kunnen her-kennen of het huidige beeld de juiste plek is wordt er gebruik gemaakt van image matching. Hetframe van het moment waarop het object geplaatst is wordt vergeleken met het huidige frameop het moment van spelen. Wanneer er wordt geconstateerd dat het huidige frame een match iswordt het object geplaatst.

Om twee frames te kunnen matchen wordt gebruik gemaakt van features in de frames. Hier-voor zijn feature herkenning algoritmes nodig die zoeken naar deze features, ook wel keypointsgenoemd. In deze paragraaf worden drie verschillende algoritmes uitgelegd en met elkaar verge-leken.

• Scale Invarient Feature Transform (SIFT)

• Speeded Up Robust Features (FAST)

• Oriented Fast and Rotated Brief (ORB)

Bij feature herkenning wordt er gezocht naar keypoints in een afbeelding. Features zijngoed herkenbare punten in een afbeelding. Deze keypoints zijn vaak plekken waar er een grootcontrast bestaat tussen gradienten van pixels. Vervolgens worden aan deze keypoints descriptorstoegevoegd. Deze descriptors bevatten informatie over de orientatie en locatie van het keypoint.

3.1.1 SIFT

Voor het berekenen van keypoints in een afbeelding kan SIFT worden onderverdeeld in vierhoofdstappen die worden gebruikt voor het detecteren en berekenen van de keypoints [9]. Dezezijn het detecteren van scale space extrema, het bepalen van locatie en de scale van een keypoint.Een orientatie wordt meegegeven aan elk keypoint en er wordt een keypoint descriptor opgesteld.

Om te bepalen waar keypoints zich bevinden wordt gezocht naar extrema in scale space. Eenscale space is een continue functie die de afbeelding weergeeft in verschillende schalen. De scalespace wordt gemaakt door middel van de convolutie van een afbeelding met een variabele scaleGaussian:

L(x, y, σ) = G(x, y, σ) ∗ I(x, y)

13

Page 14: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Waarbij L staat voor de geconvuleerde afbeelding, I de originele afbeelding en G is de gaussianfunctie, G(x, y, σ) = 1

2πσ2 e−(x2+y2/2σ2). σ staat voor de schaal. Vervolgens wordt de Difference-

of-Gaussian van de scale space berekend. De Difference-Of-Gaussian wordt berekend door tweedicht bij elkaar liggende scales in de scale space van elkaar af te trekken:

D(x, y, σ) = L(x, y, kσ)− L(x, y, σ)

Van D(x, y, σ) worden vervolgens de maxima en minima gedetecteerd. Hiervoor wordt elke pixelvergeleken met zijn buren. De gevonden maxima en minima vormen samen de keypoints van deafbeelding.

Vervolgens wordt een fit uitgevoerd over de nabijgelegen data, de omliggende pixels, van keypointsom de locatie, schaal en ratio van principale curvatures te bepalen. Hiermee wordt gekeken ofeen keypoint een laag contrast heeft of geplaatst is langs een rand. Deze punten worden dan nietmeer gezien als mogelijke keypoints.Voor het berekenen van de locatie en scale wordt er gebruik gemaakt van de Taylor reeks, tot enmet de tweede term, van de scale space functie D(x, y, σ).

D(x) = D +∂DT

∂xx +

1

2xT

∂2D

∂x2x

Vervolgens wordt met behulp van deze functie de locatie van het extremum bepaald. Dit wordtgedaan door de afgeleide te nemen van bovenstaande functie in x en deze gelijk te stellen aan 0.Dit geeft de volgende formule

x = −∂2D−1

∂x2

∂D

∂x

. Wanneer x > 0.5 in elke dimensie ligt het extremum dichter bij een ander sample point. Erwordt een nieuw sample point gekozen en de berekeningen worden opnieuw uitgevoerd. Wanneerhet juiste sample point is gekozen wordt x aan het sample point toegevoegd. Sample points meteen laag contrast worden verwijderd. Dit wordt gedaan door te kijken naar de waarde van D(x).Als deze waarde onder de 0.03 ligt wordt het keypoint verwijderd.Om slecht gelokaliseerde keypoints langs de randen te verwijderen wordt gebruik gemaakt vaneen Hessian matrix. De Hessian matrix wordt gebruikt voor het berekenen van de principal cur-vurture. De principale curvurtures zijn gelijk aan de eigenwaarde van de Hessian matrix. Om teweten welke keypoints verwijderd moeten worden wordt gekeken naar de ratio van de principal

curvurture, Trace(H)Determinant(H) . Wanneer deze waarde kleiner is dan (r+ 1)2/r, waarbij r een vooraf

bepaalde threshold is, wordt het keypoint bewaard.

Verder wordt aan elk keypoint een orientatie meegegeven. Hierdoor kan de keypoint descriptorgerepresenteerd worden relatief aan deze orientatie. Dit zorgt ervoor dat de keypoint descriptorinvariant is onder rotatie. Om de orientatie te bepalen van de descriptors wordt eerst de scalevan een keypoint gebruikt voor het kiezen van een Gaussian smoothed afbeelding L. Vervolgenswordt voor elke image sample L(x, y) de gradient magnitude m(x, y) en orientatie θ(x, y) be-paald. Van alle sample points in een bepaalde regio rondom het keypoint wordt van alle gradientorientaties een orientatie histogram gemaakt. Deze bestaat uit 36 bins die 360 graden voorstel-len. De hoogste piek uit het orientatie histogram vormt samen met alle lokale pieken die binnen80% van de hoogste piek liggen de orientatie van het keypoint.

Als laatste worden de descriptors voor de keypoints gevormd. Dit wordt gedaan door te kijkennaar alle gradient magnitudes en orientaties van alle sample points binnen een regio rondomeen keypoint. De gevonden gradients worden vervolgens gewogen met behulp van een Gaussianwindow. De gradients worden in orientatie histogrammen geplaatst in sample regio’s van 4x4.Elk orientatie histogram heeft 8 bins, deze bins staan voor 8 verschillende richtingen. Dezeorientatie histogrammen worden toegevoegd aan de keypoint. Om het effect van verlichting teverminderen wordt de descriptor vector genormaliseerd en wordt het effect van grotere gradientsverminderd.

14

Page 15: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

3.1.2 SURF

Het SURF algoritme [3] zoekt eerst naar interest points in een afbeelding. Deze zijn vergelijkbaarmet de keypoints uit SIFT. Vervolgens wordt net zoals bij SIFT een descriptor aan deze interestpoints toegevoegd.

SURF maakt gebruik van een Hessian matrix voor het detecteren van interest points. Hiervoorwordt gebruik gemaakt van integrale afbeeldingen. Dit is een afbeelding waarbij elke pixel dewaarde heeft van zichzelf met daarbij alle waardes van de pixels boven en links van de pixelopgeteld. Een voorbeeld van het berekenen van een integrale afbeelding is te zien in Figuur 3.1Dit zorgt voor een snellere computatie tijd. Er wordt gebruik gemaakt van een Hessian matrixomdat deze een goede performance heeft op het gebied van nauwkeurigheid. Er worden blobachtige structuren gevonden op plaatsen waar de determinant van de Hessian matrix het hoogstis. Blob structuren is een regio in de afbeeldingen waar een verschil te zien is met de rest van deomgeving. Dit kan een verschil in helderheid of kleur zijn. De gebruikte Hessian matrix is:

H(x, σ) =

[Lxx(x, σ) Lxy(x, σ)Lxy(x, σ) Lyy(x, σ)

]

Figuur 3.1: Voorbeeld van het berekenen van een integrale afbeelding.Bron:https://www.mathworks.com/help/images/integral-image.html

Om interest points in verschillende schalen te kunnen vinden wordt gebruik gemaakt van eenscale space representatie. Box filters worden in verschillende groottes op de afbeeldingen gebruiktvoor het creeeren van deze scale space. De scale space wordt opgedeeld in octaven, elk octaafwordt vervolgens weer opgedeeld in een constant aantal scale levels. Zo heeft de eerste octaafscale levels van 9x9, 15x15, 21x21 en 27x27. Vervolgens wordt voor de volgende octaven het filtersize verhoogd met 6, 12, 24 en zo elke keer met 2 vermenigvuldigd. Door de grote veranderingenin schaal tussen de eerste filters is het samplen van de schalen vrij ruw. Hierom is ook een tweedemanier ontwikkeld om de scale space te kunnen construeren. Deze methode verdubbelt eerst degrootte van de afbeelding. Het eerste filter heeft een grootte van 15x15. Voor de volgende octaafwordt deze met 12 verhoogd en gaat het verder zoals in de eerste methode.

Vervolgens worden interest points gelokaliseerd, door middel van een non-maximum suppressionin een 3x3x3 buurt. Er wordt gezocht naar lokale maxima over de verschillende schalen. Ditwordt gedaan met behulp van de Hessian matrix, de determinanten worden geınterpoleerd.

Aan de gedetecteerde interest points worden descriptors toegevoegd. Hiervoor wordt eerst deorientatie van de interest point bepaald. Dit wordt gedaan met behulp van de Haar wavelet res-

15

Page 16: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

ponse. De Haar wavelet response wordt berekend in een circulaire buurt met straal 6s, waarbijde s voor de schaal staat. De wavelets hebben een grootte van 4s. Ook hier worden weer inte-grale afbeeldingen gebruikt om snel te kunnen filteren. De berekende wavelet responsen wordengewogen met een Gaussian. De responsen worden weergeven als een punt in de ruimte, hieruitwordt vervolgens de dominante orientatie bepaald. Dit wordt gedaan door middel van een slidingwindow. Alle x en y waarde van de punten binnen de sliding window worden bij elkaar opgeteld.Deze opgetelde waarde vormen samen een orientatie vector. De langste vector over alle windowswordt gebruikt als de orientatie van het interest point.

Vervolgens wordt de descriptor aan de interest points toegevoegd. Hiervoor wordt er eerst eenvierkante regio rondom de interest points geplaatst, deze heeft een grootte van 20s, waarbij sstaat voor de schaal. De geplaatste vierkanten worden vervolgens onderverdeeld in subregio’svan 4x4. Voor elk vierkant wordt de Haar wavelet response berekend. De gevonden responsenworden eerst weer gewogen met een Gaussian. Voor elke subregio worden de x en y waarde vande responsen bij elkaar opgeteld, dit wordt ook gedaan voor de absolute waarde van x en y. Dezewaarde vormen samen de descriptor van de interest points.

3.1.3 ORB

ORB [15] maakt gebruik van twee algoritmes, FAST [14] en BRIEF (Binary Robust IndependentElementary Features) [5]. FAST wordt gebruikt voor het detecteren van keypoints en BRIEFwordt gebruikt voor het berekenen van de bijbehorende descriptors. FAST en BRIEF zijn echternog niet goed bruikbaar voor feature matching, FAST heeft nog geen orientatie component inzijn feature vectoren zitten en BRIEF is invariant tegenover rotatie. Deze punten voegt ORBtoe aan FAST en BRIEF.

Het FAST algoritme is gebaseerd op een segment test voor een hoek kandidaat p in een cirkel van16 pixels.p wordt gezien als een hoek wanneer n naast elkaar gelegen pixels in de cirkel een hogereintensiteit hebben dan Ip + t of allemaal een lagere intensiteit dan Ip− t. Ip is de intensiteit vande hoek kandidaat en t is een gekozen threshold.

Om de segment test sneller te maken wordt in FAST gebruik gemaakt van machine learning.Eerst wordt er een hoek detector gemaakt voor een gegeven n. Dit wordt gedaan door eerst allecirkels van 16 pixels uit een set van afbeeldingen te halen. Elke locatie op de cirkel kan een vandrie staten hebben.

Sp→x =

d, Ip→x ≤ Ip − ts, Ip − t Ip→x < Ip + tb, Ip + t Ip→x

Hierbij is x een punt op de cirkel waarbij x ∈ {1 . . . 16} en p→ x geeft aan dat het gaat om pixelx relatief aan p.

Laat P de set zijn van alle pixels in de afbeeldingen. P kan onderveeld worden in drie subsets,Pd, Psen Pb. Pd bevat alle punten die donkerder zijn dan de hoek kandidaat met een tresholdt, Ps bevat alle punten die helderder zijn met een threshold t en Pb bevat alle punten die quaintensiteit lijken op de hoek kandidaat. Vervolgens wordt de cirkel punt x gekozen die over demeeste info beschikt of de kandidaat pixel een hoek is. Dit wordt berekend door de entropie vanKp. Kp is een boolean die waar is wanneer p een hoek is. Van de gekozen x worden subsetsbepaald en begint het algoritme opnieuw. Dit wordt gedaan totdat de entropie van een subsetgelijk is aan nul, alle p in de subset hebben dan dezelfde waarde voor Kp. Bovenstaand algoritmegenereert een beslisboom die alle hoeken uit de gegeven afbeeldingen kan classificeren.

Om ervoor te zorgen dat er niet meerdere features naast elkaar worden gedetecteerd wordt ergebruik gemaakt van nonmaximal suppression. Nonmaximal suppression is een methode om fea-tures te elimineren die te dicht bij elkaar liggen.Wanneer voor een vaste waarde n, t groter wordt neemt het aantal gevonden hoeken af. In FASTis gekozen voor een waarde van n = 9, omdat deze de beste resultaten geeft. De hoeksterkte

16

Page 17: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

van een punt wordt gegeven door de maximale waarde t waarvoor een punt wordt geclassificeerdals hoek. De beslisboom kan voor een waarde t een pixel classificeren als wel of geen hoek. Erkan gebruik worden gemaakt van de bisectiemethode om de waarde van t te bepalen waarvoorhet punt voor het eerst wordt geclassificeerd als geen hoek. De bisectiemethode is een zoekalgoritme waarbij de dataset steeds wordt gehalveerd totdat het juiste punt gevonden is. VoorFAST betekent dit dat er naar het middelpunt van de data wordt gekeken als deze waarde een1 is, wel een hoek, moet er in de rechterhelft verder worden gezocht. Als de waarde 0 is, geenhoek, moet er in de linkerhelft verder worden gezocht.

Voor het toevoegen van een orientatie aan de FAST keypoints maakt ORB gebruik van eenintensity centroid. Hiervoor wordt eerst het moment berekend:

mpq =∑x,y

xpypI(x, y)

Met behulp van het moment kan vervolgens de centroid berekend worden: C = m10

m00

m01

m00. Daarna

wordt er een vector geconstrueerd vanuit het centrum van de hoek naar de centroid,−−→OC.

De orientatie is gelijk aan de hoek van de vector en kan berekend worden door middel vanθ = atan2(m01,m10). Om ook rekening te houden met rotatie wordt ervoor gezorgd dat demomenten worden berekend door middel van een x en y gelegen in een circulaire regio met straalr. Verder voegt ORB nog een mogelijkheid aan FAST toe om multi-scale features toe te staan.Hiervoor wordt een scale piramide van de afbeelding gebruikt. Voor elk level van de piramideworden FAST features geproduceerd.

Het BRIEF algoritme wordt gebruikt voor het berekenen van de keypoint descriptors. BRIEFmaakt gebruik van willekeurig classificatie bos en de Naive Bayesian classifier. Een willekeurigclassificatie bos bestaat uit meerdere classificatie bomen. In een classificatie boom staat elkenode voor een beslissing die gemaakt moet worden. De bladeren van de boom geven dan declassificatie aan. Een willekeurig classificatie bos bestaat uit meerdere classificatie bomen. Elkeboom geeft zijn eigen classificatie. De classificatie die het meest uit het bos komt wordt geko-zen als de uiteindelijke classificatie. Naive Bayesian classifier is een classificatie methode diegebruikt maakt van de theorama van Bayes.

Het willekeurige classificatie bos en de Naive Bayesian classifier worden gebruikt voor het creerenvan een bit vector. Hiervoor worden er tests uitgevoerd over een patch, een deel van een plaatjevan grote S × S. Deze test wordt alsvolgt gedefinieerd.

τ(p;x,y) :=

{1 if p(x) < p(y)0 otherwise

}P(x) is de pixel intensiteit in de smoothed versie van p op x = (u, v)T . De BRIEF descriptor iseen nd-dimensionale bit-string gedefinieerd door nd binary tests.

Voor dat de tests voor het maken van de descriptor worden uitgevoerd wordt de patch gesmoothd.Dit wordt gedaan omdat bij de tests alleen wordt gekeken naar enkele pixels hierdoor zijn detest gevoelig voor ruis. Door het smoothen van de patch wordt dit effect verminderd. Voor hetsmoothen wordt gebruikt gemaakt van een Gaussian kernel.

Voor de tests moet nog bepaald worden welke locaties xi,yi binnen een patch gebruikt zullenworden. Dit wordt gedaan door middel van een normaal verdeling, N(0, 1

25S2).

Om BRIEF invariant te maken tegenover rotatie wordt BRIEF gestuurd aan de hand van deorientatie van de keypoints. Er wordt een 2xn matrix opgesteld aan de hand van n binaire testenop locatie (xi,yi) .

S =

[x1, ...,xny1, ...,yn

]

17

Page 18: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Door de patch orientatie θ en de corresponderende rotatie matric te gebruiken kan er eengestuurde versie van S worden geconstrueerd. Hiermee staat de BRIEF operator gelijk aangn(P, θ) := fn(p|(xi,yi) ∈ Sθ.De hoek wordt elke keer met 12 graden verhoogd. Er wordt een lookup table geconstrueerdwaarin vooraf berekende BRIEF patronen staan. Zo wordt er bepaald welke set van punten Sθwordt gebruikt voor het berekenen van de descriptor.

Het gebruik van de steered BRIEF zorgt voor een verlies in variantie. Om dit tegen te gaan moeter worden gezocht naar een goede subset van de binaire testen. Er wordt tussen all binaire testsgezocht naar testen met een hoge variantie, een mean in de buurt van 0.5 en die uncorrelatedzijn.

3.1.4 Vergelijking en keuze

Om de verschillende keypoint detectie en descriptor algoritme met elkaar te kunnen vergelijkenzijn er een aantal eisen opgesteld waaraan het algoritme moet voldoen om gebruikt te kunnenworden in spoorzoekertje. Deze vereisten zijn:

1. Snel: In de app moet in real-time gebruik gemaakt kunnen worden van de methode, dithoudt in dat in real-time berekend moet kunnen worden of de huidige frame wel of niet dejuiste locatie is om het object te plaatsen. ALs dit niet real-time gebeurt kan het zijn datde speler al met zijn mobieltje voorbij het punt is waar een object geplaatst zou moetenworden, wanneer het algoritme detecteert dat het object geplaatst moet worden. De apploopt dan achter op de werkelijkheid en zal te laat het object plaatsen waardoor deze opeen verkeerd punt wordt teruggezet. Het algoritme wordt gezien als snel wanneer deze inreal-time gebruikt kan worden. Wanneer wordt uitgegaan van 60fps zou dit betekenen je16.67 ms per frame hebt voor het berekenen. Wanneer deze snelheid wordt bereikt is hetalgoritme snel genoeg.

2. Nauwkeurig: Dit houdt niet in dat op de mm het object op de juiste positie moet wordenteruggezet. Wanneer een object een klein beetje is opgeschoven heeft dit geen invloed op dehint. Wel moet het algoritme robuust zijn. Het algoritme mag niet op een verkeerde plekdenken dat de positie de juiste is en het object op een verkeerde plek plaatsen. Hierdoorzou de hint verkeerd begrepen worden en gaan de spelers een andere kant op dan debedoeling was. Dit probleem wordt deels al verminderd doordat we rekening houden metde locatie van de speler. Er wordt alleen gezocht naar waar het object geplaatst moetworden wanneer de speler in de buurt is van de hint. Echter willen we nog steeds niet dathet object bijvoorbeeld aan de verkeerde kant van de straat wordt geplaatst. Een object isnauwkeurig geplaatst wanneer het in de juiste orientatie staat ten opzichte van de speleren op de juiste positie zodat de hint correct wordt begrepen.

3. Licht algoritme: Als derde moet het algoritme niet al te zwaar zijn. Het algoritme wordtgerund op een mobiele telefoon. Wanneer het algoritme te zwaar is zal deze snel de batte-rijen leeg trekken en misschien zelfs wel het mobieltje laten oververhitten of de app latenvastlopen.

4. Invariant onder verschillende waardes van lichtintensiteit: Als laatste moet het algoritmeinvariant zijn onder verschillende waardes van lichtintensiteit. Het spel wordt buiten ge-speeld en het uitzetten van het spoor hoeft niet op de zelfde dag te gebeuren als wanneerhet spel wordt gespeeld. Hierdoor kan het zo zijn dat het weer op deze dagen verschiltvan elkaar. Het kan de ene dag heel zonnig zijn geweest en de volgende dag bewolkt. Hetspel moet onder deze omstandigheden nog steeds gespeeld kunnen worden. Het algoritmewordt als invariant tegenover veranderingen in lichtintensiteit beschouwd wanneer onderverschillende waardes voor lichtintensiteit dezelfde keypoints worden gevonden en correctgematcht.

18

Page 19: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Tabel 3.1: vergelijking SIFT, SURF en ORBSIFT SURF ORB

Snel 7 7 3

Nauwkeurig 3 3 3

Invariant onderlichtintensiteit

3 3 -

Licht algoritme - - -

In tabel 3.1 worden SIFT, SURF en ORB vergeleken in de vier eerder benoemde eisen. Decheckmarks geven aan dat het algoritme voldoet aan de eis en de kruisjes geven aan dat dit nietzo is. Het streepje betekent dat het niet in de literatuur is gevonden.

In het onderzoek naar ORB staat een tabel met een vergelijking in snelheid tussen SIFT, SURFen ORB. Het gaat om de snelheid voor het detecteren en berekenen van de keypoints per frame.Hieruit blijkt dat ORB dit in 15.3 ms kan, SURF in 217.3 ms en SIFT in 5228.7 ms. Wanneerwordt gekeken naar een mogelijkheid voor een real-time werkend algoritme komen zowel SIFT alsSURF niet in de buurt van 16.7 ms. In dezelfde paper staat ook de snelheid van ORB aangegevenop een mobiele telefoon. Op een mobiele telefoon duurt het 66 ms voor ORB om keypoints tekunnen detecteren en berekenen. Dit is al een stuk langzamer, maar wanneer bijvoorbeeld nietalle frames worden meegenomen maar tussendoor een aantal frames worden overgeslagen kunnenhiermee nog steeds realtime features in een afbeelding worden gevonden.

Karami et al hebben onderzoek gedaan naar de performance van SIFT, SURF en ORB in ver-vormde afbeeldingen [8]. Uit dit onderzoek is gebleken dat ORB het snelste algoritme is en deperformance van SIFT in de meeste gevallen het beste is. Echter is de performance van SURFen ORB beter bij rotatie van 90 graden of een veelvoud hiervan en is de performance van SIFTen ORB ongeveer gelijk bij afbeeldingen met veel ruis. Uit het onderzoek kan gehaald wordendat alle drie de algoritmes de performance goed genoeg is om te gebruiken in spoorzoekertje.

Zowel in de papers van SIFT als SURF wordt aangegeven dat ze features juist kunnen matchenonder verschillende waardes van lichtintensiteit. De feature vectoren van SIFT zijn invariantonder affiene veranderingen in verlichting en invariant tegenover camera verzadiging en verande-ring in verlichtingen die effect hebben op oppervlakken van 3D objecten. Door het gebruik vanwavelet responses is SURF invariant tegenover veranderingen in verlichting.

Voor de implementatie is gekozen voor het gebruik van ORB. ORB kan gebruikt worden voorrealtime applicaties, SIFT en SURF bieden hier geen mogelijkheid toe. De nauwkeurigheid voorfeature matching van ORB is niet zo goed als SIFT, maar goed genoeg om te kunnen gebruikenvoor de spoorzoekertje app. Over de performance van SURF onder variantie in lichtintensiteitkan nog geen uitspraak worden gedaan. Dit zal later in deze paper getest worden.

3.2 Feature matching

In de app worden twee beelden met elkaar vergeleken om te kijken of we op de locatie van eenhint zijn. Hierbij worden de berekende features uit beide afbeeldingen met elkaar vergeleken.Voor het matchen worden de descriptors van de features aan elkaar gematcht. Voor het matchenwordt gebruikt gemaakt van de Hamming distance tussen de descriptors [13]. De Hamming dis-tance wordt berekend door te kijken hoeveel twee descriptors van elkaar verschillen. Met anderewoorden er wordt gekeken hoeveel stappen nodig zijn om de ene descriptor om te zetten in deander.

Voor het matchen van de descriptors uit de twee afbeeldingen wordt gebruik gemaakt van eenBrute-Force Matcher. Deze Brute-Force matcher pakt een descriptor van de eerste afbeelding

19

Page 20: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

en matched deze met alle descriptors uit de tweede afbeelding. Tussen elke match wordt deHamming distance bepaald. Het bepalen van de Hamming distance gebeurt door middel vaneen bitwise XOR operatie tussen de twee descriptors. De descriptor uit de eerste afbeeldingwordt gematcht aan de descriptor uit de tweede afbeelding waartussen de Hamming distance hetlaagst was. Dit wordt gedaan totdat elke descriptor uit de eerste afbeelding is gematcht aan eendescriptor uit de tweede afbeelding.

3.3 Positie transformatie

De laatste stap voor het correct plaatsen is het transformeren van de originele positie van hetobject, wanneer deze is geplaatst, naar de nieuwe positie. Dit is om te zorgen dat het objectop dezelfde positie in de werkelijkheid terecht komt. Om dit te verwezenlijken wordt gekekennaar een transformatie die de afbeelding van de originele locatie transformeert naar de afbeeldingvan de nieuwe locatie. Hieruit komt een matrix die gebruikt wordt op het object om deze tetransformeren. Gekeken is naar het gebruik van twee verschillende transformeer matrices.

3.3.1 Affiene transformatie

Een affiene transformatie is een transformatie waarbij de meetkundige structuur hetzelfde blijft.Dit houdt in dat na transformatie punten, lijnen en vlakken nog steeds punten, lijnen en vlakkenzijn. Ook zijn twee evenwijdige lijnen na de transformatie nog steeds evenwijdig aan elkaar. Eenaffiene transformatie kan bestaan uit een translatie, rotatie, shearing, schaling of een combinatievan deze vier. Figuur 3.2 laat deze vier verschillende transformaties zien.

Figuur 3.2: Affiene transformatieBron:http://nl.swewe.net/word_show.htm/?17548_1&Affiene_transformatie

De matrix die bij deze affiene transformatie hoort is als volgt.a b txc d ty0 0 1

Hierbij staan tx en ty voor de translatie en de matrix

[a bc d

]geeft de rotatie, schaling en shearing

aan. De transformatie wordt uitgevoerd door de affiene transformatie matrix te vermenigvuldi-

gen met een punt[x y 1

]T. Aan zowel het punt als aan de matrix is een homogeen coordinaat

toegevoegd. Het homogene coordinaat is nodig om de translatie over het punt uit te kunnen voe-ren.

20

Page 21: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

De affiene matrix kan gebruikt worden om een afbeelding te transformeren op een andere afbeel-

ding. Hierbij wordt een punt[x y 1

]Tgetransformeerd naar een punt in een nieuw coordinaten

stelsel[x′ y′ 1

]. Om de affiene matrix te kunnen berekenen moet er van minimaal drie punten

bekend zijn hoe deze vanaf de eerste afbeelding getransformeert zouden moeten worden naar detweede afbeelding.

De bereking van de originele coordinaten naar de nieuwe coordinaten kan worden herschreven.Voor een punt ziet de berekening er als volgt uit.

[x′iy′i

]=

[xi yi 1 0 0 00 0 0 xi yi 1

]abtxcdty

Deze berekening kan ook uitgeschreven worden voor 3 punten. Voor elk extra punt dat wordttoegevoegd aan de matrix komen er twee nieuwe coordinaten bij aan de linker kant van deberekening en twee nieuwe rijen in de matrix. Deze berekening kan ook worden geschreven alsq = Mp. Hiermee kan de vector p worden berekend, p = M−1q. Het is lastig om drie parenvan punten te vinden die precies op elkaar transformeren. Hierdoor kan de berekende vector pinaccuraat zijn. Om dit tegen te gaan wordt de kleinste-kwadraten oplossing van p bepaald. Dekleinste-kwadraten methode zoekt naar de oplossing waarbij het verschil in het kwadraat tussende daadwerkelijke data en de verwachte data zo klein mogelijk is. De uiteindelijke berekeningvan p is p = (MTM)−1MTq . De berekende vector kan dan worden herschreven als de matrixvoor de affiene transformatie.

3.3.2 Homografie transformatie

Homografie transformatie wordt ook wel perspectief transformatie genoemd. Een Homografietransformatie is een transformatie tussen twee vlakken. Hierbij kan elk punt van het ene vlakgetransformeerd worden naar het andere vlak. Net zoals bij de affiene transformatie kan een ho-mografie transformatie bestaan uit een translatie, rotatie, schaling en shearing. In tegenstellingtot de affiene transformatie hoeven evenwijdige lijnen niet evenwijdig aan elkaar te blijven.

Een homografie matrix kan gebruikt worden om 3D objecten in een 2D omgeving te plaatsen.Een homografie transformatie kan gebruikt worden om een afbeelding of object in 3D te trans-formeren. Hierdoor komt er perspectief in de afbeelding. Punten op de afbeelding die verder wegzijn worden kleiner gemaakt. De homografie transformatie wordt als volgt berekend.

s

x′y′1

=

a b cd e fg h i

xy1

Hierin is s de schaal factor. De berekening kan worden herschreven naar

x′ =ax+ by + c

gx+ hy + iy′ =

dx+ ey + f

gx+ hy + i

Wat weer kan worden herschreven als

[x y 1 0 0 0 −x′x −x′y −x′0 0 0 x y 1 −x′x −x′y −x′

]

abcdefghi

=

[00

]

21

Page 22: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Net zoals bij de affiene matrix kunnen extra punten worden toegevoegd aan de vector[x′i y′i

]Ten aan de matrix. Om de homografie transformatie te kunnen berekenen zijn vier of meer pun-ten nodig. De vergelijking kan ook geschreven worden als Mp = 0. Door het oplossen van dezevergelijking kan de homografie matrix bepaald worden. Wanneer er meer dan 4 punten wordengebruikt wordt gezocht naar de homografie matrix met de beste fit.

22

Page 23: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 4

Implementatie

Voor de implementatie is gebruik gemaakt van OpenCV en C++ voor het implementeren van hetORB algoritme en de feature matching [4]. Unity en Vuforia zijn gebruikt voor het implementerenvan de front-end, de camera en het plaatsen van objecten.

4.1 Algemene implementatie

Algorithm 1 Algemene implementatie spoorzoekertje

1: while true do2: LatLon pos = GetLocation()3: obj [ ] = objs = GetObject(pos, radius, database)4: feat [ ] features = GetFeatures()5:

6: for all Obj in objs do7: isMatch = MatchFeature(Obj.feature, features)8:

9: if isMatch then10: Transform [ ][ ] posture = GetPosture(Obj.feature, features, Obj)11: DrawObject(Obj, posture)

In de pseudocode 1 wordt aangegeven hoe de de positie bepaling en object plaatsing samen wer-ken in de uiteindelijke applicatie. Eerst zal in de applicatie worden bekeken wat de locatie isvan de speler. Met behulp van deze locatie wordt naar alle objecten gezocht die in een bepaalderange vanaf de speler zijn. Deze objecten worden uit de database gehaald en in een lijst geplaatst.Vervolgens worden van het huidige camera beeld de features berekend. Over alle objecten wordtgeıtereerd. In elke iteratie worden de features van het huidige camera beeld gematcht aan defeatures van de hint. Wanneer de hint een match is wordt bepaald hoe het object geplaatst moetworden en zal deze aan de hand van die gegevens getekend worden.

Elke feature is opgebouwd uit een keypoint en de bijbehorende descriptor. Elk object en camerabeeld is opgebouwd uit meerdere features.

Een object is als volgt opgebouwd:

1. id

2. LatLon positie

3. type

4. route id

23

Page 24: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Elk object heeft een uniek id waarmee deze kan worden onderscheiden van de rest. Elk objectheeft een positie waarop deze zich bevind in de werkelijke wereld. Verder heeft elk object eentype die aangeeft wat voor soort object moet worden geplaatst. Als laatste wordt aan elk objecteen route id gekoppeld. Deze geeft aan of het object zich in de huidige route bevind.

4.2 Feature detectie en matching

De afbeeldingen die nodig zijn voor feature detectie worden vanuit Vuforia en Unity doorgestuurdnaar C++. Hiervoor worden de afbeeldingen verkregen vanaf de Vuforia AR camera omgezetin bytes. Deze bytes worden aan een C++ functie als pointer meegeven. In C++ worden dezebytes weer omgezet naar een afbeelding.

Voor het detecteren en berekenen van ORB features en het matchen van de features is gebruikgemaakt van functies uit de OpenCV library. Het matching algoritme in openCV matcht allegevonden features uit twee afbeeldingen zo goed mogelijk aan elkaar. Dit betekent dat veelmatches niet correct zullen zijn. Om te bepalen of matches correct zijn wordt gekeken of deHamming distance boven een bepaalde threshold ligt.

Figuur 4.1: Distance distributie van inliers en outliers in het ORB algoritme

Figuur 4.1 geeft een distributie van de afstand voor gevonden matches. Hierbij geven de door-getrokken lijnen de distributie voor inliers weer en de stippelijnen de distributie voor outliers.Wanneer correct tussen twee afbeeldingen een punt wordt gematcht wordt deze als inlier gezien.Wanneer twee verkeerde punten op de afbeelding wordt gematcht is het een outlier. Hiervan isrBRIEF het gebruikte algoritme in ORB. Uit dit figuur kan gehaald worden dat bij een afstandlager dan 80 de kans groter is dat de match een inlier is, dan de kans dat deze een outlier is.In de implementatie is gekozen om alleen de matches te nemen die een afstand van 48 of lagerhebben. Bij een threshold van 48 is de kans dat een match een outlier is verwaarloosbaar klein.

Er wordt door de lijst van matches gelopen en voor elke match wordt gekeken naar de Hammingdistance. Wanneer de Hamming distance lager dan 32 is, wordt de match in een lijst van cor-recte matches geplaatst. De kans bestaat dat nog steeds incorrecte matches in de lijst staan. Omhier rekening mee te houden wordt er een threshold bepaald. Deze threshold geeft aan hoeveelcorrecte matches moeten bestaan voordat de afbeeldingen als een match worden beschouwd.

In figuur 4.2 is naar het aantal gevonden matches per frame gekeken. Deze test is gedaan metbehulp van een opgenomen video. Voor het maken van een video is een kort stukje over straat

24

Page 25: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

gelopen waarbij de beelden zijn opgenomen. Uit deze video zijn een aantal frames gehaald ommee te testen. Deze frames staan in appendix A.1. Uit deze data kan gehaald worden dat eenthreshold van 75 gekozen kan worden voor het minimaal aantal matches wat nodig is om aante geven dat een beeld een match vormt met de afbeelding. Er is bij de grafiek nog een kleineafwijkende piek te zien, deze piek wordt veroorzaakt doordat er een moment is waarbij een deelvan de auto van frame 100 ook hier te zien is.

Figuur 4.2: Aantal gevonden matches met een Hamming distance groter dan 48 per framegematched tegenover een frame genomen vanaf de afbeelding

4.3 Object plaatsing

Het plaatsen van een object gebeurt door middel van unity [17]. Elk object in unity heeft eentransform waarmee de positie, rotatie en schaling worden aangegeven. De positie, rotatie enschaling hebben elk een X, Y en Z waarde. Wanneer een object verplaatst wordt in unity wordtdat gedaan door deze waarde aan te passen.

In C++ worden met behulp van een OpenCV functie de transformatie matrixen bepaald. Voorhet plaatsen van de 3D objecten in unity wordt deze transformatie uitgevoerd over de positie vanhet object op moment van plaatsen. Om deze transformatie in unity uit te kunnen voeren zijnapart de translatie, rotatie en schaling van het object nodig. Hiervoor moeten de transformatiematrixen worden ontbonden.

Het is niet mogelijk om een affiene matrix te ontbinden. De translatie kan makkelijk uit de trans-formatie matrix worden gehaald. De rest van de matrix is een vermenigvuldiging van rotatie,schaling en shearing, waarbij niet terug te halen valt wat de waarde van de originele matrixenwaren. Hierdoor kan een affiene matrix niet worden gebruikt voor een transformatie in unity.

Voor het decomposeren van de homography matrix bestaat een functie in OpenCV. Deze functieontbind de homography matrix in een rotatie matrix en translatie vector. Hoe de homografiematrix wordt ontbonden wordt omschreven in het onderzoek van E. Malis, M.Vargas en anderen

25

Page 26: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

[10]. Om deze matrix te kunnen ontbinden moet de intrinsic camera matrix worden meegegevenaan de OpenCV functie. fx 0 cx

0 fy cy0 0 1

Hierbij zijn fx en fy de brandpuntafstanden tot de camera en cx en cy het optische midden punt.Het optisch midden punt kan worden bepaald door het midden punt van de afbeelding in pixels tenemen. cx = frameWidth/2 en cy = frameHeight/2. De brandpuntafstanden kunnen wordenbepaald met behulp van de field of view hoeken. Deze waarden kunnen verkregen worden metbehulp van de Vuforia camera. De waarde van de field of view hoeken worden aangegeven doorax en ay. De brandpuntsafstanden kunnen als volgt worden berekend:

fx = cx/tan(ax/2)

fy = cy/tan(ay/2)

Uit de ontbonden homografie transformatie komen vier mogelijke combinaties van translatievectoren en rotatie matrixen. Uit deze combinaties moet vervolgens nog worden bepaald welkede correcte transformatie is. Hoe dit kan worden bepaald staat omschreven in het onderzoek vanE. Malis, M. Vargas en anderen.

4.4 Database

Om de gegevens voor spoorzoekertje tussen verschillende sessies te kunnen gebruiken wordendeze opgeslagen in een database. Figuur 4.3 geeft aan hoe de database is opgebouwd. Voor hetspel spoorzoekertje wordt een route uitgezet. Elke route bestaat uit een uniek id, een naam eneen moeilijkheidsgraad. Langs de route kunnen hints worden geplaatst. De hints bevatten eenlocatie met een latitude en longitude waar deze zich in de werkelijke wereld bevinden. Verderbevat het een type die aan geeft wat voor een object is geplaatst. Als laatste wordt de positie,rotatie en schaling van het object in de virtuele wereld opgeslagen. Positie, rotatie en schalingomvatten allemaal drie verschillende rijen in de tabel met een x, y en z waarde. In figuur 4.3wordt dit aangegeven als een rij met een x, y en z waarde erin. Bij het plaatsen van een objectworden de features van de frame op moment van plaatsen berekend. Deze features worden elkin een eigen tabel opgeslagen. Aan elke feature wordt een descriptor en keypoint gekoppeld.

26

Page 27: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Figuur 4.3: Opbouw database

27

Page 28: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

28

Page 29: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 5

Experimenten

Verschillende experimenten worden uitgevoerd voor het testen van ORB. Deze experimenten zijngericht op de eisen genoemd in sectie 3.1.4. Er worden op drie verschillende gebieden experimen-ten uitgevoerd. Het eerste experiment kijkt naar de snelheid van de feature detectie en matchingop een mobiele telefoon. Het tweede experiment kijkt naar de nauwkeurigheid van ORB. Hierbijwordt gekeken of voor de correcte frames wordt aangegeven dat een match is gevonden. Alslaatste experiment wordt er gekeken naar de robuustheid van ORB onder verschillende waardesvoor lichtintensiteit.

In de implementatie wordt een match toegestaan wanneer 75 of meer matches zijn gevonden meteen Hamming distance lager dan 48. Alle frames met minder dan 75 keypoints zullen hierdoornooit als match gezien worden. Deze zullen dan ook niet worden meegenomen in de experimenten.

5.1 Snelheid

Om te bepalen of ORB snel genoeg is om gebruikt te worden in AR wordt gekeken naar de snel-heid van het algoritme. Hiervoor wordt de snelheid gemeten voor het detecteren en berekenenvan de features en het matchen van de gevonden features. Door deze twee snelheden samen tebekijken kan bepaald worden of ORB real time gebruikt kan worden op een mobiele telefoon.Deze testen worden uitgevoerd op een Samsung galaxy S7.

Voor het uitvoeren van het experiment is gebruik gemaakt van een live applicatie op de mobieletelefoon. Bij het opstarten van de applicatie worden de features uit het eerste frame berekend enopgeslagen in de applicatie. Deze frame wordt gezien als het frame waarin een object is geplaatst.Uit elk volgend frame worden vervolgens de features berekend. Deze features worden gematchtnet de opgeslagen features in de applicatie. Van elk frame wordt de snelheid voor het berekenenvan features bepaald en de snelheid van het matchen van deze gevonden features.

5.2 Nauwkeurigheid

In het experiment voor nauwkeurigheid wordt gekeken naar de robuustheid van de features diedoor ORB worden berekend. Hierbij wordt gekeken of het ORB algoritme op het juiste momentaangeeft dat een match is gevonden. Hierbij wordt gekeken of op het juiste moment een framewordt gedetecteerd als locatie voor het plaatsen van een object.

Voor de uitvoering van het experiment is een video opgenomen waarbij een stuk over straatwordt gelopen. Hierbij wordt nagebootst hoe een speler om zich heen zal kijken op zoek naarhints. Van hetzelfde gelopen stuk zijn foto’s gemaakt als locaties waar hints zich bevinden. Dezefoto’s zijn terug te vinden in appendix A.2. Deze foto’s zijn gedownscaled van een resolutie van

29

Page 30: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

4032x3024 naar een resolutie van 1920x1080.

De video wordt frame voor frame uitgelezen en gematcht tegenover elke foto. Voor elk framewordt bepaald hoeveel matches er zijn gevonden en of dit een match is. Met behulp van dezeinformatie kan worden gekeken of op het verwachte moment een match wordt aangegeven.

5.3 lichtintensiteit

Bij het experiment voor lichtintensiteit wordt gekeken naar de robuustheid van ORB onder ver-schillende waardes voor lichtintensiteit. Het doel van dit experiment is om te onderzoeken ofafbeeldingen van dezelfde locatie onder een andere lichtintensiteit nog steeds juist aan elkaargematcht worden.

Het experiment voor de lichtintensiteit is opgesteld in een donkere kamer waar zich een dimlichtbevindt. Hierbij wordt een korte video opgenomen door een mobiele telefoon die zich in eenstabiele positie bevind. Aan het begin van het filmen stond het dimlicht volledig aan. Langza-merhand wordt het licht steeds lager gezet waarmee de lichtintensiteit vermindert. Uit de videoworden drie frames gekozen als hint locaties. Deze frames staan in appendix A.3. Hiermee wordtgekeken of de lichtintensiteit van het moment van plaatsen invloed heeft op hoe deze zal wordengematcht. Frame A.12 is het middelste frame uit de video. Hierbij is het middelste frame gekozenzodat deze in het midden ligt tussen frame 0 en de laatste frame waarbij 75 keypoints of meerzijn gedetecteerd. Met behulp van deze frame wordt gekeken of een frame beter wordt gematchtmet hoger of lagere waardes voor lichtintensiteit.

Voor het experiment worden de gekozen frames gematcht tegenover alle frames uit de video. Voorelk frame wordt gekeken naar het aantal gevonden matches en of ze als match worden herkend.

30

Page 31: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 6

Resultaten

6.1 Snelheid

In tabel 6.1 staan verschillende tijds metingen voor feature detectie en feature matching. Hierinis te zien dat feature detectie en feature matching per frame gemiddeld ongeveer even snel zijn.Feature matching is met zijn langzaamste meting 10 ms langzamer dan feature detectie. Wanneernaar de snelste tijd wordt gekeken liggen feature detectie en feature matching dicht bij elkaar.Wanneer een frame met 0 keypoints wordt megenomen is dit voor beide 2 ms. Wanneer 0 nietwordt meegenomen is feature matching 1 ms langzamer dan feature detectie. Hieruit is op temerken dat de snelheid van feature matching een wijdere range omvat dan feature detectie.

Figuur 6.1 geeft de snelheden van feature detectie en feature matching weer tegenover hetaantal keypoints per frame. Hieruit valt op dat zowel bij feature detectie als bij feature mat-ching er een stijgende lijn te zien is. Bij een hoger aantal keypoints in een frame worden featurematching en feature detectie langzamer.

Tabel 6.1: Gemiddelde snelheid, snelste tijd en langzaamste tijd van feature detectie en featurematching

Gemiddelde tijd (ms)per frame

Snelste tijd (ms)#keypoints = 0

Snelste tijd (ms)#keypoints >0

Langzaamstetijd (ms)

Feature detectie 23.39 2 19 44Feature matching 25.80 2 20 54

6.2 Nauwkeurigheid

Figuur 6.3 laat het aantal matches van de genomen foto zien tegenover alle frames uit het filmpje.Bij alle matches is de Hamming distance lager dan 48. De gebruikte foto’s staan in appendix A.2.Uit het figuur is af te lezen dat nergens meer dan 75 matches zijn gevonden tussen een foto enframe. Dit houdt in dat geen van de foto’s is gematcht met een frame uit het filmpje. Wel valtop dat foto 1 een piek heeft bij de laatste frames en foto 3 heeft een piek bij de eerste frames.Bij zowel foto 2 als foto 4 zijn geen duidelijke pieken te zien.

31

Page 32: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Figuur 6.1: Tijd in ms voor het detecteren van keypoints tegenover het aantal keypoints in eenframe

Figuur 6.2: Tijd in ms voor het matchen van features tegenover het aantal keypoints in een frame

6.3 Lichtintensiteit

Figuur 6.4 geeft het aantal keypoints weer per frame. Hierbij heeft het eerste frame de hoogstelichtintensiteit. De lichtintensiteit neemt bij elke frame af. Uit dit figuur is af te lezen dat bijeen lagere lichtintensiteit het aantal gevonden keypoints in het frame afneemt. Vanaf frame 245worden er geen keypoints meer gedetecteerd. Het valt op dat het aantal keypoints per frame bijframe 140 weer omhoog gaat. Vanaf frame 190 daalt het aantal keypoints weer.

Tabel 6.2 geeft de range van frames weer die werden gevonden als match voor elke frame. Degebruikte frames hiervoor staan in appendix A.3. Hieruit valt op dat voor zowel frame 0 alsframe 106 een groot aantal frames als match zijn gevonden. Frame 212 heeft alleen een matchmet zichzelf en wordt niet gematcht met een ander frame.

Figuur 6.5 geeft het verloop van het aantal matches weer dat per frame wordt gevonden. Uit

32

Page 33: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Figuur 6.3: Aantal matches met een Hamming distance lager dan 48 per foto tegenover elkeframe in de video

Figuur 6.4: Aantal keypoints per frame waarbij de lichtintensiteit per frame afneemt

frame 0 frame 106 frame 212

range gematchteframes

0-1920-197199-201204

212

Tabel 6.2: De range van gevonden matches voor de frames 0, 106 en 212

dit figuur is af te lezen dat voor frame 0 het aantal gevonden matches per frame afneemt. Voorframe 106 is het aantal matches met een hogere lichtintensiteit bijna stabiel. Bij een lager licht-intensiteit neemt het aantal gevonden matches af. Voor frame 212 neemt het aantal matches toewanneer de lichtintensiteit afneemt.

6.4 Verwerking resultaten

Aan de hand van de gevonden resultaten zal bepaald worden of ORB geschrikt is om te gebruikenin spoorzoekertje. In de discussie zullen deze resultaten nader verklaard worden. En zal gekeken

33

Page 34: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Figuur 6.5: Aantal matches per frame waarbij de lichtintensiteit per frame afneemt

worden of aan de hand van deze resultaten een duidelijke conclusie gemaakt kan worden.

34

Page 35: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 7

Discussie

In tabel 6.1 staan de snelheden van feature detectie en feature matching. Gemiddeld kost het23.39 ms voor feature detectie en 25.80 ms voor feature matching. Samen kost het ongeveer 50ms per frame. Wanneer wordt uitgegaan van 60 frames per seconde, 16.7 ms per frame is ditniet snel genoeg. In het echt zal dit gemiddelde waarschijnlijk nog wat hoger liggen. Wanneeroverdag buiten spoorzoekertje wordt gespeeld zal het bijna niet voorkomen dat maar geen ofenkele matches zullen worden gevonden. Wanneer enkele frames worden overgeslagen zal hetalgoritme wel in real-time gebruikt kunnen worden. Hierbij wordt de aanname gemaakt dat hetverschil tussen twee frames klein genoeg is om ervan uit te gaan dat niet niet gekeken hoeft teworden naar het plaatsen of verplaatsen van het object in het frame.

Uit figuur 6.3 valt te halen dat tussen alle foto’s uit appendixapd:1 minder dan 75 matches zijngevonden. Dit betekend dat geen foto is aangegeven als een correcte match. Foto 3 heeft eenpiek aan het begin van de grafiek met 68 matches. Hier was ook verwacht dat deze foto gematchtzou worden. Deze zou correct gematcht worden wanneer de treshold voor het minimaal ietsomlaag gehaald zou worden. De andere drie foto’s laten geen duidelijke pieken zien van positieswaar deze gematcht zouden moeten worden. Dit zou kunnen komen doordat de foto’s net vanuiteen andere hoek zijn genomen dan dat er met de video langs is gelopen en daardoor niet cor-rect gematcht konden worden. Bij foto 1 was verwacht dat wel een correcte match zou wordengevonden omdat deze bijna zo voorkwam in de video. Deze resultaten waren ook onverwachtdoordat in figuur 4.2 dezelfde video is gebruikt. Hier werden in de frames rondom de gekozenafbeelding uit de video wel veel matches gevonden. Hieruit kan geconcludeerd worden dat ORBniet nauwkeurig genoeg is in het matchen van de juiste afbeeldingen.

Bij de experimenten van nauwkeurigheid is gebruik gemaakt van afbeeldingen met een resolutievan 4032x3024 die zijn gedownscaled naar een resolutie van 1920x1080. Hierbij veranderen deverhoudingen van een foto van 4:3 naar 16:9. Deze downscaling kan tot gevolg hebben de ge-vonden keypoints verschillen van de keypoints uit de frames. Waardoor deze minder goed metelkaar worden gematcht.

Bij de experimenten voor nauwkeurigheid is ontdekt dat de resolutie van de afbeeldingen uit-maakt voor hoe goed deze matchen met elkaar. Bij de experimenten had de video een resolutievan 1920x1080 en de foto’s een resolutie van 4032x3024. Uit deze testen kwam ook als resultaatdat geen van de foto’s matcht met de frames uit de video. Hierbij werden geen pieken waarge-nomen bij foto 3.

Een oplossing voor het probleem rondom de nauwkeurigheid zou kunnen zijn, een kleiner deelvan de foto te pakken die beter weergeeft waar het object zich bevind. Dit zorgt ervoor dat veelvan de omgeving minder effect heeft op het vinden van de keypoints en het correct matchen.Hierdoor match je alleen nog maar het gedeelte waar het object daadwerkelijk staat in plaatsvan dat ook nog de omgeving van het object gematcht probeert te worden. Dit zou een hogere

35

Page 36: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

nauwkeurigheid kunnen opleveren.

Een andere oplossing zou kunnen zijn om te kijken naar het percentage van correcte matchestussen twee afbeeldingen in plaats van te kijken naar een bepaalde hoeveelheid. Wanneer maarweinig features in een beeld worden gevonden is het lastiger om aan 75 matches met een bepaaldeHamming distance te komen. Wanneer wordt gekeken naar de verhouding van matches met eenHamming distance kleiner dan 48 en het totaal aantal matches kan dit probleem verholpen wor-den. Dit kan ervoor zorgen dat matches nauwkeuriger worden gevonden.

Met een lage nauwkeurigheid zal het beter zijn om het object niet constant opnieuw te tekenen.Wanneer een speler op de juiste locatie staat waarop een hint locatie wel wordt herkend maarvervolgens net iets verplaatst en daardoor niet meer wordt herkend zal het object even in beeldspringen en daarna weer verdwijnen. De huidige feature matching is hier niet stabiel genoegvoor. Een oplossing hiervoor zou kunnen zijn om een object maar een keer te tekenen en ver-volgens op een andere manier het object op zijn plek te houden. Bijvoorbeeld door te kijkennaar de positie van de speler in de wereld en te kijken hoe deze ten opzichte tot het object beweegt.

Figuur 6.4 laat het aantal keypoints per frame zien. Hierbij valt op dat vanaf frame 245 geenkeypoints meer worden gevonden. Dit komt waarschijnlijk omdat vanaf dit punt de afbeeldingente donker worden en er geen duidelijke randen meer worden gevonden. Dit geeft aan dat ORBfeature matching niet zal werken in het donker. ORB kan alleen gebruikt worden wanneer hetspel gespeeld wordt met een hogere lichtintensiteit. Uit figuur 6.2 valt op dat frame 212 alleenmet zichzelf matched. In frame 212 werden precies 75 keypoints gedetecteerd. Doordat deze 75keypoints met geen enkel andere frame precies matchen kan worden geconcludeerd dat verschillenontstaan in de gevonden keypoints bij verschillende waardes van lichtintensiteit.

Wanneer wordt gekeken naar het aantal matches tegenover het afnemen van de lichtintensiteitvalt frame 106 op in figuur 6.5. Hierbij is te zien dat wanneer de lichtintensiteit hoger wordt hetaantal matches ongeveer stabiel blijven. Bij het afnemen van de lichtintensiteit neemt het aantalmatches sterk af. Dit zou veroorzaakt kunnen worden doordat bij afbeeldingen met een lagerelichtintensiteit minder features worden gevonden. Dit kan tot gevolgen hebben dat ook minderfeatures worden gematcht.

Verder zijn er nog een paar aspecten aan feature matching waar naar gekeken zal moeten wordenvoor verdere experimenten. Wanneer iemand vanaf de achterkant van de hint komt aanlopenzal deze niet geplaatst worden, omdat in het beeld geen features herkend zullen worden. Ditkomt doordat dit beeld niet overeenkomt met het beeld waar features uit zijn gehaald. Hierdoorworden de hints niet op deze locatie geplaatst en kunnen hints gemist worden door spelers. Eenoplossing hiervoor zou zijn om de hint locatie vanuit meerdere camera punten op te slaan inde database. Dit is geen optimale oplossing, omdat hierdoor de persoon die het pad instelt ditconstant voor elke hint zou moeten doen. Daarnaast zullen meer features met elkaar gematchtmoeten worden waardoor de applicatie langzamer wordt.

Een ander probleem kan ontstaan door het verschil in tijd van het uitzetten van het spoor en hetspelen. In de verstreken tijd kan het zo zijn dat de opgeslagen locaties niet meer hetzelfde eruitzien. Voorbeelden van mogelijke veranderingen zijn auto’s die zijn verplaatst, plekken waar ietsnieuws is gebouwd of juist iets is weggehaald. Door deze veranderingen kan het zijn dat de loca-tie niet meer op het juiste moment wordt gematcht en hierdoor hints niet meer worden geplaatst.

36

Page 37: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

HOOFDSTUK 8

Conclusie

ORB bevat de functionaliteiten om gebruikt te worden in spoorzoekertje als wordt gekekennaar de snelheid en robuustheid onder lichtintensiteit. Wanneer vanuit gegaan wordt dat spoor-zoekertje alleen overdag gebruikt zal worden met voldoende lichtintensiteit. Als het gaat omnauwkeurigheid kan ORB niet gebruikt worden. Bij kleine veranderingen in het beeld wordendeze nog correct gematcht. Wanneer de foto niet volledig genoeg overeen komt met de video zaldeze niet gematcht worden en zullen veel hints niet worden geplaatst. Op mijn onderzoeksvraag:”Wat is een geschikte methode voor het plaatsen van een virtueel object in AR waarbij zijn positiebehouden blijft ten opzichte van de werkelijke wereld?” is dan ook nog geen duidelijk antwoordop te geven.

Voor ORB moet nog gekeken worden of deze nauwkeuriger wordt bij het aanpassen van de thres-holds voor de Hamming distance en het minimale aantal matches dat gevonden moet worden.In mijn implementatie is ook de waarde voor de scaleFactor aangepast van 1.2f naar 2.0f. Ditmaakt ORB sneller maar ook onnauwkeuriger. Hier kan nog voor worden gekeken welke waardevoor scaleFactor de beste verhouding tussen snelheid en nauwkeurigheid geeft.

8.1 vervolgonderzoek

Als vervolgonderzoek kan worden gekeken naar het verbeteren van het huidige algoritme en meerexperimenten uitvoeren met verschillende waardes voor de tresholds en de ScaleFactor. Verderkan gekeken worden naar een manier voor het decomposeren van transformatie matrixen diegebruikt kunnen worden in Unity voor het plaatsen van objecten.

Ook kan gekeken worden naar de besproken aanpassingen aan ORB in de discussie. Om te kijkenwel effect het heeft om maar een klein deel van de afbeelding te pakken en deze te gebruiken voorhet berekenen en matchen van features met de camera frames. Verder kan worden gekeken naarhet effect op de nauwkeurigheid wanneer wordt gekeken naar het percentage correcte matches inplaats van naar het aantal.

Naast het kijken naar hoe ORB gebruikt kan worden voor spoorzoekertje kan gezocht worden naareen andere manier voor het vinden van de positie waar een object geplaatst zou moeten worden.Een manier die minder afhangt van de richting waarin de speler kijkt maar meer afhangt van depositie in de wereld, waardoor het voorwerp van verschillende kanten benaderd kan worden.

37

Page 38: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

38

Page 39: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

Bibliografie

[1] Android. url: https://developers.google.com/ar/ (bezocht op 06-06-2018).

[2] Apple. url: https://developer.apple.com/arkit (bezocht op 06-06-2018).

[3] Herbert Bay e.a. “Speeded-Up Robust Features (SURF)”. In: Computer Vision and ImageUnderstanding 110.3 (2008). Similarity Matching in Computer Vision and Multimedia,p. 346–359. issn: 1077-3142. doi: https://doi.org/10.1016/j.cviu.2007.09.014. url:http://www.sciencedirect.com/science/article/pii/S1077314207001555.

[4] G. Bradski. “The OpenCV Library”. In: Dr. Dobb’s Journal of Software Tools (2000).

[5] Michael Calonder e.a. “BRIEF: Binary Robust Independent Elementary Features”. In:Computer Vision – ECCV 2010. Red. door Kostas Daniilidis, Petros Maragos en NikosParagios. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010, p. 778–792. isbn: 978-3-642-15561-1.

[6] Albert Heijn. url: https://www.ah.nl/over-ah/pers/persberichten/bericht?id=1537844 (bezocht op 08-06-2018).

[7] Ikea. url: https://www.ikea.com/gb/en/customer-service/ikea-apps/ (bezocht op08-06-2018).

[8] Ebrahim Karami, Siva Prasad en Mohamed S. Shehata. “Image Matching Using SIFT,SURF, BRIEF and ORB: Performance Comparison for Distorted Images”. In: CoRRabs/1710.02726 (2017). arXiv: 1710.02726. url: http://arxiv.org/abs/1710.02726.

[9] David G Lowe. “Distinctive image features from scale-invariant keypoints”. In: Internati-onal journal of computer vision 60.2 (2004), p. 91–110.

[10] Ezio Malis en Manuel Vargas. “Deeper understanding of the homography decompositionfor vision-based control”. Proefschrift. INRIA, 2007.

[11] Microsoft. What is a hologram? url: https://docs.microsoft.com/nl-nl/windows/mixed-reality/hologram (bezocht op 06-06-2018).

[12] niantic. url: https://www.pokemongolive.com/en/ (bezocht op 08-06-2018).

[13] OpenCV. url: https : / / docs . opencv . org / 3 . 0 - beta / doc / py _ tutorials / py _

feature2d/py_matcher/py_matcher.html (bezocht op 08-06-2018).

[14] E. Rosten, R. Porter en T. Drummond. “Faster and Better: A Machine Learning Approachto Corner Detection”. In: IEEE Transactions on Pattern Analysis and Machine Intelligence32.1 (jan 2010), p. 105–119. issn: 0162-8828. doi: 10.1109/TPAMI.2008.275.

[15] E. Rublee e.a. “ORB: An efficient alternative to SIFT or SURF”. In: (nov 2011), p. 2564–2571. issn: 1550-5499. doi: 10.1109/ICCV.2011.6126544.

[16] Gabriel Takacs e.a. “Outdoors Augmented Reality on Mobile Phone Using Loxel-basedVisual Feature Organization”. In: Proceedings of the 1st ACM International Conferenceon Multimedia Information Retrieval. MIR ’08. Vancouver, British Columbia, Canada:ACM, 2008, p. 427–434. isbn: 978-1-60558-312-9. doi: 10.1145/1460096.1460165. url:http://doi.acm.org/10.1145/1460096.1460165.

[17] Unity. url: https://unity3d.com/ (bezocht op 08-06-2018).

39

Page 40: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

[18] Vuforia. url: https://www.vuforia.com/ (bezocht op 06-06-2018).

[19] Vuforia. Ground Plane User Guide. url: https://library.vuforia.com/articles/Training/ground-plane-guide.html (bezocht op 06-06-2018).

40

Page 41: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

BIJLAGE A

Experiment foto’s

A.1

Figuur A.1: Frame 100 Figuur A.2: Frame 200

Figuur A.3: Frame 300 Figuur A.4: Frame 400

Figuur A.5: Frame 500 Figuur A.6: Frame 600

41

Page 42: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

A.2

Figuur A.7: Hint locatie 1 Figuur A.8: Hint locatie 2

Figuur A.9: Hint locatie 3 Figuur A.10: Hint locatie 4

42

Page 43: Spoorzoekertje in Augmented Reality - UvA · den met behulp van augmented reality (AR). Hierbij worden de verschillende hints weergegeven met behulp van AR. Wanneer de speler met

A.3

Figuur A.11: Lichtintensiteit: frame 1

Figuur A.12: Lichtintensiteit: frame 106

Figuur A.13: Lichtintensiteit: frame 212

43