Ga door naar hoofdcontent
ArtikelenData Science met Mobile Mapping

Data Science met Mobile Mapping

Dinsdag 1 september 2020Afbeelding Data Science met Mobile Mapping

Mobile Mapping is het proces van inwinnen van ruimtelijke data door gebruik te maken van een voertuig uitgerust met GPS, fotografie, LIDAR, laser en/of radarsensoren. Mobile Mapping maakt het mogelijk om rijdend in het verkeer de weg en de naaste omgeving in kaart te brengen. Een rit met de auto levert de volgende data op: positie van de auto, 360 graden foto’s en een 3D-puntenwolk.

De Streetmapper (Mobile Mapping systeem van Geomaat, zie figuur 1) is een systeem dat verschillende sensoren bevat: GPS & IMU (Inertial Measurement Unit), fotografie en laserscanner (LIDAR). De IMU bepaalt 250 maal per seconde de positie van de auto (roll, pitch en heading, vergelijkbaar met een gyroscoop in een vliegtuig). Het systeem kan op verschillende soorten voertuigen worden bevestigd.

Figuur 1 – Streetmapper.

Puntenwolk

Een punt in de 3D-puntenwolk wordt berekend door de positie van de auto en de afstand die een laserstraal heeft afgelegd (waar de laserstraal dus wordt weerkaatst) te bepalen. Een punt heeft dus een X, Y, Z-coördinaat en een intensiteit (mate van reflectie van de lichtstraal) als attribuutwaardes. Door verdere ontwikkeling van het systeem is het mogelijk om steeds nauwkeuriger een RGBwaarde aan een punt als attribuut toe te voegen. Zo kunnen ook puntenwolken die kleurwaardes bevatten worden gemaakt. Een rit met het systeem kan een puntenwolk opleveren van miljoenen tot miljarden punten. Met de 3D-puntenwolk en 360 graden foto’s kan de omgeving zeer nauwkeurig in kaart worden gebracht. Uit deze enorme dataset (miljoenen tot miljarden punten), die door één rit met de auto gegenereerd wordt, moet vaak nog bruikbare informatie worden gehaald.

Ontwikkeling van de puntenwolk

Puntenwolken kunnen dus zeer grote bestanden worden. Vijftien jaar geleden hadden computers nog geen grote opslagcapaciteit en konden netwerken deze grote hoeveelheden data niet verwerken. Alleen heel specifieke software kon de grote puntenwolken inladen. Dit is de afgelopen tien jaar sterk veranderd. Een voorbeeld hiervan is de ontwikkeling om zo veel mogelijk bewerkingen aan de puntenwolk te parallelliseren. Door bewerkingen die voorheen serieel werden uitgevoerd, parallel uit te voeren zijn enorme tijdswinsten te halen. Tegenwoordig is de rekenkracht van computers sterk toegenomen waardoor puntenwolken steeds toegankelijker worden. Bovendien is de opslag van grote datasets verbeterd en komen er langzaam meer cloudoplossingen om puntenwolken te bewerken. Het bekijken en muteren van puntenwolken kan met verschillende software worden gedaan. Op dit moment is er een razendsnelle ontwikkeling gaande om snel de benodigde informatie uit puntenwolken te halen.

Feature extractie uit de puntenwolk

De benodigde informatie (features) uit de puntenwolken halen blijkt een lastige taak voor organisaties die deze informatie willen gebruiken. In het verleden was een 3D-puntenwolk vooral een tussenproduct. Features halen uit de puntenwolk was (en is) veelal handmatig en specialistisch werk. Met CAD-programma’s worden 3D-lijnen en/of punten getekend om features in de puntenwolk om te zetten naar vectoren (zie figuur 2). Dat is altijd een kostbaar en tijdrovend proces geweest. Een volgende stap is dan ook het automatiseren van dit werkproces ter ondersteuning van het handmatig uitwerken. En verdere realisatie van kostenbesparing wordt ook gevonden door dit werk uit te besteden naar de lageloonlanden. Of dit een wenselijke ontwikkeling is, laat ik nu in het midden. Verdere automatisering van het extraheren van features lijkt echter een logische volgende stap, mede door de toegenomen rekenkracht van computers.

Automatisering van feature extractie

Sinds 2011 ontwikkelt Geomaat in samenwerking met TNO software die features uit de puntenwolk haalt. De eerste automatiseringsslag vond plaats door de gemakkelijkste en de meeste herkenbare features uit de puntenwolk te halen. Op basis van herhalende patronen gecombineerd met de al aanwezige attributen in de puntenwolk (X, Y, Z en intensiteit) is software ontwikkeld om automatisch features uit de puntenwolk te halen. Eerst is In 2011 is software ontwikkeld dat de extractie van belijning automatiseert. Hierbij wordt gebruik gemaakt van contrastverschillen tussen de wegmarkering en het asfalt (mate van intensiteit van het punt). Vervolgens is in 2013 software ontwikkeld waarmee de geleiderail voor een groot gedeelte automatisch uit de puntenwolken gehaald kan worden. Daarbij is de unieke en constante vorm van de geleiderail gebruikt. In 2016 is op basis van clustering van punten software ontwikkeld om rondvormige objecten te kunnen detecteren. Hierbij moest nog wel handmatig het gevonden object worden voorzien van de juiste code. Helaas bleef door de hoge ‘false positive rate’ van de software nog behoorlijk wat handmatig werk over. 2018 markeert het begin van de ontwikkeling van detectie software om 2D- en 3D-objecten te kunnen extraheren. Op dit moment ligt de focus op automatische extractie van 3D-objecten uit de puntenwolk.

Figuur 2 – Vectoriseren.

De eerste ontwikkeling van Deep Learning

Met Mobile Mapping wordt bijzonder veel digitale data binnengehaald. Het ligt dan ook voor de hand om zelflerende algoritmes te gebruiken bij het verder automatiseren van extracten van features uit puntenwolken. In ons geval zijn we begonnen met de extractie van pijlen op de weg uit de puntenwolk. Dit hebben we gedaan door puntenwolken om te zetten naar 2D-afbeeldingen. Objectdetectie op 2D-afbeeldingen is inmiddels al ver doorontwikkeld en deze kennis is goed te gebruiken om de pijlen te kunnen detecteren.

Figuur 3 – Bounding boxes.

Ervaringen met de ontwikkeling

Figuur 4 – Precision vs Recall.

Om pijlen in de puntenwolk te kunnen detecteren zijn er twee uitdagingen: het vinden van de locatie van de pijl en het juist classificeren van de gevonden pijl (classificatieprobleem). Voorbeelden van Deep Learning-modellen voor objectdetectie zijn vormen van CNN’s (Convolutional Neural Networks), YOLO (You Only Look Once) en SSD (Single Shot Detector). In ons geval is een keuze gemaakt voor het SSD-model. Het voordeel van dit model is dat het gebalanceerd is qua nauwkeurigheid en snelheid. Het SSD-model werkt met zogenaamde bounding boxes (zie figuur 3). De bounding box bevat de locatie en klasse van het gevonden of te vinden object in een afbeelding. Bounding boxes worden gebruikt om het model te trainen, door het model te laten zien welke klasse en daarbij behorend object binnen de box bevindt. Het model gebruikt de bounding box ook om de output te genereren. De positie en klasse van het gevonden object worden door middel van een bounding box en daarbij behorend label als output gegenereerd.

Om het SSD-model te kunnen trainen is data nodig, veel data. Deze data moet worden gesplitst in trainingsdata, om het model te kunnen laten leren en validatiedata, om te kunnen testen hoe goed het model is. Bij het trainen van het model wordt de validatiedata niet gebruikt. Datasets van oude en lopende inwinningsprojecten zijn gebruikt om het model te trainen en werden aangevuld waar nodig. Eén dataset is gebruikt als validatieset. Deze dataset was gekozen, omdat de set zeer divers was (alle klassen die we op dat moment wilden detecteren kwamen daarin voor) en bovendien vrij fors.

Vervolgens is in meerdere iteraties het model ontwikkeld. Het model wordt op een eerste dataset getraind, en gevalideerd met de validatieset. Het beoordelen van het model wordt gedaan met Recall en Precision, door deze per klasse na elke iteratie te plotten kan worden vergeleken of het model beter gaat presteren (zie figuur 4 als voorbeeld). Precision is de verhouding van True Positives (de gevonden pijl is daadwerkelijk een pijl en is correct geclassificeerd) ten opzichte van het totaal aantal gevonden pijlen in een klasse. Recall is de verhouding van True Positives ten opzichte van het totaal aantal aanwezige pijlen in een klasse in de dataset.

Een autorit met het systeem kan een puntenwolk opleveren van miljoenen tot miljarden punten

De rechtdoorpijl bleek het best gevonden te worden (met een Recall van 0.5). De grootste uitdaging bleek de onbalans in de dataset. In de dataset komt de rechtsafpijl vele malen vaker voor dan de linksafpijl. Daarmee wordt het model geleerd om vaker te kiezen voor de rechtsafpijl en heeft het model bij het herkennen van de linksafpijl sneller een hogere confidence threshold (mate van zekerheid voor het systeem) voor de rechtsafpijl.

De volgende stap was meer data toevoegen en het model weer valideren op de validatieset. Uit de validatie bleek dat het model beter ging presteren. Dit was goed nieuws! Volgende stappen waren: steeds meer data toevoegen en het model verder optimaliseren. Bijvoorbeeld door de bounding boxes nog strakker om de pijlen heen te krijgen, zodat er bij het trainen minder ruis binnen de bounding box valt. Andere optimalisatie werd gerealiseerd door klassen (5 en 7,5 meter pijlen) zoveel mogelijk samen te voegen en na detectie afhankelijk van lengte uit elkaar te halen. Het model bleek voornamelijk halve pijlen lastig te kunnen classificeren. Uiteindelijk bleek het model succesvol de pijlen te kunnen vinden. Voor ons is het nu zaak om dit model waar mogelijk uit te breiden en nog meer data toe te voegen om met het model uiteindelijk de pijlen optimaal te kunnen vinden. De kennis die we hierbij hebben opgedaan, gebruiken wij om detectiesoftware te ontwikkelen welke ook 3D-objecten uit de puntenwolk kan extraheren. Hier komt de derde dimensie om de hoek kijken waardoor dit een complexer vraagstuk is.

Waar naar toe?

Het gebruik van Data Science & AI technieken binnen de geo-informatie is volop in ontwikkeling. Er is gepoogd om je mee te nemen in de ontwikkeling van het herkennen van relatief eenvoudige objecten in een puntenwolk. Om de razendsnelle ontwikkelingen van zelflerende algoritmes bij te kunnen houden en te kunnen gebruiken, is kennis nodig. Kennis binnen organisaties neemt toe en daarmee zullen nieuwe manieren worden ontwikkeld om de puntenwolken te kunnen gebruiken. Denk hierbij aan mutatiesignalering, snellere en nauwkeurigere manieren om features uit de puntenwolken te halen/ identificeren. De toepassingen van hoogwaardige puntenwolken nemen toe. Innovatie in andere sectoren kunnen ook innovaties in de geo-informatiesector vooruitduwen. Het is dus belangrijk om een brede blik te houden en waar mogelijk het blikveld ook buiten de eigen sector te richten. Uiteindelijk gaan ontwikkelingen niet zonder slag of stoot, hiervoor is veel doorzettingsvermogen, investering (in kennis en data) en/of samenwerking nodig.