QGIS 游泳池偵測:5 種方法
發布於 更新於


要在 QGIS 中偵測游泳池,先查 OpenStreetMap:「向量」→「QuickOSM」→「QuickOSM…」,key leisure,value swimming_pool。圖資稀疏的地方,就跑分割模型,或在網格計算器對藍色設門檻。用哪一種,由地面解析度決定。
| 您的輸入 | 方法 | 花費 |
|---|---|---|
| OSM 圖客活躍的任何地區 | 方法 1,用 QuickOSM 查 leisure=swimming_pool | 免費,一次查詢 |
| RGB 正射影像和數百個游泳池 | 方法 2,分割模型 | 免費外掛要自備模型或 GPU。雲端外掛有免費額度,之後要訂閱 |
| 5 到 30 cm 的 RGB 正射影像 | 方法 3,在網格計算器做色彩門檻 | 免費,QGIS 核心內建 |
| 有近紅外或短波紅外波段的影像 | 方法 4,算水體指數再設門檻 | 免費,衛星影像看不到庭院游泳池 |
| 多光譜影像和一個下午 | 方法 5,SCP 或 dzetsaka | 外掛免費,花的是您畫訓練區的時間 |
每個版本、價格和選單路徑,都是在 2026 年 9 月 3 日對著 QGIS 3.44 手冊和各工具說明文件讀過的。
方法 1:拿別人已經畫好的游泳池
OpenStreetMap 有 3,036,801 個標 leisure=swimming_pool 的物件,其中 2,731,704 個是帶真實幾何的 ways,這是 2026 年 9 月 3 日 taginfo 的數字。
開啟 QuickOSM 並查詢
「向量」→「QuickOSM」→「QuickOSM…」,會查詢 Overpass API。key leisure,value swimming_pool,範圍用畫布範圍或指定的行政區。
保留多邊形,篩出庭院
以節點標記的游泳池沒有面積,所以請取多邊形圖層。其中有 1,808,809 個游泳池同時帶有 access=private,這就是篩出後院游泳池的條件。
leisure=swimming_area 是另一種物件:湖裡或海邊指定的游泳區。

**適合時機:**您要的是公共和商業游泳池。
**不適合時機:**工作是要找出沒人申報的。
方法 2:分割模型
分割模型讀形狀和上下文,所以同樣顏色的游泳池和帆布分得開。我們自己做的就是這一種,AI Segmentation。這一節講的是我們自己的工具。
安裝並登入
外掛管理員,QGIS 3.22 或更新版本。不用 GPU,不用模型權重。註冊帳戶,領免費額度,之後每月 €39,未稅。
畫出區域、輸入關鍵字、篩選
輸入 swimming pool 後執行。多邊形會以專案 CRS 回傳,帶有面積、周長和信心度。排序後,刪掉錯的。
我們調參表裡的兩個數字,執行時讀到。游泳池偵測約要求每像素 0.13 m、圖磚邊長最多 300 m,粗過這個,游泳池會糊進露台裡。swimming pool 的檢視從 0.20 信心度開始,building 則是 0.30,因為游泳池遮罩的分數本來就比屋頂低。

一個限制:加蓋的游泳池到不了模型,所以一定漏。兩種雲端模式都會把影像送到我們在歐盟的伺服器。

同樣做這件事的還有四家,都是 2026 年 9 月 3 日讀的。
| 工具 | 安裝什麼 | GPU | 帳號 | 影像是否離開您的電腦 | 游泳池支援 | 費用 |
|---|---|---|---|---|---|---|
| Deepness | 外掛管理員、它的 Python 套件、一個 ONNX 模型 | 可選,CPU 能跑 | 不用 | 不用 | 看您給什麼模型 | 免費 |
| Geo-SAM | 外掛管理員、相依套件、模型權重 | 可選 | 不用 | 不用 | 一次點選或框選一個物件 | 免費 |
| samgeo | 一個 Python 套件,沒有 QGIS 面板 | 建議有 | 不用 | 不用 | 可寫腳本,沒有游泳池類別 | 免費 |
| Mapflow | 外掛管理員 | 不用 | 要 | 雲端服務是,企業版提供本地部署 | 專用 Swimming pools 模型,隨選提供 | 點數,付費 |
| AI Segmentation(我們的) | 外掛管理員 | 不用 | 要 | 兩種雲端模式要,地端模型不用 | 輸入 swimming pool | 免費額度,之後每月 €39,未稅 |
**適合時機:**游泳池多到您不想手動描繪。
**不適合時機:**影像不能離開您的電腦。用 Deepness 或 Geo-SAM。
要掃圖並由別人為公開精度數字背書,就用 Mapflow。它有專用的 Swimming pools 模型,隨選提供,旁邊標著 F1 高於 0.95。游泳池的數字,我們自己不公布。
方法 3:在網格計算器對藍色設門檻
先用投影坐標系工作,因為下面有三步要用圖層單位按面積篩選。
這是 QGIS 核心最接近的做法。打開「影像」→「網格計算器…」,波段寫法是 layer_name@band_number。在 RGB 正射影像上,下面這組會留下又亮又藍的像素:
("ortho@3" > 90) AND ("ortho@3" - "ortho@1" > 25) AND ("ortho@3" - "ortho@2" > 10)
這組數字是我在 20 cm 正射影像上調的。取二十個游泳池像素和二十個屋頂像素,自己再移動。
用「影像」→「轉換」→「影像向量化(影像轉向量)」轉成向量,再用 native:extractbyexpression 篩選:面積用 $area > 6 AND $area < 400,形狀用我自己的比值 4 * pi() * $area / ($perimeter ^ 2) > 0.5,因為 QGIS 沒有內建的緊湊度函數。

RGB 值會跟著太陽角度和曝光跑,在一條航線調好的門檻,換一條就破功。色相和飽和度撐得比較久,用空間運算工具箱的 i.rgb.his,它「transforms raster maps from RGB (Red-Green-Blue) color space to HIS (Hue-Intensity-Saturation) color space」。
兩種規則都不知道那個藍色東西是什麼。
- **陰影。**背陰的屋頂斜面看起來深藍。提高下限,樹下的游泳池就沒了。
- **藍色屋頂和帆布。**又亮又藍,形狀還常常剛好。
- **深色池底和發綠的池水。**黑色池底看起來像柏油,長藻看起來像草地。我的規則兩個都漏掉。
- **加蓋的游泳池。**根本不在影像裡。

**適合時機:**同一張正射影像,您會人工檢查。
**不適合時機:**多條航線拼起來的鑲嵌影像。
方法 4:有波段就用水體指數
再檢查解析度。法國游泳池協會說新建地下游泳池是 29 到 30 m²,在 10 cm 正射影像上是 3,000 個像素,在 10 m Sentinel-2 波段上是三分之一個像素。
水幾乎完全吸收近紅外,所以在 NIR 波段裡水是黑的,藍色屋頂還是亮的。
- NDWI,McFeeters 1996:
(Green - NIR) / (Green + NIR)。在 Sentinel-2 上是(B3 - B8) / (B3 + B8)。 - MNDWI,Xu 2006:
(Green - SWIR) / (Green + SWIR)。在 Sentinel-2 上是(B3 - B11) / (B3 + B11)。把 NIR 換成 SWIR 可以壓住建築地,在郊區這點很關鍵。
大於零取出來,轉向量,照方法 3 篩選。Rodríguez-Cuenca 和 Alonso 在 2014 年為這個工作調過一個正規化游泳池差異指數。
Sentinel-2 的 B3 和 B8 是 10 m,B11 是 20 m,所以 30 m² 的游泳池永遠分不出花園。對住宅街區跑 MNDWI,只會回傳城邊的水庫,其他什麼都沒有。

**適合時機:**正射影像在 50 cm 或更細且有 NIR 波段。它直接打敗色彩門檻。
**不適合時機:**只有三波段 RGB,或用 Sentinel-2 找庭院游泳池。
方法 5:在自己的影像上訓練分類器
分類器從您畫的範例學游泳池像素,所以固定門檻會破功的鑲嵌影像,它撐得住。
Luca Congedo 的 Semi-Automatic Classification Plugin 是常用選擇。在 SCP dock 裡建訓練輸入(.scpx),畫 ROI,再到主視窗跑 SCP > Band processing > Classification。六種演算法,從 Minimum Distance 到 Random Forest。9.0.4 版在 2026 年 7 月 11 日發布,但它宣告 QGIS 最低版本是 3.99,所以 QGIS 3.x 還是裝 8.5.0。
Nicolas Karasiak 的 dzetsaka 5.0.11 比較輕:十一種分類器,它的 Gaussian Mixture Model 不用 scikit-learn 也能跑。
藍色屋頂類和陰影類也要畫。分類器只會排除您給它看過的東西。

**適合時機:**多航線或多季節,工作流程會重複用。
**不適合時機:**一張正射影像、跑一次。兩個都是分像素,不是分物件,所以還是要轉向量再篩選。
五種方法並排
| 您有什麼 | 方法 |
|---|---|
| 圖資完整的城鎮,公共游泳池就夠 | 方法 1,QuickOSM |
| 幾百個游泳池,不想清假陽性 | 方法 2,分割模型 |
| 一張優於 30 cm 的 RGB 正射影像 | 方法 3,色彩門檻再篩選 |
| 帶 NIR 波段的正射影像 | 方法 4,NDWI |
| Sentinel-2 或任何 10 m 影像 | 庭院游泳池都不行。去找更細的影像 |
| 多航線、會重複用的流程 | 方法 5,SCP 或 dzetsaka |
結論
先看解析度,再看波段,最後看您能吞多少人工檢查。
30 m² 的游泳池在 10 m 解析度下永遠分不出花園,所以不管跑什麼指數,Sentinel-2 都不是找庭院游泳池的感測器。
色彩門檻會把街區上所有藍色的東西都撿回來,所以看結果之前,先按面積和緊湊度篩選。
加蓋的游泳池不在影像裡,所以這頁的方法都找不到,什麼價格都改變不了。
偵測結果是候選。無論跑哪一種,動圖層之前,先打開信心最低的十個多邊形看過。
常見問題
QGIS 自己能偵測游泳池嗎?
沒有這個功能。QGIS 核心給的是網格計算器、轉向量和向量篩選,也就是方法 3。要把游泳池認成物件,需要外掛。
Sentinel-2 影像找得到庭院游泳池嗎?
找不到。綠光和近紅外是 10 m 波段,短波紅外是 20 m,30 m² 的游泳池只有三分之一個像素。請用 30 cm 或更細的航照影像。
藍色屋頂為什麼一直被當成游泳池?
漆過的金屬屋頂比池水更亮更藍,而色彩規則只認顏色。按面積和緊湊度篩選,改用 NDWI,或用模型。
從航照影像偵測游泳池合法嗎?
把偵測結果接到地籍和屋主姓名,就變成個人資料,在歐盟要有 GDPR 的合法依據。稅務機關有寫進法律的依據,一般公司通常沒有,串接之前先問資料保護長,模型的輸出也絕不能是開帳單前的最後一步。
精度可以期待多少?
單一數字一定是假的,跟您的影像和季節走。20 cm 的露天游泳池回來得不錯,加蓋的這裡全部漏掉,藍色屋頂就是您要手動刪除的。
偵測結果已經是可以直接採取行動的游泳池清單嗎?
法國稅務單位用 IGN 航照影像跑過一次,最後還是逐一發函給屋主。它的 Foncier innovant 試點對 2022 年九個省的 20,356 個游泳池課稅,金額 €980 萬,2023 年全國跑一次,又找到 150,000 個該課稅卻漏列的游泳池。偵測結果只是候選,把它接到地籍和人名,就變成個人資料。
篩選的完整步驟,看 QGIS 建物輪廓偵測。遮罩後面的清理,看 QGIS 網格轉向量。要在整個市鎮的影像上重複同樣的偵測再篩選流程,AI Agent 能在 QGIS 中依一句指令執行這些步驟。其餘的在 QGIS AI hub。
中偵測游泳池,先查 OpenStreetMap:「向量」→「QuickOSM」→「QuickOSM…」,key 

