BGT & Kunstmatige Intelligentie
Een geweldige combinatie
Elke dag staat er wel een artikel in de krant over een toepassing met Kunstmatige Intelligentie. Uiteraard ook over de gevaren van het gebruik van AI. En dat het banen gaat kosten. Of opleveren…
Persoonlijk ben ik niet zo van de hype. Maar wel nieuwsgierig en onderzoekend aangelegd. Ik constateerde dat bomen in de BGT voornamelijk bomen zijn die in eigen beheer zijn van de bronhouder. Dat komt niet altijd overeen met de definitie van een boom zoals IMGeo dat heeft vastgesteld. Om dus maar ergens te beginnen met een AI-experiment heb ik de proef op de som genomen met het detecteren van boomkruinen. Eens kijken of dit toepasbaar is voor beheerders van de Basisregistratie Grootschalige Topografie.
ESRI: pretrained Tree Detection Algorithm
Wie met GIS-software werkt, kan eigenlijk niet om marktleider ESRI heen. ESRI heeft een aantal fantastische pretrained DeepLearning-pakketten online staan. Waaronder de Tree Detection algorithm. Met een aantal muisklikken kan menigeen al snel leuke resultaten boeken. Zo kreeg ik in een gebied van 5×6 kilometer al in drie kwartier ruim 54.000 ‘boom-objecten’ geretourneerd. Gewoon op mijn gaming-laptop. Bij de documentatie staat wel duidelijk dat de precisionscore geschat wordt op 0.66 en de recall op 0.79. Als leek heb ik alleen geen idee wat dat betekende dus ik ging gewoon aande slag. Toch was ik dus niet zo tevreden over het resultaat. Blijkbaar is 0.66 en 0.79 niet ‘goed genoeg’. In GIS termen: ‘fit for purpose’ of ‘fit for use’. Hoe kan dit beter?
Hiernaast het resultaat van het ESRI Tree Detection algoritme in een gebied van 5×6 kilomter in de omgeving Doetinchem. De 51.496 objecten die zijn gedetecteerd, bevat volgens de documentatie, 2/3 True-Positive, dat is naar schatting 33.987 objecten. 1/3 is False-positive. Dat is naar schatting 16.994.
De recall score is 0.79. Dat geeft aan dat 79% van alle relevante objecten (bomen) gedetecteerd worden door het algoritme. 21% is gemist (false-negatives).
Aan de hand van het aantal geretourneerde objecten (51.496) waarvan naar schatting 2/3 True-positive is (33.987) is te berekenen dat er, met een recall-score van 0.79, naar schatting 43.022 bomen in het gebied zullen zijn.
Relevant Elements = True-positives / Recall
43.022 = 33.987 / 0.79
Kruin-Bruin Classifier
Door het probleem plat te slaan kwam het erop neer dat er naar mijn smaak teveel ‘False-positives’ in het resultaat van het ESRI-algortime zitten. Ruim 51.000 objecten in drie kwartier is natuurlijk fantastisch. Maar als de documentatie aangeeft dat daarvan 2/3 ’true-positive’ is; dan is 1/3 ‘geen-boom’ dat wel in de populatie geretourneerde objecten zit verstopt. Ik ging de uitdaging aan om een manier te vinden om de True-positives van de False-positives te onderscheiden. De ‘Kruin-Bruin Classifier’ is daarvan het resultaat. Kruin staat voor de true-positive Boomkruin. Bruin voor de false-positive niet-bomen. Denk aan verdroogde, bruine, plekken in grasvelden die als boomkruin werden aangezien.
Een ‘classifier’ is de term voor een algoritme dat voorspelt binnen welke categorie (klasse) een object hoort op basis van bepaalde kenmerken. Denk aan een spam-filter dat binnenkomende e-mails classificeert als ‘spam’ en naar de ongewenste e-mail verwijst, of ‘ham’ dat normale e-mails gewoon doorlaat naar de inbox-in. Of een algoritme dat op plaatjes ‘honden’ herkent. Hoe het algoritme dat exact doet, is niet altijd bekend. Maar dat werkt is evident. En nu werkt het dus ook voor ‘boomkruinen’.
RandomForest Classifier
Er zijn vele keuzes te maken bij het maken van een AI-algoritme. Te beginnen met het algoritme-model. Door voor- en nadelen tegen elkaar af te wegen van verschillende soorten Estimator’s ben ik gekomen tot een RandomForest Classifier. Lees hier een artikel voor een beetje achtergrondinformatie om niet te verdwalen in een Random Forest. De RandomForest is een variant op de ‘decision tree’ of ‘beslisboom’. Een beslisboom geeft behoorlijk regide in de uitkomst. Bij de eerste keuze, valt de helft van de boom al af. Bij een ‘random forest’ wordt de beslisboom op talloze manieren opgetuigd. Denk aan honderd varianten. Via één beslisboom kan een object als ‘True-positive’ worden voorspeld terwijl het via een andere beslisboom, met andere criteria, een ‘false-positive’ als uitkomst krijgt. Een meerderheid van uitkomsten (stemmen) geven de uiteindelijke voorspelling: boom of geen-boom.
Trainingsdata & Aanvullende Attributen
Om een algoritme te kunnen maken moeten er allereerst aanvullende attributen worden toegevoegd aan de door het ESRI algoritme geretourneerde boom-objecten.
Mijn idee ging uit naar een drietal opendata bronnen:
- Algemene Hoogtekaart Nederland
- BAG Pandgeometrie
- BAG Pandstatus
Bij elk geretourneerd object geeft het ESRI-algoritme de ‘confidence score’ mee en het ‘boundingbox oppervlak’ is te berekenen. Zo komt het totaal uit op vijf attributen waarop de geretourneerde objecten onderscheiden kunnen worden op ‘True-positive [kruin]’ of ‘False-positive [bruin]’.
GroundTruthning
Na het bepalen van het type algoritme is de tweede stap in het maken van een AI het voeren van voorbeelden. Dit geschiedt door het genereren van trainingsdata. In GIS heet dit ‘groundtruthning’. Van 104 objecten is handmatig, visueel, vastgesteld of het een ‘kruin’ of ‘bruin’ object is. Een beetje monnikenwerk, maar moet nu eenmaal nauwkeurig en zorgvuldig gebeuren. De objecten zijn random geselecteerd waarbij wel rekening is gehouden met de vijf attributen (kenmerken). Bias is een grote valkuil bij het trainen van AI algoritmen. Als in de trainingsdata een bepaald kenmerk is over- of ondervertegenwoordigd, dan zal dat terugkomen in de resultaten. Daarom is het belangrijk dat alle kenmerken gevarieerd aan bod komen. Zo wordt een bias in het algoritme voorkomen.
Resultaten Doetinchem
Zoals aangegeven is een gebied van 5×6 kilometer gebruikt als projectgebied. Om precies te zijn: kaartblad 40FZ2. ESRI retourneerde 51.496 objecten.
Daarvan kregen 45.357 objecten de voorspelling ‘True-positive’ op basis van mijn aanvullende KBC en 6.139 objecten kregen de voorspelling ‘False-positive’.
Deze resultaten zijn steekproefsgewijs gecontroleerd. De steekproef bestond uit 1.953 objecten.
- 1.711 bomen hebben de correcte True-positive voorspelling gekregen en hebben het Esri-algoritme bevestigd.
- 210 niet-Bomen zijn correct als True-negative geclassificeerd. Het KBC heeft hierbij het Esri-algoritme succesvol overruled.
- 21 bomen hebben de voorspelling ‘geen-boom’ gekregen, terwijl het toch een boom bleek te zijn (false-negative).
- 11 bomen hebben de voorspelling ‘boom’, terwijl het géén boom bleek te zijn (false-positive).
Hiernaast de resultaten van de Kruin-Bruin Classifier visueel weergegeven op basis van een steekproef van 1.953 objecten.
Meer lezen?
Geïnteresseerd in een demo?
Herkent u zich in het bovenstaande? Ik sta te trappelen om ook andere gebieden onder de loep te nemen en ben razend benieuwd of het KBC ook in andere regio’s stand houdt. Bent u geïnteresseerd in wat AI nu precies is en kan betekenen in uw situatie? Dan kunnen we elkaar wellicht helpen en met behulp van dit bomendetectie voorbeeld zien wat AI kan betekenen in uw situatie.
Bezit u al een bomenregistratiebestand en bent u benieuwd in welke mate deze Actueel, Betrouwbaar of Compleet is? Ook dan kan ik aan de hand van de KBC helpen inzicht te geven in de datakwaliteit van dat bestand door de resultaten uit het KBC te vergelijken met uw bomenregistratie.
Wilt u beginnen met het opzetten van een bomenregistratiebestand? Laat mij u dan helpen en begeleiden met het initiëren van het basisbestand op basis van AI. U hoeft dan alleen nog de puntjes op de i te zetten.
Neem vrijblijvend contact op via KBC@Vergismatrix.nl en we kijken samen naar de wensen en mogelijkheden.
