Saltar al contenido
Volver al blog
AI Segmentation
QGIS
Tutorial

Cómo detectar automáticamente las huellas de edificios en QGIS

0:00 / 0:00
Una zona, una palabra, 848 edificios. Una ejecución real, acelerada 3x, sin cortes.

Ejecuté una detección automática sobre una zona del centro de París y obtuve 635 polígonos en una sola pasada. Decidir cuáles 82 conservar llevó más tiempo que la detección, y esa segunda parte es la que casi todos los tutoriales omiten.

Dense Parisian city blocks before and after automatic building detection (after)
Dense Parisian city blocks before and after automatic building detection (before)
ImageryDetected
Arrastra para comparar
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 versión corta. Para detectar automáticamente huellas de edificios en : instala un plugin de detección con IA desde el gestor de plugins, carga tus imágenes, dibuja una zona, nombra el objeto y ejecútalo. Obtienes un layer de polígonos en el CRS de tu proyecto. Después filtra ese resultado bruto por confianza y área, porque una gran parte de lo que vuelve no es un edificio.

Qué es una huella de edificio

El contorno de un edificio donde se encuentra con el suelo, como un polígono plano. No el tejado, ni la parcela, ni el punto de dirección.

Lo cual importa aquí, porque las imágenes verticales te dan el tejado. En un bloque Haussmann de cinco plantas fotografiado casi en nadir, el desplazamiento es pequeño. En una torre no lo es. Conviene saberlo antes de prometer a alguien un layer de huellas.

Comprueba primero los datasets abiertos

Para muchos trabajos no necesitas detectar nada.

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.

Carga uno sobre tus imágenes. Solo pasas al siguiente método cuando la cobertura tiene huecos, la fecha de las imágenes no encaja o las huellas tienen que coincidir con la ortofoto concreta que te entregó un cliente.

Con menos de cincuenta edificios, dibújalos

Digitaliza a mano. Gratis, exacto, y yo seguiría haciéndolo personalmente con ese tamaño. Activa el snapping primero (Project -> Snapping Options, vertex and segment, topological editing on) o pasarás la tarde eliminando fragmentos.

En torno al edificio 60 empiezas a tomar atajos que nunca habrías tomado en el 6, y no te das cuenta. Ya está en el layer.

El método automático

El plugin de este artículo es AI Segmentation, que mi cofundador y yo desarrollamos en TerraLab, así que lee esta sección sabiendo de quién es la herramienta. Se instala desde el gestor de plugins como cualquier otro: no hay que descargarlo a mano, ni configurar un entorno de Python, ni tener una tarjeta gráfica dedicada, porque el modelo se ejecuta en nuestros servidores. Windows, macOS y Linux.

Dibuja una zona, escribe buildings y pulsa Detect. Ese es todo el prompt, en tu propio idioma si lo prefieres. Los resultados llegan, tesela a tesela, como un único layer de polígonos en el CRS del proyecto.

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.

La única configuración que merece la pena aprender es la precisión, que corresponde al tamaño de la tesela. Las teselas pequeñas permiten al modelo observar de cerca, algo que necesitan los objetos pequeños. Las teselas grandes le dan contexto, algo que necesita una parcela agrícola. Las teselas también son lo que pagas: un crédito por cada una. Todas las cuentas reciben una cuota gratuita cada mes, sin pedir tarjeta, y Pro la aumenta. La detección se ejecuta en servidores europeos, no entrenamos con tus imágenes y hay un modelo local pequeño si nada puede salir de tu máquina.

Después, el panel te guía por tres pasos antes de que nada se convierta en un layer: filtrar lo que quieres Keep, Correct lo que el modelo no detectó y elegir las Shapes de salida. La guía completa cubre los tres. El primero es donde se gana el trabajo, así que le corresponde la siguiente sección.

Filtrar es todo el trabajo

El resultado bruto de la detección es un conjunto de polígonos candidatos con puntuaciones de confianza. En imágenes densas, la mayoría son pequeños e inciertos. Exporté esta ejecución de París con ambos filtros completamente abiertos, así que todos los candidatos acabaron en el layer: 635 polígonos sobre 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 mitad de lo que volvió es más pequeño que una plaza de aparcamiento: respiraderos, tragaluces, casetas de escaleras, cobertizos de patio. Cosas reales en las imágenes, correctamente delineadas, y no lo que nadie entiende por una huella de edificio.

Así que filtra. Mueve los dos deslizadores del panel o haz el mismo trabajo desde la tabla de atributos con Select by Expression:

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

Eso deja 82 polígonos de 635, que cubren 222,338 m² de los 263,658 m² totales. En lugar de pedirme que confíes en los umbrales, muévelos tú. El verde sobrevive a tu filtro; el blanco 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.

Observa el segundo número mientras arrastras el primero. Descartar el 87% de los polígonos cuesta el 16% del área. El resto es ruido que habrías borrado a mano de todos modos, uno a uno, mientras te preguntabas si la herramienta era realmente buena.

Adapta ambos al trabajo. Un levantamiento de cobertizos industriales puede elevar el mínimo de área a 200 m². Al cartografiar asentamientos informales, 50 m² descarta casas reales, así que bájalo a 15 y apóyate en la puntuación de confianza.

Así es un resultado limpio

París es un caso difícil. La misma herramienta en viviendas aisladas a unos 10 km al oeste:

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

La misma herramienta, la misma ciudad, nada que desechar. Lo que cambió fue el tejido construido, no el modelo.

Cuándo falla: bloques densos y continuos

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.

Cada polígono sigue el volumen construido de un bloque entero, pegado a la línea de la calle y recortando correctamente los patios. Bien para el área construida o la superficie impermeable, mal si necesitas un polígono por dirección. Ningún modelo que lea una imagen vertical puede encontrar la medianera entre dos edificios adosados, porque desde arriba no hay nada que ver allí.

Por eso no usaría la detección automática para un layer por dirección en el centro histórico de una ciudad. Allí ganan los datos catastrales más la corrección manual.

Limpiar la geometría

Tres herramientas nativas de QGIS ponen en orden un layer de huellas, y el orden importa porque Simplify mueve los vértices que acabas de escuadrar.

  1. Simplify, tolerancia de 0.5 m en imágenes aéreas. Reduce mucho el número de vértices sin mover el límite a ningún lugar que puedas notar.
  2. Orthogonalize. Ajusta los ángulos casi rectos para que formen ángulos rectos. Recurre a ella con datos abiertos o trabajo trazado a mano, donde todavía nadie los ha escuadrado.
  3. Delete holes, solo si quieres huellas sólidas. No en el resultado de París: esos huecos son patios y son correctos.

En un layer detectado, el paso 2 casi no hace nada. Lo medí en lugar de darlo por hecho: ejecuté Orthogonalize sobre 190 edificios detectados y comparé las 1,845 esquinas antes y después.

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.

El 12% que no forma ángulos rectos corresponde a las terrazas adosadas. Mira el borde escalonado que baja por el centro del bloque. Ninguna herramienta de esquinas arregla eso, porque esos escalones siguen una línea de tejado real y no un error de modelado.

Qué método usar

Datos abiertosDigitalización manualDetección automática
CosteGratisGratisNivel gratuito, después de pago
ConfiguraciónMinutosNingunaMinutos
Bueno paraÁreas con buena coberturaMenos de ~50 edificiosDe cientos a miles
Coincide con tus imágenesNo
Coherente en un equipoNo
Bloques densos y continuosVaríaSolo volúmenes de bloques
Procedencia que puedes indicarConjunto de datos y fechaTus imágenes, con una puntuación de confianza

Preguntas que recibo

¿Funciona con imágenes de drones? Mejor que con satélite. La resolución del suelo importa más que la fuente: una ortofoto de 5 cm ofrece límites más limpios y una confianza mayor que una escena satelital de 30 cm.

¿Necesito una GPU? No. Ambos modos se ejecutan en nuestros servidores por defecto, y el pequeño modelo local se ejecuta en tu propia CPU, más lento y menos preciso. Si quieres que todo permanezca en tu máquina, Geo-SAM y samgeo son gratuitos y funcionan bien, y sí requieren una tarjeta NVIDIA.

¿Cuánto cuesta una ejecución? Un crédito por tesela en modo automático, un crédito por objeto guardado en el modo semiautomático. Todas las cuentas reciben una cuota gratuita cada mes y el modelo local no cuesta absolutamente nada.

Try it free in QGIS, no card needed