跳至內容
AI Segmentation
QGIS
教學

QGIS 道路萃取:6 種方法與一個陷阱

發布於 更新於

同一條郊區街道由空中俯瞰的三格對比:原始衛星影像、中間畫上 OpenStreetMap 中心線、以及從路緣到路緣填滿鋪面範圍的多邊形。

要在 QGIS 中萃取道路,請安裝 QuickOSM,開啟「向量」→「QuickOSM」→「QuickOSM」,用鍵 highway 查詢畫布範圍,路網幾秒內就會以線載入。OpenStreetMap 稀疏的地方,還有五種方法可以把道路放上地圖:分割模型、已發布的國家資料集、手動數化、GRASS 細化和監督式分類。

有一個選擇要先做,它決定了您能用哪些方法。您不是在萃取道路,您是在 中心線 和 路面 之間二選一:中心線是一條走在路中間的線,帶著車道數和速限;路面是路緣到路緣的鋪面。路徑規劃需要線,排水和重鋪工程量需要面。下面一半方法給您前者,一半給您後者,兩者互轉都要多一步。

您的情況方法費用
有活躍 OSM 圖客的城市1、QuickOSM免費
OSM 還沒畫到的地方的最新影像2、分割模型免費額度,之後要訂閱
有國家道路資料集的國家3、下載並裁剪免費
少數幾條路,或修正手上的圖層4、開追蹤手動數化免費,但很慢
道路遮罩或掃描地圖5、GRASS r.thin 接著 r.to.vect免費
瀝青特別突出的多波段影像6、監督式分類免費外掛,加數小時採樣

每個價格、版本和選單路徑都在 2026 年 9 月 3 日對照 QGIS 3.44 手冊 和各工具自家說明文件讀過。

方法 1:用 QuickOSM 拿 OpenStreetMap 道路

先花三十秒查 OSM,能省掉下面所有方法。QuickOSM 查詢 Overpass API,直接把結果丟進您的專案。

安裝 QuickOSM

「外掛程式」→「管理並安裝外掛程式」,搜尋 QuickOSM,安裝。

開啟快速查詢

「向量」→「QuickOSM」→「QuickOSM」,切到 Quick query 分頁。

設定鍵

鍵 highway,值留空就是全部道路等級。要縮小範圍就加值:residential、track、motorway。

限定範圍

選 Canvas Extent。不設邊界的整國查詢會在 Overpass 超時。

執行並篩選

線載入時會帶著 OSM 標籤。用 highway 篩選,有 surface 的就讀 surface。

QGIS 中 QuickOSM 的 Quick query 分頁:鍵 highway,值留空,範圍設為 Canvas Extent,並有 Run query 按鈕。
整個查詢只有三個欄位:鍵 highway,不填值,範圍用畫布範圍。截圖於 2026 年 9 月 3 日。

標籤就是已測繪地區勝過任何偵測的原因。highway=track 告訴您那是農業便道,highway=unclassified 則是次要公共道路。這一頁沒有模型能告訴您這兩者的差別,因為偵測只給您形狀,OSM 給您的是有人命名過的形狀。依 ODbL 必須署名。

覆蓋率就是 OSM 停下的地方。在非洲鄉村、南亞,或多數城市的擴張邊緣,把 highway 線疊上最新影像,土路在圖裡看得清清楚楚,圖上卻什麼都沒畫。

某鄉村地區的衛星影像,上面疊著藍色的 OSM highway 線。兩條主要道路有線,田地之間十幾條看得見的土路卻什麼都沒有。
同一範圍上的 OSM highway 線。兩條鋪面道路有被測繪,田地之間的土路在影像裡看得見,圖層裡卻沒有。

適合: 該地區已有人測繪。

略過: 影像裡的道路在 OSM 圖層上看不到。

OpenStreetMap 有多完整?法國四個市鎮實測

2026 年 9 月 23 日,我們量測了四個法國市鎮:OpenStreetMap 涵蓋了 IGN 官方 BD TOPO 鋪面道路長度的 96% 至 98%,而在三個鄉村市鎮裡,IGN 的農路與林道有 20% 至 32% 在 OSM 中不存在,Microsoft 的免費偵測結果找到其中的 6% 至 12%。在像法國這樣測繪完整的國家,從影像萃取道路的難題是土路,而不是道路。

市鎮IGN 鋪面道路OSM 缺漏IGN 土路OSM 缺漏其中 Microsoft 找到
Villeurbanne,密集城區,15 km²280 km10.3 km(3.7%)15 km0.8 km(6%)0.3 km
Orgères-en-Beauce,開闊農地,15 km²27 km0.5 km(2.0%)27 km5.6 km(21%)0.7 km(12%)
Saint-Léonard-de-Noblat,樹籬農地,55 km²147 km3.9 km(2.6%)113 km36.4 km(32%)2.2 km(6%)
Gérardmer,山區森林,56 km²216 km3.8 km(1.7%)228 km44.7 km(20%)2.8 km(6%)

在這四個市鎮中,Microsoft 的線涵蓋了 IGN 鋪面道路長度的 89% 至 95%,土路則為 17% 至 37%。

同一張灰階正射影像的兩份複本,畫面是林地山谷與田野。左圖是 OpenStreetMap 對照 IGN:白色車道代表兩者都有,穿過樹林的長橘線只見於 IGN。右圖是 Microsoft 對照 IGN:穿過樹林的橘線相同,另外還有田地之間 OSM 有、Microsoft 漏掉的車道。
Saint-Léonard-de-Noblat(上維埃納省)1.6 × 1.2 km 的視窗。白色表示兩個資料集都有,橘色表示只見於 IGN BD TOPO。左圖中,大部分橘線位於樹林底下。IGN 正射影像與 BD TOPO,OSM 為 2026 年 9 月 23 日的版本,Microsoft 偵測結果為 2025 年 4 月的版本。

缺漏的土路位在哪裡,決定了影像能不能找到它們。我們在每個鄉村市鎮隨機抽出 20 段缺漏路段,逐一對照 IGN 正射影像檢視。在 Orgères-en-Beauce,7 段在地面上看得到土路,5 段落在空無一物的田埂上,沒有東西可描。在 Gérardmer,20 段中有 15 段位於針葉樹冠底下,任何由上往下看的模型都看不到。Saint-Léonard 介於兩者之間,7 段看得見,5 段在樹下。

另外還發現兩件事,會改變您的查詢方式。在 Gérardmer,IGN 另外 93 km 的土路在 OSM 裡標為 highway=path,所以只查 track 的 QuickOSM 查詢會漏掉它們:請把值留空。此外,OSM 也有 IGN 沒畫的東西,例如 Gérardmer 的 100 km 步道與山徑,以及 Villeurbanne 的 64 km 服務道路(停車場通道、院落、車道)。

我們如何量測

我們從 Géoplateforme WFS 取得 IGN BD TOPO troncon_de_route,在 2026 年 9 月 22 日與 23 日從 Overpass 取得每一條 OSM highway 路徑(即 QuickOSM 回傳的內容,不含人行道),並加上 Microsoft 2025 年 4 月 28 日釋出的資料,全部裁切到各市鎮範圍。每條線都切成 10 m 一段,當另一個資料集在 10 m 內沒有與它夾角在 45 度以內的線時,該段就算缺漏。改用 5 m 或 20 m 時,鋪面道路的缺漏仍低於 5%,鄉間土路則介於 15% 至 37%。四個市鎮不等於整個法國,BD TOPO 是參考基準而不是真值(Orgères 的 20 段中有 5 段在地面上什麼都沒有),正射影像的檢查也只是一個人對 60 張影像的判斷。

方法 2:分割模型

分割模型學過道路長什麼樣子,靠形狀和上下文越過了卡住方法 6 的相似物。我們自己做了一個,AI Segmentation。這一節講的是我們自己的工具。

從外掛管理員安裝

Windows、macOS 或 Linux 上的 QGIS 3.22 或更新版。不用 GPU,不用 Python 環境,不用抓權重。

畫出範圍

對畫布上已有的任何網格圖層畫範圍,從衛星場景到 WMS 都可以。

輸入關鍵字

車行道請輸入 road。parking lot、sidewalk 和 driveway 是不同的詞。分開跑,不然緊貼道路的停車場會連在一起。

篩選,需要線再轉換

跑完回來的多邊形帶有 label、class、score、area_m2 和 perimeter_m,以專案 CRS 計算。按 score 和面積篩選,再把面送進 GRASS v.voronoi.skeleton 取中心線。

QGIS 中 Google Satellite 影像上的一個郊區,路面從路緣到路緣填成一個相連的紅色多邊形圖層。
在 Google Satellite 影像上跑道路偵測,截圖於 2026 年 9 月 3 日。整個車行道以一個面的形式回傳,連路口也包含在內,而不是中間一條線。

輸出是路緣到路緣的多邊形,永遠不是中心線,所以要交線就得多做上面的骨架步驟。兩種雲端模式都會把影像送到歐盟境內的伺服器,只有小的本地模型留在您的電腦上。

樹冠會把面打斷,要手工接回去,橋面也一樣。潮濕瀝青和剛重鋪的色調差到會掉一段。我們不公布精度數字,因為數字隨您的影像而變。

同一個道路圖層疊在林蔭街道上:多邊形在開闊處連續,遇到樹冠探出的地方就中斷,一個街區內留下三個缺口。
一個街區裡的樹冠問題。同一條街有三個缺口,每個都在樹下。這一頁的所有方法都看不穿樹葉。

講一個我們調參表裡的數字,因為它解釋了一個讓人覺得奇怪的結果。道路用的圖磚比建物粗,每張圖磚的地面下限是 512 m,建物是 128 m,因為只拿到一小片瀝青,模型會叫它停車場。模型要看到一段路,才讀得出那是路。

費用,讀於 2026 年 9 月 28 日。免費方案在自動模式上每月含 1.5 km² 地面,不用卡,雲端半自動模式每月另加 20 個物件偵測,在自己電腦上的半自動模式則完全不限量。Pro 提高到 100 km² 和 500 個物件,每月 €39,未稅。Mapflow 的道路模型按點數計價,每點 0.10 美元,每 km² 另加 5 點與影像費用,開頭送 250 點。

適合: 影像比地圖新,且道路多到手畫不完。

略過: OSM 已有路網,或影像不能離開您的電腦。

方法 3:已發布的道路資料集

可能已經有人跑過偵測,並把結果公開了。

Microsoft Road Detections 涵蓋 235 個國家、5,420 萬公里道路,從 Bing Maps 航照影像探勘而來,以中心線形式、依世界區域分檔,依 ODbL 釋出。在上面量測的四個法國市鎮中,它涵蓋了約十分之九的鋪面道路公里數,土路則約五分之一。

Meta 透過 Rapid 編輯器 發布自家 AI 生成的道路。原本打包它們的 Daylight 發布版已於 2024 年 5 月終止,所以現在實際拿到的管道是 Rapid。

有國家測繪單位的地方,兩者都比不上國家資料。法國發布 BD TOPO,其中的 Troncons de route 圖層在 Etalab 2.0 下達到公尺級精度,遠勝探勘資料集的粗略套合。英國透過 OS Data Hub 免費發布 OS Open Roads,每年四月和十月更新。

問題在時間。偵測資料集是探勘當時影像的快照,沒有一個知道去年春天封了哪條路。

適合: 今天下午就要全國覆蓋,且時間夠用。

略過: 工作是資料集建成之後的變化。

方法 4:手動數化,開著追蹤畫

五十條以下的道路,用畫的還是最快,只要搞懂追蹤到底在跟什麼,QGIS 真的幫得上忙。

切換編輯模式,選「加入線圖徵」,再在接合工具列上啟用「追蹤」工具,或按 T。接合一個頂點,再移到第二個頂點,QGIS 就會沿既有圖徵邊在兩點間建立最短路徑。展開追蹤圖示並設定「偏移」,就能沿這些圖徵平行數化,而不是貼著畫。

有兩個行為常讓人意外。圖幅裡圖徵太多時,追蹤會自己關掉,放大後又回來。要畫自由曲線,按 R 改用串流數化。

適合: 五十條以下的道路,或對照您信任的圖層做修正。

略過: 面對整區沒畫的土路。

方法 5:GRASS r.thin,再 r.to.vect

請在投影 CRS 下工作。下面有兩個步驟要用圖層單位取寬度,用度為單位的寬度沒有意義。

這是唯一直接給您中心線的方法,這也是它到 2026 年還在用的原因。餵給它一個道路是一種值、其他都是一種值的網格資料:紙圖經閾值化的掃描,或方法 2、6 來的遮罩。

r.thin 把每條筆畫縮到一個像素寬,這條像素鏈就是中心線。r.to.vect 以圖徵類型 line 把它轉成幾何。GRASS 手冊提醒它會在路口產生過多節點和懸空短刺,所以要預留清理時間:按長度刪掉短刺,再把該連成一條的段合併。

GRASS 隨多數 QGIS 安裝包一起來,不用另買。它也是把方法 2 的面轉成線路網的那一步,是我最常用的組合。

適合: 手上有乾淨的道路遮罩或乾淨的掃描,且要的是線。

略過: 輸入是彩色照片。

方法 6:監督式分類

先把像素分類,再把道路類向量化。Semi-Automatic Classification Plugin 是標準工具,作者 Luca Congedo。9.0.4 版需要 QGIS 3.99,也就是 QGIS 4 系列,所以在 QGIS 3.x 上,管理器給您的是 8.5.0。dzetsaka 做同樣的事,介面更小。

您在道路像素和其他每個地物類上畫訓練區,跑 Maximum Likelihood 這類分類器,再把道路類送進「影像」→「轉換」→「影像向量化(影像轉向量)」。網格轉向量指南 講了後半段,包括修掉向量化留下的階梯邊的演算法。

瀝青和周圍真的不同時才有效,多光譜波段有幫助。遇到長得很像的就會倒,因為分類器只比像素值,不懂形狀:灰屋頂、乾河床、光禿田邊全都會掉進道路類。訓練樣本要預留幾小時,且下一個場景要重畫。

適合: 有多光譜波段,且道路在其中突出。

略過: 道路和屋頂同色,也就是多數城市。

重點回顧

這一頁的每個方法都會被四件事打斷,花多少錢都一樣。住宅街道上的樹冠擋住了往下看的任何感測器,所以結果總是斷成幾截。土路和旁邊田地的顏色一樣,這正是未鋪面道路恰恰在最需要成圖的地方缺失的原因。

另外兩個是形狀問題。河流、乾河床和鐵路都是細長特徵,任何基於像素的方法都會把它們丟進道路類。橋面和隧道口恰恰在路網最需要連通的地方把路面切斷。

先查 OpenStreetMap,因為那三十秒決定其他五個方法值不值得開。在測繪完整的國家,剩下要找的多半是土路,而且其中許多位在樹下。

先決定要中心線還是面,再選方法,不要反過來。路徑規劃要線,面積計算要多邊形,互轉都要多一步。

自動追蹤跟的是既有向量圖徵,永遠不是底下的影像。r.thin 要的是二值網格資料,永遠不是照片。

樹下的道路在這一頁每個方法裡都會斷掉,花再多錢也修不好。

方法 2 的面再過方法 5,就得到不用手動數化的中心線路網。

在 QGIS 免費試用,不需信用卡

常見問題

QGIS 能自己從衛星影像萃取道路嗎?

無法自動完成。QGIS 核心只能手動數化,以及把您已分類好的網格資料向量化。要從照片拿道路,需要一個外掛:分割模型,或自己訓練的 SCP 這類分類器。

道路萃取給的是線還是多邊形?

兩種都有,看方法決定。OSM、國家資料集、已發布偵測和 GRASS r.thin 給線。監督式分類和分割模型給面,因為影像上看到的就是面。GRASS v.voronoi.skeleton 可以互轉。

樹下的道路為什麼總是斷的?

往下看的感測器都看不穿樹冠,所以缺口在軟體動手之前就已在資料裡。進入編輯模式,用接合把幾段接起來。

OpenStreetMap 的道路路網有多完整?

就測繪完整國家的鋪面道路而言,接近完整:在我們於 2026 年 9 月量測的四個法國市鎮,OSM 涵蓋了 IGN 鋪面道路長度的 96% 至 98%。缺口在土路,鄉村市鎮裡 IGN 的土路長度有 20% 至 32% 缺漏。放眼全球,2017 年的一項研究估計 OSM 的道路網約完整 83%。

有方法找得到未鋪面土路嗎?

部分可以。土路和旁邊田地同色,所以分類通常漏掉,偵測模型只找得到較寬的。有圖客到過的地方,OSM highway=track 最可靠,問題是,最需要它們的地方恰恰沒人畫。

道路萃取需要多高的影像解析度?

能把路和旁邊分開就行。高速公路在粗衛星場景就看得到;樹下的住宅小巷要 20 cm 正射影像或更好。選定方法前,先拿自己的影像在免費額度上試。

在 QGIS 裡萃取道路免費嗎?

方法 1 和 3 到 6 安裝免費、執行免費。只有雲端分割模型收費,這裡提到的兩家都有免費額度。

可以開啟追蹤,沿著影像上的道路描嗎?

追蹤完全不看影像。QGIS 3.44 手冊寫得很清楚:它是沿著既有向量圖徵的邊建立最短路徑。在只有裸衛星影像的地方,沒有東西可跟,這個工具什麼都不會做。只有當您手上已有地籍或部分路網,想讓新幾何自動貼齊它們時,它才有用。

可以對航照影像直接執行 GRASS r.thin 嗎?

r.thin 需要一個道路是一種值、其他都是一種值的網格資料。直接丟彩色照片給它,它只會按像素值相近去細化,細出來的不是道路。這是個很強的工具,只是放早了一步:它屬於分類或偵測之後,而不是之前。

網格轉向量指南 講了方法 6 的向量化半段,建物輪廓指南 走完篩選步驟。方法 2 的偵測再取骨架這條流程,若在多個圖磚上變得重複,AI Agent 能在 QGIS 中依一句指令執行同樣的步驟。QGIS AI hub 並排比較各外掛。