Aller au contenu
AI Segmentation
QGIS
Tutoriel

Emprise des bâtiments QGIS : 3 méthodes

Publié le Mis à jour le

Pour détecter les emprises de bâtiments dans QGIS vous avez trois voies : télécharger un jeu de données ouvert, lancer un AI detection plugin sur votre propre imagerie, ou digitaliser à la main. La plus rapide est la deuxième. Installez le plugin depuis le gestionnaire de plugin, chargez votre imagerie, dessinez une zone, tapez buildings, cliquez sur Detect, et un polygon layer arrive dans le CRS de votre projet.

Le filtrage est la seconde moitié du travail. Une grande partie de ce qui revient n'est pas un bâtiment, alors coupez la sortie brute par confiance et par surface. J'ai fait une passe sur Paris centre, obtenu 635 polygones, et décider lesquels des 82 garder m'a pris plus longtemps que la détection elle-même.

0:00 / 0:00
One zone, one word, 848 buildings. Real run, sped up 3x, nothing cut.
Votre casMéthodeTemps
Une zone déjà couverte par OpenStreetMap, Microsoft ou GoogleMéthode 1 : télécharger les emprises ouvertesMinutes
Des centaines à des milliers de bâtiments, sur l'imagerie exacte qu'on vous a confiéeMéthode 2 : détection automatique (la nôtre, cloud)848 bâtiments en 57 secondes, puis le filtrage
Moins de cinquante bâtiments, ou un centre historique où il faut un polygone par adresseMéthode 3 : digitaliser à la mainAussi longtemps qu'il vous faut

La donnée ouverte d'abord, à chaque fois. Vous ne passez à la suite que si la couverture a des trous, si le millésime est mauvais, ou si les emprises doivent coller à l'orthophoto précise qu'un client vous a remise.

Méthode 1 : Télécharger les emprises ouvertes

Il vous faut QGIS 3.22 ou plus récent, un layer d'imagerie de confiance, et une connexion internet pour la méthode 2. Aucune carte graphique dédiée, pour aucune des trois.

Pour beaucoup de chantiers vous n'avez rien à détecter. Trois jeux ouverts couvrent l'essentiel de la planète à eux trois, et sur un même quartier ils peuvent s'écarter de plusieurs milliers de bâtiments.

Pick the dataset for your area

OpenStreetMap est excellent là où les mappeurs sont actifs, et les bâtiments portent des attributs. Microsoft Global ML Building Footprints contient plus d'un milliard de bâtiments extraits par machine et domine en Amérique du Nord. Google Open Buildings couvre les Suds, là où OSM est le plus mince. Pour voir ce que chacun contient sur votre zone avant de charger quoi que ce soit, dessinez un rectangle dans notre outil gratuit de téléchargement d'emprises de bâtiments et récupérez celui qui vous convient en GeoJSON.

Load one against your imagery

Chargez OSM avec QuickOSM.

Zoom in and look at the edges

Ce seul regard décide si vous vous arrêtez ici ou si vous lisez la suite.

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.

Utilisez-la quand : la zone est déjà bien cartographiée et que le millésime et la licence du jeu vous conviennent.

Évitez-la quand : la couverture a des trous, le millésime est mauvais, ou les emprises doivent s'aligner sur une orthophoto précise.

Méthode 2 : Détection automatique

Une emprise de bâtiment est le contour d'un bâtiment là où il touche le sol, en polygone à plat. Pas le toit, pas la parcelle, pas le point d'adresse. Ce qui compte ici, parce que l'imagerie verticale vous donne le toit : sur un îlot haussmannien de cinq étages vu proche du nadir le décalage est faible, sur une tour il ne l'est pas. Bon à savoir avant de promettre un layer d'emprises à qui que ce soit, et la version longue est dans ce qu'est une emprise de bâtiment.

Un modèle de détection automatique lit votre imagerie et renvoie les contours de bâtiments en polygones, chacun avec un score de confiance. Nous construisons l'un d'eux, AI Segmentation. Cette section parle de notre propre outil.

Il s'installe depuis le gestionnaire de plugin comme les autres : pas de téléchargement à la main, pas d'environnement Python, pas de carte graphique dédiée, parce que le modèle tourne sur nos serveurs. Windows, macOS et Linux.

Dense Parisian city blocks before and after automatic building detection (after)
Dense Parisian city blocks before and after automatic building detection (before)
ImageryDetected
Glisser pour comparer
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.

Install it and pick your imagery layer

Gestionnaire de plugin, installez, ouvrez le panneau, choisissez le raster à lire.

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.

Draw a zone and name the object

Dessinez une zone, tapez buildings, cliquez sur Detect. Voilà tout le prompt, dans votre propre langue si vous préférez. Les résultats arrivent tuile par tuile en un seul polygon layer dans le CRS du projet.

Set the precision when the objects are small

Le seul réglage à connaître est la précision, c'est la taille des tuiles. Les petites tuiles donnent au modèle une vue rapprochée, dont les petits objets ont besoin. Les grandes tuiles donnent du contexte, dont une parcelle agricole a besoin.

Filter what came back

Le panneau vous guide en trois étapes avant que quoi que ce soit devienne un layer : filtrez ce qu'il faut Keep, Correct ce que le modèle a raté, et choisissez les Shapes de sortie. La première décide du résultat, et elle a sa propre section ci-dessous.

Clean the geometry

Simplify, orthogonalize et delete holes, dans cet ordre, et seulement là où chacun se justifie. Les trois outils et la raison de l'ordre sont ci-dessous.

Une exécution compte le terrain couvert. Chaque compte reçoit une dotation gratuite chaque mois, sans carte demandée, et Pro l'augmente. La détection tourne sur des serveurs européens, nous n'entraînons rien sur votre imagerie, et il existe un petit modèle local si rien ne doit quitter votre machine. Le guide complet couvre Keep, Correct et Shapes en entier.

Le filtrage est tout le travail

La sortie brute d'une détection est un ensemble de polygones candidats avec scores de confiance. Sur une imagerie dense, la plupart sont petits et incertains. J'ai exporté cette passe de Paris avec les deux filtres grands ouverts, pour que chaque candidat atterrisse dans le layer : 635 polygones sur 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 moitié de ce qui revient est plus petite qu'une place de parking : ventilations, skydomes, cages d'escalier, remises de cour. Des choses réelles sur l'imagerie, correctement délinéées, et pas ce que quiconque appelle une emprise de bâtiment.

Alors filtrez. Bougez les deux curseurs dans le panneau, ou faites le même travail depuis la table attributaire avec Select by Expression :

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

Il reste 82 polygones sur 635, couvrant 222 338 m² sur 263 658 m² au total. Plutôt que de me croire sur les seuils, bougez-les vous-même. Le vert survit à votre filtre, le blanc non.

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.

Surveillez le second chiffre pendant que vous tirez le premier. Jeter 87 % des polygones coûte 16 % de la surface, et le reste est du bruit que vous auriez supprimé à la main de toute façon, un par un, en doutant de l'outil.

Réglez les deux selon le chantier. Une enquête sur des hangars industriels peut pousser le plancher de surface à 200 m². En cartographiant de l'habitat informel, 50 m² jette des maisons réelles, alors descendez à 15 et appuyez-vous plutôt sur le score de confiance.

À quoi ressemble un résultat propre

Paris est un cas dur. Même outil sur du pavillonnaire environ 10 km à l'ouest :

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.

85m²

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

Même outil, même ville, rien à jeter. Ce qui a changé est le tissu bâti, pas le modèle.

Où ça casse : les îlots denses continus

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.

Chaque polygone trace l'enveloppe bâtie d'un îlot entier, colle à la ligne de rue et découpe correctement les cours. Bon pour la surface bâtie ou imperméable, faux s'il faut un polygone par adresse. Aucun modèle lisant une image verticale ne peut trouver le mur mitoyen entre deux bâtiments accolés, parce que vu du dessus il n'y a rien à voir.

Nettoyer la géométrie

Trois outils natifs de QGIS rangent un layer d'emprises, et l'ordre compte parce que simplify déplace les sommets que vous venez de redresser.

  1. Simplify, tolérance 0,5 m sur imagerie aérienne. Coupe durement le nombre de sommets sans déplacer la limite de façon visible.
  2. Orthogonalize. Redresse les angles proches du droit. Prenez-le sur la donnée ouverte ou le tracé manuel, où rien ne les a encore redressés.
  3. Delete holes, seulement si vous voulez des emprises pleines. Pas sur le résultat de Paris : ces trous sont des cours et ils sont corrects.

Sur un layer détecté, l'étape 2 est proche d'une non-opération. Je l'ai mesuré plutôt que supposé, en passant Orthogonalize sur 190 bâtiments détectés et en comparant les 1 845 angles avant et aprè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.

Les 12 % qui ne sont pas d'équerre sont les maisons en bande accolées. Regardez l'arête en escalier qui descend au milieu de l'îlot. Aucun outil d'angles ne corrige cela, parce que ces marches suivent une vraie ligne de toit plutôt qu'une erreur de modélisation.

Utilisez-la quand : des centaines à des milliers de bâtiments, sur une imagerie à respecter, ou quand plusieurs personnes doivent produire le même layer de la même façon.

Évitez-la quand : il faut un polygone par adresse dans un centre-ville historique. Je n'utiliserais pas la détection automatique pour cela, et la donnée cadastrale plus correction manuelle gagne ici.

Try it free in QGIS, no card needed

Méthode 3 : Digitaliser à la main

Sous cinquante bâtiments, dessinez-les. Gratuit, exact, et je le ferais encore moi-même à cette taille.

Turn on snapping

Project -> Snapping Options, vertex et segment, édition topologique active. Sans cela vous passerez l'après-midi à supprimer des rubans.

Trace, and watch yourself drift

Vers le 60e bâtiment vous commencez à couper des angles que vous n'auriez jamais coupés au 6e, et vous ne le voyez pas. C'est déjà dans le layer.

Utilisez-la quand : sous une cinquantaine de bâtiments, ou quand il faut un polygone par adresse dans un centre historique dense.

Évitez-la quand : le compte se chiffre en centaines, ou quand plusieurs personnes doivent produire le même layer de la même façon.

À retenir

Données ouvertesDétection automatiqueSaisie manuelle
CoûtGratuitOffre gratuite, puis payantGratuit
InstallationMinutesMinutesAucune
Idéal pourZones déjà bien couvertesCentaines à milliersMoins de ~50 bâtiments
Colle à votre imagerieNonOuiOui
Cohérent en équipeOuiOuiNon
Îlots denses continusVariableEnveloppes d'îlots seulementOui
Provenance annonçableJeu et millésimeVotre imagerie, avec un score de confianceVous

Vérifiez d'abord les jeux ouverts. Sur un même quartier ils s'écartent de plusieurs milliers de bâtiments, donc un seul regard sur leurs bords contre votre imagerie décide si vous allez plus loin.

Des emprises qui doivent s'aligner sur l'orthophoto d'un client excluent les jeux ouverts, quelle que soit leur couverture.

Filtrer une détection est l'essentiel du travail : 82 polygones sur 635 sur Paris centre, tenant 84 % de la surface bâtie.

Une image verticale ne peut donner un polygone par adresse là où les bâtiments se touchent, à aucun prix. Joignez plutôt la donnée cadastrale.

Passé une cinquantaine de bâtiments, la saisie manuelle dérive sans vous prévenir.

Questions fréquentes

Est-ce que ça marche sur l'imagerie drone ?

Mieux que sur satellite. La résolution sol compte plus que la source : une orthophoto à 5 cm donne des limites plus nettes et une confiance plus haute qu'une scène satellite à 30 cm.

Faut-il un GPU ?

Non. Les deux modes tournent sur nos serveurs par défaut, et le petit modèle local tourne sur votre propre CPU, plus lent et moins précis. Si tout doit rester sur votre machine, Geo-SAM et samgeo sont gratuits et bons, et ils veulent bien une carte NVIDIA.

Combien coûte une exécution ?

L'automatique compte le terrain couvert par votre zone, et Cloud AI compte un objet par enregistrement. Semi-Auto sur votre propre machine est gratuit. Chaque compte reçoit une dotation gratuite chaque mois.

Puis-je avoir un polygone par adresse ?

Pas depuis une image verticale, dans un centre-ville où les bâtiments se touchent. Le modèle renvoie l'enveloppe bâtie de l'îlot entier, cours découpées, ce qui est juste pour la surface bâtie et faux pour les adresses. Joignez plutôt la donnée cadastrale.

Par quel jeu ouvert commencer ?

OpenStreetMap, si votre zone a des mappeurs actifs. Là où ce n'est pas le cas, l'écart est net : sur ce 1 km² de Luanda OSM ne cartographie aucun bâtiment, tandis que Microsoft en trouve 3 140 et Google Open Buildings 4 468.

Pour l'écart toit-sol en entier, lisez ce qu'est une emprise de bâtiment. Pour le cas du raster classé, où polygonize bat tout modèle, lisez raster vers vecteur dans QGIS. Le hub QGIS AI liste le reste de ce que nous construisons.

Try it free in QGIS, no card needed