Pokémon GO Style Augmented Reality met Vuforia

1. Inleiding

Dankzij het wilde succes van Pokémon GO krijgt augmented reality (AR) veel aandacht in de wereld van mobiele ontwikkeling. Het idee van augmented reality is niet nieuw, maar pas nu komt de technologie eindelijk in de buurt van volwassenheid en commerciële levensvatbaarheid. Maar wat is augmented reality precies?

Dit is een heel breed concept dat vele verschillende vormen kan aannemen. Het idee kan worden toegepast op entertainment, wetenschap, leger, onderwijs, noem maar op. Wat deze toepassingen allemaal gemeen hebben, is echter een real-time verbinding tussen de fysieke wereld en de digitale wereld.  

Een live directe of indirecte weergave van een fysieke, real-world omgeving waarvan de elementen worden aangevuld (of aangevuld) door computer-gegenereerde sensorische invoer zoals geluid, video, grafische afbeeldingen of GPS-gegevens. - Wikipedia

Concreet wordt AR vaak gerealiseerd in interactieve ervaringen die een camerafeed overlappen met 2D- of 3D-objecten, op de hoogte gebracht door bepaalde sensorgegevens. 

Het creëren van een boeiende augmented reality-ervaring vanaf nul kan echter een echte uitdaging zijn. Gelukkig zijn er enkele oplossingen beschikbaar die deze taak gemakkelijker kunnen maken. Een van de meest solide augmented reality-tools die er zijn, is Vuforia, een AR-bibliotheek die compatibel is met Android, iOS, UWP en sommige merken smart-brillen. 

In deze tutorial verkennen we augmented reality met Vuforia. We zullen de functies, mogelijkheden en uitdagingen van Vuforia verkennen, en we zullen ook bekijken hoe de SDK werkt en de belangrijkste functies ervan. We zullen geen enkele code onderzoeken in deze tutorial - toekomstige tutorials in deze serie zullen ingaan op de codering in Vuforia, met stapsgewijze handleidingen die alle hoofdfuncties van de bibliotheek targeten.

Als u dieper wilt graven, waarom leert u dan niet over een van de meest fundamentele concepten van AR, markers, in onze korte cursus:

2. Vuforia

Oorspronkelijk ontwikkeld door Qualcomm en onlangs gekocht door PTC, is Vuforia op zijn zesde versie. De SDK is voortdurend in ontwikkeling en is compatibel met Android, iOS, UWP en Unity. Helaas is Vuforia niet open source, maar de prijs is redelijk en er zijn geen kosten vooraf voor ontwikkeling of onderwijs. Je kunt vrijwel elke AR-ervaring creëren op de populairste mobiele platforms met Vuforia. 

2.1. Hoe werkt het?

Vuforia gebruikt de camerafeed van het apparaat in combinatie met de gegevens van de versnellingsmeter en gyroscoop om de wereld te onderzoeken. Vuforia gebruikt de computervisie om te begrijpen wat het 'ziet' op de camera om een ​​model van de omgeving te creëren. Na het verwerken van de gegevens kan het systeem zich ruwweg in de wereld lokaliseren, met de coördinaten ervan: waar is omhoog, omlaag, links, rechts, enzovoort. Wat je hiermee doet, hangt af van je ontwikkelingsdoelen.

Er zijn meerdere mogelijkheden:

  • Wereldcoördinaten gebruiken: Elke vorm van object kan worden tentoongesteld met behulp van een willekeurige verwijzing, waarbij echte obstakels worden genegeerd, maar gelet op de verkregen Wereldlocatie. Het object kan buiten beeld zijn en op dezelfde positie blijven "bestaan". Dit is een systeem dat lijkt op het systeem dat door Pokémon GO wordt gebruikt.
  • Herkennen van doelen: Vuforia kan naar specifieke afbeeldingen zoeken als "doelen". VuMarks, bijvoorbeeld een afbeelding in QR-codestijl die zeer herkenbaar is voor het systeem, kunnen worden gebruikt als ankerpunten of als referentie voor elk soort object dat in de wereld wordt geprojecteerd. Een tijdschrift kan worden 'uitgebreid' met deze bron, waarbij de pagina's rijke interacties openen, zoals video's, audio enzovoort.
  • Eenvoudige objecten herkennen: Eenvoudige objecten zoals dozen en cilinders kunnen worden herkend en gebruikt als ankerpunten. Deze methode is handig om pakketten te herkennen en interactief te maken.
  • Complexe objecten herkennen: Vuforia kan ook zoeken naar complexe objecten, zoals speelgoed, computeronderdelen, gadgets, enzovoort. Die objecten zijn eerder gescand, conform aan specifieke vereisten, en kunnen later door het systeem worden herkend. Deze functionaliteit kan bijvoorbeeld worden gebruikt om speelgoed in levende wezens om te zetten, of om interactieve hulp te creëren voor monteurs of servicemedewerkers.
  • Op zoek naar woorden: Engelse woorden kunnen ook door Vuforia worden begrepen. Het systeem kan naar specifieke woorden zoeken en een soort interactie op hen richten. Dit kan handig zijn voor leerhulpmiddelen voor kinderen of voor taalvertaling.
  • Het wereldterrein herkennen: Een van de krachtigste functies die beschikbaar is op Vuforia is het vermogen om de wereld te herkennen zoals deze is. Vuforia laat de gebruiker hun omgeving scannen en kan wat hardcore verwerking uitvoeren om de wereld te interpreteren door een 3D-computervisie te maken van de echte wereld en zijn objecten. Stel je een Pokémon GO-achtig spel voor waarin de Pokémons zich achter echte objecten kunnen verstoppen. Zou dat niet geweldig zijn?

2.2. Ontwikkelen met Vuforia

Vuforia is compatibel met meerdere systemen. De software development kits (SDK's) zijn beschikbaar voor Android, iOS, UWP en Unity. Nadat u de SDK hebt gedownload en geïnstalleerd, moet u zich aanmelden voor een ontwikkelaarsaccount en een app-sleutel maken voordat u kunt beginnen met het coderen.

Hoewel Vuforia compatibel is met veel systemen, is de eenvoudigste manier om boeiende AR-ervaringen te creëren met behulp van de SDK absoluut gebruik van Unity. Begrijp me niet verkeerd, je hebt toegang tot bijna alles wat Vuforia biedt bij het rechtstreeks ontwikkelen voor Android of iOS. Het proces is echter veel eenvoudiger wanneer u de prefabs gebruikt die worden aangeboden op Vuforia's SDK voor Unity.

3. Vuforia-doelen

Zoals eerder vermeld, kan Vuforia 'doelen' op de camerafeed zoeken om ankerpunten of referenties te maken die door AR-ervaringen kunnen worden gebruikt. Die doelen kunnen vele vormen aannemen en elk bestand dat eerder is verwerkt door Vuforia-doelbeheerprogramma kan worden herkend. Targets kunnen door de ontwikkelaar worden gemaakt of tijdens de uitvoering door de gebruiker worden gemaakt.

3.1

3.1. Beelddoelen

Elke soort afbeelding kan een Vuforia Image Target zijn. Hoe gedetailleerder en ingewikkelder de afbeelding, hoe beter het is om door het algoritme te worden herkend. Veel van de factoren zullen deel uitmaken van de herkenningsberekening, maar in principe moet het beeld een redelijk niveau van contrast, resolutie en onderscheidende elementen hebben. Een blauwe luchtfoto zou niet zo goed werken, maar een afbeelding van wat gras zou sierlijk werken. Beelddoelen kunnen met de toepassing worden verzonden, later worden gemaakt en via een cloudsysteem naar de toepassing worden geüpload, of door de gebruiker rechtstreeks in de app worden gemaakt.

3.2. VuMarks

Een VuMark werkt op dezelfde manier als een QR-code; het is echter veel veelzijdiger. Het kan vele vormen en kleuren aannemen en zich aanpassen aan een groot aantal omgevingen. Het grootste voordeel is dat het volledig conform is met het herkenningsalgoritme van Vuforia en gemakkelijk kan worden 'gevonden' door elke Vuforia AR-toepassing. Vuforia biedt ook een Adobe Illustrator-plug-in waarmee VuMarks wordt gemaakt.

3.3. Cilinder en Kubusdoelen

Het is ook mogelijk om kubussen en cilinders als afbeeldingsdoelen te gebruiken. Dit is zeer geschikt om betrokkenheid bij productpakketten te creëren. Als het primitieve object eenmaal is herkend, wordt het gebruikt als een ankerpunt en lijkt het te bestaan ​​voor de computervisie van het systeem, waardoor virtuele objecten direct kunnen interageren met de primitieve. Het virtuele object kan bijvoorbeeld de positie en oriëntatie van het echte object volgen.

3.4. Objecten als doelen

Een van de meest interessante kenmerken van Vuforia is de mogelijkheid om complexe objecten te herkennen. Een speeltje, een telefoon, een computerbord en andere soorten objecten kunnen als doelen worden gebruikt. 

Als u deze bron wilt gebruiken, moet u het object scannen met de Vuforia Object Scanner-tool, die alleen op Samsung Galaxy S6 en S7 wordt uitgevoerd. De gegevensscan wordt geüpload naar Vuforia Target Manager en het gescande object wordt herkend door elk compatibel apparaat dat die gegevens gebruikt.

3.5. Doelen beheren

Er zijn meerdere manieren om een ​​doel te maken: 

  • De toepassing kan worden geleverd met een reeks doelen die zijn ingesloten.
  • De app kan doelen online ontvangen via het cloudsysteem van Vuforia.
  • De gebruiker zelf kan de camera van het apparaat gebruiken om een ​​doel te maken. 

Als ontwikkelaar heb je niet veel controle over hoe de gebruiker zijn doel zal maken; alles wat je kunt doen is de gebruiker wat tips geven over hoe je een geschikte afbeelding als doel kunt kiezen. De situatie is echter anders voor de doelen die worden verwerkt met behulp van de Target Manager.

De ontwikkelaarportal van Vuforia voorziet ons van de Target Manager-tool om al onze doelen te beheren. De manager is heel eenvoudig te gebruiken: u maakt een database om de doelen te houden, uploadt een bestand dat overeenkomt met een doel en wacht totdat het bestand is verwerkt. Het doelwit ontvangt een unieke ID en een score gerelateerd aan hoe herkenbaar het is en wordt dan onderdeel van de database, beschikbaar voor download of voor opslag in de cloud. 

Er zijn drie verschillende soorten doeldatabases:

  • Apparaatdatabases zijn lokale databases van afbeeldingen of objectdoelen die zijn opgeslagen op het apparaat van de gebruiker.
  • VuMark-databases zijn lokale databases van VuMarks die op het apparaat van de gebruiker zijn opgeslagen.
  • Cloud-databases zijn databases met beelddoelen online opgeslagen en via internet bevraagd.

4. Slim terrein

Bij het ontwikkelen van een Vuforia-app op Unity is er een heel opwindende optie beschikbaar, de Smart Terrain. Hiermee kan een toepassing 3D-mazen van objecten repliceren die door de camera worden gezien. 

Het proces werkt als een soort scan, waarbij de gebruiker de camera van het apparaat als een 3D-scanner gebruikt. Terwijl de camera door de omringende omgeving scant, maakt de toepassing 3D-modellen van de herkende objecten, waardoor de toepassing de mogelijkheid heeft om het scenario aan te passen aan de echte wereld, waardoor een diep innemende ervaring ontstaat.

5. Conclusie

Er zijn honderden mogelijkheden om te verkennen met augmented reality, en we beginnen net aan de oppervlakte te krabben. Velen geloven dat AR een deel van onze toekomst zal zijn en dat we het elke dag opnieuw zullen gebruiken. Dit is een veld dat de komende jaren veel belooft te groeien en Vuforia biedt ons coole tools om boeiende ervaringen te creëren.

5.1 Wat is de volgende

In de volgende tutorials van deze serie zullen we werken met enkele van de belangrijkste hulpmiddelen van Vuforia. We zullen heel wat kleine experimenten ontwikkelen om de SDK-mogelijkheden te illustreren, en aangezien Unity de meest AR-vriendelijke omgeving is die beschikbaar is, zal er alles op worden ontwikkeld. 

Het is niet nodig om een ​​Unity-expert te zijn om de tutorials te volgen - aangezien onze focus de Vuforia SDK is, zal ik u stap-voor-staphandleidingen geven die slechts minimale eerdere ervaring met Unity vereisen.

Als je ondertussen wat meer wilt weten over Unity, bekijk dan enkele van onze andere tutorials.

  • Maak een basketbal gratis Gooi een spel met eenheid

    In deze zelfstudie maakt u een spel voor basketbalvrije worpen in Unity. Je leert over 3D-modellen, mesh colliders, fysica materialen, botsing detectie, ...
    Carlos Yanez
    Mobiele ontwikkeling
  • Een 3D-stad in eenheid creëren 5

    Welkom bij onze Unity-zelfstudie, waarin we een 3D-stad zullen maken in de Unity 5-game-engine. U kunt dit project gebruiken voor uw eerste persoon of derde persoon ...
    Sandra Gerber
    Unity 3D
  • Tekstinvoer voor games met slechts een Intel RealSense-camera

    In dit bericht zal ik vertellen wat ik heb geleerd over de beste (en slechtste!) Manieren om spelers tekst in te laten voeren via een gebaar alleen en om je te laten zien hoe je de Intel ...
    Chris Skaggs
    Intel RealSense

Tot ziens!