Waarom Computer Vision cruciaal is voor Augmented Reality.

Augmented Reality creëert een nieuwe, interactieve laag over onze werkelijkheid met door computer gemaakte virtuele 3D objecten en animaties die naadloos passen in de echte wereld. Bijna elke smartphone of tablet kan deze AR laag maken over een camerabeeld. Computer vision is een groot en sterk groeiend vakgebied die zich bezighoudt met het automatisch begrijpen van beelden en video van camera’s. Een goed voorbeeld van een toepassing van computer-vision is de zelfrijdende auto van Tesla. 

Met behulp van camera’s en computer vision kan de auto zelf rijden door de weg te vinden, diepte in te schatten en eventuele obstakels in de camerabeelden te detecteren. Computer vision wordt tegenwoordig sterk gedomineerd door machine learning: leren uit grote hoeveelheden voorbeelden. Diepe neurale netwerken kunnen na uitgebreide training zien wat er beelden te zien is en automatisch in menselijke termen deze beschrijven, bijvoorbeeld dit netwerk van Google.

Maar waarom heeft echte AR computer vision nodig?

In onze vorige blog legde we uit wat AR is en dat het maken van een AR ervaring bestaat uit 2 stappen: herkennen van de 3D wereld en deze augmenteren. Het herkennen gebeurt grotendeels door computer vision met wat hulp van andere sensoren in je smartphone zoals een gyroscoop. Voor echte AR moet de computer namelijk precies weten waar de camera in de wereld staat en ook in welke richting de camera kijkt. Zonder dit te weten kan AR niet in de 2e stap 3D ervaringen inpassen in de werkelijkheid. Het is een puzzelstukje in de lucht plaatsen zonder te weten waar de tafel met rest van de puzzel is. Ouderwetse AR loste dit op door de camerapositie aan de hand van de GPS te bepalen en de kijkrichting uit het kompas maar dat was niet nauwkeurig voor een naadloze AR ervaring.

Positie en kijkrichting van de camera zijn in feite niets meer dan de 6 vrijheidsgraden. Drie coördinaten [x,y,z] voor de positie van de camera in de wereld en 3 hoeken voor de kijkrichting. Computer vision kan deze 6 getallen op verschillende manieren uit het beeld halen:

  1. Een plat vlak in het beeld vinden: bijvoorbeeld de vloer, grond of een tafelblad.
  2. Een bekend voorwerp in beeld te vinden: bijvoorbeeld met een 3D model van het voorwerp.

De gemakkelijkste manier is om een horizontaal plat vlak zoals de vloer of een tafelblad in beeld te vinden. Dit is de manier hoe de computer-vision software van Google (ARCore) en Apple (ARKit) werken op smartphones en tablets. Een andere manier is om een bekend voorwerp in beeld te detecteren. De vorm van het voorwerp in beeld bepaalt de positie van de camera relatief t.o.v. het voorwerp. Hoe verder weg een voorwerp is hoe kleiner het is zie extra informatie: robust image and marker tracking.

Wat maakt computer vision mogelijk in combinatie met Augmented Reality?

Naast het fundamentele AR vraagstuk van het vinden van de positie en kijkrichting van de camera kan computer vision nog veel meer AR toepassingen mogelijk maken:

  • Objecten herkennen in beeld: bijvoorbeeld meubilair in een huiskamer.
  • Snel en nauwkeurig 3D in kaart brengen van een omgeving uit meerdere camerabeelden.
  • Aan de hand van camerabeelden navigeren in een grote omgeving binnen.
  • AR visualisaties buiten in het veld met centimeter nauwkeurige precisie.

Klik hier voor de gratis AR Management handleiding en leer de essentials die nodig zijn voor het bouwen van een sterke Augmented Reality-strategie.

Objecten herkennen in beeld

Het herkennen van objecten in een beeld is een klassieke computer-vision uitdaging. Door specifieke objecten in beeld te herkennen kan de AR ervaring van de gebruiker nog beter op de wensen van de gebruiker aansluiten. Een heel goed voorbeeld daarvan is de visuele zoekfunctie in de door TWNKLS gemaakte IKEA Place app. Door met de app naar een stuk meubilair bijvoorbeeld een stoel te kijken kan computer vision bepalen of het object in beeld in de catalogus van IKEA voorkomt. Als de stoel niet in de database voorkomt kan de computer vision alternatieven uit de catalogus aanbevelen die erop lijken.

Een tweede voorbeeld van objectherkenning is de door TWNKLS gemaakte Augmented Blueware app gemaakt voor Royal Delft samen met FLEX/design. De app laat de gebruiker naar een blanco servies kijken, dat door het tablet kijkend, in AR gedecoreerd wordt in de schildering van de vaas die met objectherkenning is geïdentificeerd. Met een andere vaas kan een andere schildering worden uitgeprobeerd op het servies.

Snel en nauwkeurig 3D in kaart brengen van een omgeving uit meerdere camerabeelden

Uit meerdere camerabeelden een 3D scan maken van een omgeving is ook een klassiek computer-vision probleem met een eigen naam: fotogrammetrie. Computer vision vraagt de gebruiker om foto’s uit verschillende aanzichtshoeken te maken van een voorwerp of een omgeving. De fotogrammetrie berekent dan een ingekleurd 3D model uit de verschillende foto’s door specifieke punten in beeld in meerdere foto’s met elkaar te identificeren en uit te rekenen waar de punten in 3D staan.

Met fotogrammetrie kan computer vision op meerdere manieren een rol spelen voor AR:

  1. Content creatie: het maken van een 3D model dat later in een AR app kan worden gevisualiseerd zie het TWNKLS voorbeeld over Augmented Blueware.
  2. Nauwkeurig 3D meten: bijvoorbeeld het 3D in kaart brengen van een dak voor het precies plaatsen van zonnepanelen of vloeren.
  3. Als fotogrammetrie snel genoeg is kan het ook de positie en kijkrichting van de camera bepalen t.o.v. het gemaakte 3D model aan de hand van het huidige camerabeeld. In dat geval heet het SLAM: Simultaneous Localization and Mapping.

Volgende blog: wat zijn de uitdagingen voor computer vision?