FACULTEIT INGENIEURSWETENSCHAPPEN EN ARCHITECTUUR
Vakgroep Industriële Technologie en Constructie
Uitgebreid voorstel Masterproef Informatica Titel van het project: Uitbreiden van Microsoft Kinect Fusion tot een cloudgebaseerd raamwerk voor het efficiënt in kaart brengen van de 3D-omgeving via headmounted displays Datum indienen: 17/12/2013 Naam student: Jamin Van Parys Interne promotor: Tim De Pauw In samenwerking met: iMinds Algemene informatie voor extern bedrijf: Naam van het bedrijf: iMinds Vakgroep Informatietechnologie/IBCN Adres: Gaston Crommenlaan 8 bus 201 9050 Gent • Is dit de 1e masterproef in het bedrijf in samenwerking met onze opleiding? Nee • Is er in het bedrijf inhoudelijke en technische begeleiding mogelijk? Ja • Kan de student in het tweede semester (februari-mei) 3 dagen per week in het bedrijf/onderzoekscentrum aanwezig zijn om te werken aan de masterproef? Ja
Begeleiding : Externe promotoren – andere begeleiders: - ir. Tim Verbelen - dr. ir. Pieter Simoens - prof. dr. ir. Bart Dhoedt
Bespreking door de werkgroep
(niet invullen bij indienen van een voorstel)
Beslissing: goedgekeurd - herwerken tegen
…/…
Minimale uitbreidingen:
Faculteit Ingenieurswetenschappen en Architectuur Vakgroep Industriële Technologie en Constructie Campus Schoonmeersen, Valentin Vaerwyckweg 1, B-9000 Gent
www.ugent.be/ea/it-c
Opmerkingen:
Advies van collega's:
Doelstelling van het project Hedendaagse mobiele hardware evolueert enorm snel; vele technologieën die enkele jaren geleden nog aparte hardware vereisten worden nu geregeld door één enkel toestel zoals een smartphone of een tablet. Denk hierbij maar aan het nemen van kwalitatieve foto's, filmen in hoge resolutie, tv kijken etc. Ook de toekomst is veelbelovend: mobiele toestellen worden steeds krachtiger maar kunnen bovendien ook gebruik maken van steeds betere draadloze verbindingen. Dit laatste heeft als gevolg dat cloud computing een van de belangrijkste technologieën zal worden in de toekomstige mobiele markt, zoals afgebeeld op Figuur 1. Veeleisende applicaties worden door deze technologie niet meer afhankelijk van de hardware van het mobiele apparaat, zolang het draadloze netwerk maar performant genoeg is om een gegevensstroom te ondersteunen tussen de applicatie en een remote server die de zware berekeningen aan kan. Grafisch veeleisende toepassingen zoals computergames worden op deze manier al gerealiseerd op toestellen die zelf niet genoeg rekenkracht bezitten om de applicatie degelijk te doen draaien; denk maar aan het bedrijf Gaikai [1], dat zich in cloud gaming specialiseert.
Figuur 1: Basis cloud computing
Een andere grafische toepassing is het mappen van 3D-modellen van objecten of ruimtes. Hoewel de hardware die hiervoor vereist is nog niet aanwezig is in de huidige generatie smartphones of tablets, is het toch aannemelijk dat men over enkele jaren de nodige hardware zal kunnen reduceren tot een formaat dat valt te implementeren in de toekomstige generaties smartphones, tablets en eventueel
2
ook smart glasses, zoals deze van Google. De Kinect-camera van Microsoft [2] is al een mooie hedendaagse poging om de nodige hardware goedkoper, mobieler en kleiner te maken. Met de veronderstelling dat de toekomstige mobiele apparaten zulke dieptecamera's zullen bevatten kan er een raamwerk gecreëerd (of uitgebreid) worden dat de realtimedata verkregen van deze apparaten opstuurt naar een remote server die zich in de cloud bevindt. Deze server verwerkt de data, zodat er één 3D-model wordt opgesteld uit mogelijk meerdere databronnen.
Bestaande situatie en probleemstelling Zoals besproken bij de doelstelling ondersteunt de huidige generatie mobiele apparaten nog geen mogelijkheid tot het filmen van 3D-beelden. Er wordt wel vanuit een veronderstelling gewerkt dat dit wel al kan, dus moet er worden gebruikgemaakt van een dieptecamera die de nodige 3D-beelden kan aanbieden. Een goedkope manier om dit te realiseren is door de Kinect-camera van Microsoft te gebruiken, zie Figuur 2. Deze dieptecamera, oorspronkelijk bedoeld als accessoire voor de Xbox 360-spelconsole, slaagt erin een 3D-beeld te creëren van een object of ruimte op basis van de reflectie van een geprojecteerd infraroodhologram, zie Figuur 3. De ingebouwde infraroodscanner van de Kinect-camera vangt de reflecterende infraroodstralen op en kan dan het punt vanwaar de infraroodstralen reflecteerden inschatten door het invalspunt op de infraroodscanner heel nauwkeurig te bepalen, zie Figuur 4. De precieze werking van de dieptecamera valt buiten het bestek van de masterproef, maar is te vinden in [3].
Figuur 2 - Kinect-camera
Figuur 3 - Infraroodprojectie Kinect-camera
Figuur 4 - Infraroodprojectie Kinect-camera
3
Men beschikt met deze Kinect-camera over een 3D-beeld op elk gegeven moment, maar dit is niet genoeg om een 3D-model te maken van een object of een ruimte. De technologie die dit mogelijk maakt, wordt onder de naam KinectFusion [4] aangeboden door Microsoft. Daarnaast is er echter ook de Point Cloud Library [5], die als open source beschikbaar wordt gesteld, zie Figuur 5. Aangezien het voor deze masterproef waarschijnlijk noodzakelijk zal zijn om de broncode te wijzigen, wordt voor deze laatste geopteerd.
Figuur 5 - KinectFusion (PCL)
Er zijn nu enkele uitdagingen waarbij er rekening moet gehouden worden bij het kiezen van deze technologie. Allereerst werken de Kinect-camera en KinectFusion enkel voor kleine ruimtes. Dit heeft als gevolg dat men extra maatregelen moet treffen indien grotere ruimtes of zelfs volledige gebieden of kaarten gewenst zijn. Ten tweede werkt de technologie niet voor zeer kleine afstanden (beneden de 30 cm.), eveneens wegens tekortkomingen van de dieptecamera. Deze beperking is misschien minder van toepassing, omdat vooral ruimtes modelleren belangrijk is. Een laatste beperking is dat bij enkele eerste testen de kwaliteit van de bekomen 3D-objecten, en vooral van de 3D-ruimtes, niet denderend was. Dit is ook geen ramp, aangezien de toepassing zal gemodelleerd worden met een vooruitzicht naar de toekomst, waarbij de technologie en hardware die de 3D-modellen leveren waarschijnlijk verder gevorderd zullen zijn. Nu de nodige technologie werd beschreven volgt de eigenlijke probleemstelling. De KinectFusion technologie werd nog nooit gebruikt als cloudtoepassing; het produceren en verwerken van de 3Dinformatie gebeurde altijd op hetzelfde toestel, en werd nog nooit eerder gesplitst in aparte modules die eventueel door een publieke cloud gescheiden kunnen zijn. Het realiseren van zo'n cloudtoepassing is de hoofddoelstelling van deze masterproef.
4
Gedetailleerde omschrijving van de opdracht die minimaal moet worden verwezenlijkt Allereerst is er nood aan een applicatie die de bron van de nodige 3D-informatie voorstelt, de Dimensional Data Source (DDS). Hoewel dit op een mobiel toestel zou moeten gemodelleerd worden, moet er rekening gehouden met de werkelijke bron van deze informatie. Dit is namelijk de Kinectcamera van Microsoft. Deze vereist een USB-aansluiting, iets dat niet evident is voor veel mobiele apparaten. Er wordt dus gekozen voor het schrijven van een applicatie voor apparaten waar een verbinding met de Kinect-camera geen probleem vormt, bv. laptops. Ten tweede moet deze bron zijn 3D-informatie kunnen leveren aan een lokale, krachtige backend server (BES) zodat deze de intensieve grafische berekeningen op zich kan nemen. Hiervoor is er nood aan een implementatie van een cloudtechnologie zoals Azure [6]. Hierbij moet er rekening gehouden worden met energieverbruik en bandbreedte. Vervolgens moet er op de publiek toegankelijke BES een gedistribueerde versie gemaakt worden van Kinect Fusion op basis van de opensourcetoepassing gecreëerd door Point Cloud Library [7]. Deze verwerkt de 3D-informatie bekomen van de DDS en zet deze om naar een 3D-mesh, een verzameling van punten, lijnen en vlakken die een 3D-object voorstelt, dat het gevraagde 3D-model voorstelt. Hierbij moet er een schaalbare architectuur ontworpen worden voor het cloudgebaseerde raamwerk. Daarnaast moet de BES kunnen omgaan met 3D-informatie komende van meerdere DDS's, in deze masterproef voorgesteld door meerdere Kinect-camera's. Dit houdt in dat de BSE één 3D-model moet kunnen construeren op basis van eigenschappen van de mobiele DDS's: locatie, tijd, prioriteit e.d. Ten slotte moeten er metingen uitgevoerd worden omtrent de schaalbaarheid van het systeem en de optimale distributie van rekenkracht tussen DDS en BES. Ook de performantie van de ontwikkelde toepassing moet in kaart gebracht worden.
Problemen die opgelost moeten worden (niet te gedetailleerd) Een eerste probleem is de beperking van de KinectFusion-technologie waarbij enkel kleine ruimtes kunnen worden gemodelleerd. Men moet dus het model, dat zich volledig in het geheugen van de Graphical Processing Unit (GPU) bevindt, zo kunnen opslaan dat al die verschillende modellen kunnen worden beschouwd als één ruimte. Ten tweede moet men rekening houden met de grootte van het uiteindelijk bekomen model. De KinectFusion-technologie maakt immers gebruik van zeer veel voxels die veel data op zich bevatten, waardoor de gegevensstructuur die het model voorstelt enkele gigabytes groot kan worden voor slechts enkele ruimtes. Voxels, een combinatie van volume en pixels, zijn gegevensstructuren die een deeltje van een driedimensionale omgeving voorstellen . [8] Een derde probleem heeft te maken met de verbinding tussen de DDS en de BES. Wat moet er gebeuren indien deze tussen beide wegvalt? Moet de DDS dan stoppen met het produceren van 3Dinformatie of wordt deze tijdelijk opgeslagen om later te versturen naar de BES wanneer de verbinding hersteld is?
Technologieën die aan bod komen -
Microsoft KinectFusion Point Cloud Library Cloudtechnologieën (vb. Azure) Visual C# Visual C++
5
Mogelijke uitbreidingen en opties Als eerste uitbreiding kunnen er intelligente strategieën ontwikkeld worden voor de compressie van 3D-informatie op basis van reeds beschikbare informatie die in de cloud wordt opgeslagen op de BES. Zo kan de BES doorgeven aan de DDS dat het model van de huidige omgeving voldoende recent is en de gebruiker dus geen nieuwe versie moet uploaden. Ten tweede kan onderzoek worden gedaan naar de nieuwe generatie Kinect-camera's (Kinect 2.0) [9] ontwikkeld door Microsoft. Er kan worden bekeken in hoeverre de applicatie compatibel kan worden gemaakt met deze nieuwe technologie. Als laatste is er een optie om een smartphoneapplicatie te schrijven die als dummy-DDS, een DDS die onveranderlijke 3D-informatie produceert zonder een dieptecamera te gebruiken, kan gebruikt worden. Deze kan geschreven worden voor Android, iOS of dergelijke.
Vernieuwende aspecten - Toegepaste beeldverwerking - Cloud computing - Mobiele applicaties
Referenties [1] http://www.gaikai.com/ [2] http://en.wikipedia.org/wiki/Kinect [3] http://www.lens.org/lens/search?q=US_2010_0118123_A1 [4] http://msdn.microsoft.com/en-us/library/dn188670.aspx [5] http://pointclouds.org/ [6] http://www.windowsazure.com/en-us/ [7] http://pointclouds.org/news/2011/12/08/kinectfusion-open-source/ [8] http://en.wikipedia.org/wiki/Voxel [9] http://blogs.msdn.com/b/kinectforwindows/archive/2013/11/22/thousands-of-developers-aretaking-part-in-kinect-for-windows-v2-developer-preview.aspx
6