Pular para o conteúdo
Voltar ao blog
AI Segmentation
QGIS
Tutorial

Detectar piscinas no QGIS: 5 métodos

Três painéis do mesmo quarteirão suburbano vistos do alto: imagem pura, um limiar de cor destacando as piscinas e um telhado azul, e um resultado de segmentação com apenas as piscinas contornadas.

Para detectar piscinas em , consulte o OpenStreetMap primeiro: Vector > QuickOSM > QuickOSM…, chave leisure, valor swimming_pool. Onde o mapa é falho, limiarize o azul na calculadora raster ou rode um modelo de segmentação. A resolução do terreno decide qual usar.

Onde a web erra

Três respostas se repetem em fóruns e tutoriais, e cada uma custa um dia de trabalho.

"Rode NDWI no Sentinel-2 e conte as piscinas." Verde e NIR vêm a 10 m e SWIR a 20 m, enquanto uma piscina enterrada nova tem 29 a 30 m². Isso é um terço de pixel. MNDWI sobre um subúrbio retorna o reservatório na saída da cidade e nada nos jardins.

"Limiarize o azul e pronto." Uma regra de cor lê cor e nada mais. Um telhado metálico azul e uma lona sobre lenha passam, uma piscina com fundo escuro e uma piscina verde de algas não passam, e uma piscina coberta nem aparece na imagem.

"A detecção é a lista." A administração fiscal francesa rodou isso em fotografia do IGN e mesmo assim mandou carta a cada proprietário. Uma detecção é uma candidata, e juntá-la a um lote e a um nome a transforma em dado pessoal.

A resposta curta

Sua entradaMétodoCusto
Qualquer área com mapeadores OSM ativosMétodo 1, QuickOSM em leisure=swimming_poolGrátis, uma consulta
Ortofoto RGB de 5 a 30 cmMétodo 2, limiar de cor na calculadora rasterGrátis, no núcleo do QGIS
Imagem com banda de infravermelho próximo ou SWIRMétodo 3, um índice de água, depois um limiarGrátis, cego para piscinas de jardim no satélite
Imagem multiespectral e uma tarde livreMétodo 4, SCP ou dzetsakaplugins gratuitos, seu tempo desenhando áreas de treino
Ortofoto RGB e centenas de piscinasMétodo 5, um modelo de segmentaçãoplugins gratuitos exigem seu próprio modelo ou uma GPU. plugins em nuvem têm faixas gratuitas, depois assinatura

Como comparei

Cinco critérios: entrada, se a imagem sai da sua máquina, quanto da saída você confere à mão, custo, esforço de instalação. Cada versão, preço e caminho de menu foi conferido em 3 de setembro de 2026 no manual do QGIS 3.44 e na documentação de cada ferramenta. Rodei os métodos gratuitos em uma ortofoto suburbana francesa e em uma cena Sentinel-2 do mesmo quarteirão.

Nós construímos um dos cinco, o Método 5. Para uma varredura em que alguém assina um número publicado de acurácia, use Mapflow. Ele entrega um modelo dedicado Swimming pools, sob demanda, com F1 acima de 0.95 ao lado. Nós não publicamos número para piscinas.

Antes de começar

Trabalhe em um CRS projetado, pois três etapas abaixo filtram por área em unidades do layer. Depois confira a resolução. A federação francesa de piscinas indica 29 a 30 m² para uma piscina enterrada nova, 3.000 pixels em uma ortofoto a 10 cm e um terço de pixel em uma banda Sentinel-2 a 10 m.

A administração fiscal francesa roda isso em fotografia aérea do IGN. Seu piloto Foncier innovant tributou 20.356 piscinas em nove departamentos em 2022, no valor de 9,8 milhões de euros, e a passagem nacional de 2023 achou 150.000 piscinas tributáveis fora do cadastro. Cada uma ainda passou por uma carta ao proprietário.

Método 1: Puxe as piscinas que alguém já mapeou

O OpenStreetMap tem 3.036.801 objetos marcados com leisure=swimming_pool, 2.731.704 deles como ways com geometria real, no taginfo em 3 de setembro de 2026.

Open QuickOSM and query

Vector > QuickOSM > QuickOSM…, which queries the Overpass API. Key leisure, value swimming_pool, on the canvas extent or a named administrative area.

Keep polygons, filter to gardens

A pool mapped as a node has no area, so take the polygon layer. 1,808,809 of these pools also carry access=private, the filter for backyard pools.

leisure=swimming_area é outro objeto: um local designado para nadar em um lago ou no mar.

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.

Use quando: você precisa de piscinas públicas e comerciais.

Pule quando: o trabalho é achar o que ninguém declarou.

Método 2: Limiarize o azul na calculadora raster

O mais próximo que o núcleo do QGIS chega. Abra Raster > Raster Calculator…, where bands are layer_name@band_number. On an RGB orthophoto this keeps bright, saturated blue:

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

Esses números são meus, de uma ortofoto a 20 cm. Amostre vinte pixels de piscina e vinte pixels de telhado, depois ajuste.

Polygonize com Raster > Conversion > Polygonize (Raster to Vector), then filter with native:extractbyexpression: $area > 6 AND $area < 400 for size, and my own ratio 4 * pi() * $area / ($perimeter ^ 2) > 0.5 for shape, since QGIS ships no compactness function.

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.

Valores RGB mudam com ângulo de sol e exposição, então um limiar ajustado em uma faixa de voo quebra na seguinte. Matiz e saturação aguentam melhor, via o módulo da Caixa de Ferramentas de Processamento i.rgb.his, which "transforms raster maps from RGB (Red-Green-Blue) color space to HIS (Hue-Intensity-Saturation) color space".

Nenhuma regra sabe o que é a coisa azul.

  • Sombra. Telhados sombreados parecem azul-escuro. Suba o piso e você perde piscinas sob árvores.
  • Telhados azuis e lonas. Claros, azuis, muitas vezes com o formato certo.
  • Piscinas escuras e verdes. Revestimento preto parece asfalto, alga parece gramado. Minha regra perdeu ambas.
  • Piscinas cobertas. Nem estão na imagem.
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.

Use quando: uma ortofoto consistente que você vai conferir à mão.

Pule quando: um mosaico de vários voos.

Método 3: Um índice de água, em imagem com as bandas

Água absorve infravermelho próximo quase por completo, então fica preta no NIR enquanto um telhado azul continua claro.

  • NDWI, McFeeters 1996: (Green - NIR) / (Green + NIR). On Sentinel-2, (B3 - B8) / (B3 + B8).
  • MNDWI, Xu 2006: (Green - SWIR) / (Green + SWIR). On Sentinel-2, (B3 - B11) / (B3 + B11). Swapping NIR for SWIR suppresses built-up land, the point over a suburb.

Limiarize acima de zero, polygonize, filtre como no Método 2. Rodríguez-Cuenca e Alonso ajustaram um Normalized Difference Swimming Pools Index para esse trabalho em 2014.

Sentinel-2 entrega B3 e B8 a 10 m e B11 a 20 m, então uma piscina de 30 m² nunca se separa do jardim. MNDWI sobre um quarteirão residencial retorna o reservatório na saída da cidade e nada mais.

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.

Use quando: sua ortofoto tem banda NIR a 50 cm ou melhor. Ganha da cor com folga.

Pule quando: RGB de três bandas, ou Sentinel-2 para piscinas de jardim.

Método 4: Treine um classificador na sua própria imagem

Um classificador aprende seus pixels de piscina a partir de exemplos que você desenha, então sobrevive a um mosaico que quebra um limiar fixo.

Semi-Automatic Classification Plugin by Luca Congedo is the usual choice. Create a training input (.scpx) in the SCP dock, draw ROIs, then run SCP > Band processing > Classification in the main window. Six algorithms, from Minimum Distance to Random Forest. Version 9.0.4 shipped 11 July 2026 but declares a QGIS minimum of 3.99, so QGIS 3.x still installs 8.5.0.

dzetsaka 5.0.11, by Nicolas Karasiak, is lighter: eleven classifiers, and its Gaussian Mixture Model runs without scikit-learn.

Desenhe também uma classe de telhado azul e uma classe de sombra. Um classificador só rejeita o que você mostrou.

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.

Use quando: vários voos ou estações, e você vai reutilizar o fluxo.

Pule quando: uma ortofoto, uma passagem. Ambos classificam pixels, não objetos, então você ainda polygoniza e filtra.

Método 5: Um modelo de segmentação

Um modelo de segmentação lê forma e contexto, e é assim que separa uma piscina de uma lona da mesma cor. Nós construímos um desses, AI Segmentation. This section is about our own tool.

Install and sign in

Plugin manager, QGIS 3.22 or later. No GPU, no model weights. An account, a free allowance, then 39 euros a month excluding VAT.

Draw a zone, type the word, filter

Type swimming pool and run. Polygons come back in the project CRS with area, perimeter and a confidence score. Sort, then delete what is wrong.

Dois números da nossa tabela de ajuste, lidos em execução. Uma rodada de piscina pede cerca de 0,13 m por pixel em quadros de no máximo 300 m, porque a piscina se dissolve no terraço em qualquer resolução mais grosseira. A revisão abre em 0,20 de confiança para swimming pool against 0.30 for building, since pool masks score lower than roofs.

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.

Um limite: piscina coberta nunca chega ao modelo, então volta como perda. Ambos os modos em nuvem enviam imagens aos nossos servidores na União Europeia.

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.

Quatro outros fazem esse trabalho, conferidos em 3 de setembro de 2026.

FerramentaO que você instalaGPUContaA imagem sai da sua máquinaSuporte a piscinasCusto
DeepnessGerenciador de plugin, seus pacotes Python, um modelo ONNXOpcional, CPU funcionaNãoNãoQualquer modelo que você fornecerGrátis
Geo-SAMGerenciador de plugin, dependências, pesos do modeloOpcionalNãoNãoUm objeto por clique ou caixaGrátis
samgeoUm pacote Python, sem painel no QGISRecomendadaNãoNãoProgramável, sem classe de piscinaGrátis
MapflowGerenciador de pluginNãoSimSimUm modelo Swimming pools, sob demandaCréditos, pago
AI Segmentation (ours)Gerenciador de pluginNãoSimSim nos dois modos em nuvem, não para o modelo localDigite swimming poolFranquia gratuita, depois 39 euros por mês sem IVA

Use quando: mais piscinas do que você contornaria à mão.

Pule quando: a imagem não pode sair da sua máquina. Use Deepness ou Geo-SAM.

Os cinco métodos lado a lado

O que você temMétodo
Uma cidade bem mapeada, piscinas públicas bastamMétodo 1, QuickOSM
Uma ortofoto RGB melhor que 30 cmMétodo 2, limiar de cor, depois filtre
Uma ortofoto com banda NIRMétodo 3, NDWI
Sentinel-2 ou qualquer coisa a 10 mNenhum deles para piscinas de jardim. Busque imagem mais fina
Vários voos, um fluxo para repetirMétodo 4, SCP ou dzetsaka
Centenas de piscinas e sem paciência para falsos positivosMétodo 5, um modelo de segmentação

O que lembrar

Resolução decide primeiro, depois as bandas, depois quanto de conferência manual você aguenta.

Uma piscina de 30 m² nunca se separa do jardim a 10 m, então Sentinel-2 é o sensor errado para piscinas de quintal, qualquer que seja o índice.

Um limiar de cor retorna tudo que é azul no quarteirão, então filtre por área e compacidade antes de olhar o resultado.

Piscina coberta está fora da imagem, então nenhum método desta página a acha e nenhum preço muda isso.

Uma detecção é uma candidata. Qualquer que seja o método, abra os dez polígonos de menor confiança antes de agir sobre o layer.

Try it free in QGIS, no card needed

Perguntas frequentes

O QGIS detecta piscinas sozinho?

Não como recurso. O núcleo do QGIS dá a calculadora raster, polygonize e os filtros vetoriais, que é o Método 2. Reconhecer uma piscina como objeto exige um plugin.

Dá para achar piscinas de quintal em imagem Sentinel-2?

Não. Verde e NIR são bandas de 10 m e SWIR é de 20 m, então uma piscina de 30 m² é um terço de pixel. Use imagem aérea a 30 cm ou melhor.

Por que telhados azuis voltam como piscinas?

Um telhado metálico pintado é mais claro e mais azul que água de piscina, e uma regra de cor só lê cor. Filtre por área e compacidade, migre para NDWI ou use um modelo.

Junte uma detecção a um lote e ao nome do dono e vira dado pessoal, que na UE exige base legal sob o GDPR. Uma administração fiscal tem uma escrita em lei. Uma empresa privada em geral não, então fale com seu encarregado de proteção de dados antes da junção, e nunca deixe a saída de um modelo ser a última etapa antes de uma cobrança.

Que acurácia devo esperar?

Um número só seria falso, pois muda com sua imagem e a estação. Piscinas abertas a 20 cm voltam bem, piscinas cobertas passam batido em tudo aqui, e telhados azuis são o que você apaga à mão.

Para a etapa de filtragem completa, leia detecting building footprints in QGIS. Para a limpeza por trás de qualquer máscara, raster to vector in QGIS. O QGIS AI hub tem o resto.