Zum Inhalt springen
AI Segmentation
QGIS
Anleitung

Gebäudegrundrisse in QGIS erkennen: Open Data, KI und manuell

Veröffentlicht am Aktualisiert am

Um Gebäudegrundrisse in QGIS zu erkennen, hast du drei Möglichkeiten: einen offenen Datensatz herunterladen, ein AI-Erkennungs-Plugin über deine eigenen Bilddaten laufen lassen oder sie von Hand digitalisieren. Die schnellste ist die zweite. Installiere das Plugin über den Plugin manager, lade deine Bilddaten, zeichne eine Zone, gib buildings ein, klicke auf Detect, und ein Polygon-Layer landet im Projekt-KBS. Anschließend filterst du diese Rohdaten nach Konfidenz und Fläche, denn ein großer Teil des Ergebnisses ist kein Gebäude: Bei einem Lauf über das Zentrum von Paris erhielt ich 635 Polygone, und die Entscheidung, welche 82 behalten werden, dauerte länger als die Detection selbst.

0:00 / 0:00
Eine Zone, ein Wort, 848 Gebäude. Echter Lauf, 3-fach beschleunigt, nichts herausgeschnitten.
Deine AusgangslageMethodeZeit
Ein Gebiet, das OpenStreetMap, Microsoft oder Google bereits abdeckenMethode 1: offene Grundrisse herunterladenMinuten
Hunderte bis tausende Gebäude auf genau den Bilddaten, die dir übergeben wurdenMethode 2: automatische Detection (unsere, Cloud)848 Gebäude in 57 Sekunden, danach die Filterung
Weniger als fünfzig Gebäude oder ein historisches Zentrum, in dem du ein Polygon pro Adresse brauchstMethode 3: von Hand digitalisierenSo lange, wie du brauchst

Immer zuerst offene Daten. Du gehst erst weiter, wenn die Abdeckung Lücken hat, der Stand der Daten nicht passt oder die Grundrisse zu dem spezifischen Orthofoto passen müssen, das dir ein Kunde übergeben hat.

Methode 1: Offene Grundrisse herunterladen

Du brauchst QGIS 3.22 oder neuer, einen Bilddaten-Layer, dem du vertraust, und für Methode 2 eine Internetverbindung. Für keine der drei Methoden brauchst du eine dedizierte Grafikkarte.

Für viele Aufgaben musst du überhaupt nichts erkennen. Drei offene Datensätze decken zusammen den größten Teil der Erde ab, und in einem einzigen Viertel können sie sich um tausende Gebäude unterscheiden.

Wähle den Datensatz für dein Gebiet

OpenStreetMap ist überall dort hervorragend, wo Mapper aktiv sind, und Gebäude enthalten Attribute. Microsoft Global ML Building Footprints umfasst mehr als eine Milliarde maschinell extrahierter Gebäude und ist in Nordamerika besonders stark. Google Open Buildings deckt den Globalen Süden ab, wo OSM am lückenhaftesten ist.

Lade einen Datensatz über deine Bilddaten

Lade OSM mit QuickOSM herein.

Zoome hinein und sieh dir die Kanten an

Dieser eine Blick entscheidet, ob du hier aufhörst oder weiterliest.

Drei Ansichten desselben dicht bebauten Viertels in Luanda auf Google-Satellite-Bilddaten, mit grünen Gebäudegrundrissen. OpenStreetMap zeigt keine, Microsoft deckt die meisten ab, Google Open Buildings fast alle.
Dieselbe Fläche von 1 km² in Luanda auf Google-Satellite-Bilddaten. OpenStreetMap kartiert hier keine Gebäude, Microsoft findet 3.140, Google Open Buildings 4.468. In einem dicht bebauten afrikanischen Viertel entscheidet der Datensatz, zu dem du greifst, ob du alles oder nichts erhältst.

Verwende es, wenn: das Gebiet bereits gut kartiert ist und du mit dem Stand und der Lizenz des Datensatzes leben kannst.

Überspringe es, wenn: die Abdeckung Lücken hat, der Stand der Daten nicht passt oder die Grundrisse an ein bestimmtes Orthofoto angepasst werden müssen.

Methode 2: Gebäude automatisch erkennen (unsere, Cloud)

Ein Gebäudegrundriss ist der Umriss eines Gebäudes dort, wo es den Boden berührt, als flaches Polygon. Nicht das Dach, nicht das Flurstück, nicht der Adresspunkt. Das ist hier wichtig, denn Vertikalaufnahmen zeigen dir das Dach: Bei einem fünfstöckigen Haussmann-Block, der nahezu im Nadir aufgenommen wurde, ist der Versatz klein, bei einem Turm nicht. Das solltest du wissen, bevor du jemandem einen Gebäudegrundriss-Layer versprichst. Eine längere Version findest du unter was ein Gebäudegrundriss ist.

Das Plugin hier ist AI Segmentation, das mein Mitgründer und ich bei TerraLab entwickeln. Lies diesen Abschnitt also mit dem Wissen, wessen Tool es ist. Es wird wie jedes andere über den Plugin manager installiert: kein manueller Download, keine Python-Umgebung, keine dedizierte Grafikkarte, weil das Modell auf unseren Servern läuft. Windows, macOS und Linux.

Dicht bebaute Pariser Stadtblöcke vor und nach der automatischen Gebäudeerkennung (after)
Dicht bebaute Pariser Stadtblöcke vor und nach der automatischen Gebäudeerkennung (before)
BilddatenErkannt
Zum Vergleichen ziehen
Ein automatischer Lauf über das Zentrum von Paris auf Google-Satellite-Bilddaten. Jedes Polygon erhält eine eigene Farbe, damit benachbarte Gebäude getrennt bleiben. Ziehe den Regler, um zu vergleichen.

Installiere es und wähle deinen Bilddaten-Layer

Plugin manager, installieren, Panel öffnen, den einzulesenden raster auswählen.

Das AI-Segmentation-Panel in QGIS mit dem Umschalter zwischen Semi-Auto und Automatic
Automatic-Modus: Bilddaten-Layer auswählen, Zone zeichnen, Objekt benennen.

Zeichne eine Zone und benenne das Objekt

Zeichne eine Zone, gib buildings ein, klicke auf Detect. Das ist der gesamte prompt, in deiner eigenen Sprache, wenn du möchtest. Die Ergebnisse kommen Kachel für Kachel als ein Polygon-Layer im Projekt-KBS zurück.

Stelle die Präzision ein, wenn die Objekte klein sind

Die eine Einstellung, die du kennen solltest, ist die Präzision, also die Kachelgröße. Kleine Kacheln geben dem Modell einen genaueren Blick, den kleine Objekte brauchen. Große Kacheln geben ihm Kontext, den ein landwirtschaftliches Flurstück braucht.

Filtere das Ergebnis

Das Panel führt dich durch drei Schritte, bevor etwas zu einem Layer wird: Filtere, was du Keep möchtest, Correct was das Modell übersehen hat, und wähle die Ausgabe-Shapes. Der erste Schritt entscheidet über den Erfolg, und er bekommt weiter unten einen eigenen Abschnitt.

Bereinige die Geometrie

Vereinfache, orthogonalisiere und lösche Löcher, in dieser Reihenfolge und nur dort, wo jeder Schritt seinen Platz verdient. Die drei Werkzeuge und der Grund für diese Reihenfolge folgen weiter unten.

Ein Lauf zählt die von ihm abgedeckte Bodenfläche. Jeden Monat erhält jedes Konto ein kostenloses Kontingent, ohne dass eine Karte erforderlich ist, und Pro erhöht es. Die Detection läuft auf europäischen Servern, wir trainieren nicht mit deinen Bilddaten, und es gibt ein kleines lokales Modell, wenn nichts dein Gerät verlassen darf. Die vollständige Anleitung behandelt Keep, Correct und Shapes vollständig, und die Produktseite findest du unter AI Segmentation.

Die Filterung ist die eigentliche Arbeit

Das rohe Detection-Ergebnis ist eine Reihe von Kandidatenpolygonen mit Konfidenzwerten. Auf dicht bebauten Bilddaten sind die meisten klein und unsicher. Ich habe diesen Paris-Lauf mit beiden Filtern weit geöffnet exportiert, sodass jeder Kandidat im Layer landete: 635 Polygone auf 1,18 km².

1 m²101001 00010 000 m²50 m²
Alle 635 Detection-Ergebnisse, nach Fläche auf einer logarithmischen Skala gruppiert. Zwei Häufungen: Rauschen unter 5 m², echte Gebäude über 160 m². Die Linie bei 50 m² liegt im Tal dazwischen, weshalb es keine willkürliche Zahl ist. Median 3,2 m², größtes Polygon 13.528 m², mittlere Konfidenz 0,26.

Die Hälfte des Ergebnisses ist kleiner als ein Parkplatz: Lüftungen, Dachfenster, Treppenhausaufbauten, Schuppen in Innenhöfen. Echte Dinge auf den Bilddaten, korrekt umrissen, aber nicht das, was irgendjemand mit einem Gebäudegrundriss meint.

Also filtere. Bewege die beiden Schieberegler im Panel oder erledige dieselbe Aufgabe über die Attributtabelle mit Select by Expression:

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

Damit bleiben 82 Polygone von 635 übrig, die 222.338 m² der insgesamt 263.658 m² abdecken. Anstatt mir die Schwellenwerte einfach zu glauben, verschiebe sie selbst. Grün übersteht deinen Filter, Weiß nicht.

Luftbilder dicht bebauter Pariser Blöcke mit darüber gezeichneten erkannten Gebäudepolygonen

82 / 635behaltene Polygone (13%)

84%der bebauten Fläche (222,338 m²)

Dieselben 635 Detection-Ergebnisse, die in der Attributtabelle liegen. Setze die Konfidenz auf null, und die Schuppen in den Innenhöfen und Dachfenster kommen zurück.

Beobachte die zweite Zahl, während du die erste verschiebst. 87 % der Polygone zu verwerfen kostet 16 % der Fläche, und der Rest ist Rauschen, das du ohnehin von Hand gelöscht hättest, eines nach dem anderen, während du dich gefragt hättest, ob das Tool überhaupt etwas taugt.

Passe beide Werte an die Aufgabe an. Bei einer Vermessung von Industriehallen kannst du die Mindestfläche auf 200 m² erhöhen. Beim Kartieren informeller Siedlungen wirft 50 m² echte Häuser weg. Senke den Wert also auf 15 und stütze dich stattdessen auf den Konfidenzwert.

So sieht ein sauberes Ergebnis aus

Paris ist ein schwieriger Fall. Dasselbe Tool bei freistehenden Häusern etwa 10 km westlich:

Freistehende und aneinandergebaute Häuser in einem Pariser Vorort, jedes Haus mit einer eigenen Farbe gefüllt
Freistehende Häuser, Prüffilter aktiviert. Ein Polygon pro Haus, fast nichts zum Wegwerfen.

85m²

mediane Polygonfläche

Paris-Lauf: 3,2 m²

0.79

mediane Konfidenz

Paris-Lauf: 0,26

251Polygone

behalten, von 251 zurückgegeben

Paris-Lauf: 82 von 635

Dasselbe Tool, dieselbe Stadt, nichts zum Wegwerfen. Geändert hat sich die Bebauungsstruktur, nicht das Modell.

Wo es scheitert: dicht bebaute, zusammenhängende Blöcke

Nahaufnahme von Haussmann-Blöcken, jeder Block als ein farbiges Polygon entlang der Straßenkante, mit ausgeschnittenen Innenhöfen
Der Umriss folgt präzise der Straßenkante und schneidet die Innenhöfe aus. Was er nicht tut: den Block in einzelne Gebäude mit eigenen Adressen aufteilen.

Jedes Polygon zeichnet die bebaute Hülle eines ganzen Blocks nach, folgt der Straßenlinie und schneidet die Innenhöfe korrekt aus. Gut für bebaute Fläche oder versiegelte Oberfläche, falsch, wenn du ein Polygon pro Adresse brauchst. Kein Modell, das ein vertikales Bild ausliest, kann die Trennwand zwischen zwei aneinandergebauten Gebäuden finden, denn von oben gibt es dort nichts zu sehen.

Die Geometrie bereinigen

Drei integrierte QGIS-Werkzeuge bringen einen Gebäudegrundriss-Layer in Ordnung, und die Reihenfolge ist wichtig, weil Simplify die Vertices verschiebt, die du gerade rechtwinklig gemacht hast.

  1. Simplify, Toleranz 0,5 m über Luftbildern. Reduziert die Anzahl der Vertices stark, ohne die Grenze an einer sichtbaren Stelle zu verschieben.
  2. Orthogonalize. Richtet annähernd rechte Winkel rechtwinklig aus. Verwende es bei offenen Daten oder von Hand nachgezeichneten Ergebnissen, bei denen noch nichts rechtwinklig gemacht wurde.
  3. Delete holes, nur wenn du vollständig gefüllte Grundrisse möchtest. Nicht beim Paris-Ergebnis: Diese Löcher sind Innenhöfe und korrekt.

Bei einem erkannten Layer ist Schritt 2 fast ein No-op. Ich habe das gemessen, statt es anzunehmen, indem ich Orthogonalize auf 190 erkannten Gebäuden ausgeführt und alle 1.845 Ecken vorher und nachher verglichen habe.

87.9%

Ecken bereits innerhalb von 1° rechtwinklig

bevor etwas ausgeführt wurde

87.9%

nach Orthogonalize

dieselben 1.845 Ecken

1.7cm

mediane Verschiebung der Vertices

9,1 cm im schlimmsten Fall

Nahaufnahme erkannter Gebäudeumrisse auf Luftbildern, deren Ecken im rechten Winkel aufeinandertreffen
Dieselben Detection-Ergebnisse, aus der Nähe betrachtet. Die Ecken kommen rechtwinklig an, daher gibt es beim Bereinigungsschritt nichts mehr auszurichten.

Die 12 %, die nicht rechtwinklig sind, sind die aneinandergebauten Terrassen. Sieh dir die abgestufte Kante an, die durch die Mitte des Blocks verläuft. Kein Eckenwerkzeug kann das beheben, denn diese Stufen folgen einer echten Dachlinie und sind kein Modellierungsfehler.

Verwende es, wenn: hunderte bis tausende Gebäude auf Bilddaten, an die du dich anpassen musst, oder wenn mehrere Personen denselben Layer auf dieselbe Weise erstellen müssen.

Überspringe es, wenn: du in einem historischen Stadtzentrum ein Polygon pro Adresse brauchst. Dafür würde ich keine automatische Detection verwenden. Katasterdaten plus manuelle Korrektur sind dort besser.

Kostenlos in QGIS testen, keine Karte erforderlich

Methode 3: Von Hand digitalisieren

Bei weniger als fünfzig Gebäuden: zeichne sie. Kostenlos, exakt, und in dieser Größenordnung würde ich es immer noch selbst tun.

Aktiviere das Snapping

Project -> Snapping Options, für Vertices und Segmente, topologisches Bearbeiten einschalten. Wenn du das überspringst, verbringst du den Nachmittag damit, Splitter zu löschen.

Zeichne nach und achte darauf, wie du abweichst

Beim etwa 60. Gebäude beginnst du, Ecken abzukürzen, die du beim 6. niemals abgekürzt hättest, und bemerkst es nicht. Es ist bereits im Layer.

Verwende es, wenn: bei etwa fünfzig Gebäuden oder weniger oder wenn du in einem dicht bebauten historischen Zentrum ein Polygon pro Adresse brauchst.

Überspringe es, wenn: die Anzahl in die Hunderte geht oder mehrere Personen denselben Layer auf dieselbe Weise erstellen müssen.

Welche Methode solltest du verwenden?

Offene DatensätzeAutomatische DetectionManuelles Digitalisieren
KostenKostenlosKostenlose Stufe, danach kostenpflichtigKostenlos
EinrichtungMinutenMinutenKeine
Geeignet fürBereits gut abgedeckte GebieteHunderte bis tausendeWeniger als etwa 50 Gebäude
Passt zu deinen BilddatenNeinJaJa
Konsistent im TeamJaJaNein
Dicht bebaute, zusammenhängende BlöckeUnterschiedlichNur BlockhüllenJa
Angegebene HerkunftDatensatz und StandDeine Bilddaten mit einem KonfidenzwertDu

Zwei Zeilen entscheiden über die meisten Aufgaben. Wenn die Grundrisse an das Orthofoto eines Kunden angepasst werden müssen, scheiden offene Datensätze unabhängig von ihrer Abdeckung aus. Bei mehr als etwa fünfzig Gebäuden wird das manuelle Digitalisieren unbemerkt inkonsistent. Die letzte Zeile ist wichtig, wenn sich der Layer später verteidigen lassen muss: Ein offener Datensatz liefert dir einen Namen und einen Stand, ein erkannter Layer liefert deine eigenen Bilddaten plus einen Wert auf jedem Polygon, und deine eigene Hand liefert dich selbst.

Häufige Fragen

Funktioniert es mit Drohnenbildern?

Besser als mit Satellitenbildern. Die Bodenauflösung ist wichtiger als die Quelle: Ein Orthofoto mit 5 cm liefert sauberere Grenzen und höhere Konfidenz als eine Satellitenaufnahme mit 30 cm.

Brauche ich eine GPU?

Nein. Beide Modi laufen standardmäßig auf unseren Servern, und das kleine lokale Modell läuft auf deiner eigenen CPU, langsamer und weniger genau. Wenn alles auf deinem Rechner bleiben soll, sind Geo-SAM und samgeo kostenlos und gut, aber sie benötigen eine NVIDIA-Karte.

Was kostet ein Lauf?

Automatic zählt die von deiner Zone abgedeckte Fläche, und Cloud AI zählt beim Speichern ein Objekt. Semi-Auto auf deinem eigenen Rechner ist kostenlos. Jedes Konto erhält jeden Monat ein kostenloses Kontingent.

Kann ich ein Polygon pro Adresse erhalten?

Nicht aus einem vertikalen Bild in einem Stadtzentrum, in dem sich die Gebäude berühren. Das Modell gibt die bebaute Hülle des gesamten Blocks zurück, mit ausgeschnittenen Innenhöfen. Das ist richtig für die bebaute Fläche und falsch für Adressen. Verknüpfe stattdessen mit Katasterdaten.

Mit welchem offenen Datensatz sollte ich beginnen?

OpenStreetMap, wenn es in deinem Gebiet aktive Mapper gibt. Wo das nicht der Fall ist, ist die Lücke deutlich: Auf dieser Fläche von 1 km² in Luanda kartiert OSM überhaupt keine Gebäude, während Microsoft 3.140 und Google Open Buildings 4.468 findet.

Für die Lücke zwischen Dach und Boden in voller Länge lies was ein Gebäudegrundriss ist. Für den Fall klassifizierter Rasterdaten, bei dem polygonize jedes Modell schlägt, lies Raster zu Vektor in QGIS. Der QGIS AI Hub listet den Rest dessen auf, was wir entwickeln.

Kostenlos in QGIS testen, keine Karte erforderlich