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