Ga naar inhoud
AI Segmentation
QGIS
Tutorial

Gebouwcontouren detecteren in QGIS: 3 methoden

Gepubliceerd op Bijgewerkt op

Om gebouwcontouren te detecteren in QGIS heb je drie routes: download een open dataset, draai een AI-detectie-plugin over je eigen beelden, of digitaliseer met de hand. De snelle is de tweede. Installeer de plugin via Plug-ins > Plug-ins beheren en installeren..., laad je beelden, teken een zone, typ buildings, klik op Objecten detecteren en een polygoonlaag belandt in je project-CRS.

Filteren is de tweede helft van het werk. Een groot deel van wat terugkomt is geen gebouw, dus snoei de ruwe uitvoer op betrouwbaarheid en oppervlakte. Ik liet één detectie lopen over het centrum van Parijs, kreeg 635 polygonen, en beslissen welke 82 ik zou houden kostte meer tijd dan de detectie zelf.

0:00 / 0:00
Eén zone, één woord, 848 gebouwen. Echte uitvoering, 3x versneld, niets weggeknipt.
Je inputMethodeTijd
Een gebied dat OpenStreetMap, Microsoft of Google al dekkenMethode 1: download open contourenMinuten
Honderden tot duizenden gebouwen, op exact de beelden die je kreegMethode 2: automatische detectie (de onze, cloud)848 gebouwen in 57 seconden, daarna het filteren
Minder dan vijftig gebouwen, of een historisch centrum waar je één polygoon per adres nodig hebtMethode 3: digitaliseer met de handZo lang als jij erover doet

Altijd eerst open data. Je gaat pas verder als de dekking gaten heeft, de ouderdom niet klopt, of de contouren exact op de specifieke orthofoto van een klant moeten passen.

Methode 1: Download open contouren

Je hebt QGIS 3.22 of nieuwer nodig, één beeldlaag die je vertrouwt, en een internetverbinding voor methode 2. Geen aparte grafische kaart, bij geen van de drie.

Voor veel klussen hoef je niets te detecteren. Drie open datasets dekken samen het grootste deel van de wereld, en over één wijk kunnen ze duizenden gebouwen van elkaar verschillen.

Kies de dataset voor jouw gebied

OpenStreetMap is uitstekend waar mappers actief zijn, en gebouwen hebben attributen. Microsoft Global ML Building Footprints bevat meer dan een miljard machinaal gewonnen gebouwen en is het sterkst in Noord-Amerika. Google Open Buildings dekt het mondiale zuiden, waar OSM het dunst is. Wil je zien wat elk van de drie voor jouw gebied bevat voordat je iets laadt, teken dan een vak in onze gratis downloader voor gebouwcontouren en download de dataset die je wilt als GeoJSON.

Laad er een naast je beelden

Haal OSM binnen met QuickOSM.

Zoom in en bekijk de randen

Die ene blik beslist of je hier stopt of verder leest.

Drie afbeeldingen naast elkaar van dezelfde dichtbebouwde wijk in Luanda op Google Satellite-beelden, met gebouwcontouren in groen. OpenStreetMap toont er geen, Microsoft dekt de meeste, Google Open Buildings bijna alle.
Dezelfde 1 km² van Luanda, op Google Satellite-beelden. OpenStreetMap kent hier geen gebouwen, Microsoft bevat er 3.140, Google Open Buildings 4.468. Eén wijk, geen ranglijst: controleer wat elke dataset voor jouw eigen gebied bevat.

Gebruik het wanneer: het gebied al goed in kaart is en je kunt leven met de ouderdom en licentie van de dataset.

Sla het over wanneer: de dekking gaten heeft, de ouderdom niet klopt, of de contouren exact op één specifieke orthofoto moeten liggen.

Methode 2: Automatische detectie

Een gebouwcontour is de omtrek van een gebouw waar het de grond raakt, als een vlakke polygoon. Niet het dak, niet het perceel, niet het adrespunt. Dat is hier belangrijk, want verticale beelden geven je het dak: bij een Haussmann-blok van vijf verdiepingen bijna in nadir is de verschuiving klein, bij een toren niet. Goed om te weten voor je iemand een contourlaag belooft, en er is een langere versie in wat een gebouwcontour is.

Een automatisch detectiemodel leest je beelden en geeft gebouwomtrekken terug als polygonen, elk met een betrouwbaarheidsscore. Wij bouwen er zo een, AI Segmentation. Dit deel gaat over onze eigen tool.

Het installeert via Plug-ins beheren en installeren... zoals elke plugin: geen handmatige download, geen Python-omgeving, geen aparte grafische kaart, omdat het model op onze servers draait. Windows, macOS en Linux.

Dichtbebouwde Parijse bouwblokken voor en na automatische gebouwdetectie (after)
Dichtbebouwde Parijse bouwblokken voor en na automatische gebouwdetectie (before)
BeeldenGedetecteerd
Sleep om te vergelijken
Eén automatische detectie over het centrum van Parijs, op Google Satellite-beelden. Elke polygoon krijgt een eigen kleur zodat buren gescheiden blijven. Sleep de greep om te vergelijken.

Installeer de plugin en kies je beeldlaag

Open Plug-ins > Plug-ins beheren en installeren..., installeer de plugin, open het paneel en kies het raster dat je wilt laten lezen.

Het paneel van AI Segmentation in QGIS met de schakelaar tussen Semi-Auto en Automatisch
Automatische modus: kies de beeldlaag, teken een zone, benoem het object.

Teken een zone en benoem het object

Teken een zone, typ buildings, klik op Objecten detecteren. Dat is de hele prompt, in je eigen taal als je wilt. Resultaten stromen tegel voor tegel binnen als één polygoonlaag in het project-CRS.

Stel de precisie in als de objecten klein zijn

De ene instelling die je moet leren is Precisie, oftewel de tegelgrootte. Kleine tegels laten het model van dichtbij kijken, wat kleine objecten nodig hebben. Grote tegels geven het context, wat een landbouwperceel nodig heeft.

Filter wat terugkwam

Het paneel leidt je door drie stappen voordat iets een laag wordt: filter wat je wilt Behouden, Corrigeren wat het model miste, en kies de Vormen voor de uitvoer. De eerste is waar het werk wordt gewonnen, en die krijgt hieronder een eigen deel.

Maak de geometrie schoon

Vereenvoudigen, Orthogonalize en Gaten verwijderen, in die volgorde, en alleen waar elk zijn plek verdient. De drie tools en de reden voor de volgorde staan hieronder.

Een uitvoering telt de grond die ze dekt. Elk account krijgt elke maand een gratis hoeveelheid, zonder creditcard, en Pro verhoogt die. Detectie draait op Europese servers, wij trainen niet op jouw beelden, en er is een klein lokaal model als er niets je machine mag verlaten. De complete gids behandelt Behouden, Corrigeren en Vormen volledig.

Filteren is het hele werk

Ruwe detectieresultaten zijn een set kandidaatpolygonen met betrouwbaarheidsscores. Op dichte beelden zijn de meeste klein en onzeker. Ik exporteerde deze detectie over Parijs met beide filters wijd open, zodat elke kandidaat in de laag belandde: 635 polygonen over 1,18 km².

1 m²101001 00010 000 m²50 m²
Alle 635 detecties, ingedeeld naar oppervlakte op een logaritmische schaal. Twee pieken: ruis onder 5 m² en echte gebouwen boven 160 m². De lijn van 50 m² valt in het dal ertussen, daarom is het geen willekeurig getal. Mediaan 3,2 m², grootste 13.528 m², mediane betrouwbaarheid 0,26.

De helft van wat terugkwam is kleiner dan een parkeerplek: ventilatie, dakramen, trappenhuizen, schuurtjes op binnenplaatsen. Echte dingen op de beelden, correct omlijnd, en niet wat iemand met een gebouwcontour bedoelt.

Dus filter. Verschuif de twee schuifregelaars in het paneel, of doe hetzelfde werk vanuit de attribuuttabel met Selecteren met expressie:

"area_m2" >= 50 AND "score" >= 0.5

Dat laat 82 polygonen over van de 635, met 222.338 m² van de 263.658 m² totaal. Neem mijn drempels niet zomaar over, maar beweeg ze zelf. Groen overleeft je filter, wit niet.

Luchtbeelden van dichtbebouwde Parijse bouwblokken met gedetecteerde gebouwpolygonen erover

82 / 635polygonen behouden (13%)

84%van de bebouwde oppervlakte (222,338 m²)

Dezelfde 635 detecties als in de attribuuttabel. Zet de betrouwbaarheid op nul en de schuurtjes op binnenplaatsen en de dakramen komen terug.

Let op het tweede getal terwijl je het eerste sleept. 87% van de polygonen weggooien kost 16% van de oppervlakte, en de rest is ruis die je anders met de hand had gewist, één voor één, terwijl je je afvroeg of de tool wel goed was.

Stem beide af op de klus. Een inventarisatie van industrieschuren kan de oppervlaktevloer naar 200 m² duwen. Bij informele bebouwing gooit 50 m² echte huizen weg, dus zak naar 15 en leun in plaats daarvan op de confidence score.

Hoe een schoon resultaat eruitziet

Parijs is een lastig geval. Dezelfde tool op vrijstaande woningen zo'n 10 km westelijker:

Vrijstaande en twee-onder-een-kapwoningen in een Parijse voorstad, elk huis gevuld met een eigen kleur
Vrijstaande bebouwing, filter toegepast. Eén polygoon per huis, bijna niets om weg te gooien.

85m²

mediane oppervlakte van de polygonen

Parijs: 3,2 m²

0.79

mediane betrouwbaarheid

Parijs: 0,26

251polygonen

behouden, van 251 teruggegeven

Parijs: 82 van 635

Dezelfde tool, dezelfde stad, niets weg te gooien. Wat veranderde is het bebouwde weefsel, niet het model.

Waar het breekt: dichte aaneengesloten blokken

Detailbeeld van Haussmann-blokken, elk blok één gekleurde polygoon die de straatrand volgt met uitgesneden binnenplaatsen
De omtrek volgt de straatrand precies en snijdt de binnenplaatsen uit. Wat hij niet doet is het blok opsplitsen in afzonderlijke gebouwen met een eigen adres.

Elke polygoon volgt de bebouwde envelop van een heel blok, strak langs de straatlijn en met correct uitgesneden binnenplaatsen. Goed voor bebouwd gebied of verhard oppervlak, fout als je een polygoon per adres nodig hebt. Geen enkel model dat een verticaal beeld leest kan de scheidsmuur tussen twee aangebouwde gebouwen vinden, want van boven is daar niets te zien.

De geometrie opschonen

Drie native QGIS-tools maken een contourlaag netjes, en de volgorde is belangrijk omdat Vereenvoudigen de hoekpunten verplaatst die je net haaks hebt gezet.

  1. Vereenvoudigen, 0,5 m tolerantie over luchtbeelden. Snijdt hard in het aantal hoekpunten zonder de grens ergens zichtbaar te verplaatsen.
  2. Orthogonalize. Trekt bijna-haakse hoeken haaks. Pak het bij open data of handmatig getekend werk, waar nog niets ze haaks heeft gezet.
  3. Gaten verwijderen, alleen als je massieve contouren wilt. Niet op het Parijs-resultaat: die gaten zijn binnenplaatsen en ze kloppen.

Op een gedetecteerde laag doet stap 2 bijna niets. Ik heb dat gemeten in plaats van aangenomen, door Orthogonalize te draaien over 190 gedetecteerde gebouwen en alle 1.845 hoeken voor en na te vergelijken.

87.9%

hoeken al binnen 1° van haaks

voordat je iets uitvoert

87.9%

na Orthogonalize

dezelfde 1.845 hoeken

1.7cm

mediane verschuiving van hoekpunten

9,1 cm in het slechtste geval

Detailbeeld van gedetecteerde gebouwcontouren op luchtbeelden, met hoeken die haaks op elkaar staan
Dezelfde detecties, van dichtbij. De hoeken komen al haaks binnen, dus de opschoonstap heeft niets meer om te snappen.

De 12% die niet haaks zijn, zijn de aangebouwde rijen. Kijk naar de verspringende rand midden over het blok. Geen enkele hoek-tool repareert dat, want die verspringingen volgen een echte daklijn en geen modelfout.

Gebruik het wanneer: honderden tot duizenden gebouwen, op beelden die je moet matchen, of wanneer meerdere mensen dezelfde laag op dezelfde manier moeten maken.

Sla het over wanneer: je een polygoon per adres nodig hebt in een historisch stadscentrum. Daarvoor zou ik geen automatische detectie gebruiken, en daar wint kadastrale data plus handmatige correctie.

Probeer AI Agent gratis in QGIS, geen creditcard nodig

Methode 3: Digitaliseer met de hand

Onder de vijftig gebouwen, teken ze. Gratis, exact, en bij dat formaat zou ik het zelf nog steeds doen.

Zet snappen aan

Project > Opties voor snappen..., hoekpunt en segment, Topologisch bewerken aan. Sla het over en je bent de middag kwijt aan het weghalen van splinters.

Teken, en let op hoe je afdrijft

Rond het 60e gebouw begin je hoeken af te snijden die je bij het 6e nooit zou afsnijden, en je merkt het niet. Het staat al in de laag.

Gebruik het wanneer: onder de pakweg vijftig gebouwen, of wanneer je één polygoon per adres nodig hebt in een dicht historisch centrum.

Sla het over wanneer: het aantal in de honderden loopt, of meerdere mensen dezelfde laag op dezelfde manier moeten maken.

Wat te onthouden

Open datasetsAutomatische detectieHandmatig digitaliseren
KostenGratisFree-abonnement, daarna betaaldGratis
SetupMinutenMinutenGeen
Goed voorGebieden die al goed gedekt zijnHonderden tot duizendenOnder de ~50 gebouwen
Past op jouw beeldenNeeJaJa
Consistent in een teamJaJaNee
Dichte aaneengesloten blokkenWisseltAlleen blok-enveloppenJa
Herkomst die je kunt benoemenDataset en ouderdomJouw beelden, met een betrouwbaarheidsscoreJij

Check eerst de open datasets. Over één wijk verschillen ze duizenden gebouwen, dus één blik op hun randen tegen jouw beelden beslist of je verder gaat.

Contouren die exact op een orthofoto van een klant moeten liggen sluiten de open datasets uit, hoe goed hun dekking ook is.

Een detectie filteren is het meeste werk: 82 polygonen van de 635 boven het centrum van Parijs, met 84% van het bebouwde gebied.

Een verticaal beeld kan je nergens, voor geen enkele prijs, één polygoon per adres geven waar gebouwen elkaar raken. Koppel in plaats daarvan aan kadastrale data.

Voorbij zo'n vijftig gebouwen gaat handmatig digitaliseren drijven zonder dat je het merkt.

Vragen die mensen stellen

Werkt het op dronebeelden?

Beter dan op satelliet. Grondresolutie is belangrijker dan de bron: een orthofoto van 5 cm geeft scherpere grenzen en hogere betrouwbaarheid dan een satellietbeeld van 30 cm.

Heb ik een GPU nodig?

Nee. Beide modi draaien standaard op onze servers, en het kleine lokale model draait op je eigen CPU, trager en minder nauwkeurig. Als alles op je eigen machine moet blijven, zijn Geo-SAM en samgeo gratis en goed, en die willen wel een NVIDIA-kaart.

Wat kost een uitvoering?

De Automatische modus telt de grond die je zone dekt, en Cloud AI telt één object per opslag. Semi-Auto op je eigen computer is gratis. Elk account krijgt elke maand een gratis hoeveelheid.

Kan ik één polygoon per adres krijgen?

Niet uit een verticaal beeld, in een stadscentrum waar de gebouwen elkaar raken. Het model geeft de bebouwde envelop van het hele blok terug, met uitgesneden binnenplaatsen, wat klopt voor bebouwd gebied en fout is voor adressen. Koppel in plaats daarvan aan kadastrale data.

Met welke open dataset begin ik?

OpenStreetMap, als je gebied actieve mappers heeft. Waar dat niet zo is, is het gat groot: over die ene wijk van 1 km² in Luanda tekent OSM helemaal geen gebouwen, terwijl Microsoft er 3.140 bevat en Google Open Buildings 4.468.

Welke software detecteert gebouwcontouren voor stedelijke planning?

Begin voor een planstudie in QGIS, dat gratis is: laad de open gebouwcontouren (OpenStreetMap, Microsoft, Google Open Buildings) en controleer ze met recente beelden. Waar ze ontbreken of verouderd zijn, tekent een plugin voor automatische detectie zoals AI Segmentation de gebouwen uit je eigen orthofoto, zodat de laag overeenkomt met de datum van je beelden. ArcGIS Pro heeft ook voorgetrainde gebouwmodellen, maar vraagt een betaalde licentie en een GPU voor een goede snelheid. Voor de hele kaart, van data tot opgemaakte layout, kan AI Agent deze stappen in QGIS uitvoeren vanuit één zin.

Voor het volledige dak-tegenover-grond-verhaal, lees wat een gebouwcontour is. Voor het geval met een geclassificeerd raster, waar Polygoniseren elk model verslaat, lees raster naar vector in QGIS. Dezelfde methode van zone en filter vindt de zonnepanelen op die daken: zonnepanelen detecteren in QGIS loopt er stap voor stap doorheen. Om deze reeks van detectie en filtering op een nieuw gebied te herhalen zonder elke klik opnieuw te doen, regelt AI Agent het vanuit één instructie in QGIS. Een brownfield-locatie verschijnt in de detectie vaak als overgebleven betonplaten en schuurtjes in plaats van schone daken, en de pagina greenfield vs brownfield legt uit hoe elk eruitziet vanuit de lucht. De QGIS AI-hub somt de rest op van wat wij bouwen.

Doe het nu met onze gratis tool

Building footprint downloader

Open de gratis tool

Doe het in QGIS door erom te vragen

AI Agent voert de taak uit die je beschrijft, in je eigen QGIS-project. Gratis, geen kaart nodig.

Probeer AI Agent gratis
Geschreven doorYvann Barbot
·14 min read