• No results found

Persistent Tracking in Feature-Poor Environments

N/A
N/A
Protected

Academic year: 2021

Share "Persistent Tracking in Feature-Poor Environments"

Copied!
34
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Bachelor Informatica

Persistent Tracking in

Feature-Poor Environments

Niek Kabel

29 juni 2018

Supervisor(s): dr. R.G. Belleman

Inf

orma

tica

Universiteit

v

an

Ams

terd

am

(2)
(3)

Samenvatting

Met de momenteel beschikbare augmented reality oplossingen is het niet mogelijk grote virtuele objecten weer te geven in herkenningspunt-arme omgevingen. Om virtuele objecten ergens aan te ankeren, maken we de omgeving rijker door markante herkenningspunten kunstmatig toe te voegen. Omdat het virtuele object groter is dan deze zogenaamde marker, kan het voorkomen dat de marker buiten beeld valt terwijl een deel van het virtuele object weergegeven zou moeten zijn. Om het virtuele object weer te geven ongeacht de pose van de marker, moet ofwel een marker altijd in beeld blijven, ofwel buiten beeld getracked worden, ofwel een combinatie van beide; dit noemen we persistent tracking. Momenteel bestaat er geen augmented reality oplossing die een marker persistent tracked in herkenningspunt-arme omgevingen. Dit onderzoek introduceert een oplossing die gebruik maakt van meerdere markers en geschatte camera verplaatsing wanneer geen van alle markers zichtbaar zijn. Alhoewel de geschatte camera verplaatsing nauwkeuriger is dan de geschatte marker positie, is ze namelijk minder betrouwbaar.

(4)
(5)

Inhoudsopgave

1 Introductie 7 1.1 Context . . . 7 1.2 Probleemstelling . . . 7 1.3 Onderzoeksvraag . . . 9 1.4 Toepassing . . . 9 2 Theoretische achtergrond 11 2.1 Gerelateerd werk . . . 11 2.1.1 Extended tracking . . . 11

2.1.2 ALT: Antilatency tracker . . . 11

2.1.3 Co¨ordinatenstelsel van markers . . . 12

2.2 Sensor fusion . . . 12

2.3 Marker-based Augmented Reality . . . 12

2.4 Odometrie . . . 13

2.4.1 Positiebepaling met acceleratiesensoren . . . 13

3 Oplossing 15 3.1 Multi-marker aanpak . . . 15 3.1.1 Ketting registratie . . . 15 3.1.2 Registratie . . . 16 3.1.3 Herregistratie . . . 17 3.1.4 Slot op aanvullen . . . 17

3.2 Multi-marker aanpak met odometrie . . . 18

3.2.1 Fixeren op laatst bekende plek . . . 18

3.2.2 RANSAC . . . 19

3.2.3 Implementatie details odometrie . . . 19

4 Metingen 21 4.1 Marker . . . 21 4.2 Odometrie . . . 21 5 Conclusie 27 6 Bibliografie 29 Appendix 31

(6)
(7)

HOOFDSTUK 1

Introductie

1.1

Context

Tracking is het proces waarbij we gegeven het kader van een object in frame 0, dat object blijven volgen, dat wilt zeggen telkens opnieuw juist het object kunnen omkaderen in daaropvolgende frames > 0. Hier wordt het eerste kader vaak gegeven door een recognition algoritme. Persistent tracking voegt vervolgens als eis toe dat het object ook buiten beeld getracked kan worden.

De brede context waarin tracking en dus ook persistent tracking toegepast worden is het (realiteits-)virtualiteits continu¨um, afgebeeld in Figuur 1.1a. Dit is een schaal die zich uitstrekt tussen het volledig re¨ele en het volledig virtuele en zo alle omgevingen van combinaties met objecten uit ´e´en (zie Figuur 1.1b) of beide (zie Figuur 1.1c) werelden omvat.

Omgevingen die slechts objecten uit ´e´en wereld bevatten zijn of de opgenomen unieke werke-lijkheid (reality), of de talloze gemodelleerde virtuele werelden (virtual reality). Deze omgevingen laten we buiten beschouwing omdat opnemen en modelleren geen tracking vereisen. Omgevingen die objecten uit beide werelden bevatten daarintegen wel, want waar vullen we de werkelijke met de schijnbare wereld aan of andersom (mixed reality)? Deze ankerplek moet namelijk getracked worden zodat het lijkt alsof het object zich daadwerkelijk in die wereld bevindt. De context van dit onderzoek is dus de mixed reality.

Hierin onderscheiden we aangevulde realiteit (augmented reality) als realiteit de basis is waar-aan virtualiteit toegevoegd wordt, en andersom waar-aangevulde virtualiteit (augmented virtuality), zie Figuur 1.1c. Omdat de virtualiteit volledig gemodelleerd is, is alles ervan bekend (zie Extent of World knowledge in [5]) en dus ook waar aan te vullen ten opzichte van de gebruiker. Daarom laten we augmented virtuality buiten beschouwing. Daarentegen is de realiteit onbekend en trac-king van een plek in die omgeving dus nodig. De specifiekere context van dit onderzoek is dus de augmented reality.

Om het virtuele object ergens aan te ankeren, maken we de omgeving rijker door markante herkenningspunten kunstmatig toe te voegen. Aan deze zogenaamde markers wordt vervolgens het virtuele object toegevoegd. De omgeving beperkt ons dus tot de marker-based augmented reality.

1.2

Probleemstelling

Marker-based augmented reality kent verschillende uitdagingen:

aanvulling Zo moet het virtuele object verschijnen alleen als de marker in beeld is. consistentie Enwel hetzelfde virtuele object bij dezelfde marker.

registratie Enwel op de correcte positie en ori¨entatie ten opzichte van de marker. Deze problemen vereisen het tracken van de marker pose en identiteit.

(8)

(a) Paul Milgram’s RV Continu¨um uit [5].

(b) Een vergadering in de werkelijkheid links (reality) en in een schijnbare wereld van Second Life door IBM rechts (virtual reality).

(c) Links overleg in de werkelijkheid met daaraan een virtueel skelet toegevoegd door Microsoft HoloLens (augmented reality). Rechts een conferentie in de schijnbare wereld van Second Life met daaraan re¨ele webcam feed van de spreker toegevoegd (augmented virtuality).

Figuur 1.1: Samenwerken in verschillende omgevingen.

Marker-based augmented reality neemt hier aan dat het virtuele object vanuit alle perspec-tieven binnen het kader van de marker blijft. Alleen dan is het virtuele object in beeld als de marker in beeld is en klopt het aanvullings probleem. Meestal klopt deze aanname omdat de marker en het virtuele object ongeveer gelijk in grootte zijn en het virtuele object in het midden van de marker wordt toegevoegd.

Maar als het virtuele object groter is dan de marker of erbuiten staat zoals in Figuur 1.2a, valt vanuit een bepaald perspectief een deel ervan buiten het kader van de marker en klopt deze aanname niet. Dit uitstekende deel kan in beeld worden gebracht zonder dat de marker in beeld komt zoals in Figuur 1.2b en is daardoor niet zichtbaar; het persistentie probleem. Dit is een probleem omdat Guti´errez et al. hebben ontdekt dat het volbrengen van taken in een omgeving met object persistentie makkelijker is door betere interactie en onderdompeling [4]. Om het persistentie probleem op te lossen, vergroten we het aanvullings probleem naar het laten verschijnen van het virtuele object ongeacht de positie van de marker. Dit vereist nu ook het tracken van de marker buiten beeld.

(9)

(a) Het perspectief links waardoor de marker in beeld is en aangevuld wordt met virtuele wolkenkrabbers rechts. De linker en rechter wolkenkrabber staan buiten de marker en de wolkenkrabber in het midden steekt boven de marker uit. Er bestaat dus een perspectief van waaruit de marker buiten beeld valt maar het uitstekende deel weergegeven zou moeten worden (hier aangegeven door het rode kader en ge¨ıllustreerd in (b)).

(b) Het perspectief links waardoor het persistentie probleem optreedt. De marker valt buiten beeld maar het uitstekende deel valt wel in beeld en zou dus weergegeven moeten zijn. Rechts is dit probleem opgelost met een persistent tracking techniek dat alleen werkt in een herkenningspunt-rijke omgevingen.

Figuur 1.2: Het persistentie probleem gevisualiseerd.

1.3

Onderzoeksvraag

In Figuur 1.2b rechts is het persistentie probleem opgelost met behulp van extended tracking. Deze methode werkt alleen in statische herkenningspunt-rijke omgevingen. Hoe kunnen we per-sistent tracken in omgevingen waaraan herkenningspunten ontbreken?

1.4

Toepassing

Een voorbeeld van een toepassing van augmented reality waar het persistentie probleem in voor-komt is reconstructie in de archeologie. Olsen et al. toonden aan dat het in de archeologie belangrijk is een reconstructie van het verleden te visualiseren voor onderdompeling van het brede publiek in het leven van toen en om zelf meer inzicht te verwerven [6]. Deze reconstructie vindt ergens op het realiteits-virtualiteits continu¨um plaats. Hier onderscheiden we twee geval-len, ofwel veel is verloren en we hebben alleen een opgravingsplattegrond, of meer staat nog overeind en we hebben een ru¨ıne. In het eerste geval treffen we bijvoorbeeld alleen paalgaten aan tijdens opgravingen waaruit de vorm van de boerderijen grotendeels te herleiden is. Maar omdat de boerderij zelf volledig verloren was, is deze gereconstrueerd in de virtual reality. In het

(10)

tweede geval kunnen we makkelijker de realiteit aanvullen met enkel dat wat verloren is gegaan met augmented reality, enwel marker-based

1. omdat de markers vooraf door de archeologen geplaatst worden naar hun inzicht en 2. omdat muren vaak homogene oppervlaktes zonder veel detail zijn waar marker-less

aug-mented reality gebruik van maakt.

Maar zodra de toerist zijn camera van de marker af beweegt om de rest van het gereconstru-eerde te zien, wat aannemelijk is gezien de schaal van de reconstructie, verdwijnt de reconstructie plotseling simpelweg omdat de marker dan niet meer in beeld is. Augmented reality in toerisme is dus een toepassing waarin het persistentie probleem zich voordoet.

(11)

HOOFDSTUK 2

Theoretische achtergrond

2.1

Gerelateerd werk

We beschouwen hier extended tracking, momenteel de enige augmented reality oplossing voor per-sistent tracking. Maar omdat deze oplossing alleen optical tracking gebruikt, is de range hiervan beperkt tot natuurlijke rijke statische omgevingen. In natuurlijke herkenningspunt-arme dynamische omgevingen moeten we ook data van andere sensoren gebruiken. ALT: An-tilatency tracker vergroot de range van optical tracking door data van de accelerometer sensor mee te fuseren om de sensor te tracken zelfs al is de marker buiten beeld. Het co¨ordinatenstelsel van markers verkleint de kans dat de marker buiten beeld valt door meerdere markers te plaat-sen die elk een transformatie terug hebben naar de ’oorsprong marker’. Een combinatie van beide, de marker persistent maken door meerdere te plaatsen en als dat mislukt de marker per-sistent tracken door inertial tracking, is de basis van de oplossing voor perper-sistent tracking in alle omgevingen. Dit onderzoek beschijft die oplossing in 3.

2.1.1

Extended tracking

De oplossing van augmented reality platform Vuforia voor persistent tracking is extended trac-king. Extended tracking gebruikt herkenningspunten in de omgeving om de tracking performance te verbeteren en te blijven tracken zelfs al is de target niet in beeld, zie Figuur 1.2b. Zodra de target buiten beeld valt, gebruikt Vuforia deze informatie uit de omgeving om de omgeving te tracken en daaruit toch de target pose af te leiden. Deze informatie komt uit een map die Vuforia om de target heen bouwt. Extended tracking geeft zo de tracking dus een graad van persistentie mee zodra de target getracked wordt.

Extended tracking heeft alleen een goede performance in statische herkenningspunt-rijke om-gevingen. Omdat deze methode ook voornamelijk door de mens gebruikt wordt om zich te ori¨enteren, is dit inzichtelijk. Probeer je maar eens te ori¨enteren op zee waar alles op elkaar lijkt en constant verandert. Vandaar dat we ons hebben gericht op de heldere poolster die ten opzichte van de aarde nauwelijkt beweegt of bakens als boeien en vuurtorens.

Extended tracking gebruikt technieken uit Simultaneous Localisation and Mapping (SLAM). SLAM is het proces waardoor een mobiele robot een map van de omgeving kan bouwen en tegelijkertijd hierin zijn eigen locatie kan bepalen.

2.1.2

ALT: Antilatency tracker

ALT: Antilatency tracker is een inside-out optical-inertial positional tracking oplossing. Dit betekent dat het optical en inertial tracking combineert (zie 2.2) om de sensor te tracken ook al is de vaste infra-rood marker buiten beeld. Zodoende kunnen we sensor fusion ook gebruiken om de marker te tracken buiten beeld; outside-in optical-inertial positional tracking.

(12)

2.1.3

Co¨

ordinatenstelsel van markers

Guti´errez et al. lost het persistentie probleem op door met meerdere markers een co¨ordinatenstelsel te maken [4]. E´en speciale marker is de oorsprong waarnaartoe alle overige markers gekalibreerd worden. Het resultaat van de kalibratie is namelijk een vector van marker naar de oorsprong. In het begin is deze de nul vector, en is per definitie alleen de oorsprong gekalibreerd. Vervolgens kalibreren we alle markers die met de oorsprong in beeld vallen door het verschil te nemen tussen hun positie en die van de oorsprong in het camera frame. Deze zojuist gekalibreerde markers kun-nen weer andere kalibreren door opnieuw het verschil te nemen maar nu plus het oude kalibratie resultaat. Zolang er een gekalibreerde marker in beeld is, vinden we de oorsprong ten opzichte van de camera door de positie van de gekalibreerde marker in het camera frame op te tellen bij zijn kalibratie resultaat. En zo tracken we de speciale marker buiten beeld. Dit werkt dus alleen zolang er tenminste ´e´en marker in beeld is (range is beperkt), middelt de kalibratie resultaten niet (accuracy niet optimaal) en herberekent de oorsprong positie zodra er een gekalibreerde marker zichtbaar is (jitter niet optimaal).

2.2

Sensor fusion

Positional tracking systemen bepalen de positie en ori¨entatie (tesamen de pose) van een echt object in de ruimte over tijd door gebruik te maken van sensoren. Deze sensoren kunnen ge-monteerd zijn op dat object (inside-out tracking) of op een vaste locatie (outside-in tracking) en vangen een signaal op wanneer dat object beweegt. Zo kunnen rotatie en translatie bewegingen herkend worden door bijvoorbeeld de weerkaatsing van licht (optical tracking) of geluid (acoustic tracking) of verandering in snelheid (inertial tracking) te meten. Inside-out optical tracking is vergelijkbaar met onze visuele ori¨entatie terwijl inside-out acoustic tracking vergelijkbaar is met de ori¨entatie van een vleermuis.

Optical tracking vereist een vizierlijn tussen sensor en object (lees: heeft een beperkte range) terwijl inertial tracking altijd (lees: in elke range) werkt. Sensor Fusion combineert daarom data van meerdere tracking algoritmen om de tekortkomingen van ´e´en weg te werken met de ander en vice versa. Belleman specificeert de tekortkomingen van een tracking systeem aan de hand van een aantal kritieke metrieken [2]:

resolution De kleinste verplaatsing die gemeten kan worden door de sensor.

accuracy De afwijking van de gerapporteerde pose ten opzichte van zijn daadwerkelijke pose. update frequency Het aantal updates in pose per seconde.

latency Het tijdsinterval tussen een verandering in daadwerkelijke pose en wanneer deze verandering gerapporteerd wordt.

drift De snelheid waarmee de fout in de meting toeneemt.

jitter De verandering in gerapporteerde verplaatsing terwijl de sensor in rust is. range Het bereik waarin de sensor nauwkeurig gebruikt kan worden.

We weten uit 4 dat inertial tracking een hoge update frequency, grote range en lage accuracy heeft. Optical tracking heeft daarentegen juist een lagere update frequency, kleinere range maar hogere accuracy. Door optical tracking en inertial tracking te combineren waar mogelijk en anders terug te vallen op alleen inertial tracking, bereiken we de update frequency en range van inertial tracking met de accuracy van optical tracking [10].

2.3

Marker-based Augmented Reality

Marker-based augmented reality voegt virtuele objecten toe aan vooraf bekende markante her-kenningspunten. Dit werkt door eerst met een tracking algoritme de positie en ori¨entatie van de marker in het beeld te vinden. Met deze data, 2d coordinaten van het midden van de marker en

(13)

de corresponderende 3d coordinaten in het marker frame, kunnen we de projectie bepalen. Een-maal de projectieve camera matrix C geschat, kunnen we het virtuele object met een bepaalde transformatie M aan de marker toevoegen. Dit doen we door de 3d coordinaten van het virtuele object met CM te projecteren naar het beeld en daar te renderen.

2.4

Odometrie

Odometrie is het gebruik van data afkomstig van bewegingssensoren om de verplaatsing te schat-ten over tijd. Zo kunnen we, gegeven een start positie, de nieuwe positie bepalen met een bepaalde onzekerheid. Zoals de naam al aangeeft is het dus een meting (metron) van de route (odos). Wij zijn ge¨ınteresseerd in het bepalen van de verplaatsing van de camera.

2.4.1

Positiebepaling met acceleratiesensoren

Veronderstel een smartphone die zijn verplaatsing wil meten. Elke moderne smartphone heeft een accelerometer samen met een gyroscope en magnetometer in een inertial measurement unit (IMU). Deze accelerometer meet de versnelling of vertraging van de smartphone. De tweede afgeleide van positie naar tijd is de verandering van de eerste afgeleide snelheid over tijd, ver-snelling:

a = v0= dv dt =

d(ds) dt2

Door het digitale signaal van de accelerometer twee keer te integreren, krijgen we dus de ver-plaatsing (wat gelijk is aan de positie met startpositie 0) terug:

s = Z vdt = Z ( Z adt)dt

We nemen aan dat opeenvolgende samples verbonden zijn met rechte lijnen en integreren daarom met de effici¨ente trapeziumregel. Deze aanname gaat alleen op als de sampling frequency erg hoog is. Des te lager, des te groter de integratie error die we zien als drift.

(14)
(15)

HOOFDSTUK 3

Oplossing

We definieerde het persistentie probleem als een niet persistent virtueel object in 1.2. Dit betekent dat het virtuele object niet toegevoegd blijft zodra de marker buiten beeld valt. We hebben de klasse van objecten beschreven waar dit een probleem vormt. Namelijk die objecten die vanuit een bepaald perspectief buiten het kader van de marker vallen. Dit uitstekende deel kan dan alleen in beeld worden gebracht en zou weergegeven moeten worden. Maar het hele virtuele object is al niet meer toegevoegd omdat de marker simpelweg buiten beeld is. Om het virtuele object toegevoegd te laten blijven ongeacht de pose van de marker, moet ofwel een marker altijd in beeld blijven, ofwel buiten beeld getracked blijven worden, ofwel een combinatie van beide; persistent tracking.

Momenteel bestaat er maar ´e´en augmented reality oplossing voor persistent tracking. De range van deze oplossing is beperkt tot natuurlijke herkenningspunt-rijke omgevingen, zie 2.1.1. Wij ontwikkelen een ’blind’ (lees: onafhankelijk van natuurlijke herkenningspunten) persistent tracking oplossing die in alle omgevingen werkt. Allereerst versoepelen we de range naar die situaties waar altijd een marker in beeld is door gebruik te maken van een kunstmatig markant herkenningspunt, zie 2.3. Vervolgens verkleinen we de kans dat we een situatie buiten de range tegenkomen door meerdere markers te plaatsen zoals in 2.1.3. Tot slot handelen we die omge-vingen buiten de range af met odometrie, zie 2.4. Deze oplossing is dus niet sensor fusion van optical en inertial tracking zoals in 2.1.2 maar een hybride. Hier hebben we voor gekozen omdat uit de metingen in 4.2 blijkt dat inertial tracking een heel grote standaard deviatie heeft en dus niet tegelijkertijd nauwkeurig optical tracking kan aanvullen voor een hogere update frequency.

3.1

Multi-marker aanpak

De multi-marker aanpak probeert door meerdere markers strategisch te plaatsen, de kans te verkleinen dat er geen marker in beeld is waardoor het virtuele object niet toegevoegd zou worden. In plaats van dat ´e´en marker ´e´en virtueel object toevoegt, voegt elke marker hetzelfde virtuele object op dezelfde plek toe. Zolang er dus een marker in beeld is, blijft het virtuele object toegevoegd en noemen we het persistent. Persistentie van de marker impliceert dus persistentie van het virtuele object. Maar als waar je ook kijkt een marker is (als dit al praktisch mogelijk is), pleeg je wel een zekere inbreuk op de omgeving zoals in Figuur 3.1. Vandaar dat we een middenweg zoeken met odometrie in 3.2.

3.1.1

Ketting registratie

Met registreren bedoelen we het virtuele object van een marker op de correcte pose ten op-zichte van die marker toevoegen. Vaak zullen we praten over geregistreerde markers of markers registreren, terwijl we eigenlijk hun virtueel object bedoelen.

Tot nu toe namen we aan dat het toe te voegen virtuele object van elke marker al geregistreerd was. Dit is niet zo omdat de markers naar de willekeur van de gebruiker geplaatst mogen worden.

(16)

Figuur 3.1: Inside-out tracking met fiducial markers.

In plaats daarvan moet er minimaal ´e´en al geregistreerd zijn zodat zodra deze tracked is, we weten waar in de realiteit het virtuele object toegevoegd wordt.

Alle andere markers moeten vervolgens hetzelfde virtuele object op diezelfde plek toevoegen. Concreet is registratie van de andere markers dus het perfect laten overlappen van hun virtuele object met dit geregistreerde virtuele object, zie 3.1.2.

Maar alleen markers die tegelijkertijd in beeld zijn met een geregistreerde marker, kunnen ook geregistreerd worden (de tracking is namelijk niet persistent). Vervolgens kunnen deze markers op hun beurt weer hun buren registreren die elk ook weer anderen registreren en zo ontstaat een kettingreactie van registraties.

Doordat tenminste ´e´en marker geregistreerd is en als we veronderstellen dat een marker geregistreerd is, zijn buren dat ook zullen zijn (mits de buren zodanig dichtbij liggen dat ze samen in beeld vallen), volgt uit inductie dat alle markers geregistreerd kunnen worden.

3.1.2

Registratie

Registratie verloopt in twee stappen waarin we het toe te voegen virtuele object perfect laten overlappen met het al geregistreerde virtuele object. Allereerst registreren we het toe te voegen virtuele object op het midden van de al geregistreerde marker. Vervolgens registreren we het toe te voegen virtuele object verder op het al geregistreerde virtuele object. Figuur 3.2 illustreert dit.

De eerste transformatie berekenen we uit het verschil in pose tussen beide markers. Deze pose krijgen we uit tracking informatie van beide markers. Zolang deze informatie uit hetzelfde frame komt, maakt het frame niet uit omdat we een verschil berekenen.

Vuforia biedt verschillende opties voor het frame, wat zij characteriseren met de world center en de standaard basis vectoren daarvan. Dit kan de camera zijn, de eerste tracked marker of een specifieke marker. Maar wanneer de world center buiten beeld valt, verandert de tracking informatie van alle markers niet meer. Om deze foute persistent tracking te voorkomen moeten we de world center altijd zo kiezen dat die binnen beeld valt.

We kunnen altijd ten opzichte van de camera tracken. De noodzaak voor een multi-marker aanpak is juist waarom de eerste tracked marker wel buiten beeld kan vallen. De specifieke marker kunnen we tot slot eventueel telkens veranderen naar een marker die nog wel binnen beeld is. Het voordeel van de specifieke marker is dat als we daarvoor telkens een tracked geregistreerde marker kiezen, we direct voor elke nieuwe tracked marker het verschil in pose hiermee hebben. Daarnaast registreren we maar eenmaal en nemen aan dat de markers daarna niet meer bewegen. Een specifieke marker is dus de beste keuze voor world center.

Het verschil in positie en rotatie is echter ten opzichte van de specifieke marker en niet de nieuwe marker. Omdat bij deze basis verandering een kleine fout in rotatie uitvergroot wordt, nemen we eerst over een aantal frames het iteratief gemiddelde (zie appendix A). Om het virtuele object nu op de specifieke marker te registreren, roteren we het eerst de inverse gerapporteerde

(17)

Figuur 3.2: Dit figuur illustreert een kettingreactie van registraties. De informatie om te regi-streren categoriseren we in rood voor onnauwkeurig, groen voor precies en zwart voor tracking informatie. Omdat tracking informatie de bron van onnauwkeurigheid is, wordt nieuwe informatie afgeleid uit tracking informatie rood. Aanvankelijk is alleen de rode pilaar van de ASTRONAUT marker geregistreerd door de gebruiker (het resultaat daarvan is de groene translatie vector). Het doel is om de blauwe en groene pilaar van respectievelijk de OXYGEN en DRONE marker zo goed mogelijk met de rode pilaar te laten overlappen. Allereerst worden alleen de ASTRONAUT en OXYGEN marker in beeld gebracht. Omdat de ASTRONAUT marker geregistreerd is, kan uit de tracking informatie de blauwe pilaar geregistreerd worden, het resultaat hiervan is de rode pijl. Vervolgens worden de OXYGEN en DRONE marker in beeld gebracht. Omdat de OXY-GEN marker nu ook geregistreerd is, kan uit tracking informatie de groene pilaar geregistreerd worden, het resultaat hiervan is de som van de zwarte pijl naar de DRONE marker en de rode pijl. Omdat de rode pijl de som van de zwarte pijl naar de ASTRONAUT marker en de groene pijl was, bevat het resultaat twee tracking errors. Als nu alle drie de markers in beeld worden gebracht, zal de DRONE marker hergeregistreerd worden met maar ´e´en tracking error, namelijk van de DRONE naar de ASTRONAUT marker.

rotatie zodat het virtuele object frame het getransleerde specifieke marker frame is, en vervolgens transleren we met de negatieve gerapporteerde translatie zodat beide frames samenvallen.

De tweede transformatie geeft Unity ons. In Vuforia heet een marker een target en kan dit een afbeelding of zelfs (geometrisch) object zijn. Voor de rendering combineren we Vuforia met Unity. Omdat uit 2.3 volgt dat het virtuele object in het marker frame gerendered wordt, is in Unity het virtuele object de child van de target. De tweede transformatie is dus de child transform.

In plaats van de oorsprong persistent te tracken zoals Guti´errez et al. deden in [4], tracken we het virtuele object persistent.

3.1.3

Herregistratie

Des te verder in een keten een nieuwe marker geregistreerd wordt, des te onnauwkeuriger die registratie is vanwege alle opgetelde tracking fouten van stap 1, zie figuur 3.2. Vandaar dat we een marker herregistreren als er tegelijkertijd een andere marker tracked is hoger in de keten en dus nauwkeuriger. Factoren hoe zwaar deze herregistratie weegt zijn het verschil in plaats in de ketting en het aantal herregistraties. We nemen namelijk het iteratief gemiddelde, dus bij elke herregistratie is de volgende herregistratie robuuster tegen fouten. En we interpoleren tussen het oude gemiddelde en het nieuwe resultaat van de herregistratie afhankelijk van het verschil in plaats in de ketting.

3.1.4

Slot op aanvullen

Omdat de registratie niet perfect is door tracking error, overlappen meerdere toegevoegde virtuele objecten niet perfect, zie Figuur 3.3. Des te groter het virtuele object, des te meer deze error

(18)

Figuur 3.3: Meerdere aanvullingen en onnauwkeurige registratie.

uitvergroot wordt. Vandaar dat maar ´e´en geregistreerde tracked marker tegelijkertijd zijn virtuele object mag toevoegen. Dit regelen we met een gecentraliseerd synchronisatie mechanisme die een lijst bijhoudt van tracked en geregistreerde markers. Omdat we altijd de eerste tracked geregistreerde marker de sleutel geven om zijn virtueel object toe te voegen, betekent een niet lege lijst dat nieuwe tracked geregistreerde markers hun virtuele object niet mogen aanvullen. Zodra de marker met de sleutel buiten beeld valt, laten we het virtuele object toegevoegd blijven door de sleutel te geven aan een andere geregistreerde marker in beeld. Om jitter te minimaliseren is dit de meest nauwkeurig geregistreerde marker die het verst weg is zodat de aanvulling het langst duurt en best is.

Omdat de marker met slot altijd in beeld en geregistreerd is kiezen we voor het gemak deze als specieke marker voor de world center.

3.2

Multi-marker aanpak met odometrie

De wisselwerking tussen meerdere markers en odometrie volgt uit de metingen. Zodra de marker met slot buiten beeld valt en er geen tracked geregistreerde markers in beeld zijn om het virtuele object toegevoegd te laten blijven op dezelfde plek, veranderen we de world center naar camera zodat we het virtuele object op de laast bekende plek gefixeerd kunnen toevoegen. Vervolgens gebruiken we odometrie uit 2.4.1 om de camera verplaatsing te schatten en tegenovergesteld hieraan het virtuele object te bewegen om de schijn te wekken dat het virtuele object op dezelfde plek blijft in de wereld.

3.2.1

Fixeren op laatst bekende plek

Hoe krijgen we de laatste bekende plek van het toegevoegde virtuele object in het camera frame? Omdat de marker met slot nog de world center is, hebben we de transformatie van deze marker naar de camera. Deze transformatie kunnen we omdraaien van camera naar marker op dezelfde manier als in 3.1.2. Maar de tracking van een marker die op het punt staat buiten beeld te vallen, bij de rand van het beeld dus, heeft een slechte performance vanwege de grote hoek. Hierdoor is de tracked ori¨entatie van de camera ten opzichte van de marker een onnauwkeurig. De vector van basis veranderen maakt gebruik van deze orientatie en vergroot de onnauwkeurigheid. De gemiddelde tracked ori¨entatie is ook onnauwkeurig vanwege de vele meetfouten. We gebruiken RANSAC (zie volgende subsectie 3.2.2) met het rekenkundig gemiddelde model om alleen het gemiddelde te nemen van posities of orientaties die niet ver van elkaar verspreid zijn. Op deze manier vinden we robuust de laatst bekende plek van het toegevoegde virtuele object in het camera frame.

(19)

3.2.2

RANSAC

We nemen aan dat data bestaat uit inliers wiens distributie verklaard kan worden door een verza-meling model parameters, en outliers die niet in dit model passen door extreme ruis, meetfouten of een incorrecte interpretatie van de data. Nu willen we alleen uit alle inliers de model parame-ters schatten. RANSAC kiest eerst random een minimaal aantal hypothetische inliers waaruit de model parameters geschat kunnen worden. Vervolgens stemmen alle andere datapunten voor of tegen dit model, afhankelijk van of ze wel of niet in het model passen binnen een bepaalde error. Als de groep die voor stemt groot genoeg is, schatten we de model parameters opnieuw maar nu uit de consensus verzameling. Als de error van dit model kleiner is dan die van voorgaande modellen, bewaren we het model. De hypothese klopt, maar we herhalen dit voor een bepaald aantal iteraties om zekerheid te hebben in hoeverre alle mogelijke hypotheses zijn afgewerkt.

3.2.3

Implementatie details odometrie

Hier volgen implementatie details die Seifert et al. beschreven [8]. Ruis in de acceleratie data kunnen we representeren met b sin(cx) waar c groot is. Deze ruis filteren we weg met een lowpass filter. Die filter implementeren we efficient met een voortschrijdend gewogen gemiddelde. Dit is een lowpass filter omdat het fluctuaties plat trekt en zo hoge frequenties weg filtert.

De accelerometer meet de versnelling of vertraging door toedoen van de gebruiker of aanwe-zigheid van een zwaartekrachtsveld, die in praktijk hier op aarde overal aanwezig is. Wij willen enkel de acceleratie die de gebruiker eraan geeft zonder de bias van zwaartekracht om de ver-plaatsing door de gebruiker te bepalen. Om hiervoor te compenseren, kunnen we de IMU in een vrije val brengen. Of de gyroscope en magnetometer gebruiken om van basis te veranderen van het IMU frame naar het aarde frame waar zwaartekracht constant is. Of als de acceleratie in 2D is of 3D maar de ori¨entatie is statisch, de data te calibreren door de data in rust eraf te halen. Omdat de gebruiker 3 graden vrijheid heeft in het bewegen, hebben we 3D accelerometer data nodig om de verplaatsing te schatten Omdat we 3D accelerometer data nodig hebben en de vrije val en statische ori¨entatie aanname inpractisch zijn (beide beperken de bewegingsvrijheid van de gebruiker, namelijk het mogen vasthouden of roteren), veranderen we van basis.

Op basis van acceleratie is het onmogelijk te bepalen of het object in rust is of een constante snelheid heeft. Onderscheid deze twee toestanden verkeerd, en er ontstaat drifting (het object is in rust maar denkt een constante snelheid te hebben) of andersom. Omdat de smartphone in de hand vast gehouden wordt, zal de acceleratie nooit helemaal nul zijn vanwege kleine trillingen van de hand. Daarnaast fluctueert de constante snelheid ook door talloze factoren als weer- en weg omstandigheden. Door aan te nemen dat de acceleratie bij de constante snelheid meer fluc-tueert dan in rust, kunnen we deze toestanden toch onderscheiden. Namelijk door de acceleratie waarden in een threshold rondom 0 ±  naar 0 af te ronden.

Figuur 3.4 laat een andere oorzaak van drifting zien. Door error in de data en onnauwkeu-righeid in integreren komt het oppervlak onder acceleratie en deceleratie nooit precies overeen, hierdoor is de eindsnelheid ongelijk aan nul, zou een beweging nooit stoppen en ontstaat zo-doende ook drifting. Hier voorkomen we drifting door een rusttoestand te herkennen wanneer de acceleratie achter elkaar lang genoeg <  is en dan de snelheid te corrigeren terug naar 0.

(20)

Figuur 3.4: Met een accelerometer emulator hebben we een acceleratie deceleratie beweging gesimuleerd en de snelheid en verplaatsing geschat zoals uitgelegd in 2.4.1. Maar door een onnauwkeurigheid in het integreren, verschilt het acceleratie en deceleratie oppervlak en keert de snelheid niet terug naar 0 na de beweging. De fout in verplaatsing neemt nu met deze snelheid toe. Links is deze drifting aanwezig. Rechts is dit opgelost door de snelheid handmatig terug te brengen naar 0 als de acceleratie voor een bepaalde tijd binnen een bepaalde threshold blijft wat het aanmelijk maakt dat de accelerometer in rust is.

(21)

HOOFDSTUK 4

Metingen

De voorgestelde persistente tracking methode is een hybride van optical en inertial tracking. De optimale wisselwerking tussen beide wordt bepaald door metrieken die een tracking systeem specificeren, zoals besproken in 2.2. Als namelijk blijkt dat inertial tracking minder nauwkeurig of betrouwbaar is dan optical tracking, motiveert dit een aanpak die in zoveel mogelijk situaties de voorwaarden van optical tracking cre¨ert (bijvoorbeeld door 2.1.3) en pas als laatste redmiddel terugvalt op inertial tracking.

4.1

Marker

De range van optical tracking is beperkt tot die situaties waar de marker zichtbaar is. Zicht-baar is een rekZicht-baar begrip. Door verlichting, hoek en afstand van de camera is de marker in meer of mindere mate duidelijker zichtbaar. We meten daarom de accuracy en jitter op negen verschillende locaties aangeduidt in figuur 4.1b. Deze zijn verspreid over de field of view van de camera zie figuur 4.1a. Allereerst plaatsen we de marker in het grid zoals in figuur 4.1c. Ver-volgens verzamelen we over 60 frames de transformatie (translatie en rotatie) van de astronaut naar de fissure marker. Omdat we beide markers parallel en 15cm uit elkaar hebben vastgeplakt (zie figuur 4.1d), weten we dat de daadwerkelijke translatie telkens (0.15, 0, 0) en rotatie telkens (0, 0, 0) is. De error in accuracy krijgen we vervolgens uit het verschil tussen de daadwerkelijke en gemiddelde gerapporteerde pose. Deze error is nog een vector en quantificeren we naar een getal door van de translatie en rotatie error de magnitude te nemen. Deze error is gevisualiseerd in figuur 4.2a.

Omdat de markers zijn vastgeplakt, is de daadwerkelijke transformatie constant. Enige veran-dering in gerapporteerde transformatie is dus door toedoen van jitter. Dit meten we afzonderlijk over de x, y en z componenten van de positie door middel van een FFT. Een FFT van een con-stante lijn is namelijk de eenheidsimpuls (immers een concon-stante lijn is een puls met een breedte naar oneindig waardoor haar FFT, de sinc, krimpt naar de eenheidsimpuls), terwijl die van ruis ook pulsen bevat op hogere frequenties. Jitter kunnen we dus quantificeren door alle frequenties met een significante puls bij elkaar op te tellen. Deze error is gevisualiseerd in figuur 4.2b.

4.2

Odometrie

Het resultaat van het odometrie proces is de geschatte camera verplaatsing. Opnieuw krijgen we de error in accuracy uit het verschil tussen de daadwerkelijke en gerapporteerde geschatte verplaatsing. Door als startpunt de oorsprong te nemen en de camera heen en weer te bewegen langs een as terug naar dat startpunt, meten we gelijk de error. Dit hebben we concreet gedaan door een Sony XPERIA langs een 2.42 meter lange keukenrand van hoek tot hoek en weer terug te verplaatsen. De rand garandeert dat we slechts over ´e´en as verplaatsen, de hoek dat we netto geen verplaatsing maken en door het aanrecht in te smeren met zonnebloemolie controleren we zelf de versnelling, zie figuur 4.3a. Omdat de mobiel dun is, kunnen we lastig de z-as parallel

(22)

leggen met de aanrechtrand. De oplossing hiervoor is de mobiel dikker maken zoals in figuur 4.3b. De verplaatsing in ´e´en richting is telkens ´e´en acceleratie-deceleratie beweging. Voor de x-as hebben we dit 61 keer, voor de y-as 66 keer en voor de z-as 52 keer gedaan. De resultaten hiervan zijn geteld in bins in figuur 4.4.

(23)

(a) De setup van de meting.

(b) De negen parallellogrammen waarin we de marker plaatsen om accuracy en jitter onder verschillende afstanden en hoeken ten opzichte van de camera te meten.

(c) Een moment opname tijdens de meting waar de marker in het middelste vak lag.

(d) We vergelijken de daadwerkelijke bekende constante transformatie tussen beide markers en de ge-rapporteerde transformatie. 23

(24)

(a) De magnitude van de translatie error links en rotatie error rechts, waar de error het verschil is tussen de daadwerkelijk bekende translatie of rotatie en het gemiddelde van de 60 gerapporteerde. Het grid komt overeen met die in 4.1b.

(b) De som van de frequenties met een significante puls in de FFT van een positie component over 60 frames.

Figuur 4.2: De gemeten error in accuracy en jitter van Vuforia AR platform marker-based tracking.

(25)

(a) Om de accelerometer alleen langs de x-as heen en weer te bewegen kiezen we een aanrecht. De rand met hoeken garandeert dat we netto geen verplaatsing maken en het aanrecht is makkelijk in te smeren met olie zodat er geen weerstand is tijdens de beweging opdat we de versnelling zelf kunnen bepalen.

(b) We verplaatsen de camera alleen langs de x- en y-as door de mobiel respectievelijk in de lengte of breedte langs de rand te leggen. In de hoogte langs de rand leggen werkt slecht omdat de mobiel dun is. Daarom maken we de mobiel dikker met een Rubik’s cube zodat we door de Rubik’s cube langs de rand te bewegen de camera alleen verplaatst over de z-as.

Figuur 4.3: Metingen van hoe precies we de camera verplaatsing kunnen schatten uit accelero-meter data.

(26)

Figuur 4.4: De distributie van de error in 4.84 meter verplaatsing van de accelerometer over de x-, y- en z-as. De error van 61 verplaatsingen zijn uigezet op de x-as, 66 op de y-as en 52 op de z-as met binning 0.31 meter.

(27)

HOOFDSTUK 5

Conclusie

Optical tracking kan per definitie alleen juiste tracking informatie geven als de marker in zicht van de camera is. In augmented reality waar optical tracking gebruikt wordt, vormt deze range van de sensor een probleem. Wanneer het toe te voegen virtuele object buiten de kader van de marker uitsteekt, kan namelijk alleen dit uitstekende deel in beeld worden gebracht. Doordat de marker nog buiten beeld valt, hebben we geen tracking informatie en wordt dit uitstekende deel niet weergegeven. Het virtuele object is dus niet persistent; dit noemen we het persistentie probleem. Dit probleem lossen we op door de marker ook buiten beeld persistent te tracken. Dit doen we door niet alleen van de camera, maar ook van de accelerometer data gebruik te maken. De range van de accelerometer is namelijk alleen beperkt tot die waar rust in een zwaartekrachtsveld en een eenparig versnelde beweging in de ruimte niet tegelijk voorkomen. Praktisch kunnen we ons dus alleen baseren op de accelerometer.

Uit de metingen in 4 volgt zelfs dat inertial tracking nauwkeuriger is dan optical tracking. Immers de distributie van de error langs de verplaatste y-as in figuur 4.4 lijkt op een normaal distributie met parameters N (µ, σ2) = N (0.00, 0.622) in meter. Hieruit volgt dat odometrie

over het algemeen tot op de centimeter nauwkeurig is. Terwijl uit figuur 4.2a volgt dat optical tracking over het algemeen een onnauwkeurigheid heeft van 1 tot 10 centimeter afhankelijk van de pose ten opzichte van de camera.

Maar uit de metingen volgt ook dat inertial tracking minder betrouwbaar is dan optical tracking. Immers uit de distributie volgt ook dat odometrie gemiddeld 62 centimer afwijkt en daarom niet betrouwbaar is. Terwijl uit figuur 4.2b volgt dat de optical tracked positie zeer weinig frequentie componenten bevat en dus niet veel fluctueert. Vandaar dat de oplossing alleen optical tracking markers laat registreren, meerdere markers introduceert en pas als geen marker zichtbaar is, terugvalt op inertial tracking. Tot slot blijkt in 4.1 dat richting de rand van de field of view de positie tracking minder nauwkeurig wordt en meer fluctueert, wat we oplosten in 3.2.1.

(28)
(29)

HOOFDSTUK 6

Bibliografie

[1] R. T. Azuma. A survey of augmented reality. Presence: Teleoperators & Virtual Environ-ments, 6(4):355–385, 1997.

[2] R. Belleman. Interactive exploration in virtual environments. 2003.

[3] S. ´Cukovi´c, M. Gattullo, F. Pankratz, G. Devedˇzi´c, E. Carrabba, and K. Baizid. Marker based vs. natural feature tracking augmented reality visualization of the 3D foot phantom. 2015.

[4] M. D. Guti´errez, A. M. M´arquez, and H. Trefftz. Achieving object persistence in an aug-mented reality indoor environment.

[5] P. Milgram, H. Takemura, A. Utsumi, and F. Kishino. Augmented reality: A class of dis-plays on the reality-virtuality continuum. In Telemanipulator and telepresence technologies, volume 2351, pages 282–293. International Society for Optics and Photonics, 1994.

[6] S. Olsen, A. Brickman, and Y. Cai. Discovery by reconstruction: exploring digital archeo-logy. In SIGCHI Workshop (Ambient Intelligence for Scientific Discovery (AISD)), 2004. [7] J. Park, B. Jiang, and U. Neumann. Vision-based pose computation: robust and accurate

augmented reality tracking. In Augmented Reality, 1999.(IWAR’99) Proceedings. 2nd IEEE and ACM International Workshop on, pages 3–12. IEEE, 1999.

[8] K. Seifert and O. Camacho. Implementing positioning algorithms using accelerometers. Freescale Semiconductor, pages 1–13, 2007.

[9] S. You and U. Neumann. Fusion of vision and gyro tracking for robust augmented reality registration. In Virtual Reality, 2001. Proceedings. IEEE, pages 71–78. IEEE, 2001. [10] S. You, U. Neumann, and R. Azuma. Hybrid inertial and vision tracking for augmented

reality registration. In Virtual Reality, 1999. Proceedings., IEEE, pages 260–267. IEEE, 1999.

[11] F. Zhou, H. B.-L. Duh, and M. Billinghurst. Trends in augmented reality tracking, inter-action and display: A review of ten years of ismar. In Proceedings of the 7th IEEE/ACM International Symposium on Mixed and Augmented Reality, pages 193–202. IEEE Computer Society, 2008.

(30)
(31)
(32)
(33)

BIJLAGE A

Het rekenkundig gemiddelde

Gegeven n waarden x1, · · · , xn, dan is het rekenkundig gemiddelde de unieke waarde ¯x waarvoor

de totale afwijkingPn

i=1|xi− ¯x| minimaal is. Het is daardoor de ’beste’ (ligt zo dicht mogelijk bij

alle) benadering of centrummaat van x1, · · · , xn. Door de totale afwijking als kostenfunctie te

zien J (x) =Pn

i=1|xi− x|, vinden we ¯x = x, d

dxJ (x) = 0. Voordat we differenti¨eren, vervangen we

natuurlijk de absoluutstrepen door kwadrateren zodat de functie differentieerbaar is en kosten elkaar alsnog niet wegwerken in de sommatie. De afleiding hiervan is het bekende gemiddelde ¯

x = n1Pn

i=1xi. Het rekenkundig gemiddelde vervangt dus elke van de n waarden met een

constante ¯x die de som behoudt: n¯x =Pn

i=1xi.

Het rekenkundig gemiddelde van twee vectoren ~a,~b kunnen we dus uitdrukken als (~a + ~b)/2. Een andere manier om dit uit te drukken is met de vector aanpak als ~a+(~b−~a)/2. We wijzen eerst naar ~a en vervolgens komen we de helft tegemoet naar ~b. Deze aanpak is echter niet gelimiteerd tot het midden.

Beide aanpakken vereisen dat alle x1, · · · , xn vooraf bekend zijn. Als we tussen het

bere-kenen van xi door tijd overhebben, kunnen we die dan al besteden aan het berekenen van het

rekenkundig gemiddelde. Hier leiden we het iteratief rekenkundig gemiddelde af uit de eerste wiskundige aanpak: E(E(x1, · · · , xm−1), xm) = 1 m m X i=1 xi= 1 m m−1 X i=1 xi+ 1 mxm= (m − 1 m 1 m − 1) m−1 X i=1 xi+ 1 mxm= m − 1 m ( 1 m − 1) m−1 X i=1 xi) + 1 mxm= m − 1 m E(x1, · · · , xm−1) + 1 mxm Dus E(E(x1, · · · , xm), xm+1) = m m + 1E(x1, · · · , xm) + 1 m + 1xm+1= (m + 1 m + 1− 1 m + 1)E(x1, · · · , xm) + 1 m + 1xm+1= (1 − 1 m + 1)E(x1, · · · , xm) + 1 m + 1xm+1=

(34)

E(x1, · · · , xm) − 1 m + 1E(x1, · · · , xm) + 1 m + 1xm+1= E(x1, · · · , xm) + 1 m + 1(xm+1− E(x1, · · · , xm))

Dit lijkt nu weer op de vector aanpak waar we het oude gemiddelde updaten naar het nieuwe element toe.

Hier besteden we tijd aan omdat Park et al. laten zien dat middelen van de tracking resultaten de tracking robuuster en nauwkeuriger maakt [7].

Referenties

GERELATEERDE DOCUMENTEN

Zo draagt de geestelijk verzorger, terwijl zijn medische en verpleegkundige collega’s zich bekommeren om het leven van de patiënt, al in de eerste acute fase op veelsoortige

Dat naasten, die soms wei en soms niet manteizorger zijn, de iast dragen van onzekerheid, van vragen die je eigeniijk niet durft te steiien of soms zeifs van schuidgevoei omdat

Het onderzoek is opgebouwd uit drie deelonderzoeken. Deze deelonderzoeken zijn gerelateerd aan de eerste drie onderzoeksvragen zoals deze in paragraaf 1.3 zijn gepresenteerd.

Toen we met de Utrecht Young Academy een aanvraag deden bij het Public Engagement Seed Fund, was hun advies om niet weer een project te gaan doen met vwo-leerlingen, maar eens

In deze studies gebruiken we drie parameters voor het identificeren van knel- punten: het percentage bevraagde agentschappen dat een gegeven functie behandeld, het percentage

Het gaat om werk voor mensen die door een lichamelijke, verstandelijke of psychische handicap alleen in een beschutte omgeving kunnen werken en die meer ondersteuning nodig hebben

• Elke JGZ-organisatie is verantwoordelijk voor het aanbieden van jeugdgezond- heidszorg aan de jeugdigen In Zorg, die woonachtig zijn in haar werkgebied, tenzij bij

De leefsituatie van ongedocumenteerde kinderen in Nederland Dit artikel werpt licht op de omstandigheden waaronder kinderen zonder verblijfsstatus (ongedocumenteerde