Lewati ke konten
AI Segmentation
QGIS
Tutorial

Deteksi kolam renang di QGIS: 5 metode

Diterbitkan Diperbarui

Rumah-rumah pinggiran kota dengan kebun belakang dilihat dari udara, sebelum dan sesudah deteksi kolam renang otomatis (after)
Rumah-rumah pinggiran kota dengan kebun belakang dilihat dari udara, sebelum dan sesudah deteksi kolam renang otomatis (before)
CitraTerdeteksi
Geser untuk membandingkan
Satu proses otomatis pada blok pinggiran kota di Long Island, di citra Google Satellite. Empat puluh kolam digaris magenta, termasuk yang kecil di bawah pohon. Geser handle untuk membandingkan.

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

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

Setiap versi, harga, dan jalur menu saya baca pada 3 September 2026 dari manual QGIS 3.44 dan dok tiap alat.

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.

Buka QuickOSM dan jalankan query

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

Ambil poligon, filter ke kebun

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.

Blok pinggiran kota pada citra satelit dengan poligon kolam renang OSM berwarna biru di atas tiga kolam, dan tujuh kolam lain yang terlihat tanpa poligon sama sekali.
Tiga kolam terpetakan, tujuh tidak. Mapper menggambar kolam publik dan kolam hotel. Kolam kebun pribadi tidak ada yang repot memetakan, padahal itulah yang dicari kantor pajak.

Gunakan saat: Anda butuh kolam publik dan komersial.

Lewati saat: tugasnya menemukan yang tidak pernah dideklarasikan.

Metode 2: 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.

Instal dan masuk

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

Gambar zona, ketik katanya, 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.

Blok permukiman pada foto udara di QGIS, setiap kolam renang halaman belakang terisi warnanya sendiri, atap dan kebun tidak tersentuh.
Satu zona, satu kata, di atas citra 20 cm. Setiap kolam menjadi poligonnya sendiri dengan luas, dan bisa diedit seperti feature vektor lain.

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

Dua panel dari tiga kebun yang sama. Pada citra musim dingin dua kolam memiliki garis deteksi cyan sementara kolam yang dilingkari di bawah penutup cokelat muda tidak ada. Pada citra musim panas titik yang dilingkari itu adalah air biru terbuka.
Kebun yang sama, dua citra. Kolam yang dilingkari berada di bawah penutup pada musim dingin dan proses melewatinya. Di seluruh tile prompt yang sama menghasilkan 58 kolam pada citra musim panas dan 2 pada citra musim dingin, meskipun kedua citra berasal dari penyedia yang berbeda dan musim yang berbeda.

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 pluginTidakYaYa di layanan cloud, on-premise enterprise ditawarkanModel Swimming pools, on requestKredit, berbayar
AI Segmentation (milik kami)Manajer pluginTidakYaYa di kedua mode cloud, tidak untuk model lokalKetik swimming poolJatah gratis, lalu €39 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.

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.

Metode 3: Threshold biru di raster calculator

Bekerja di CRS proyeksi, karena tiga langkah di bawah memfilter luas dalam unit layer.

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.

Ortofoto pinggiran kota dengan mask merah dari raster calculator yang menutupi setiap kolam renang, satu atap logam biru, dan satu terpal biru di atas tumpukan kayu.
Aturan di atas, pada citra 20 cm. Ia menemukan setiap kolam terbuka. Ia juga menemukan atap logam biru dan terpal.

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.
Tiga potongan rapat berdampingan: terpal biru di atas kebun, sisi atap yang teduh, dan kolam berdinding gelap di kebun.
Terpal dan bayangan lolos aturan warna padahal seharusnya tidak. Kolam berdinding gelap gagal padahal seharusnya tidak. Potongan dari citra 20 cm di atas Cape Coral, Florida.

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

Lewati saat: mosaik dari beberapa penerbangan.

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

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.

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 3. 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.

Dua panel dari pinggiran kota yang sama: ortofoto 20 cm dengan sebelas kolam terlihat, dan MNDWI Sentinel-2 pada extent yang sama yang tampil abu-abu seragam tanpa satu pun kolam.
Sebelas kolam di kiri, tidak ada di kanan. Extent sama, minggu sama. Kolam 30 m² tidak pernah sampai ke sensor 10 m sebagai objek.

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 5: 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.

Dua panel dari suburb yang sama: ortofoto 20 cm, dan klasifikasi minimum distance dengan kelas kolam berwarna cyan, di mana satu atap biru-abu-abu tampil lebih besar daripada kedua kolam asli di sebelahnya.
Klasifikasi minimum distance dari ortofoto 20 cm yang sama, dengan kelas kolam dilatih pada 58 kolam di tile ini. Di seluruh tile, 46% piksel yang disebut kolam bukan kolam, dan sebagian besar adalah atap biru-abu-abu, seperti yang di tengah ini.

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.

Lima metode bersisian

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

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.

Coba gratis di QGIS, tanpa kartu kredit

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 3. 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.

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.

Apakah hasil deteksi sudah menjadi daftar kolam yang bisa langsung ditindaklanjuti?

Administrasi pajak Prancis menjalankan ini di foto udara IGN dan tetap mengirim surat ke setiap pemilik. 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. Deteksi adalah kandidat, dan menggabungkannya ke bidang dan nama menjadikannya data pribadi.

Untuk langkah pemfilteran selengkapnya, baca mendeteksi footprint bangunan di QGIS. Untuk pembersihan di balik masker apa pun, raster ke vektor di QGIS. Untuk menjalankan proses deteksi lalu filter yang sama pada citra seluruh satu wilayah administratif, AI Agent mengerjakan langkah-langkahnya dari satu instruksi di dalam QGIS. QGIS AI hub punya sisanya.