Sparse convolutie: hoe computers leren kijken naar bijna lege ruimtes
Stel je een groot pakhuis voor met duizenden dozen, maar negenennegentig procent van de vloer is leeg. Als je een robot de opdracht geeft om elke vierkante centimeter van de vloer te scannen, verspilt hij het grootste deel van zijn tijd aan het bekijken van niets. Slimmer zou zijn om alleen te kijken naar de plekken waar daadwerkelijk dozen staan. Dat is in essentie wat sparse convolutie doet voor computers die 3D-data verwerken.
Sparse convolutie (spaarzame convolutie) is een rekentechniek uit de kunstmatige intelligentie waarmee computers efficiënt patronen kunnen herkennen in data die grotendeels leeg is, zoals 3D-puntenwolken van een laserscanner. In plaats van elke denkbare positie in de ruimte te doorzoeken, richt de techniek zich alleen op de plekken waar daadwerkelijk iets aanwezig is. Dat scheelt enorm veel rekenkracht en tijd, wat sparse convolutie tot een sleuteltechnologie maakt voor bijvoorbeeld zelfrijdende auto's en robots die hun omgeving in 3D moeten begrijpen.
Wat is het precies?
Om sparse convolutie te begrijpen, helpt het eerst te weten wat gewone convolutie is. Een convolutie is een wiskundige bewerking waarbij een klein "filter" (een soort sjabloon) over data heen schuift om patronen te herkennen, zoals randen, hoeken of vormen. Dit is de bouwsteen van convolutionele neurale netwerken (CNN's), die al jaren de standaard zijn voor beeldherkenning.
Bij een gewone foto werkt dit prima: elke pixel bevat informatie, dus het filter heeft overal iets zinvols om te verwerken. Bij 3D-data ligt dat anders. Denk aan de puntenwolk die een LiDAR-sensor (een laserscanner die afstanden meet) opneemt van een straatbeeld: auto's, fietsers en gebouwen leveren duidelijke clusters van punten op, maar de lucht erboven en de lege ruimte ertussen bevatten helemaal niets. Als je deze data zou opdelen in een fijn driedimensionaal rooster van blokjes ("voxels", te vergelijken met 3D-pixels), dan is meer dan negentig procent van die blokjes leeg.
Een gewone 3D-convolutie zou toch al die lege blokjes één voor één verwerken, wat rekenkracht en geheugen verspilt. Sparse convolutie slaat alleen de blokjes op die daadwerkelijk gevuld zijn, samen met hun positie, en past de rekenbewerkingen alleen daarop toe. Er bestaan twee hoofdvarianten: gewone sparse convolutie, waarbij het resultaat iets kan "uitdijen" naar naburige lege cellen, en submanifold sparse convolutie, die ervoor zorgt dat het patroon van gevulde en lege cellen exact behouden blijft. Die laatste variant, geïntroduceerd door onderzoekers Benjamin Graham en Laurens van der Maaten in 2017, voorkomt dat de data na meerdere lagen alsnog "dicht" wordt en zo het voordeel van spaarzaamheid verliest.
Wat wil men ermee bereiken?
Het uiteindelijke doel is simpel: computers in staat stellen om grote hoeveelheden 3D-data te verwerken zonder dat dit onbetaalbaar veel rekenkracht, geheugen of energie kost. Dat klinkt technisch, maar heeft directe praktische gevolgen. Een zelfrijdende auto moet tientallen keren per seconde een volledige 3D-scan van zijn omgeving analyseren om voetgangers, andere voertuigen en obstakels te herkennen. Dat moet razendsnel gebeuren, met beperkte rekenkracht aan boord van het voertuig.
Zonder sparse convolutie zou je voor zulke toepassingen ofwel enorme, dure hardware nodig hebben, ofwel water bij de wijn moeten doen qua nauwkeurigheid of resolutie. Door alleen te rekenen waar het ertoe doet, kunnen modellen sneller en met minder energie draaien, terwijl de nauwkeurigheid gelijk blijft of zelfs verbetert. Dit sluit aan bij een bredere trend in AI-onderzoek: niet alleen grotere modellen bouwen, maar ook slimmer omgaan met de structuur van de data zelf.
Daarnaast speelt sparse convolutie een rol buiten zelfrijdende auto's, bijvoorbeeld bij het analyseren van 3D-scans in de medische beeldvorming, bij robotica die objecten moet grijpen, en bij het verwerken van data uit deeltjesversnellers in de natuurkunde, waar detectoren ook overwegend "lege" metingen produceren met af en toe een zinvol signaal.
Voorbeelden uit de praktijk
- SparseConvNet (2017-2018): Benjamin Graham en collega's bij Facebook AI Research publiceerden een van de eerste bruikbare implementaties van submanifold sparse convolutie, aanvankelijk getest op handgeschreven tekenherkenning en later op 3D-puntenwolken.
- SECOND (2018): Chinese onderzoekers (Yan, Mao en Li) presenteerden "Sparsely Embedded Convolutional Detection", een van de eerste systemen die sparse convolutie gebruikten om objecten zoals auto's rechtstreeks in LiDAR-puntenwolken te detecteren, met een flinke snelheidswinst ten opzichte van eerdere methodes.
- Minkowski Engine (2019): Christopher Choy en collega's (destijds verbonden aan Stanford en later NVIDIA) ontwikkelden deze opensource-bibliotheek voor sparse convolutie op 4D-data (3D-ruimte plus tijd), gebruikt in onderzoek naar 3D-scene-segmentatie.
- spconv: een veelgebruikte opensource-bibliotheek, ontwikkeld door onderzoeker Yan Yan, die de kern vormt van veel LiDAR-verwerkingspijplijnen in zowel academisch onderzoek als commerciële zelfrijdende systemen.
- TorchSparse (2022-2023): ontwikkeld in het lab van Song Han aan het MIT, een bibliotheek die specifiek is geoptimaliseerd om sparse convolutie sneller te maken op moderne GPU's, met toepassingen in autonome voertuigen en augmented reality.
Hoe ver is de techniek?
Sparse convolutie is inmiddels een volwassen, breed gebruikte techniek binnen 3D deep learning, geen experimentele nieuwigheid meer. Sinds ongeveer 2019 is het de facto standaard geworden voor het verwerken van LiDAR-data in onderzoek naar autonoom rijden en robotica. Vrijwel alle toonaangevende 3D-objectdetectiemodellen die met puntenwolken werken, bouwen voort op een vorm van sparse convolutie.
De belangrijkste ontwikkeling van de afgelopen jaren is niet zozeer het basisconcept, dat sinds 2017-2018 grotendeels vaststaat, maar de optimalisatie van de onderliggende software en hardware. Bibliotheken zoals TorchSparse en nieuwere versies van spconv zijn vooral gericht op het beter benutten van GPU's, met claims van twee- tot viervoudige snelheidswinst ten opzichte van eerdere implementaties.
Een blijvend obstakel is dat sparse convolutie lastiger te implementeren en te optimaliseren is dan gewone, dichte convolutie, omdat de bewerkingen niet in een simpel, regelmatig rooster passen. Dit maakt de software complexer en de hardware-ondersteuning minder uniform: niet elke chipfabrikant biedt even goede versnelling voor sparse bewerkingen als voor dichte. Ook is er geen volledige standaardisatie tussen de verschillende softwarebibliotheken, waardoor onderzoekers regelmatig moeten overstappen tussen tools als spconv, Minkowski Engine of TorchSparse, elk met eigen eigenaardigheden.
Wie werken eraan?
Het onderzoek naar sparse convolutie is sterk verspreid over zowel academische instellingen als techbedrijven. Facebook AI Research (nu Meta AI) speelde een vroege rol via het werk van Benjamin Graham. NVIDIA heeft, mede dankzij de komst van onderzoeker Christopher Choy, sparse-convolutietechnieken geïntegreerd in zijn eigen onderzoekslijnen rond autonome voertuigen en 3D-perceptie.
Het Massachusetts Institute of Technology (MIT), met name het HAN Lab onder leiding van Song Han, is een van de actiefste academische groepen op het gebied van efficiënte sparse-convolutie-implementaties. Daarnaast dragen Chinese onderzoeksgroepen en bedrijven, waaronder de makers van SECOND en spconv, sterk bij aan praktische toepassingen in objectdetectie.
Op toepassingsniveau gebruiken vrijwel alle grote spelers in zelfrijdende technologie, waaronder Waymo, en diverse Chinese en Europese autonome-voertuigbedrijven, vormen van sparse convolutie in hun LiDAR-verwerkingssoftware, al maken de meeste bedrijven niet volledig openbaar welke specifieke implementatie ze gebruiken vanwege concurrentieoverwegingen.