Aller au contenu
Retour au blog
AI Segmentation
QGIS
Tutoriel

Détecter piscines dans QGIS : 5 méthodes

Trois vues aériennes du même quartier pavillonnaire : image brute, seuil de bleu qui éclaire piscines et toit bleu, et résultat de segmentation avec seules piscines détourées.

Pour détecter les piscines dans , vérifiez d'abord OpenStreetMap : Vector > QuickOSM > QuickOSM…, clé leisure, valeur swimming_pool. Là où la carte est incomplète, seuillez le bleu dans le raster calculator ou lancez un modèle de segmentation. La résolution sol décide.

Où le web se trompe

Trois réponses reviennent sur les forums et dans les tutoriels, et chacune vous coûte une journée.

« Lancez NDWI sur Sentinel-2 et comptez les piscines. » Green et NIR sont à 10 m et SWIR à 20 m, alors qu'une piscine enterrée neuve fait 29 à 30 m². Soit un tiers de pixel. MNDWI sur un lotissement renvoie le réservoir en lisière de ville et rien dans les jardins.

« Seuiller le bleu suffit à avoir vos piscines. » Une règle de couleur lit la couleur et rien d'autre. Un toit métallique bleu et une bâche sur un tas de bois la passent, une piscine à liner sombre et une piscine verte d'algues la ratent, et une piscine couverte n'est pas du tout dans l'image.

« La détection, c'est la liste. » L'administration fiscale française l'a fait sur photographie IGN et a quand même envoyé un courrier à chaque propriétaire. Une détection est une candidate, et la joindre à une parcelle et à un nom en fait une donnée personnelle.

La réponse courte

Votre donnéeMéthodeCoût
Zone avec mappeurs OSM actifsMéthode 1, QuickOSM sur leisure=swimming_poolGratuit, une requête
Orthophoto RVB de 5 à 30 cmMéthode 2, seuil de bleu dans le raster calculatorGratuit, dans QGIS de base
Imagerie avec bande proche infrarouge ou SWIRMéthode 3, un indice d'eau, puis un seuilGratuit, aveugle aux piscines de jardin sur satellite
Imagerie multispectrale et un après-midiMéthode 4, SCP ou dzetsakaplugins gratuits, votre temps à dessiner les zones d'entraînement
Orthophoto RVB et des centaines de piscinesMéthode 5, un modèle de segmentationplugins gratuits demandent votre propre modèle ou un GPU. Les plugins cloud ont des offres gratuites, puis un abonnement

Comment j'ai comparé

Cinq critères : donnée d'entrée, si l'imagerie quitte votre machine, part du résultat vérifiée à la main, coût, effort d'installation. Chaque version, prix et menu path a été vérifié le 3 septembre 2026 dans le manuel QGIS 3.44 et la doc de chaque outil. J'ai testé les méthodes gratuites sur une orthophoto pavillonnaire française et une scène Sentinel-2 du même îlot.

Nous construisons l'une des cinq, c'est la Méthode 5. Pour un inventaire où quelqu'un signe un chiffre de précision publié, utilisez Mapflow plutôt. Il livre un modèle Swimming pools dédié, sur demande, avec un F1 supérieur à 0.95 affiché. Nous ne publions aucun chiffre pour les piscines.

Avant de commencer

Travaillez en CRS projeté, car trois étapes plus bas filtrent sur la surface en unités du layer. Puis vérifiez la résolution. La fédération française de la piscine donne 29 à 30 m² pour une piscine enterrée neuve, 3 000 pixels sur une orthophoto à 10 cm et un tiers de pixel sur une bande Sentinel-2 à 10 m.

L'administration fiscale française tourne sur photographie aérienne IGN. Son pilote Foncier innovant a taxé 20 356 piscines dans neuf départements pour 2022, pour 9,8 millions d'euros, et le passage national 2023 a trouvé 150 000 piscines taxables manquantes au rôle. Chacune est quand même passée par un courrier au propriétaire.

Méthode 1 : Récupérez les piscines déjà cartographiées

OpenStreetMap porte 3 036 801 objets tagués leisure=swimming_pool, dont 2 731 704 ways avec une vraie géométrie, sur taginfo au 3 septembre 2026.

Open QuickOSM and query

Vector > QuickOSM > QuickOSM…, qui interroge l'Overpass API. Clé leisure, valeur swimming_pool, sur l'emprise du canevas ou une zone administrative nommée.

Keep polygons, filter to gardens

Une piscine cartographiée en node n'a pas de surface, prenez donc le polygon layer. 1 808 809 de ces piscines portent aussi access=private, le filtre pour les piscines de jardin.

leisure=swimming_area est un objet différent : un lieu désigné pour nager dans un lac ou la mer.

A suburban block on satellite imagery with OSM swimming pool polygons in blue over three pools, and seven other visible pools with no polygon at all.
Three pools mapped, seven not. Mappers draw public and hotel pools. Private garden pools are the ones nobody bothers with, and the ones a tax office is looking for.

Utilisez-la quand : vous avez besoin des piscines publiques et commerciales.

Évitez-la quand : le travail est de trouver ce que personne n'a déclaré.

Méthode 2 : Seuiller le bleu dans le raster calculator

Le plus proche du QGIS de base. Ouvrez Raster > Raster Calculator…, où les bandes sont layer_name@band_number. Sur une orthophoto RVB, ceci garde le bleu vif et saturé :

("ortho@3" > 90) AND ("ortho@3" - "ortho@1" > 25) AND ("ortho@3" - "ortho@2" > 10)

Ces chiffres sont les miens, tirés d'une orthophoto à 20 cm. Échantillonnez vingt pixels de piscine et vingt pixels de toit, puis ajustez-les.

Polygonisez avec Raster > Conversion > Polygonize (Raster to Vector), puis filtrez avec native:extractbyexpression : $area > 6 AND $area < 400 pour la taille, et mon propre ratio 4 * pi() * $area / ($perimeter ^ 2) > 0.5 pour la forme, car QGIS ne livre aucune fonction de compacité.

A suburban orthophoto with a red mask from the raster calculator covering every swimming pool, a blue metal roof, and a blue tarpaulin over a woodpile.
The rule above, over 20 cm imagery. It finds every open pool. It also finds a blue metal roof and a tarpaulin.

Les valeurs RVB glissent avec l'angle du soleil et l'exposition, donc un seuil réglé sur une bande de vol casse sur la suivante. Teinte et saturation tiennent mieux, via le module Processing Toolbox i.rgb.his, qui "transforms raster maps from RGB (Red-Green-Blue) color space to HIS (Hue-Intensity-Saturation) color space".

Aucune règle ne sait ce qu'est la chose bleue.

  • Ombre. Les pans de toit ombragés se lisent en bleu sombre. Montez le plancher et vous perdez les piscines sous les arbres.
  • Toits bleus et bâches. Vifs, bleus, souvent de la bonne forme.
  • Piscines à fond sombre et vertes. Un liner noir se lit comme de l'asphalte, les algues comme de la pelouse. Ma règle a raté les deux.
  • Piscines couvertes. Pas du tout dans l'image.
Four tight crops side by side: a blue tarpaulin, a shaded roof slope, a dark-bottom pool and a pool under a grey winter cover, with the threshold mask overlaid on the first two only.
The tarp and the shadow pass the rule and should not. The dark-bottom pool and the covered pool fail it and should not.

Utilisez-la quand : une orthophoto homogène que vous vérifierez à la main.

Évitez-la quand : une mosaïque de plusieurs vols.

Méthode 3 : Un indice d'eau, sur une imagerie qui a les bandes

L'eau absorbe le proche infrarouge presque totalement, elle devient donc noire en NIR alors qu'un toit bleu reste brillant.

  • NDWI, McFeeters 1996 : (Green - NIR) / (Green + NIR). Sur Sentinel-2, (B3 - B8) / (B3 + B8).
  • MNDWI, Xu 2006 : (Green - SWIR) / (Green + SWIR). Sur Sentinel-2, (B3 - B11) / (B3 + B11). Remplacer NIR par SWIR atténue le bâti, l'intérêt sur un lotissement.

Seuillez au-dessus de zéro, polygonisez, filtrez comme en Méthode 2. Rodríguez-Cuenca et Alonso ont réglé un Normalized Difference Swimming Pools Index pour ce travail en 2014.

Sentinel-2 livre B3 et B8 à 10 m et B11 à 20 m, donc une piscine de 30 m² ne se sépare jamais du jardin. MNDWI sur un îlot résidentiel renvoie le réservoir en lisière de ville et rien d'autre.

Two panels of the same suburb: a 20 cm orthophoto with eleven visible pools, and the Sentinel-2 MNDWI of the same extent showing a uniform grey with no pool visible.
Eleven pools on the left, none on the right. Same extent, same week. A 30 m² pool never reaches a 10 m sensor as an object.

Utilisez-la quand : votre orthophoto a une bande NIR à 50 cm ou plus fine. Elle bat la couleur sans débat.

Évitez-la quand : RVB trois bandes, ou Sentinel-2 et vous voulez des piscines de jardin.

Méthode 4 : Entraînez un classifieur sur votre propre imagerie

Un classifieur apprend vos pixels de piscine à partir d'exemples que vous dessinez, il survit donc à une mosaïque qui casse un seuil fixe.

Semi-Automatic Classification Plugin par Luca Congedo est le choix habituel. Créez une entrée d'entraînement (.scpx) dans le dock SCP, dessinez des ROIs, puis lancez SCP > Band processing > Classification dans la fenêtre principale. Six algorithmes, de Minimum Distance à Random Forest. La version 9.0.4 est sortie le 11 juillet 2026 mais déclare un QGIS minimum de 3.99, donc QGIS 3.x installe toujours la 8.5.0.

dzetsaka 5.0.11, par Nicolas Karasiak, est plus léger : onze classifieurs, et son Gaussian Mixture Model tourne sans scikit-learn.

Dessinez aussi une classe toit-bleu et une classe ombre. Un classifieur ne rejette que ce que vous lui avez montré.

The SCP dock in QGIS with a training input listing pool, roof, shadow and vegetation classes, and the classified raster behind it with pool pixels in cyan.
Three classes and a Random Forest over the same 20 cm orthophoto. The blue-roof class does more work than the pool class.

Utilisez-la quand : plusieurs vols ou saisons, et vous réutiliserez le flux.

Évitez-la quand : une orthophoto, un passage. Les deux classent des pixels, pas des objets, vous polygonisez et filtrez donc toujours.

Méthode 5 : Un modèle de segmentation

Un modèle de segmentation lit la forme et le contexte, c'est ainsi qu'il distingue une piscine d'une bâche de même couleur. Nous construisons l'un d'eux, AI Segmentation. Cette section parle de notre propre outil.

Install and sign in

Plugin manager, QGIS 3.22 ou plus récent. Pas de GPU, pas de poids de modèle. Un compte, une allocation gratuite, puis 39 euros par mois hors TVA.

Draw a zone, type the word, filter

Tapez swimming pool et lancez. Les polygones reviennent dans le CRS du projet avec surface, périmètre et score de confiance. Triez, puis supprimez ce qui est faux.

Deux chiffres de notre table de réglage, lue à l'exécution. Un run piscine demande environ 0.13 m par pixel dans des tuiles de 300 m au plus, car une piscine se fond dans sa terrasse à toute résolution plus grossière. La révision ouvre à 0.20 de confiance pour swimming pool contre 0.30 pour building, car les masques de piscine scorent moins que les toits.

A residential block on aerial imagery in QGIS, every backyard swimming pool filled with its own colour, roofs and gardens untouched.
One zone, one word, over 20 cm imagery. Each pool is its own polygon with an area, editable like any vector feature.

Une limite : une piscine couverte n'atteint jamais le modèle, elle revient donc manquée. Les deux modes cloud envoient l'imagerie vers nos serveurs dans l'Union européenne.

Two neighbouring gardens: the open pool on the left outlined in the detection layer, the pool under a grey winter cover on the right with no polygon.
Left, detected. Right, a pool under a cover. Nothing in the image says it is there, and no method on this page finds it.

Quatre autres font ce travail, vérifiés le 3 septembre 2026.

OutilCe que vous installezGPUCompteL'imagerie quitte votre machineSupport piscineCoût
DeepnessPlugin manager, ses packages Python, un modèle ONNXOptionnel, CPU suffitNonNonLe modèle que vous fournissezGratuit
Geo-SAMPlugin manager, dépendances, poids de modèleOptionnelNonNonUn objet par clic ou boîteGratuit
samgeoUn package Python, pas de panneau QGISRecommandéNonNonScriptable, pas de classe piscineGratuit
MapflowPlugin managerNonOuiOuiUn modèle Swimming pools, sur demandeCrédits, payant
AI Segmentation (le nôtre)Plugin managerNonOuiOui dans les deux modes cloud, non pour le modèle localTapez swimming poolAllocation gratuite, puis 39 euros par mois hors TVA

Utilisez-la quand : plus de piscines que vous n'en détoureriez à la main.

Évitez-la quand : l'imagerie ne peut pas quitter votre machine. Utilisez Deepness ou Geo-SAM.

Les cinq méthodes côte à côte

Ce que vous avezMéthode
Une ville bien cartographiée, les piscines publiques suffisentMéthode 1, QuickOSM
Une orthophoto RVB plus fine que 30 cmMéthode 2, seuil de couleur, puis filtre
Une orthophoto avec bande NIRMéthode 3, NDWI
Sentinel-2 ou tout à 10 mAucune pour les piscines de jardin. Prenez une imagerie plus fine
Plusieurs vols, un flux à répéterMéthode 4, SCP ou dzetsaka
Des centaines de piscines et aucune patience pour les faux positifsMéthode 5, un modèle de segmentation

À retenir

La résolution décide d'abord, puis les bandes, puis la part de vérification manuelle que vous pouvez absorber.

Une piscine de 30 m² ne se sépare jamais de son jardin à 10 m, donc Sentinel-2 est le mauvais capteur pour les piscines de jardin, quel que soit l'indice.

Un seuil de couleur renvoie tout objet bleu du quartier, filtrez donc sur la surface et la compacité avant de regarder le résultat.

Une piscine couverte manque à l'imagerie, donc aucune méthode de cette page ne la trouve et aucun prix n'y change rien.

Une détection est une candidate. Quoi que vous lanciez, ouvrez les dix polygones à plus faible confiance avant que quiconque n'agisse sur le layer.

Try it free in QGIS, no card needed

Questions fréquentes

QGIS peut-il détecter les piscines seul ?

Pas comme fonction. Le QGIS de base vous donne le raster calculator, polygonize et les filtres vecteur, c'est la Méthode 2. Reconnaître une piscine comme objet demande un plugin.

Puis-je trouver des piscines de jardin dans l'imagerie Sentinel-2 ?

Non. Green et NIR sont des bandes à 10 m et SWIR à 20 m, donc une piscine de 30 m² fait un tiers de pixel. Utilisez une imagerie aérienne à 30 cm ou mieux.

Pourquoi les toits bleus reviennent-ils comme piscines ?

Un toit métallique peint est plus vif et plus bleu que l'eau de piscine, et une règle de couleur ne lit que la couleur. Filtrez sur surface et compacité, passez à NDWI, ou utilisez un modèle.

Est-il légal de détecter les piscines depuis l'imagerie aérienne ?

Joignez une détection à une parcelle et au nom d'un propriétaire et elle devient une donnée personnelle, qui dans l'UE exige une base légale sous GDPR. Une administration fiscale en a une inscrite dans la loi. Une entreprise privée généralement non, demandez donc à votre délégué à la protection des données avant la jointure, et ne laissez jamais la sortie d'un modèle être la dernière étape avant une facture.

Quelle précision attendre ?

Un seul chiffre serait faux, car il bouge avec votre imagerie et la saison. Les piscines ouvertes à 20 cm reviennent bien, les piscines couvertes sont ratées par tout ici, et les toits bleus sont ce que vous supprimez à la main.

Pour l'étape de filtrage en détail, lisez détecter les emprises de bâtiments dans QGIS. Pour le nettoyage derrière tout masque, passer de raster à vecteur dans QGIS. Le hub QGIS AI a le reste.