Detectie van Zonnepanelen

GeoAI - Innovatiesprint Klimaatadaptatie

Klimaatadaptatie

De aarde warmt op en het klimaat verandert. Nederland moet zich voorbereiden op de risico's van het veranderende klimaat en hierop de omgeving aanpassen. Dit heet klimaatadaptatie. Voorbeelden van klimaatadaptatie zijn dijken verstevigen, rivieren verbreden en meer groen in steden en dorpen.

Samen met de provincie Overijssel en de gemeente Almelo hebben wij 3 klimaatadaptatie cases gericht op artificial intelligence opgesteld namelijk: Zonnepanelen monitor, groen/grijs analyse en een bomen analyse. De uitkomst van deze projecten kunnen helpen in beleidsbepaling voor klimaatadaptatie op verschillende bestuursniveaus. Deze StoryMap zal gefocust zijn op het detecteren van zonnepanelen.

Wat is GeoAI?

GeoAI

Afbeelding 1 : Overzicht Artificial Intelligence

GeoAI is de combinatie van Artificial Intelligence (AI) en Geo/GIS. AI neemt de laatste jaren een steeds belangrijkere rol in binnen allerlei organisaties. Dit wordt mogelijk gemaakt door recente ontwikkelingen in computerkracht, slimmere algoritmes, goedkopere dataopslag en niet onbelangrijk: het volume en de variatie in beschikbare data. Combineer deze ontwikkelingen met GIS, het beschikbaar maken van informatie op de kaart, en er ontstaat een krachtige combinatie

Machine learning is onderdeel van AI en is een set van data-gedreven algoritmes & technieken om het voorspellen, classificeren en clusteren van data te automatiseren.

Machine learning binnen het Esri-platform is al geruime tijd mogelijk en is nog steeds volop in ontwikkeling. Er zijn 4 typen analyses te onderscheiden:

  • Het classificeren van objecten en pixels
  • Het clusteren van gebeurtenissen
  • Het voorspellen van een onbekende locatie of gebeurtenis
  • Het detecteren van objecten met deep learning

Afbeelding 2: De 4 type analyses

Deep learning is een type machine learning dat werkt op basis van neurale netwerken die werken zoals ons menselijk brein. Dit is met name zeer geschikt om complexe patronen te herkennen in ongestructureerde data zoals spraak, tekst of imagery. Deze vorm van machine learning is het laatste decennium aan een opmars bezig.

Hoe deep learning gebruikt kan worden voor het detecteren van zonnepanelen leg ik hieronder uit. Wilt u meer weten over GeoAI, bezoek dan onze kickstart pagina via onderstaande link.

Case: Zonnepanelen Detectie

Om te zorgen dat Nederland in 2050 een duurzaam energiesysteem heeft, wordt onder andere zonne-energie opgewekt. Het is samen met windenergie de belangrijkste vorm van energie die Nederland wil inzetten om een duurzaam energiesysteem te krijgen. Om op tijd voldoende duurzame energie op te wekken zijn zowel zonnepanelen op daken als op de grond nodig. In de afgelopen jaren is het aantal zonnepanelen op Nederlandse daken flink gegroeid door het verstrekken van subsidies, goedkopere leningen en belastingvoordelen daarnaast worden zonnepanelen steeds goedkoper.

Gemeente in Nederland spelen een belangrijke rol in de energietransitie door het stimuleren van het opwekken van zonne-energie.

De gemeente Almelo wil graag meer inzicht krijgen in de vorderingen met betrekking tot de energie transitie. Zoals gezegd zijn zonnepanelen een belangrijk onderdeel van de energie transitie. Vandaar dat de gemeente de voortgang van de zonnepanelen wil monitoren. Voor het monitoren van de voortgang moet de gemeente eerst in kaart brengen wat de locatie is van de zonnepanelen vanuit luchtfoto's. GeoAI kan deze taak automatiseren, dit vermindert tijd en inspanning voor medewerkers significant.

Objecten detecteren met deep learning

Deep learning kan onder andere gebruikt worden om objecten automatisch te detecteren. De deep learning methodiek is opgebouwd uit zeven stappen die hieronder aan de hand van de zonnepanelen casus uitgelegd zullen worden.

Afbeelding 3: Deep learning methodiek

1. Beeldmateriaal verzamelen

De eerste stap in een deep learning proces is het verzamelen van data. De data moet natuurlijk aansluiten bij de opdracht. Hierbij is het belangrijk om te kijken naar de data kwaliteit. Is de data compleet? Is de data nauwkeurig? In het geval van beeld materiaal kun je bijvoorbeeld kijken naar de rasterinformatie, denk hierbij aan het aantal banden, de cell size en het Pixeltype.

Voor het detecteren van zonnepanelen hebben we hoge kwaliteit luchtfoto's nodig. Hiervoor heb ik data gedownload van het  openbare dataportaal. 

Deze data kun je makkelijk importeren in ArcGIS Pro, en omzetten naar een  mosaic dataset .

2. Trainingsdata prepareren

Als het beeldmateriaal klaarstaat kunnen we trainingsdata aanmaken. Deze trainingsdata wordt later gebruikt om het model te leren hoe je een zonnepaneel herkent (aan de hand van bijvoorbeeld kleuren en vormen). Het aanmaken van labels is mogelijk met de  Label Object for Deep learning  tool in ArcGIS Pro zoals je hiernaast kan zien.

Het aanmaken van trainingsdata kan op twee manieren. Ten eerste door de trainingsdata handmatig in te tekenen. Daarnaast is het ook mogelijk om een bestaande feature layer in te laden.

In deze case bestaat de input van het deep learning model uit images met bijbehorende labels. Deze images kunnen we creëren door onze trainingsdata te exporteren en op te slaan. Het formaat van de images hangt af van het model dat je gaat gebruiken voor het trainen van de data. Hieronder zie je hoe de export er in je bestanden uitziet.

Afbeelding 4: Export trainings data

3. Model trainen

Met de trainingsdata gereed kunnen we het model gaan trainen (leren) hoe je een zonnepaneel herkent. We beginnen met het kiezen van een model type. Dit kun je zien als een standaard model. Een model type heeft als basis een convolutional neural network zoals te zien is in onderstaande afbeelding. Een convolutional neural network bestaat dus uit feature learning (het omzetten van data) en een classificatie. Door extra lagen (bijvoorbeeld extra convolutional+relu lagen) toe te voegen aan het feature learning process krijg je verschillende model types. In ArcGIS Pro kun je uit verschillende  model types  kiezen.

Afbeelding 5: Convolutional neural network (CNN)

Voor het trainen van je model kun je in ArcGIS Pro gebruik maken van de ' Train Deep Learning Model ' tool. Deze tool creëert een deep learning package en een Esri model definition file. Deze bevatten alle model informatie en zijn te gebruiken in ArcGIS Pro en makkelijk deelbaar binnen en buiten je organisatie.

Een deep learning model kan classificeren, detecteren en/of segmenteren. In dit project willen we detecteren (waar ligt de zonnepaneel) en segmenteren (wat is de exacte omtrek van het zonnepaneel). In dit project is gekozen voor het model type MASKRCNN. De kracht van een MASKRCNN model zit in het feit dat het kan detecteren, maar ook de segmentatie kan uitvoeren (afbeelding 6). In ArcGIS Pro zijn verschillende deep learning modellen beschikbaar met als doel object detection, pixel classification of image translation. De keuze voor een model type kan gebaseerd zijn op eerder onderzoek of het testen van verschillende modellen.

Afbeelding 6: Deep learning types

Na het kiezen van een model type is het mogelijk om een aantal hyperparameters die het learning process beïnvloeden in te stellen. Door verschillende parameter settings te testen kunnen we het beste model selecteren. Hyperparameters hebben ook invloed op de duur van het trainen van het model. Naast nauwkeurigheid nemen we vaak tijdsduur ook mee in de evaluatie van een model.

  • Batch size: het aantal objecten dat je tegelijkertijd door het model stuurt, hoe groter het aantal hoe sneller het model leert maar dit kost ook meer rekenkracht.
  • Learning rate: De snelheid dat het model leert. Hoe hoger de learning rate hoe minder details geleerd worden door het model.
  • Pretrained model: is het gebruikmaken van een al bestaand model. Met het trainen ga je dit bestaande model een update geven. Dit noemen we transfer learning. In deze case zouden we transfer learning kunnen toepassen op het  zonnepanelen mode l dat Esri beschikbaar heeft gemaakt in de  Living Atlas .

In de afbeelding rechts zie je boven de ingetekende zonnepanelen en onder de detectie van de zonnepanelen uitgevoerd door het model.

4. Validatie

Model validatie refereert naar het process waar je het getrainde model gaat evalueren door het toe te passen op een test dataset. De Train Deep Model tool maakt zelf al een train en validatie dataset en geeft hiervan de "Average Precision" als score weer. De score kan gebruikt worden om modellen te vergelijken.

Mocht er een "ground truth" (de waarheid/werkelijkheid) aanwezig zijn is het ook mogelijk om je getrainde model hierop toe te passen. Je kunt hierdoor zelf de prestaties van je model berekenen en vergelijken.

Afbeelding 7: True Positives, False Negatives, False Positives en True Negatives

  1. True Positive - Het model voorspelt een boom en dat is correct
  2. False Positive - Het model voorspelt een boom en dat is incorrect
  3. False Negative - The model voorspelt dat er geen boom is, en dat is incorrect
  4. True negative - Het model voorspelt dat er geen boom is, en dat is correct

Door het opstellen van een confusion matrix is het mogelijk om de prestatie van een model te bekijken en de modellen met elkaar te vergelijken. In ArcGIS kun je hier de  Compute Accuracy for Object Detection  tool voor gebruiken als ground truth aanwezig is. Voor de validatie van de getrainde zonnepanelenmodellen heb ik in een klein test gebied in de gemeente Almelo gemaakt waar ik alle zonnepanelen heb ingetekend. Hierdoor kan ik de Compute Accuracy for Object Detection tool gebruiken. Het resultaat is zichtbaar in afbeelding 8.

Afbeelding 8: Model scores

Bovenstaande scores samen met de scores die voort komen uit het trainen van het model helpen bij het bepalen van het meest geschikte model voor het detecteren van zonnepanelen. Uit bovenstaande model scores blijkt dat het model met Batch size 12 en image chip size 300 het beste model is om zonnepanelen te detecteren.

5. Model toepassen

Na de validatie is het mogelijk om het meest geschikte model te selecteren en toe te passen op het gekozen projectgebied. Dit is mogelijk door het gebruik van de ' Detect Objects using Deep Learning tool '. Het resultaat is een feature layer met de detectie van de zonnepanelen.

7. Model uitrollen

Het model is toegepast en het resultaat is opgeslagen in een feature layer. Wat gaat er gebeuren met de resultaten? Hoe deel ik mijn resultaten met mijn collega's? Dit zijn typische vragen die opkomen na het toepassen van het model.

Het ArcGIS platform biedt vele mogelijkheden om van model naar een bruik- en deelbaar product te gaan. Hiernaast zie je een voorbeeld dashboard voor het monitoren van Zonnepanelen. Het is ook mogelijk om je resultaten weer te geven en te delen via de Experience Builder of een Instant App.

Hiernaast heb ik gekozen voor een ArcGIS Dashboard. Ik heb de data verrijkt met open data uit de Living Atlas. De Living Atlas is het open data platform dat ArcGIS gebruikers de mogelijkheid biedt om hun data te verrijken met geverifieerde open datasets. In het geval van de zonnepanelen heb ik de data verrijkt met energielabels en pandinformatie. Klik  hier  voor een full screen versie van het dashboard.

Het dashboard hiernaast geeft nog vele mogelijkheden en kan bij uitbreiding nog meer inzichten geven zoals:

  • Verschillen tussen wijken/ buurten of postcodegebieden
  • Verschillen tussen bouwjaren van panden
  • Verschillen tussen pandtypes
  • Verschillen tussen WOZ-waardes van panden

Bij het uitvoeren van een model op luchtfoto's van verschillende jaren is het mogelijk om de voortgang te monitoren. Zoals je kunt zien ontstaat er waarde door het verrijken van data, het toepassen van analyse mogelijkheden zoals filters, en het visualiseren van de data. Hierdoor haal je het optimale uit het ArcGIS platform.

Extra: Oppervlakte berekening

Vanuit de gemeente Almelo kwam de vraag of het mogelijk is om de totale werkelijke oppervlakte van alle zonnepanelen in de gemeente te berekenen.

Na het runnen van de Detect Objects for Deep Learning tool, hebben we polygonen met oppervlakte. In veel gevallen zijn dit niet de werkelijke oppervlakte aangezien de meeste daken een helling hebben. Om de werkelijke oppervlakte van de zonnepanelen te berekenen heb ik een methode opgesteld.

De methode bestaat uit verschillende stappen. Deze heb ik in een ArcGIS Notebook gezet. ArcGIS Notebooks hebben het voordeel dat het mogelijk is om de stappen te automatiseren en documenteren. Een notebook is makkelijk te delen binnen het ArcGIS Platform en kan daardoor makkelijk processes standariseren.

De eerste stap is de data. Voor het uitvoeren van de methode hebben we twee lagen nodig namelijk: de gedetecteerde zonnepanelen en een digital surface layer (DSM). Een DSM is een hoogte laag.

Voor het berekenen van de oppervlakte gebruiken we de stelling van Pythagoras. Aan de hand van de hoogtelaag kunnen we A, B en C berekenen. Met deze informatie kunnen we uiteindelijk de totale oppervlakte berekenen van de zonnepanelen.

Afbeelding 9: Stelling van Pythagoras

System Requirements

Om het gemaakte model uit te voeren op een eigen studiegebied is het noodzakelijk om te beschikken over de volgende componenten:

  • ArcGIS Pro – ArcGIS Image Analyst extension
  • ArcGIS Enterprise – ArcGIS Image Server with raster analytics configured
  • ArcGIS Online – ArcGIS Image for ArcGIS Online

Om het hierboven beschreven model te ontwikkelen is het noodzakelijk om over de volgende componenten te beschikken:

  • ArcGIS Pro - ArcGIS Image Analyst extension
  • Deep learning libraries for  Deep learning 
  • Hoge resolutie luchtfotos
  • Een degelijke machine met een goede (NVidia) grafische kaart (> 4 GB GPU memory)

Slotwoord

In deze Storymap zien we een voorbeeld van GeoAI die kan helpen bij klimaatadaptatie vraagstukken. Het gemaakte model kan de gemeente Almelo helpen bij het in kaart brengen van zonnepanelen in de gemeente en daarnaast helpen om de ontwikkelingen de komende jaren op de voet volgen door middel van een dashboard. Dit dashboard is makkelijk toegankelijk en deelbaar binnen de organisatie. Het bundelen van de uitkomst van het model met open data uit de ArcGIS Living Atlas zorgt dat het mogelijk om de data te verrijken en uiteindelijk tot meer inzichten te komen.

Ik hoop dat ik door deze StoryMaps de kracht van GeoAI hebben kunnen aantonen en moedigen u aan om met deze kennis op zak zelf aan de slag te gaan om data science-vraagstukken binnen uw organisatie naar het ArcGIS platform te brengen.

Heeft u vragen of opmerkingen dan kunt u natuurlijk contact met ons opnemen via: contact@esri.nl of 010-2170700.

Afbeelding 1 : Overzicht Artificial Intelligence

Afbeelding 2: De 4 type analyses

Afbeelding 3: Deep learning methodiek

Afbeelding 4: Export trainings data

Afbeelding 5: Convolutional neural network (CNN)

Afbeelding 6: Deep learning types

Afbeelding 7: True Positives, False Negatives, False Positives en True Negatives

Afbeelding 8: Model scores

Afbeelding 9: Stelling van Pythagoras