3D Gaussian Splatting: echte plekken naspelen met miljoenen lichtvlekjes
Stel je voor dat je met je telefoon een rondje om je fiets loopt en daarna, op je computer, die fiets in 3D kunt bekijken vanuit elke hoek, met precies de juiste lichtreflecties op het chroom en de glans in de banden. Dat is wat 3D Gaussian splatting mogelijk maakt. Het is een techniek om van gewone foto's een driedimensionale, fotorealistische scène te maken die je in real time kunt bekijken en waar je doorheen kunt bewegen, alsof je in de ruimte zelf staat.
De naam klinkt technisch, maar de kernidee is verrassend beeldend: in plaats van een scène op te bouwen uit harde vlakjes zoals bij een 3D-computerspel, bouwt de techniek de wereld op uit miljoenen zachte, doorschijnende "lichtvlekjes" (Gaussians genoemd, naar de wiskundige klokvorm van Carl Friedrich Gauss). Elk vlekje heeft een positie, vorm, kleur en doorzichtigheid. Samen vormen die vlekjes, net als de stipjes in een pointillistisch schilderij van Georges Seurat, van dichtbij een wolk van puntjes en van veraf een overtuigend, scherp beeld.
Wat is het precies?
Het proces begint met gewone foto's: tientallen tot honderden opnames van een object of ruimte, vanuit verschillende hoeken. Software (vaak het programma COLMAP) berekent uit die foto's waar de camera zich telkens bevond, een techniek die "structure from motion" heet. Dat levert ook een ruwe, dunne puntenwolk van de scène op.
Elk van die punten wordt vervolgens omgezet in een zogeheten 3D Gaussian: een klein, ellipsvormig "blobje" met een positie, een grootte en oriëntatie (denk aan een plat of juist langwerpig eitje), een kleur die kan veranderen afhankelijk van de kijkhoek, en een mate van doorzichtigheid. Een scène bestaat al snel uit honderdduizenden tot miljoenen van zulke blobjes.
Daarna volgt een trainingsfase. Een computer rendert (tekent) de scène vanuit dezelfde camerastandpunten als de originele foto's en vergelijkt het resultaat pixel voor pixel met de echte foto. Op basis van de verschillen worden de vorm, kleur en positie van alle Gaussians geleidelijk bijgesteld, en worden blobjes toegevoegd of verwijderd waar dat nodig is. Dit gebeurt duizenden keren, tot de gerenderde beelden vrijwel niet meer van de echte foto's te onderscheiden zijn.
Het grote verschil met de voorganger van deze techniek, Neural Radiance Fields (NeRF, 2020), zit in het renderen zelf. NeRF gebruikt een neuraal netwerk dat voor elke pixel talloze berekeningen langs een denkbeeldige lichtstraal moet doen, wat traag is. 3D Gaussian splatting projecteert de blobjes rechtstreeks op het scherm en "stapelt" ze over elkaar (vandaar splatting, letterlijk "platslaan" of "kletsen"), een bewerking die grafische kaarten al decennia razendsnel kunnen uitvoeren. Daardoor lopen scènes in real time, vaak op 60 beelden per seconde of meer, zelfs op gewone laptops.
Wat wil men ermee bereiken?
Het achterliggende doel is de fysieke wereld digitaal vastleggen zonder dat een 3D-kunstenaar alles met de hand hoeft te modelleren. Traditioneel 3D-werk voor films, games of digitale tweelingen van gebouwen kost veel tijd en gespecialiseerde vaardigheden. Met Gaussian splatting kan in principe iedereen met een telefooncamera een ruimte of object scannen en er een bruikbaar 3D-model van maken.
Concreet wil men de techniek inzetten voor virtual reality en augmented reality (nagebouwde plekken om doorheen te lopen), digitale bewaring van erfgoedlocaties, virtuele bezichtigingen van woningen, productvisualisatie voor webwinkels, filmproductie en gamedecors, en simulatieomgevingen om bijvoorbeeld zelfrijdende auto's of robots te trainen. De belofte is fotorealisme tegen een fractie van de kosten en tijd van klassieke 3D-modellering, gecombineerd met rendersnelheden die eerder alleen bij eenvoudige, met de hand gemaakte 3D-modellen haalbaar waren.
Voorbeelden uit de praktijk
De techniek werd in 2023 geïntroduceerd in het paper "3D Gaussian Splatting for Real-Time Radiance Field Rendering" van Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler en George Drettakis, verbonden aan het Franse onderzoeksinstituut INRIA, het Max Planck Institut für Informatik en de universiteit van Erlangen-Neurenberg. Het paper verscheen op de vakconferentie SIGGRAPH 2023 en de bijbehorende programmacode werd meteen openbaar gemaakt, wat de snelle verspreiding sterk heeft aangejaagd.
Niantic, bekend van de locatiegebaseerde game Pokémon Go, voegde in 2024 een 3D Gaussian splatting-scanmodus toe aan zijn app Scaniverse, waarmee gewone gebruikers met een iPhone ruimtes en objecten kunnen vastleggen.
Het Amerikaanse bedrijf Luma AI bouwde een platform en app rond deze techniek waarmee makers objecten en scènes kunnen inscannen en delen; het wordt onder meer gebruikt door digitale kunstenaars en productfotografen.
Het softwarebedrijf Jawset bracht Postshot uit, een desktopprogramma specifiek gericht op het trainen van Gaussian splats uit foto's of video, gericht op professionals die geen eigen technische pijplijn willen bouwen.
Het open source webgame-engineproject PlayCanvas ontwikkelde SuperSplat, een gratis, in de browser draaiende viewer en editor waarmee splats zonder installatie bekeken en licht bewerkt kunnen worden, wat de techniek toegankelijk maakte voor experimentele webprojecten en online galerieën.
Hoe ver is de techniek?
3D Gaussian splatting is nog erg jong: het bestaat sinds medio 2023. Doordat de originele code direct openbaar was, volgde binnen enkele maanden een golf van implementaties, plug-ins voor game-engines als Unity en Unreal Engine, en losse capture-apps. Voor statische scènes, opgenomen met voldoende foto's vanuit voldoende hoeken, levert de techniek inmiddels beeldkwaliteit die vergelijkbaar is met of beter dan NeRF, terwijl het renderen tientallen tot honderden keren sneller is.
Er zijn nog wel serieuze obstakels. Ten eerste is de bestandsgrootte fors: een scène kan honderden megabytes tot enkele gigabytes aan data vergen, omdat elk van de miljoenen blobjes eigen parameters heeft. Compressietechnieken, zoals het formaat SPZ dat Niantic voorstelde, worden actief onderzocht maar een universele standaard ontbreekt nog; meestal wordt het generieke .ply-bestandsformaat gebruikt.
Ten tweede is bewerken lastig. Anders dan bij een klassiek 3D-model met een net, gedefinieerd oppervlak, is een verzameling losse blobjes moeilijk handmatig aan te passen of te animeren. Onderzoek naar het herkennen van objecten binnen een splat en naar het vervormen van scènes voor bewegend beeld (soms "4D Gaussian splatting" genoemd) loopt, maar is nog niet volwassen.
Ten derde blijven bewegende scènes, spiegelende of doorzichtige materialen, en opnames met maar een handvol foto's uitdagend. En hoewel renderen snel is, vergt het trainen van een scène nog altijd een stevige grafische kaart en enkele minuten tot uren rekentijd, afhankelijk van de scènegrootte.
Wie werken eraan?
De basis is gelegd door INRIA in Frankrijk, via de onderzoeksgroep GraphDeco, in samenwerking met het Max Planck Institut für Informatik en de Friedrich-Alexander-Universität Erlangen-Nürnberg in Duitsland. Zij blijven een centrale rol spelen in vervolgonderzoek.
Daarnaast investeren techbedrijven in toepassingen: Niantic in consumentenscanning, Luma AI in een compleet capture-platform, en chipmaker NVIDIA in het verder optimaliseren van rendering en het geschikt maken van de techniek voor minder krachtige apparaten. Gamebedrijven als Unity Technologies en Epic Games (Unreal Engine) bouwen ondersteuning voor splats in hun engines, en het open source PlayCanvas-team werkt aan gratis webtools.
Verder is er een brede academische gemeenschap actief: universiteiten wereldwijd publiceren op grote conferenties als SIGGRAPH, CVPR en ECCV over onderwerpen als compressie, dynamische scènes, en betere oppervlakte-reconstructie. Het is op dit moment een van de snelst groeiende deelgebieden binnen computer graphics en computer vision.