文章版權由作者李曉暉和博客園共有,若轉載請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
1.背景
在無路網的情況下,如何進行軌跡糾偏也是一個很多人在研究的內容,各種方案均有很多,有基於不同濾波算法的,也有基於機器學習的,等等。這里,我探討一種實現相對簡單的基於中值濾波來進行軌跡糾偏的方法。
2.中值濾波簡介
中值濾波是基於排序統計理論的一種能有效抑制噪聲的非線性信號處理技術,中值濾波的基本原理是把數字圖像或數字序列中一點的值用該點的一個鄰域中各點值的中值代替,讓周圍的像素值接近的真實值,從而消除孤立的噪聲點。
中值濾波法對消除椒鹽噪聲非常有效,在光學測量條紋圖象的相位分析處理方法中有特殊作用,但在條紋中心分析方法中作用不大.中值濾波在圖像處理中,常用於保護邊緣信息,是經典的平滑噪聲的方法。
基於中值濾波對去噪平滑有比較好的效果,這里嘗試將中值濾波這種思路用在對軌跡點去噪平滑中。
3.算法設計
3.1初步算法設計
算法基於一定的歷史軌跡點,初步設計為:
3.2算法優化
根據歷史軌跡的數量,以及軌跡的特征,我們再進行如下的算法優化:
a.加上初始的濾波閾值minRange,最大濾波閾值maxRange,遞增累加閾值rangeStep,中值樣本數目meanNum,四個參數。這個四個參數的作用是首先根據minRange在歷史軌跡中過濾出坐標(x,y)附近的軌跡點,判斷軌跡點的數目是否大於meanNum,如果軌跡點的數目大於,則返回由所得軌跡平均出的中值,否則將Range加上rangeStep,再返回初始判斷。其跳出條件是,當Range大於maxRange后,則將原點判斷為奇點,進行返回。
b.由於中值濾波本身是要對范圍點排序,再前后去相同數目后再進行平均,但是考慮到對軌跡點走位過濾再排序效率太低,這里直接將所有范圍內點進行平均。
c.如果連續多個點均是奇點,將判斷為一條新的路線而不舍棄,否則將奇點舍棄。即增加一個ourRangePointNum參數,多余這個參數的奇點均是正常點,否則舍棄。
3.3優化總結
算法優化的目的是:
a.盡量合理算出中值。
b.對無法取中值的奇點,要判斷是正常點還是噪音點,盡量保證軌跡特征點。
c.優化算法效率。
4.算法實現
4.1均值算法
4.2入口調用
5.結果展示
6.幾點思考
a.基於歷史軌跡的查詢通過X和Y來過濾效率偏低,可以通過geohash編碼后再進行單個字段匹配會加速歷史軌跡的查詢。
b.中值濾波的效率、平滑等效果一般,並且過度依賴於歷史軌跡數據樣本。
c.中值濾波會出現將某些點糾偏過度。
-----歡迎轉載,但保留版權,請於明顯處標明出處:http://www.cnblogs.com/naaoveGIS/
如果您覺得本文確實幫助了您,可以微信掃一掃,進行小額的打賞和鼓勵,謝謝 ^_^