DevelopmentVan Vuforia naar de HoloLens
HoloLens 2
HoloLens 2

Anno 2019 is de virtuele wereld nog nooit zo dichtbij geweest als nu. De realisatie hiervan komt steeds dichterbij door het promoten van onderwerpen als Mixed Reality, Virtual Reality en Augmented Reality door grote bedrijven als Microsoft en Google. Één van de interessantere ontwikkelingen in recente jaren is 3D-objectherkenning. Middels 3D-objectherkenning zijn we in staat om met een headset objecten te herkennen en deze op te pakken, zoals we dit normaal gesproken ook doen.

Al is er tegenwoordig meer mogelijk dan alleen dat, gelukkig! De afgelopen jaren is er een trend te zien dat 3D-objectherkenning vooral op het gebied van trainingen een meerwaarde blijkt te zijn. Het middel wordt bijvoorbeeld steeds meer ingezet om werknemers in de bouw te ondersteunen bij hun werkzaamheden. De combinatie van de HoloLens en 3D-objectherkenning maakt het mogelijk om werkzaamheden te “oefenen” in een virtuele omgeving.

In deze blog wil ik daarom één van de grotere marktspelers op het gebied van 3D-objectherkenning bespreken, Vuforia. Dit blog is onderdeel van een driedelige reeks. Lees hier mijn introductie van Mixed-Reality.

Vuforia in het kort…

Vuforia is een software development kit (SDK) voor het herkennen van 2- en 3D-objecten. Het product is in 2012 op de markt gebracht door Qualcomm en enkele jaren daarna opgekocht door de Parametric Technology Corporation (PTC). Sinds de overname door de PTC is de switch gemaakt van Virtual Reality naar Augmented Reality, waar we 3D-objectherkenning kunnen plaatsen.

Vuforia als multiple aanbieder

De meeste SDK’s op het gebied van objectherkenning bieden maar één enkele vorm aan. De SDK van Vuforia daarentegen richt zich op meerdere aanpakken van 3D-objectherkenning, namelijk marker-based en markerless-based. Het verschil tussen de twee verschillende methodes zit hem in de manier waarop een object wordt getrackt, ofwel gevolgd. Bij het tracking proces wordt middels algoritmes de positie (locatie & oriëntatie) van een 3D-object ten opzichte van de camera berekend.

Marker-based objectherkenning maakt gebruik van verschillende soorten markers voor het plaatsen/tonen van 3D-objecten in de werkelijkheid. Bij markers kan worden gedacht aan afbeeldingen of QR-code als voorbeeld. De camera van een Mixed Reality headset kan met behulp van software verschillende punten identificeren en op basis hiervan het 3D-object visualiseren bovenop een marker.

De tegenhanger, markerless-based objectherkenning, maakt daarentegen gebruik van informatie uit de omgeving waarin het object zich bevindt. Een headset verzamelt middels verschillende sensoren, zoals gps, accelerometers en snelheidsmeters, data over de omgeving en verwerkt deze vervolgens met behulp van SLAM (Simultaneous Localization And Mapping). Op basis van de verwerkte data kan een headset hierna een 3D-object visualiseren.

Aangeboden vormen van objectherkenning in Vuforia

Vuforia biedt drie ingebouwde functionaliteiten aan, namelijk 3D-objectherkenning op basis van markers (door PTC gewoon 3D-object recognition genoemd), model targets en VuMarks, waarin deze manieren tot uiting komen.

3D-object recognition

3D-object recognition is een vorm van marker-based objectherkenning. Het werkt met behulp van een marker en een 3D-scanner app. De marker die wordt gebruikt, is een donkere afbeelding met een x-, y- en z-as. Binnen het vlak van de x-, y- en z-as van deze afbeelding kunnen kleine voorwerpen worden geplaatst om te scannen met de bovengenoemde app, welke te downloaden is van het developers portaal van Vuforia.
Bij het maken van een scan van een dergelijk object met de 3D-scanner app zijn verschillende factoren van invloed op de kwaliteit. Zaken waaraan gedacht kan worden zijn de hoeveelheid licht in de ruimte, de achtergrond van de ruimte en het type smartphone waarop de app is geïnstalleerd. Wanneer aan één van deze “voorwaarden” niet is voldaan, worden aanzienlijk minder vlakken herkend die nodig zijn om een stabiele scan te produceren. Dit leidt er toe dat de kwaliteit van de hologram in de HoloLens minder stabiel wordt.

Model Targets

Model targets is de ingebouwde markerless-based variant van objectherkenning in Vuforia. Bij deze vorm wordt een object herkend op basis van zijn contouren zonder dat hiervoor een marker nodig is. Middels een ander product van PTC, de model targets generator, kan een developer op basis van een 3D-model de contouren van het object herkennen. Met behulp van deze target kan een headset een daadwerkelijk object herkennen mits de contouren er voldoende op lijken.

Voor het herkennen van de contouren van een 3D-model schrijft Vuforia als richtlijnen voor dat deze niet meer dan 40.000 oppervlakken bevat, minder dan tien textures en maximaal tien verschillende modellen. Anders erkent de model targets generator het 3D-model niet meer.

VuMarks

VuMarks zijn de nieuwe generatie barcodes die Vuforia aanbiedt. Deze kunnen worden gemaakt met de VuMarks-tool. Deze functionaliteit kan worden gezien als een soort van tussenoplossing van de 3D-objectherkenning.  Op basis van 2D-image recognition kan een 3D-object worden weergegeven, oftewel 2.5D.

VuMark
Bron: portaal Vuforia

Deze “nieuwe” barcodes worden vooral toegepast binnen het bedrijfsleven om onderdelen van apparatuur te herkennen. Een VuMark bestaat uit vijf individuele onderdelen: contouren, omranding, lege ruimte, code en achtergrond ontwerp.

Het algoritme van Vuforia zoekt bij het herkennen van een VuMark eerst naar de contouren, ofwel omlijning. Deze omlijning bevat de unieke “ID” van de barcode. Dit unieke ID bevat een aantal elementen die twee toestanden kennen: licht en donker. Bij het genereren van het ID wordt het unieke bepaald door variatie aan te brengen in de lichte en donkere elementen.

Het volgende onderdeel, de omranding, is van de vijf onderdelen het belangrijkste, aangezien deze de vorm van een VuMark bepaald. Dit zouden bijvoorbeeld zes lijnen kunnen zijn die een hexagoon vormen. Het vierde onderdeel, de lege ruimte, wordt toegevoegd aan de VuMark om meer contrast te creëren en het op deze manier makkelijker te maken voor het algoritme om de contouren te herkennen.
Het laatste onderdeel, het achtergrond ontwerp, dient om er objecten op te plaatsen die moeten worden herkend met behulp van een headset.

Van Vuforia naar de HoloLens

De laatste stap in het proces van 3D-objectherkenning is deployen van het project naar de HoloLens zelf. Unity, wat door Microsoft wordt aanbevolen als ontwikkelomgeving voor de HoloLens, biedt een aantal opties om het deployen via Visual Studio te vereenvoudigen. Eenmaal ingesteld, kan het project worden gerund als iedere andere solution.

Laatste gedachten…

Tijdens het ontwikkelen met Vuforia en de HoloLens 1 zijn we zo tegen uitdagingen aangelopen. De hardware beperkingen van deze versie maken het niet altijd even eenvoudig om interactie te hebben met de weergegeven hologrammen door het kleine gezichtsveld. Verder kan de belichting in de ruimte ook van grote invloed zijn op de kwaliteit van de gemaakte scan met Vuforia en daarmee de weergave ervan met de HoloLens.

Nu… met de recentelijke aankondiging van de HoloLens 2 is het interessant om te gaan zien hoe dit van invloed gaat zijn op de kwaliteit van 3D-objectherkenning. De eerste indrukken van de HoloLens 2 zijn positief. Met een groter gezichtsveld en de verbetering van het trackmechanisme wordt het prettiger en eenvoudiger om interactie te hebben met hologrammen. Verder is het draaggemak verbeterd doordat de nieuwe HoloLens lichter is en het gewicht beter is verdeeld, wat maakt dat de druk niet langer op iemands neus komt te liggen.

Al om al lijkt het erop dat we een mooie samenwerking tussen 3D-objectherkenning en de HoloLens kunnen verwachten.

Gideon Kuijpers – Software developer