Vai al contenuto
Torna al blog
AI Segmentation
QGIS
Tutorial

Come rilevare automaticamente le impronte degli edifici in QGIS

0:00 / 0:00
Una zona, una parola, 848 edifici. Un'esecuzione reale, accelerata 3x, senza tagli.

Ho eseguito il rilevamento automatico su una zona del centro di Parigi e ho ottenuto 635 poligoni in un solo passaggio. Decidere quali 82 conservare ha richiesto più tempo del rilevamento, e questa è la parte che quasi ogni tutorial omette.

Dense Parisian city blocks before and after automatic building detection (after)
Dense Parisian city blocks before and after automatic building detection (before)
ImageryDetected
Trascina per confrontare
One automatic pass over central Paris, on Google Satellite imagery. Every polygon gets its own colour so neighbours stay separate. Drag the handle to compare.

La versione breve. Per rilevare automaticamente le impronte degli edifici in : installa un plugin di rilevamento AI dal gestore dei plugin, carica le tue immagini, disegna una zona, assegna un nome all'oggetto, avvialo. Otterrai un layer poligonale nel CRS del progetto. Poi filtra quell'output grezzo per confidenza e area, perché una grande parte di ciò che restituisce non è un edificio.

Che cos'è un'impronta edilizia

Il contorno di un edificio nel punto in cui incontra il terreno, come poligono piatto. Non il tetto, non la particella, non il punto dell'indirizzo.

Ed è importante qui, perché le immagini verticali mostrano il tetto. Su un isolato Haussmanniano di cinque piani ripreso quasi al nadir lo spostamento è ridotto. Su una torre non lo è. Meglio saperlo prima di promettere a qualcuno un layer di impronte edilizie.

Controlla prima i dataset aperti

Per molti lavori non devi rilevare nulla.

Three panels of the same dense Luanda neighbourhood on Google Satellite imagery, with building footprints in green. OpenStreetMap shows none, Microsoft covers most, Google Open Buildings covers nearly all.
The same 1 km² of Luanda, on Google Satellite imagery. OpenStreetMap maps no buildings here, Microsoft finds 3,140, Google Open Buildings 4,468. Over a dense African neighbourhood the dataset you reach for decides whether you get everything or nothing.

Caricane uno insieme alle tue immagini. Passi oltre solo quando la copertura presenta buchi, la datazione è sbagliata o le impronte devono corrispondere alla specifica ortofoto consegnata dal cliente.

Meno di cinquanta edifici, disegnali

Digitalizza a mano. È gratuito, preciso, e a quella scala lo farei ancora io. Attiva prima lo snapping (Project -> Snapping Options, vertice e segmento, modifica topologica attiva) oppure passerai il pomeriggio a cancellare poligoni sottili.

Intorno al 60° edificio inizi a tagliare angoli che non avresti mai tagliato sul 6°, e non te ne accorgi. È già nel layer.

Il metodo automatico

Il plugin qui è AI Segmentation, che il mio cofondatore e io sviluppiamo in TerraLab, quindi leggi questa sezione sapendo di quale strumento si tratta. Si installa dal gestore dei plugin come qualsiasi altro: nessun download manuale, nessun ambiente Python, nessuna scheda grafica dedicata, perché il modello viene eseguito sui nostri server. Windows, macOS e Linux.

Disegna una zona, digita buildings, premi Rileva. Questo è tutto il prompt, nella lingua che preferisci. I risultati arrivano tile dopo tile come un unico layer poligonale nel CRS del progetto.

The AI Segmentation panel in QGIS with the Semi-Auto and Automatic switch
Automatic mode: pick the imagery layer, draw a zone, name the object.

L'unica impostazione che vale la pena imparare è la precisione, cioè la dimensione dei tile. I tile piccoli danno al modello una visione ravvicinata, utile per gli oggetti piccoli. I tile grandi gli danno contesto, utile per la particella di una fattoria. I tile sono anche ciò per cui paghi: uno ciascuno. Ogni account riceve una quota gratuita ogni mese, senza carta di credito, e Pro la aumenta. Il rilevamento viene eseguito su server europei, non addestriamo sui tuoi dati e c'è un piccolo modello locale se nulla può lasciare il tuo computer.

Poi il pannello ti guida attraverso tre passaggi prima che qualsiasi cosa diventi un layer: filtra ciò che vuoi Conservare, Correggi ciò che il modello ha perso e scegli le Forme di output. La guida completa copre tutti e tre. Il primo è quello che decide il risultato, quindi gli dedichiamo la prossima sezione.

Filtrare è tutto il lavoro

L'output grezzo del rilevamento è un insieme di poligoni candidati con punteggi di confidenza. Su immagini dense la maggior parte è piccola e incerta. Ho esportato questa esecuzione su Parigi con entrambi i filtri completamente aperti, quindi ogni candidato è finito nel layer: 635 poligoni su 1,18 km².

1 m²101001 00010 000 m²50 m²
Every one of the 635 detections, binned by area on a log scale. Two humps: noise under 5 m², real buildings above 160 m². The 50 m² line falls in the valley between them, which is why it is not an arbitrary number. Median 3.2 m², largest 13,528 m², median confidence 0.26.

La metà di ciò che è tornato è più piccola di un posto auto: bocchette, lucernari, vani scala, capanni nei cortili. Oggetti reali nelle immagini, delineati correttamente, ma non ciò che si intende per impronta edilizia.

Quindi filtra. Sposta i due slider nel pannello, oppure fai lo stesso lavoro dalla tabella degli attributi con Select by Expression:

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

Restano 82 poligoni su 635, che coprono 222.338 m² dei 263.658 m² totali. Anziché fidarti della mia parola sulle soglie, spostale tu. Il verde resta dopo il tuo filtro, il bianco no.

Aerial imagery of dense Parisian blocks with detected building polygons drawn over it

82 / 635polygons kept (13%)

84%of the built area (222,338 m²)

The same 635 detections the attribute table holds. Drop the confidence to zero and the courtyard sheds and skylights come back.

Osserva il secondo numero mentre trascini il primo. Eliminare l'87% dei poligoni costa il 16% dell'area. Il resto è rumore che avresti comunque eliminato a mano, uno alla volta, chiedendoti se lo strumento fosse davvero valido.

Regola entrambi in base al lavoro. Un rilievo di capannoni industriali può portare la soglia dell'area a 200 m². Mappando insediamenti informali, 50 m² elimina case reali, quindi scendi a 15 e fai più affidamento sul punteggio di confidenza.

Che aspetto ha un risultato pulito

Parigi è un caso difficile. Lo stesso strumento su abitazioni indipendenti circa 10 km a ovest:

Detached and semi-detached houses in a Paris suburb, each house filled with its own colour
Detached housing, review filter on. One polygon per house, almost nothing to throw away.

85

median polygon area

Paris run: 3.2 m²

0.79

median confidence

Paris run: 0.26

251polygons

kept, out of 251 returned

Paris run: 82 out of 635

Stesso strumento, stessa città, nulla da eliminare. È cambiato il tessuto urbano, non il modello.

Dove si rompe: isolati densi e continui

Close view of Haussmann blocks, each block one coloured polygon following the street edge with courtyards cut out
The outline follows the street edge precisely and cuts out the courtyards. What it does not do is split the block into individual addressed buildings.

Ogni poligono ricalca il perimetro costruito di un intero isolato, segue il bordo della strada e ritaglia correttamente i cortili. È utile per l'area edificata o la superficie impermeabile, ma sbagliato se ti serve un poligono per indirizzo. Nessun modello che legga un'immagine verticale può trovare il muro in aderenza tra due edifici contigui, perché dall'alto non c'è nulla da vedere.

Quindi non userei il rilevamento automatico per un layer per indirizzo in un centro storico. Lì vincono i dati catastali più la correzione manuale.

Pulire la geometria

Tre strumenti QGIS nativi riordinano un layer di impronte, e l'ordine conta perché Semplifica sposta i vertici che hai appena squadrato.

  1. Semplifica, tolleranza di 0,5 m sulle immagini aeree. Riduce drasticamente il numero di vertici senza spostare il confine in modo percettibile.
  2. Ortogonalizza. Rende quadrati gli angoli quasi retti. Usalo sui dati aperti o sul lavoro tracciato a mano, dove nessuno li ha ancora squadrati.
  3. Elimina buchi, solo se vuoi impronte solide. Non sul risultato di Parigi: quei buchi sono cortili e sono corretti.

Su un layer rilevato il passaggio 2 è quasi un'operazione nulla. L'ho misurato invece di darlo per scontato, eseguendo Ortogonalizza su 190 edifici rilevati e confrontando tutti gli 1.845 angoli prima e dopo.

87.9%

corners already within 1° of square

before running anything

87.9%

after Orthogonalize

the same 1,845 corners

1.7cm

median vertex shift

9.1 cm at the worst

Close view of detected building outlines on aerial imagery, corners meeting at right angles
The same detections, close in. The corners arrive square, so the cleanup step has nothing left to snap.

Il 12% che non è a squadra corrisponde alle terrazze adiacenti. Guarda il bordo a gradini che scende al centro dell'isolato. Nessuno strumento per gli angoli può correggerlo, perché quei gradini seguono una linea reale del tetto, non un errore del modello.

Quale metodo usare

Dataset apertiDigitalizzazione manualeRilevamento automatico
CostoGratuitoGratuitoPiano gratuito, poi a pagamento
ConfigurazioneMinutiNessunaMinuti
Adatto aAree già ben coperteMeno di ~50 edificiDa centinaia a migliaia
Corrisponde alle tue immaginiNo
Coerente in un teamNo
Isolati densi e continuiVariaSolo perimetri degli isolati
Provenienza che puoi indicareDataset e datazioneTuLe tue immagini, con un punteggio di confidenza

Domande che ricevo

Funziona sulle immagini da drone? Meglio che con le immagini satellitari. La risoluzione al suolo conta più della fonte: un'ortofoto da 5 cm offre contorni più puliti e una confidenza maggiore di una scena satellitare da 30 cm.

Mi serve una GPU? No. Entrambe le modalità vengono eseguite sui nostri server per impostazione predefinita, mentre il piccolo modello locale gira sulla tua CPU, più lentamente e con meno precisione. Se vuoi che tutto resti sul tuo computer, Geo-SAM e samgeo sono gratuiti e validi, e richiedono una scheda NVIDIA.

Quanto costa un'esecuzione? Un credito per tile in modalità automatica, un credito per oggetto salvato in modalità semi-automatica. Ogni account riceve una quota gratuita ogni mese, e il modello locale non costa proprio nulla.

Try it free in QGIS, no card needed