QGIS 建物偵測與建物輪廓萃取:3 種方法
發布於 更新於
要在 QGIS 裡偵測建物輪廓,您有三條路:下載開放資料集、在自己的影像上跑 AI 偵測外掛,或手動數化。最快的是第二種。從外掛管理員安裝外掛,載入您的影像,框選一個範圍,輸入 buildings,按下「偵測物件」,多邊形圖層就會落在您的專案 CRS 裡。
篩選是工作的另一半。跑出來的結果有很大一部分不是建築,所以要用信心分數和面積把原始輸出砍掉。我在巴黎市中心跑了一次,得到 635 個多邊形,而決定留下哪 82 個,花的時間比偵測本身還久。
| 您的情況 | 方法 | 時間 |
|---|---|---|
| OpenStreetMap、Microsoft 或 Google 已經覆蓋的區域 | 方法 1:下載開放建物輪廓 | 幾分鐘 |
| 數百到數千棟建築,在客戶指定的那張影像上 | 方法 2:自動偵測(我們的,雲端) | 848 棟 57 秒,再加篩選 |
| 五十棟以下建築,或需要一門牌一多邊形的歷史中心 | 方法 3:手動數化 | 看您畫多快 |
永遠先看開放資料。只有覆蓋有破洞、年份不對,或輪廓必須跟客戶給的那張正射影像對齊時,才往下走。
方法 1:下載開放建物輪廓
您需要 QGIS 3.22 或更新版、一份您信得過的影像圖層,以及方法 2 用的網路連線。三種方法都不需要獨立顯示卡。
很多案子根本不需要偵測。三個開放資料集加起來覆蓋全球大部分地區,但在同一個街區,它們的棟數可以差到數千棟。
挑選適合所在區域的資料集
OpenStreetMap在貢獻者活躍的地方品質很好,建築還帶屬性。Microsoft Global ML Building Footprints有超過十億棟機器萃取的建築,在北美最強。Google Open Buildings覆蓋全球南方,那裡 OSM 最稀疏。
對照您的影像載入其中一個
用QuickOSM把 OSM 拉進來。
放大檢視邊緣
看一眼邊緣,就知道可以停在這裡,還是要繼續往下看。

適合情況: 該區已經被畫得很好,且您能接受該資料集的年份和授權。
跳過時機: 覆蓋有破洞、年份不對,或輪廓必須跟某一張正射影像對齊。
方法 2:自動偵測
建物輪廓是建築貼地的外框,畫成一個平面多邊形。不是屋頂,不是地籍宗地,不是地址點。這裡重要,因為垂直影像給您的是屋頂:五層樓的 Haussmann 街區用近乎正射的角度拍,偏移很小,高塔就不一樣了。承諾要交建物輪廓圖層之前先知道這件事,更長的版本在建物輪廓是什麼。
自動偵測模型讀您的影像,把建築外框當多邊形回傳,每個多邊形帶一個信心分數。我們自己做了一個,AI Segmentation。這一節講的是我們自己的工具。
它跟其他外掛一樣從外掛管理員安裝:不用手動下載,不用弄 Python 環境,不用獨立顯示卡,因為模型跑在我們的伺服器上。Windows、macOS、Linux 都可以。


安裝並選擇影像圖層
從外掛管理員安裝,打開面板,選您要判讀的網格圖層。

畫出區域並輸入物件名稱
框選一個範圍,輸入 buildings,按下「偵測物件」。這就是整個 prompt,您想用自己的語言寫也可以。結果會一塊一塊串流回來,成為專案 CRS 裡的一個多邊形圖層。
物件很小時,調整精細度
唯一值得學的設定是精細度,也就是圖磚大小。小圖磚讓模型看很近,小物件需要這個。大圖磚給它脈絡,農地坵塊需要這個。
篩選回傳的結果
任何東西變成圖層之前,面板會帶您走三步:篩選要保留的、修正模型漏掉的、選輸出的形狀。第一步決定成敗,下面整節講它。
清理幾何圖形
Simplify、orthogonalize、delete holes,照這個順序,只在每一步真的有用時用。三個工具和順序的理由在下面。
一次執行算您框住的地面面積。每個帳號每個月都有免費額度,不用綁卡,Pro 可以拉高。偵測跑在歐洲伺服器,我們不用您的影像訓練,如果什麼都不能離開您的電腦,也有一個小的本機模型。完整指南把「保留」、「修正」、「形狀」全部講完。
篩選才是整份工作
原始偵測輸出是一堆帶信心分數的候選多邊形。在密集的影像上,大部分又小又不確定。這次巴黎的執行我把兩個過濾器都放到最寬,讓每個候選都進圖層:1.18 km² 裡 635 個多邊形。
跑回來的一半比一個停車位還小:通風口、天窗、樓梯間、庭院小棚。都是影像上真實存在的東西,框得也對,但沒有人說的建物輪廓是指這些。
所以要篩。在面板上拖兩個滑桿,或用屬性表格的 Select by Expression 做一樣的事:
"area_m2" >= 50 AND "score" >= 0.5
這樣會留下635 個中的 82 個多邊形,面積從總共 263,658 m² 留下 222,338 m²。門檻不要只聽我的,自己拖拖看。綠色是您的過濾器留下的,白色不是。

82 / 635個多邊形保留 (13%)
84%的建成面積 (222,338 m²)
屬性表格裡同樣的 635 個偵測結果。把信心度降到零,庭院小棚與天窗就會回來。
拖第一個的時候盯著第二個數字看。丟掉 87% 的多邊形,只花掉 16% 的面積,剩下的是雜訊,反正您本來也要一個一個手動刪,還會一邊懷疑工具到底行不行。
兩個門檻都要跟著案子調。調查工業倉庫,面積下限可以推到 200 m²。畫非正式住區,50 m² 會丟掉真房子,降到 15,改靠信心分數。
乾淨的結果長什麼樣子
巴黎是很硬的案例。同一個工具往西約 10 公里,面對獨棟住宅:

85m²
多邊形面積中位數
巴黎那次執行:3.2 m²
0.79
信心度中位數
巴黎那次執行:0.26
251個多邊形
保留,共回傳 251 個
巴黎那次執行:635 個中保留 82 個
同一個工具,同一個城市,幾乎沒有東西要丟。變的是建成地景,不是模型。
會失敗的地方:連續密集街區

每個多邊形描的是整個街區的建築外框,貼著街廓線,庭院正確挖掉。算建成區或不透水面很好用,要一門牌一多邊形就不對。沒有任何讀垂直影像的模型能找到兩棟相連建築之間的共用牆,因為從上面看,那裡根本沒有東西可以看。
幾何清理
三個 QGIS 原生工具整理建物輪廓圖層,順序重要,因為 simplify 會動到您剛拉直的頂點。
- Simplify,航照影像用 0.5 m 容差。頂點數大砍,邊界位移小到您不會發現。
- Orthogonalize。把接近直角的角吸成直角。開放資料和手繪成果用它,因為那些角還沒被拉直過。
- Delete holes,只有您想要實心輪廓才用。巴黎這個結果不要用:那些洞是庭院,是對的。
在偵測出來的圖層上,第 2 步幾乎是空轉。我沒有用猜的,直接量過:拿 190 棟偵測建築跑 Orthogonalize,比對全部 1,845 個角的前後。
87.9%
的角已在直角 1° 以內
尚未執行任何處理時
87.9%
執行 Orthogonalize 之後
同樣的 1,845 個角
1.7cm
頂點位移中位數
最大為 9.1 cm

不正交的那 12% 是連棟透天。看街區中間那條階梯狀邊緣就知道。沒有角工具修得好,因為那些階梯跟的是真實屋頂線,不是建模誤差。
適合情況: 數百到數千棟建築,在指定的影像上,或好幾個人必須用同一套方式產出同一個圖層。
跳過時機: 在歷史市中心需要一門牌一多邊形。我不會在那裡用自動偵測,地籍資料加手動修正會贏。
方法 3:手動數化
五十棟以下,自己畫。免費、精準,這個數量我到現在還是會自己畫。
開啟接合
Project -> Snapping Options,vertex 加 segment,開啟 topological editing。不開的話,您會花整個下午刪碎片。
描圖時,留意自己漸漸走樣
畫到第 60 棟左右,您會開始走捷徑,第 6 棟時您絕對不會這樣畫,而您自己不會發現。誤差已經進圖層了。
適合情況: 大約五十棟以下,或在密集的歷史中心需要一門牌一多邊形。
跳過時機: 數量跑到數百棟,或好幾個人要用同一套方式產出同一個圖層。
重點回顧
| 開放資料集 | 自動偵測 | 手動數化 | |
|---|---|---|---|
| 成本 | 免費 | 免費額度,之後付費 | 免費 |
| 設定 | 幾分鐘 | 幾分鐘 | 無 |
| 適合 | 已覆蓋良好的區域 | 數百到數千棟 | 約 50 棟以下 |
| 是否貼合您的影像 | 否 | 是 | 是 |
| 團隊一致性 | 是 | 是 | 否 |
| 密集連續街區 | 視情況 | 只有街區外框 | 是 |
| 可交代的來源 | 資料集與年份 | 您的影像,附信心分數 | 您本人 |
先查開放資料集。同一個街區它們可以差到數千棟,所以拿它們的邊緣跟您的影像對一下,就知道要不要繼續。
必須跟客戶正射影像對齊的輪廓,不管覆蓋多好,都不選開放資料集。
偵測的大部分工夫在篩選:巴黎市中心 635 個留 82 個,保住 84% 的建築面積。
垂直影像在相連建築的地方,給不出一門牌一多邊形,花多少錢都一樣。去接合地籍資料。
超過五十棟左右,手動數化會默默走樣。
常見問題
無人機影像可以用嗎?
比衛星更好用。地面解析度比來源重要:5 cm 正射影像的邊界和信心分數,會比 30 cm 衛星場景乾淨得多。
需要 GPU 嗎?
跑一次多少錢?
自動偵測算您框住的地面面積,雲端 AI 按存檔算一個物件。半自動模式在您自己的電腦上跑免費。每個帳號每個月都有免費額度。
可以一門牌一多邊形嗎?
在建築相連的市中心,垂直影像做不到。模型回傳的是整個街區的建築外框,庭院有挖掉,算建成區是對的,算門牌是錯的。去接合地籍資料。
開放資料集先從哪個開始?
您的區域有活躍的 OSM 貢獻者,就先用 OpenStreetMap。沒有的地方落差很大:羅安達那個 1 km² 街區,OSM 一棟都沒有,Microsoft 收錄 3,140 棟,Google Open Buildings 收錄 4,468 棟。
什麼軟體可以為都市計畫偵測建築物輪廓?
做規劃研究時,先從免費的 QGIS 開始:載入開放的建築輪廓資料(OpenStreetMap、Microsoft、Google Open Buildings),再對照最新影像檢查。對於缺漏或過時的區域,像 AI Segmentation 這樣的自動偵測外掛可以依據你自己的正射影像繪製建築物,讓圖層與你的影像日期一致。ArcGIS Pro 也有預訓練的建築物模型,但需要付費授權,還要有 GPU 才跑得快。要完成整張地圖,從資料到帶有樣式的列印版面,AI Agent 只要一句話就能在 QGIS 中完成這些步驟。
屋頂和地面的落差全文,讀建物輪廓是什麼。已分類網格資料的情況,直接向量化比任何模型都好用,讀QGIS 網格轉向量。同樣的「框選區域加篩選」方法也能找出那些屋頂上的太陽能板:QGIS 太陽能板偵測會帶您走一遍。若要在新的區域重複這套偵測與篩選流程,又不想逐一點擊,AI Agent 能在 QGIS 中用一句指令完成。棕地在偵測結果中常是殘留的水泥地面與棚屋,而不是乾淨的屋頂,綠地與棕地一文說明兩者從空中看起來各是什麼樣子。QGIS AI 中心列出我們做的其他東西。

裡偵測建物輪廓,您有三條路:下載開放資料集、在自己的影像上跑 AI 偵測外掛,或手動數化。最快的是第二種。從外掛管理員安裝外掛,載入您的影像,框選一個範圍,輸入 


