Ga door naar hoofdcontent
ArtikelenDeep Learning op Geo-Informatie bij Defensie en het Kadaster

Deep Learning op Geo-Informatie bij Defensie en het Kadaster

Woensdag 1 april 2020Afbeelding Deep Learning op Geo-Informatie bij Defensie en het Kadaster

Om wereldwijd topografische data beschikbaar te hebben wordt er voor Defensie handmatig vectordata ingewonnen op basis van satellietbeelden. Dit is een tijdrovend proces en kan er toe leiden dat Defensie niet altijd de meest recente situatie op de kaart heeft staan – met alle gevolgen van dien. Kan die inwinning sneller door inzet van automatisering? De auteur heeft als GIMA-stagiair een Deep Learning model getraind om bruggen te herkennen in Wit-Rusland. Het blijkt mogelijk om automatisch de helft van de bruggen met een precisie van 96% te detecteren.

Binnen de Nederlandse defensieorganisatie is de Dienst Geografie verantwoordelijk voor het verwerven, verwerken, en verspreiden van geografische informatie. Nederland neemt binnen deze context deel aan het Multinational Geospatial Co-production Programme (MGCP), waarbij 32 landen wereldwijd vectordata inwinnen per cel van 1 breedtegraad bij 1 lengtegraad, grofweg 100 bij 100 kilometer, en deze informatie met elkaar delen. De Nederlandse deelname wordt verzorgd door een team van ongeveer 40 cartografen bij het Kadaster. De vraag rees: kan Machine Learning dit proces sneller, goedkoper en/of nauwkeuriger maken?

Drie soorten DL

Grofweg kan je de onderzoeken indelen naar hun type uitkomst (zie ook fig.1):

  • Bij chip classification geef je een enkele voorspelling per chip. Een chip is een beelddeel van bijvoorbeeld 256 bij 256 pixels. Dit kan een voorspelling van het aantal auto’s zijn, maar ook een binaire voorspelling is mogelijk;
  • Bij semantic segmentation geef je een voorspelling per pixel. Ofwel, behoort deze pixel tot de klasse ‘auto’ of tot de klasse ‘huis’;
  • Bij object detection geef je een voorspelling per object, hoeveel dat er dan ook zijn. Hierbij moet je zowel het type als de locatie voorspellen.

Object detection en semantic segmentation zijn preciezer qua ruimtelijke resolutie dan chip classification. Waarom zou je informatie over een hele chip willen hebben als je deze informatie ook per pixel kan hebben? Daarnaast zijn er nog taken zoals denoising, image matching, of regressie, maar deze worden minder vaak toegepast.

Wat is Machine Learning?

De termen ‘Artificial Intelligence’ (AI), ‘Machine Learning’ (ML) en ‘Deep Learning’ (DL) worden vaak verward dan wel misbruikt. Wat hebben ze met elkaar te maken? AI staat voor Artificial Intelligence, of kunstmatige intelligentie. Je zou kunnen zeggen dat iedere vorm van niet-biologische intelligentie een vorm van kunstmatige intelligentie is. Met andere woorden, een lichtknop, een rekenmachine en een automatische draaideur zijn allemaal vormen van kunstmatige intelligentie. Binnen AI heb je een subgroep: Machine Learning. Dit betekent dat je de intelligentie verkrijgt door de machine te laten leren. Toon je een model voorbeelden, dan kan hij op basis daarvan, bij een nieuw voorbeeld een voorspelling proberen te geven. En als laatste Deep Learning. Dit is een specifieke groep modellen binnen ML. Dit type modellen staat ook wel bekend als neurale netwerken en is losjes gebaseerd op het principe van biologische neuronen en verbindingen hiertussen.

 

In mijn stageverslag is hoofdstuk 2 geschreven voor lezers die beperkte achtergrond in DL hebben, maar wel graag meer zouden willen weten. Het verslag is te downloaden via mijn LinkedIn profiel:

 

nl.linkedin.com/in/laurens-bakker-9bb2a2b2

Snelste insteek

Welke soort kies je? Allereerst hoeft de trainingsdata die nodig is voor chip classification een minder hoge ruimtelijke resolutie te hebben. Je wilt namelijk enkel per chip weten of er wel of geen brug aanwezig is. Waar in de chip de brug precies ligt is niet relevant. Voor de andere twee methoden moet je tot op het niveau van individuele pixels trainingsdata hebben. Deze data is vaak niet beschikbaar en het is maar de vraag of je voor het uiteindelijke doel überhaupt een voorspelling per pixel nodig hebt. Ook is het vaak met object detectie en semantische segmentatie alsnog nodig om de data na te bewerken als de resultaten niet perfect zijn (en dat zijn ze vaak niet). Dus als je toch nog moet nabewerken is chip classification een snellere en makkelijkere optie.

Figuur 1 – Drie technische categorieën. (Bron: Raster Vision met toestemming).

Gebruikt gereedschap

Om het wiel niet opnieuw te hoeven uitvinden is tijdens deze stage gebruik gemaakt van Raster Vision, een open-source framework voor Deep Learning voor de geo-wereld. En zoals ik zelf heb geleerd tijdens dit project, het snappen en kunnen toepassen van Deep Learning in Python is compleet iets anders dan het snappen en kunnen schrijven van software. Raster Vision is goede software. Daarom ben ik er voorstander van dat we met z’n allen onze Deep Learning projecten in Raster Vision gaan doen, en eventuele innovaties bijdragen. Uiteraard hoef je de data niet te delen.

Datavereisten

Nodig zijn: veel data, veel rekenkracht en veel tijd. Voor dit onderzoek is een dataset beschikbaar gesteld met een resolutie van 30 centimeter van de WorldView-3 sensor van het gebied net ten zuiden van Minsk in Wit-Rusland. Het gebied is opgeknipt in tegels van 256×256 pixels (Raster Vision functionaliteit). Van dit gebied is 80% gebruikt om het model te trainen, 20% om het getrainde model te valideren. De gebieden zijn willekeurig gekozen. Data van waar de bruggen lagen was afkomstig van MGCP. Door het Kadaster was een cloud computer, ook wel ‘de heavy machine’ genoemd, beschikbaar gesteld met vier GPU’s. Voor het onderzoek had ik zes maanden de tijd.

Hoe is het model getraind?

Tijdens het trainen leert het model of er wel of niet een brug aanwezig is binnen de gegeven chip. In totaal is er 240 uur getraind op zo’n anderhalf miljoen chips. Omdat op relatief weinig chips een brug te zien is, heeft het model tijdens het trainen willekeurig even vaak chips met een brug als zonder brug te zien gekregen. Anders krijg je een ‘lui’ model dat simpelweg altijd ‘hier is geen brug te zien’ voorspelt. Op 99% van de chips zou deze voorspelling dan nog kloppen ook.

Resultaten

Waar liggen de verwachtingen op het gebied van Deep Learning? Binnen het MGCP gaan ze voor 100%. Een computer haalt dat nog niet. De mate van succes wordt uitgedrukt in ‘precision’ en ‘recall’. Samengevat was de uitkomst:

  • Precision: 96%, ofwel bijna alle chips waarop een brug werd voorspeld bevat daadwerkelijk een brug(deel);
  • Recall (op basis van oppervlakte): 66% van de totale brugoppervlakte in het gebied is gevonden;
  • Recall (op basis van het aantal bruggen): 51% van de bruggen is gedeeltelijk of geheel gevonden;
  • Recall (op basis van het aantal chips): 32% van de chips die een brugdeel toonde is daadwerkelijk gedetecteerd.

Opvallend was dat het model voornamelijk bruggen en brugdelen kleiner dan 100m2 miste. Oftewel, als de brug minder dan 1,3% van het oppervlakte van een enkele chip bedekte werd de kans klein dat dit brugdeel gedetecteerd werd, zie ook figuur 2. Met deze cijfers kan nog geen productieproces gedraaid worden. Wel is het zo dat het trainingsproces relatief simpel is geweest. Waarschijnlijk zou het aanbieden van gespiegelde afbeeldingen tijdens het trainingsproces de resultaten al verbeteren.

Beter dan de mens?

Het is opvallend dat er bruggen gedetecteerd zijn door het model die de menselijke kartografen niet hadden ingewonnen (dit kan een bewuste keuze zijn geweest van de kartograaf omdat er ingewonnen wordt op een schaal van 1:50.000). Zo tonen figuren 3a en 3b chips (in rood) die geclassificeerd zijn door het model als ‘bevat een brug’, daar waar in de MGCP-data geen brug was ingetekend. Het is dus niet ondenkbaar dat deze techniek uiteindelijk beter wordt in het detecteren van objecten. Googles fotoclassificatiesysteem is al beter dan de gemiddelde mens.

Objecten die meer pixels beslaan worden het vaakst herkend

Hoe wordt een brug herkend?

Door het maken van een saliency map kun je zien welke pixels in een chip het meeste bijdragen aan een bepaalde voorspelling. Een belangrijke feature die het model herkent als goede indicator voor de aanwezigheid van een brug is de brugsteun. De figuren 4a en 4b geven de originele beelden (links) en de saliency map (rechts) weer. Hoe roder een pixel, hoe groter de bijdrage aan de voorspelling dat er een brug te zien is.

Figuur 2 – Histogram: het aantal gevonden segmenten vs. hun oppervlakte.
Figuur 3a – Wel door model gedetecteerde brug die niet in de brondata aanwezig is. (Bron: auteur)
Figuur 3b – Wel door model gedetecteerde brug die niet in de brondata aanwezig is. (Bron: auteur)

Wat detecteert het model?

Een Deep Learning model werkt door het ‘onthouden’ van features. Aan de voorkant van het neurale netwerk staan simpele features zoals lijnen tussen licht en donker opgeslagen. Verderop in het netwerk staan complexere features opgeslagen, zoals vangrails of brugsteunen. Het is de combinatie van deze complexere features die uiteindelijk zorgt voor de voorspelling. Tijdens het onderzoek is een korte zijsprong gemaakt om de locatie van opslagtanks in Nederland te voorspellen. In de trainingsdata waren voornamelijk tanks opgenomen die naast kassen stonden. Het uiteindelijke model classificeerde dan ook geen tanks, maar kassen. En ondanks dat kassen in de trainingsdata een goede proxy zijn voor tanks, is dit uiteindelijk niet het gedrag dat gewenst is van zo een model. Dit fenomeen kan je ook colocatie noemen.

Conclusies van het onderzoek

• chip classification is een geschikte methode als je trainingsdata met een minder exacte ruimtelijke resolutie tot je beschikking hebt;
• colocatie kan de prestaties van het model verminderen;
• Raster Vision is een open-source framework voor deep learning in het geo-veld.

Aandachtspunt: rotatie-invariantie

Deep Learning wordt veel en al langer, toegepast voor computervision. Dit gaat dan vaak om het herkennen van objecten als honden en katten. Dit is wezenlijk anders dan het toepassen in het geo-domein. Veel computervision concepten zijn al terug te vinden in standaard programmeertalen zoals Python.

Figuur 4a – Een duidelijke brugsteun. (Bron: auteur)
Figuur 4b – Bijbehorende saliency map. (Bron: auteur)

Omdat het toepassen van computervision op ruimtelijke informatie nog nieuwer is zie je dat veel wetenschappelijke ideeën uit dat veld nog niet terug te vinden zijn in standaard software zoals Python. Hier en daar zijn er wel implementaties op het net te vinden, maar het maken van een écht goed model is nog lastig. Zo zijn objecten op satellietbeelden rotatie-invariant, ofwel, een auto is een auto onafhankelijk van of die met zijn neus naar het Noorden of het Zuiden staat. De meeste objecten in de klassieke computervision hebben wel een onder en boven. Daarom kunnen modellen vanuit de computervision niet goed omgaan met rotatie-invariantie. Het is een kwestie van tijd en zelf bouwen om dit soort problemen op te lossen.

Een compleet object wordt vaker herkend dan een deel ervan

Stage bij Defensie

Ik vond het een gave stage. Wel heb ik in praktijk 99% van mijn tijd bij het Kadaster doorgebracht. Het Geo-Expertise Centrum van het Kadaster houdt zich onder meer bezig met objectherkenning door middel van Deep Learning. Dit team was ook bezig om Deep Learning in te zetten voor MGCP, maar dan via de segmentatie-techniek. Tegelijkertijd lag er de vraag om met een object gebaseerde techniek aan de slag te gaan. Daarom ben ik via Defensie aangesloten geweest bij dit team.

Ethisch kompas

Als je gelooft dat de Nederlandse Defensie in de regel goed is, dan is het ook goed om datzelfde leger te voorzien van goede kaarten. Wel moet je opletten dat het opgeleverde model niet discrimineert. Iedere brug is immers even gelijk. Omdat de trainingsdata door MGCP zelf geleverd is, zal het model hetzelfde ethische kompas hebben als de cartografen van MGCP die de data hebben gemaakt. Dus dat zit wel goed.

Referentie