地圖匹配演算法實踐

佔利軍發表於2015-08-06

1 背景

如下圖所示,1、2、3 這三個點是汽車的GPS定位結果,儘管汽車是在道路上,但定位結果與道路存在偏差。地圖匹配(Map Matching)是指將行車軌跡的經緯度取樣序列與數字地圖路網匹配的過程,其本質上是平面線段序列的模式匹配問題( Alt等,2003)。

在實際應用中,GPS取樣訊號的質量會嚴重影響地圖匹配結果:取樣頻率的降低、定位誤差的加大、訊號的丟失,都會使匹配的不準確性增加。這些情況在實際應用中經常出現。如何在這些情況下仍能保持較高的路徑匹配準確率是個值得研究的問題。

2012年ACM SIGSPATIAL首次設立的競賽,其內容就是地圖匹配。三年前本人有幸和國防科大的楊岸然博士一同參加了該競賽,收穫良多。

2  地圖匹配演算法綜述

2.1 以使用到的資訊來劃分

現有的演算法可被分成四類:幾何、拓撲、概率、高階。
a)基於幾何的演算法考慮GPS點與道路的幾何資訊,如距離、角度等;
b)基於拓撲的演算法使用道路拓撲資訊來控制;
c)概率方法通過考慮GPS點的概率;
d)高階的演算法往往綜合考慮使用全面資訊,有卡爾曼濾波、模糊邏輯模型、隱式馬爾可夫模型等等。

2.2 以考慮取樣點的範圍來劃分

根據考慮取樣點的範圍,可分成區域性/增量演算法、全域性演算法。
a)區域性/增量演算法是貪婪演算法,每次確定一個匹配點,下個點從已經確定的匹配點開始。這些方法根據距離和方向相似性來找到區域性最優點或邊。(線上匹配)
b)全域性演算法是要從路網中找到一條與取樣軌跡最接近的匹配軌跡。為了測量取樣軌跡和匹配軌跡的相似性,大多數演算法使用“Frechet距離”或者是“弱Frechet距離”。還有時空匹配演算法、投票演算法等。(離線匹配)

2.3 以取樣點的頻率來劃分

根據軌跡資料的取樣頻率,現有的地圖匹配演算法可分成:
a)高頻取樣演算法(所有區域性演算法、部分全域性演算法如Frechet距離判別法等)
b)低頻取樣演算法(ST-matching演算法、IVVM演算法

一般認為30s及其以上為低頻取樣,1s~10s為高頻取樣。

3 我們的訓練資料

a)路網資料: Washington State U.S.A.(有128萬條邊 )
b)GPS資料:取樣頻率為1~30s,

4 採用的演算法

使用ST-Matching演算法(Lou等,2009),該演算法是一種全域性演算法,能綜合幾何資訊( GPS點與道路的距離)、道路拓撲資訊(最短路徑)、道路屬性資訊(每條道路的限速),具有精度高,穩定性好等優點。

4.1 準備候選集

4.2 確定權重


a)空間因素權重(Fs)

b)時間因素權重(Ft)

5 實驗結果

6 技術實現要點

6.1 地圖投影問題

問題:原始道路網資料的座標與軌跡點的座標並不在一個座標體系下,不能直接進行計算!

解決方法:使用PRJ4地圖投影庫將兩個資料投影到統一座標下。

6.2 大路網資訊資料量的讀取

問題:該路網有128萬條邊,我們採用C++,如果讀取每條邊都進行new和delete操作,將執行128萬次,效率極低!

解決方法:使用記憶體池技術。

6.3 最短路徑演算法的選擇

問題:候選集不同層次的候選點之間都要計算最短路徑,使用最常用的Dijkstra最短路徑演算法效率極低!

解決方法:使用啟發式最短路徑演算法:A-star演算法。

6.4 索引

問題:由於競賽真實測試會使用很多不同的路網資料,所以建立索引沒必要,但是計算某一GPS點的候選集時路網所有資料會參與計算,效率很低;

解決方法:計算某一GPS點的候選集時,先進行切片過濾,比如以該GPS點為中心,生成200m的正方形框,然後在該框裡建立新的道路網,這時計算候選集時只需要與該框內的道路網資料計算。

打賞支援我寫出更多好文章,謝謝!

打賞作者

打賞支援我寫出更多好文章,謝謝!

地圖匹配演算法實踐

相關文章