Lewati ke konten
AI Segmentation
QGIS
Tutorial

Deteksi Kolam Renang di QGIS: 5 Metode

Tiga panel blok pinggiran kota yang sama dari udara: citra asli, threshold warna yang menyorot kolam dan atap biru, dan hasil segmentasi yang hanya menggariskan kolam.

Untuk mendeteksi kolam renang di , cek OpenStreetMap dulu: Vector > QuickOSM > QuickOSM…, key leisure, value swimming_pool. Jika peta jarang, threshold warna biru di raster calculator atau jalankan model segmentasi. Resolusi dasar yang menentukan.

Di mana web sering salah

Tiga jawaban berulang di forum dan tutorial, dan masing-masing bisa membuang waktu sehari.

"Jalankan NDWI di Sentinel-2 lalu hitung kolamnya." Green dan NIR ada di 10 m dan SWIR di 20 m, sementara kolam tanam baru berukuran 29 sampai 30 m². Itu sepertiga piksel. MNDWI di pinggiran kota hanya mengembalikan waduk di pinggir kota dan tidak ada apa pun di taman.

"Threshold warna biru maka kolam ketemu." Aturan warna hanya membaca warna dan tidak ada yang lain. Atap logam biru dan terpal di atas tumpukan kayu lolos, kolam berlapis gelap dan kolam hijau beralga gagal, dan kolam tertutup memang tidak ada di citra sama sekali.

"Deteksi adalah daftarnya." Administrasi pajak Prancis menjalankan ini di foto udara IGN dan tetap mengirim surat ke setiap pemilik. Deteksi adalah kandidat, dan menggabungkannya ke bidang dan nama menjadikannya data pribadi.

Jawaban singkat

Input AndaMetodeBiayanya
Area mana pun dengan mapper OSM aktifMetode 1, QuickOSM untuk leisure=swimming_poolGratis, satu query
Ortofoto RGB 5 sampai 30 cmMetode 2, threshold warna di raster calculatorGratis, di inti QGIS
Citra dengan band inframerah-dekat atau SWIRMetode 3, indeks air, lalu thresholdGratis, buta terhadap kolam taman di satelit
Citra multispektral dan waktu satu soreMetode 4, SCP atau dzetsakaplugin gratis, waktu Anda menggambar area latih
Ortofoto RGB dan ratusan kolamMetode 5, model segmentasiplugin gratis butuh model sendiri atau GPU. plugin cloud ada tier gratis, lalu langganan

Cara saya membandingkannya

Lima kriteria: input, apakah citra keluar dari mesin Anda, seberapa banyak output yang Anda cek manual, biaya, upaya pemasangan. Setiap versi, harga, dan jalur menu saya baca pada 3 September 2026 dari manual QGIS 3.44 dan dok tiap alat. Saya menjalankan metode gratis pada ortofoto pinggiran Prancis dan adegan Sentinel-2 di blok yang sama.

Kami membangun salah satu dari lima itu, yaitu Metode 5. Untuk penyapuan di mana seseorang menandatangani angka akurasi publikasi, gunakan Mapflow sebagai gantinya. Ia membawa model Swimming pools khusus, on request, dengan F1 di atas 0.95 di sebelahnya. Kami tidak memublikasikan angka untuk kolam.

Sebelum mulai

Bekerja di CRS proyeksi, karena tiga langkah di bawah memfilter luas dalam unit layer. Lalu cek resolusi. Federasi kolam Prancis menetapkan kolam tanam baru pada 29 sampai 30 m², 3.000 piksel pada ortofoto 10 cm dan sepertiga piksel pada band 10 m Sentinel-2.

Administrasi pajak Prancis menjalankan ini pada foto udara IGN. Pilot Foncier innovant-nya memajaki 20.356 kolam di sembilan departemen untuk 2022, senilai 9,8 juta euro, dan lintasan nasional 2023 menemukan 150.000 kolam kena pajak yang hilang dari daftar. Masing-masing tetap melalui surat ke pemilik.

Metode 1: Tarik kolam yang sudah dipetakan orang

OpenStreetMap membawa 3.036.801 objek bertag leisure=swimming_pool, 2.731.704 di antaranya ways dengan geometri nyata, di taginfo pada 3 September 2026.

Open QuickOSM and query

Vector > QuickOSM > QuickOSM…, yang melakukan query ke Overpass API. Key leisure, value swimming_pool, pada luas kanvas atau area administratif bernama.

Keep polygons, filter to gardens

Kolam yang dipetakan sebagai node tidak punya luas, jadi ambil layer poligon. 1.808.809 kolam ini juga membawa access=private, filter untuk kolam halaman belakang.

leisure=swimming_area adalah objek berbeda: tempat khusus berenang di danau atau laut.

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.

Gunakan saat: Anda butuh kolam publik dan komersial.

Lewati saat: tugasnya menemukan yang tidak pernah dideklarasikan.

Metode 2: Threshold biru di raster calculator

Yang paling dekat dari inti QGIS. Buka Raster > Raster Calculator…, di mana band ditulis sebagai layer_name@band_number. Pada ortofoto RGB ini menyimpan biru terang yang jenuh:

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

Angka itu milik saya, dari ortofoto 20 cm. Sampel dua puluh piksel kolam dan dua puluh piksel atap, lalu geser.

Polygonize dengan Raster > Conversion > Polygonize (Raster to Vector), lalu filter dengan native:extractbyexpression: $area > 6 AND $area < 400 untuk ukuran, dan rasio saya sendiri 4 * pi() * $area / ($perimeter ^ 2) > 0.5 untuk bentuk, karena QGIS tidak membawa fungsi kekompakan.

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.

Nilai RGB bergeser dengan sudut matahari dan eksposur, jadi threshold yang disetel pada satu jalur terbang rusak di jalur berikut. Hue dan saturasi lebih tahan, lewat modul Processing Toolbox i.rgb.his, yang "transforms raster maps from RGB (Red-Green-Blue) color space to HIS (Hue-Intensity-Saturation) color space".

Tidak ada aturan yang tahu benda biru itu apa.

  • Bayangan. Lereng atap yang teduh terbaca biru gelap. Naikkan batas bawah dan Anda kehilangan kolam di bawah pohon.
  • Atap biru dan terpal. Terang, biru, sering bentuknya pas.
  • Kolam dasar gelap dan hijau. Liner hitam terbaca sebagai aspal, alga sebagai rumput. Aturan saya melewatkan keduanya.
  • Kolam tertutup. Memang tidak ada di citra sama sekali.
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.

Gunakan saat: satu ortofoto konsisten yang akan Anda cek manual.

Lewati saat: mosaik dari beberapa penerbangan.

Metode 3: Indeks air, pada citra yang punya band-nya

Air menyerap inframerah-dekat hampir total, jadi ia menjadi hitam di NIR sementara atap biru tetap terang.

  • NDWI, McFeeters 1996: (Green - NIR) / (Green + NIR). Pada Sentinel-2, (B3 - B8) / (B3 + B8).
  • MNDWI, Xu 2006: (Green - SWIR) / (Green + SWIR). Pada Sentinel-2, (B3 - B11) / (B3 + B11). Menukar NIR dengan SWIR menekan lahan terbangun, intinya di pinggiran kota.

Threshold di atas nol, polygonize, filter seperti pada Metode 2. Rodríguez-Cuenca dan Alonso menyetel Normalized Difference Swimming Pools Index untuk tugas ini pada 2014.

Sentinel-2 memberikan B3 dan B8 di 10 m dan B11 di 20 m, jadi kolam 30 m² tidak pernah lepas dari taman. MNDWI di blok permukiman hanya mengembalikan waduk di pinggir kota dan tidak ada yang lain.

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.

Gunakan saat: ortofoto Anda punya band NIR pada 50 cm atau lebih rinci. Ia mengalahkan warna telak.

Lewati saat: RGB tiga band, atau Sentinel-2 dan Anda menginginkan kolam taman.

Metode 4: Latih klasifier pada citra sendiri

Klasifier mempelajari piksel kolam Anda dari contoh yang Anda gambar, jadi ia tahan terhadap mosaik yang merusak threshold tetap.

Semi-Automatic Classification Plugin oleh Luca Congedo adalah pilihan umum. Buat training input (.scpx) di SCP dock, gambar ROI, lalu jalankan SCP > Band processing > Classification di jendela utama. Enam algoritma, dari Minimum Distance sampai Random Forest. Versi 9.0.4 terbit 11 Juli 2026 tetapi menyatakan minimum QGIS 3.99, jadi QGIS 3.x tetap memasang 8.5.0.

dzetsaka 5.0.11, oleh Nicolas Karasiak, lebih ringan: sebelas klasifier, dan Gaussian Mixture Model-nya berjalan tanpa scikit-learn.

Gambar juga kelas atap-biru dan kelas bayangan. Klasifier hanya menolak yang Anda tunjukkan.

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.

Gunakan saat: beberapa penerbangan atau musim, dan Anda akan memakai ulang alur kerja.

Lewati saat: satu ortofoto, satu lintasan. Keduanya mengklasifikasi piksel, bukan objek, jadi Anda tetap melakukan polygonize dan filter.

Metode 5: Model segmentasi

Model segmentasi membaca bentuk dan konteks, caranya ia membedakan kolam dari terpal dengan warna sama. Kami membangun salah satunya, AI Segmentation. Bagian ini tentang alat kami sendiri.

Install and sign in

Manajer plugin, QGIS 3.22 atau lebih baru. Tanpa GPU, tanpa bobot model. Sebuah akun, jatah gratis, lalu 39 euro per bulan belum termasuk PPN.

Draw a zone, type the word, filter

Ketik swimming pool dan jalankan. Poligon kembali dalam CRS proyek dengan luas, keliling, dan skor confidence. Urutkan, lalu hapus yang salah.

Dua angka dari tabel tuning kami, dibaca saat runtime. Run kolam meminta sekitar 0,13 m per piksel dalam tile maksimal 300 m, karena kolam melebur ke terasnya pada yang lebih kasar. Review terbuka pada confidence 0,20 untuk swimming pool melawan 0,30 untuk building, karena masker kolam skornya lebih rendah daripada atap.

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.

Satu batas: kolam tertutup tidak pernah sampai ke model, jadi ia kembali terlewat. Kedua mode cloud mengirim citra ke server kami di Uni Eropa.

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.

Empat lainnya mengerjakan tugas ini, dibaca 3 September 2026.

AlatYang Anda pasangGPUAkunCitra keluar dari mesin AndaDukungan kolamBiaya
DeepnessManajer plugin, paket Python-nya, model ONNXOpsional, CPU jalanTidakTidakModel apa pun yang Anda pasokGratis
Geo-SAMManajer plugin, dependensi, bobot modelOpsionalTidakTidakSatu objek per klik atau kotakGratis
samgeoPaket Python, tanpa panel QGISDianjurkanTidakTidakScriptable, tanpa kelas kolamGratis
MapflowManajer pluginTidakYaYaModel Swimming pools, on requestKredit, berbayar
AI Segmentation (milik kami)Manajer pluginTidakYaYa di kedua mode cloud, tidak untuk model lokalKetik swimming poolJatah gratis, lalu 39 euro per bulan belum termasuk PPN

Gunakan saat: kolam lebih banyak daripada yang mau Anda digitasi manual.

Lewati saat: citra tidak boleh keluar dari mesin Anda. Gunakan Deepness atau Geo-SAM.

Lima metode bersisian

Yang Anda punyaMetode
Kota terpetakan baik, kolam publik cukupMetode 1, QuickOSM
Satu ortofoto RGB lebih rinci dari 30 cmMetode 2, threshold warna, lalu filter
Ortofoto dengan band NIRMetode 3, NDWI
Sentinel-2 atau apa pun di 10 mTidak ada untuk kolam taman. Cari citra lebih rinci
Beberapa penerbangan, alur kerja yang akan diulangMetode 4, SCP atau dzetsaka
Ratusan kolam dan tanpa sabar untuk false positiveMetode 5, model segmentasi

Yang perlu diingat

Resolusi menentukan dulu, lalu band, lalu seberapa banyak cek manual yang bisa Anda serap.

Kolam 30 m² tidak pernah lepas dari tamannya pada 10 m, jadi Sentinel-2 adalah sensor yang salah untuk kolam halaman belakang apa pun indeksnya.

Threshold warna mengembalikan setiap benda biru di blok, jadi filter luas dan kekompakan sebelum Anda melihat hasilnya.

Kolam tertutup hilang dari citra, jadi tidak ada metode di halaman ini yang menemukannya dan tidak ada harga yang mengubah itu.

Deteksi adalah kandidat. Apa pun yang Anda jalankan, buka sepuluh poligon confidence terendah sebelum siapa pun bertindak atas layer itu.

Try it free in QGIS, no card needed

Pertanyaan yang sering ditanyakan

Bisakah QGIS mendeteksi kolam renang sendiri?

Bukan sebagai fitur. Inti QGIS memberi Anda raster calculator, polygonize, dan filter vektor, yaitu Metode 2. Mengenali kolam sebagai objek butuh plugin.

Bisakah saya menemukan kolam halaman belakang di citra Sentinel-2?

Tidak. Green dan NIR adalah band 10 m dan SWIR 20 m, jadi kolam 30 m² adalah sepertiga piksel. Gunakan foto udara pada 30 cm atau lebih baik.

Mengapa atap biru terus kembali sebagai kolam?

Atap logam dicat lebih terang dan lebih biru daripada air kolam, dan aturan warna hanya membaca warna. Filter luas dan kekompakan, pindah ke NDWI, atau gunakan model.

Gabungkan deteksi ke bidang dan nama pemilik maka ia menjadi data pribadi, yang di UE butuh dasar hukum di bawah GDPR. Administrasi pajak punya dasar yang ditulis dalam undang-undang. Perusahaan swasta biasanya tidak, jadi tanya petugas perlindungan data Anda sebelum join, dan jangan pernah biarkan output model menjadi langkah terakhir sebelum tagihan.

Akurasi seperti apa yang bisa saya harapkan?

Satu angka akan salah, karena ia bergerak dengan citra dan musim Anda. Kolam terbuka pada 20 cm kembali dengan baik, kolam tertutup terlewat oleh semua di sini, dan atap biru adalah yang Anda hapus manual.

Untuk langkah pemfilteran selengkapnya, baca mendeteksi footprint bangunan di QGIS. Untuk pembersihan di balik masker apa pun, raster ke vektor di QGIS. Sisanya ada di QGIS AI hub.